oasys-lib 1.34.0 → 1.35.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.
@@ -22,6 +22,7 @@ export class CarouselComponent {
22
22
  this.carousel_slides_per_view_laptop = 3;
23
23
  this.carousel_slides_per_view_tablet = 2.5;
24
24
  this.carousel_slides_per_view_mobile = 1.25;
25
+ this.carousel_rows_per_row_mobile = 1; // Required for CATEGORY_CARD experiment. Remove if experiment fails.
25
26
  }
26
27
  ngOnInit() {
27
28
  this.setUpIntersectionObserver();
@@ -85,7 +86,7 @@ export class CarouselComponent {
85
86
  const swiperParams = {
86
87
  rewind: this.rewind,
87
88
  grabCursor: true,
88
- spaceBetween: (parseInt(carouselGap, 10) * 10) || 0,
89
+ spaceBetween: (parseInt(carouselGap.replace('.', ''), 10)) || 0,
89
90
  scrollbar: {
90
91
  enabled: this.carousel_pagination === 'scroll-arrows',
91
92
  draggable: true,
@@ -115,7 +116,11 @@ export class CarouselComponent {
115
116
  enabled: this.carousel_pagination === 'scroll-arrows',
116
117
  draggable: true
117
118
  },
118
- slidesPerView: this.carousel_slides_per_view_mobile
119
+ slidesPerView: this.carousel_slides_per_view_mobile,
120
+ grid: {
121
+ rows: this.carousel_rows_per_row_mobile,
122
+ fill: "row",
123
+ },
119
124
  },
120
125
  767: {
121
126
  scrollbar: {
@@ -165,10 +170,10 @@ export class CarouselComponent {
165
170
  }
166
171
  }
167
172
  CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CarouselComponent, deps: [{ token: i1.TokenService }, { token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
168
- CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CarouselComponent, selector: "ui-carousel", inputs: { rewind: "rewind", carousel_overflow: "carousel_overflow", carousel_gap: "carousel_gap", carousel_pagination: "carousel_pagination", carousel_align: "carousel_align", carousel_slides_per_view_desktop: "carousel_slides_per_view_desktop", carousel_slides_per_view_laptop: "carousel_slides_per_view_laptop", carousel_slides_per_view_tablet: "carousel_slides_per_view_tablet", carousel_slides_per_view_mobile: "carousel_slides_per_view_mobile" }, viewQueries: [{ propertyName: "swiper", first: true, predicate: ["swiper"], descendants: true, static: true }, { propertyName: "carouselscrollbarplaceholder", first: true, predicate: ["carouselscrollbarplaceholder"], descendants: true, read: ElementRef }, { propertyName: "carouselctastack", first: true, predicate: ["carouselctastack"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.OasysButtonComponent, selector: "ui-button", inputs: ["button_icon", "button_icon_placement", "button_size", "button_full_width", "button_type", "button_disabled", "button_text_nowrap", "href"], outputs: ["clicked"] }, { kind: "component", type: i4.LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width"] }, { kind: "component", type: i5.LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }], encapsulation: i0.ViewEncapsulation.None });
173
+ CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CarouselComponent, selector: "ui-carousel", inputs: { rewind: "rewind", carousel_overflow: "carousel_overflow", carousel_gap: "carousel_gap", carousel_pagination: "carousel_pagination", carousel_align: "carousel_align", carousel_slides_per_view_desktop: "carousel_slides_per_view_desktop", carousel_slides_per_view_laptop: "carousel_slides_per_view_laptop", carousel_slides_per_view_tablet: "carousel_slides_per_view_tablet", carousel_slides_per_view_mobile: "carousel_slides_per_view_mobile", carousel_rows_per_row_mobile: "carousel_rows_per_row_mobile" }, viewQueries: [{ propertyName: "swiper", first: true, predicate: ["swiper"], descendants: true, static: true }, { propertyName: "carouselscrollbarplaceholder", first: true, predicate: ["carouselscrollbarplaceholder"], descendants: true, read: ElementRef }, { propertyName: "carouselctastack", first: true, predicate: ["carouselctastack"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel{touch-action:manipulation}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.OasysButtonComponent, selector: "ui-button", inputs: ["button_icon", "button_icon_placement", "button_size", "button_full_width", "button_type", "button_disabled", "button_text_nowrap", "href"], outputs: ["clicked"] }, { kind: "component", type: i4.LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width"] }, { kind: "component", type: i5.LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }], encapsulation: i0.ViewEncapsulation.None });
169
174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CarouselComponent, decorators: [{
170
175
  type: Component,
171
- args: [{ selector: 'ui-carousel', encapsulation: ViewEncapsulation.None, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"] }]
176
+ args: [{ selector: 'ui-carousel', encapsulation: ViewEncapsulation.None, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel{touch-action:manipulation}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"] }]
172
177
  }], ctorParameters: function () { return [{ type: i1.TokenService }, { type: Document, decorators: [{
173
178
  type: Inject,
174
179
  args: [DOCUMENT]
@@ -199,5 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
199
204
  type: Input
200
205
  }], carousel_slides_per_view_mobile: [{
201
206
  type: Input
207
+ }], carousel_rows_per_row_mobile: [{
208
+ type: Input
202
209
  }] } });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ0ksTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFJbEMsb0VBQW9FO0FBUXBFLE1BQU0sT0FBTyxpQkFBaUI7SUFzQjVCLFlBQW9CLFlBQTBCLEVBQTRCLFFBQWtCLEVBQVUsT0FBbUI7UUFBckcsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFoQnpILHNGQUFzRjtRQUM3RSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyxpQkFBWSxHQUF1QixTQUFTLENBQUM7UUFFN0Msd0JBQW1CLEdBQTZCLE1BQU0sQ0FBQztRQUV2RCxtQkFBYyxHQUErQixPQUFPLENBQUM7UUFFckQscUNBQWdDLEdBQVcsQ0FBQyxDQUFDO1FBQzdDLG9DQUErQixHQUFXLENBQUMsQ0FBQztRQUM1QyxvQ0FBK0IsR0FBVyxHQUFHLENBQUM7UUFDOUMsb0NBQStCLEdBQVcsSUFBSSxDQUFDO0lBRW9FLENBQUM7SUFFN0gsUUFBUTtRQUNOLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENB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QUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDVixnQkFBZ0I7c0JBQW5GLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBR3pELE1BQU07c0JBQWQsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxnQ0FBZ0M7c0JBQXhDLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRywrQkFBK0I7c0JBQXZDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBcbiAgQ29tcG9uZW50LCBcbiAgRWxlbWVudFJlZiwgXG4gIElucHV0LCBcbiAgT25Jbml0LCBcbiAgVmlld0NoaWxkLCBcbiAgVmlld0VuY2Fwc3VsYXRpb24sIFxuICBJbmplY3QsIFxuICBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3dpcGVyT3B0aW9ucyB9IGZyb20gJ3N3aXBlcic7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2tlbi5zZXJ2aWNlJztcblxuLyogVGhpcyBjb21wb25lbnQgd3JhcHMgYXJvdW5kIHRoZSBzd2lwZXIuanMgbGlicmFyeSBXZWJDb21wb25lbnQgKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gVGhlIHN3aXBlciBpbnN0YW5jZVxuICBAVmlld0NoaWxkKFwic3dpcGVyXCIsIHsgc3RhdGljOiB0cnVlIH0pIHN3aXBlcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChcImNhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXJcIiwgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIGNhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJjYXJvdXNlbGN0YXN0YWNrXCIsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSBjYXJvdXNlbGN0YXN0YWNrOiBFbGVtZW50UmVmO1xuXG4gIC8vIFJld2luZHMgdGhlIHNsaWRlcyBiYWNrIHRvIHRoZSBzdGFydCB3aGVuIHRoZSB1c2VyIHJlYWNoZXMgdGhlIGVuZCB3aGVuIHNldCB0byB0cnVlXG4gIEBJbnB1dCgpIHJld2luZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGNhcm91c2VsX292ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgY2Fyb3VzZWxfZ2FwOiAnZGVmYXVsdCcgfCAnbm9uZScgPSAnZGVmYXVsdCc7XG5cbiAgQElucHV0KCkgY2Fyb3VzZWxfcGFnaW5hdGlvbjogJ3Njcm9sbC1hcnJvd3MnIHwgJ25vbmUnID0gJ25vbmUnO1xuXG4gIEBJbnB1dCgpIGNhcm91c2VsX2FsaWduOiAnc3RhcnQnIHwgJ2VuZCcgfCAnY2VudGVyJyA9ICdzdGFydCc7XG5cbiAgQElucHV0KCkgY2Fyb3VzZWxfc2xpZGVzX3Blcl92aWV3X2Rlc2t0b3A6IG51bWJlciA9IDQ7XG4gIEBJbnB1dCgpIGNhcm91c2VsX3NsaWRlc19wZXJfdmlld19sYXB0b3A6IG51bWJlciA9IDM7XG4gIEBJbnB1dCgpIGNhcm91c2VsX3NsaWRlc19wZXJfdmlld190YWJsZXQ6IG51bWJlciA9IDIuNTtcbiAgQElucHV0KCkgY2Fyb3VzZWxfc2xpZGVzX3Blcl92aWV3X21vYmlsZTogbnVtYmVyID0gMS4yNTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCwgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgaW50ZXJzZWN0aW9uIG9ic2VydmVyIHdpdGggdGhlIHJlbGV2YW50IG9wdGlvbnNcbiAgICovXG4gIHNldFVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgLy8gU2V0IEludGVyc2VjdGlvbk9ic2VydmVyIG9wdGlvbnNcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdDogbnVsbCxcbiAgICAgIHJvb3RNYXJnaW46ICcwcHgnLFxuICAgICAgdGhyZXNob2xkOiAwLjUsXG4gICAgICBvbmNlOiB0cnVlXG4gICAgfVxuICAgIC8vIFNldCB1cCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLm9uSW50ZXJzZWN0aW9uLmJpbmQodGhpcyksIG9wdGlvbnMpO1xuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQganVzdCBiZWZvcmUgdGhlIHVzZXIgc2Nyb2xscyB0aGlzIGNvbXBvbmVudCBpbnRvIHZpZXdcbiAgICogQHBhcmFtIGVudHJpZXMgLSBBbiBhcnJheSBvZiBpbnRlcnN3ZWN0aW9uIG9ic2VydmVyIGVudHJpZXNcbiAgICogQHBhcmFtIG9ic2VydmVyIC0gSW50ZXJzZWN0aW9uIG9ic2VydmVyIFxuICAgKi9cbiAgb25JbnRlcnNlY3Rpb24oZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdLCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgLy8gSW5pdGlhbGlzZSBzd2lwZXJcbiAgICAgICAgICB0aGlzLmluaXRTd2lwZXIoKTtcbiAgICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZW50cnkudGFyZ2V0KVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgZ2V0U3R5bGUoZWxlbWVudCwgc3R5bGUpOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHN0eWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNjcm9sbGJhciBwbGFjZW1lbnQgYW5kIHdpZHRoIGJhc2VkIG9uIGNhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXIgYW5kIGNhcm91c2VsY3Rhc3RhY2tcbiAgICovXG4gIHNldHVwU2Nyb2xsYmFyTGF5b3V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBpZih0aGlzLmNhcm91c2VsX3BhZ2luYXRpb24gIT09ICdzY3JvbGwtYXJyb3dzJyl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGNhcm91c2VsU3RhY2s6IEhUTUxFbGVtZW50ID0gdGhpcy5jYXJvdXNlbGN0YXN0YWNrLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsYmFyRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmNhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHNjcm9sbGJhckhlaWdodCA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoXCItLXN3aXBlci1zY3JvbGxiYXItc2l6ZVwiKTtcblxuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgXCItLXVpLWNhcm91c2VsLXNjcm9sbGJhci13aWR0aFwiLCBgJHtzY3JvbGxiYXJFbGVtZW50Lm9mZnNldFdpZHRoIC0gcGFyc2VJbnQodGhpcy5nZXRTdHlsZShjYXJvdXNlbFN0YWNrLCAnZ2FwJyksIDEwKX1weGBcbiAgICApO1xuXG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICBcIi0tdWktY2Fyb3VzZWwtc2Nyb2xsYmFyLW9mZnNldC10b3BcIiwgYCR7cGFyc2VJbnQodGhpcy5nZXRTdHlsZShjYXJvdXNlbFN0YWNrLCAnZ2FwJyksIDEwKSArIChzY3JvbGxiYXJFbGVtZW50Lm9mZnNldEhlaWdodCAvIDIpICsgKHBhcnNlSW50KHNjcm9sbGJhckhlaWdodCwgMTApIC8gMil9cHhgXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGR5bmFtaWMgc3dpcGVyIHBhcmFtcyBhbmQgaW5pdGlhbGlzZSB0aGUgc3dpcGVyIGluc3RhbmNlXG4gICAqL1xuICBpbml0U3dpcGVyKCk6IHZvaWQge1xuICAgIC8vIENvbG91ciBvdmVyaWRlc1xuICAgIGNvbnN0IHNjcm9sbGJhckJhY2tncm91bmRDb2xvdXIgPSB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKCctLWdsb2JhbC1jb2xvci1saW5lbi1ncmV5LTIwJyk7XG4gICAgY29uc3Qgc2Nyb2xsYmFyU2xpZGVyQ29sb3VyID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0VG9rZW5WYWx1ZSgnLS1nbG9iYWwtY29sb3ItZ3JleS05MCcpO1xuXG4gICAgLy8gc3dpcGVyIGVsZW1lbnRcbiAgICBjb25zdCBzd2lwZXJFbCA9IHRoaXMuc3dpcGVyLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBjYXJvdXNlbEdhcCA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoYC0tc2VtYW50aWMtc3BhY2luZy1zdGFjay0ke3RoaXMuY2Fyb3VzZWxfZ2FwfWApO1xuXG4gICAgLy8gc3dpcGVyIHBhcmFtZXRlcnNcbiAgICBjb25zdCBzd2lwZXJQYXJhbXM6IFN3aXBlck9wdGlvbnMgPSB7XG4gICAgICByZXdpbmQ6IHRoaXMucmV3aW5kLFxuICAgICAgZ3JhYkN1cnNvcjogdHJ1ZSxcbiAgICAgIHNwYWNlQmV0d2VlbjogKHBhcnNlSW50KGNhcm91c2VsR2FwLCAxMCkgKiAxMCkgfHwgMCxcbiAgICAgIHNjcm9sbGJhcjoge1xuICAgICAgICBlbmFibGVkOiB0aGlzLmNhcm91c2VsX3BhZ2luYXRpb24gPT09ICdzY3JvbGwtYXJyb3dzJyxcbiAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGluamVjdFN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgIC5zd2lwZXItc2Nyb2xsYmFyLnN3aXBlci1zY3JvbGxiYXItaG9yaXpvbnRhbCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIHRvcDogdmFyKC0tdWktY2Fyb3VzZWwtc2Nyb2xsYmFyLW9mZnNldC10b3ApO1xuICAgICAgICAgIHdpZHRoOiB2YXIoLS11aS1jYXJvdXNlbC1zY3JvbGxiYXItd2lkdGgpO1xuICAgICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7c2Nyb2xsYmFyQmFja2dyb3VuZENvbG91cn1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zd2lwZXItc2Nyb2xsYmFyLWRyYWcge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICR7c2Nyb2xsYmFyU2xpZGVyQ29sb3VyfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN3aXBlci13cmFwcGVyIHtcbiAgICAgICAgICBhbGlnbi1pdGVtczogJHt0aGlzLmNhcm91c2VsX2FsaWduID09PSAnY2VudGVyJyA/IHRoaXMuY2Fyb3VzZWxfYWxpZ24gOiAnZmxleC0nK3RoaXMuY2Fyb3VzZWxfYWxpZ259XG4gICAgICAgIH1cbiAgICAgICAgYCxcbiAgICAgIF0sXG4gICAgICBicmVha3BvaW50czoge1xuICAgICAgICAwOiB7XG4gICAgICAgICAgc2Nyb2xsYmFyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0aGlzLmNhcm91c2VsX3BhZ2luYXRpb24gPT09ICdzY3JvbGwtYXJyb3dzJyxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2xpZGVzUGVyVmlldzogdGhpcy5jYXJvdXNlbF9zbGlkZXNfcGVyX3ZpZXdfbW9iaWxlXG4gICAgICAgIH0sXG4gICAgICAgIDc2Nzoge1xuICAgICAgICAgIHNjcm9sbGJhcjoge1xuICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5jYXJvdXNlbF9wYWdpbmF0aW9uID09PSAnc2Nyb2xsLWFycm93cycsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHRoaXMuY2Fyb3VzZWxfc2xpZGVzX3Blcl92aWV3X3RhYmxldFxuICAgICAgICB9LFxuICAgICAgICAxMDgwOiB7XG4gICAgICAgICAgc2Nyb2xsYmFyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0aGlzLmNhcm91c2VsX3BhZ2luYXRpb24gPT09ICdzY3JvbGwtYXJyb3dzJyxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2xpZGVzUGVyVmlldzogdGhpcy5jYXJvdXNlbF9zbGlkZXNfcGVyX3ZpZXdfbGFwdG9wXG4gICAgICAgIH0sXG4gICAgICAgIDE0NDA6IHtcbiAgICAgICAgICBzY3JvbGxiYXI6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuY2Fyb3VzZWxfcGFnaW5hdGlvbiA9PT0gJ3Njcm9sbC1hcnJvd3MnLFxuICAgICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB0aGlzLmNhcm91c2VsX3NsaWRlc19wZXJfdmlld19kZXNrdG9wXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvbjoge30sXG4gICAgfTtcblxuICAgIC8vIG5vdyB3ZSBuZWVkIHRvIGFzc2lnbiBhbGwgcGFyYW1ldGVycyB0byB0aGUgU3dpcGVyIGVsZW1lbnRcbiAgICBPYmplY3QuYXNzaWduKHN3aXBlckVsLCBzd2lwZXJQYXJhbXMpO1xuXG4gICAgLy8gYW5kIG5vdyBpbml0aWFsaXplIGl0XG4gICAgc3dpcGVyRWwuaW5pdGlhbGl6ZSgpO1xuXG4gICAgLy8gU2V0IHVwIHNjcm9sbGJhciBhbmQgZW5zdXJlIHRoaXMgaXMgcmVjYWxjdWxhdGVkIG9uIHJlc2l6ZSBldmVudHNcbiAgICB0aGlzLnNldHVwU2Nyb2xsYmFyTGF5b3V0UHJvcGVydGllcygpO1xuXG4gICAgc3dpcGVyRWwuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgKCkgPT4ge1xuICAgICAgdGhpcy5zZXR1cFNjcm9sbGJhckxheW91dFByb3BlcnRpZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHRoZSBjYXJvdXNlbCBvbiB0byB0aGUgbmV4dCBzbGlkZVxuICAgKi9cbiAgbmV4dFNsaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3dpcGVyLm5hdGl2ZUVsZW1lbnQuc3dpcGVyLnNsaWRlTmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmUgdGhlIGNhcm91c2VsIGJhY2sgdG8gdGhlIHByZXZpb3VzIHNsaWRlXG4gICAqL1xuICBwcmV2aW91c1NsaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuc3dpcGVyLm5hdGl2ZUVsZW1lbnQuc3dpcGVyLnNsaWRlUHJldigpO1xuICB9XG59XG4iLCI8dWktYm94XG5jbGFzcz1cInVpLWNhcm91c2VsXCJcbltuZ0NsYXNzXT1cInsndWktY2Fyb3VzZWwtb3ZlcmZsb3cnOiBjYXJvdXNlbF9vdmVyZmxvd31cIlxuYm94X2FsaWduX3k9XCJjZW50ZXJcIlxuYm94X3NwYWNlPVwibm9uZVwiXG5ib3hfY29udGVudF9maWxsX3dpZHRoPVwidHJ1ZVwiXG5ib3hfYmFja2dyb3VuZD1cInRyYW5zcGFyZW50XCI+XG5cbiAgICA8dWktc3RhY2sgI2Nhcm91c2VsY3Rhc3RhY2s+XG4gICAgICAgIDwhLS0gU3dpcGVyIFdlYkNvbXBvbmVudC0tPlxuICAgICAgICA8c3dpcGVyLWNvbnRhaW5lclxuICAgICAgICAjc3dpcGVyXG4gICAgICAgIGluaXQ9XCJmYWxzZVwiXG4gICAgICAgIGNlbnRlci1pbnN1ZmZpY2llbnQtc2xpZGVzPVwidHJ1ZVwiXG4gICAgICAgIHByZXZlbnQtY2xpY2tzLXByb3BhZ2F0aW9uPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3N3aXBlci1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDdXN0b20gbmF2aWdhdGlvbiBidXR0b25zIC0tPlxuICAgICAgICA8dWktc3RhY2sgc3RhY2tfZGlyZWN0aW9uPVwieFwiIHN0YWNrX2FsaWduPVwiY2VudGVyXCIgKm5nSWY9XCJjYXJvdXNlbF9wYWdpbmF0aW9uID09PSAnc2Nyb2xsLWFycm93cydcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1aS1jYXJvdXNlbC1zY3JvbGxiYXItcGxhY2Vob2xkZXJcIiAjY2Fyb3VzZWxzY3JvbGxiYXJwbGFjZWhvbGRlcj48L2Rpdj5cbiAgICAgICAgICAgIDx1aS1ib3ggXG4gICAgICAgICAgICBib3hfc3BhY2U9XCJub25lXCIgXG4gICAgICAgICAgICBib3hfZmlsbF9tb2RlPVwiZml0XCIgXG4gICAgICAgICAgICBbYm94X3NwYWNlX3JpZ2h0XT1cInttb2JpbGU6ICd0aWdodCcsIHRhYmxldDogJ25vbmUnLCBsYXB0b3A6ICdub25lJywgZGVza3RvcDogJ25vbmUnfVwiXG4gICAgICAgICAgICBib3hfYmFja2dyb3VuZD1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICAgICAgPHVpLXN0YWNrXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhKHN3aXBlcj8uc3dpcGVyPy5pc0JlZ2lubmluZyAmJiBzd2lwZXI/LnN3aXBlcj8uaXNFbmQpXCJcbiAgICAgICAgICAgICAgICBzdGFja19kaXJlY3Rpb249XCJ4XCJcbiAgICAgICAgICAgICAgICBzdGFja19nYXA9XCJuZWFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gUHJldmlvdXMgYnV0dG9uLS0+XG4gICAgICAgICAgICAgICAgICAgIDx1aS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1aS1jYXJvdXNlbF9fcHJldmlvdXNcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25fc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uX2ljb25fcGxhY2VtZW50PVwiaWNvbk9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25faWNvbj1cImFycm93LWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25fdHlwZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInByZXZpb3VzU2xpZGUoKVwiPiBQcmV2b3VzIHNsaWRlXG4gICAgICAgICAgICAgICAgICAgIDwvdWktYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIE5leHQgYnV0dG9uLS0+XG4gICAgICAgICAgICAgICAgICAgIDx1aS1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1aS1jYXJvdXNlbF9fbmV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbl9zaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25faWNvbl9wbGFjZW1lbnQ9XCJpY29uT25seVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbl9pY29uPVwiYXJyb3ctcmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25fdHlwZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm5leHRTbGlkZSgpXCI+IE5leHQgc2xpZGUgXG4gICAgICAgICAgICAgICAgICAgIDwvdWktYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdWktc3RhY2s+XG4gICAgICAgICAgICA8L3VpLWJveD5cbiAgICAgICAgPC91aS1zdGFjaz5cbiAgICA8L3VpLXN0YWNrPlxuPC91aS1ib3g+XG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ0ksTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFJbEMsb0VBQW9FO0FBUXBFLE1BQU0sT0FBTyxpQkFBaUI7SUF3QjVCLFlBQW9CLFlBQTBCLEVBQTRCLFFBQWtCLEVBQVUsT0FBbUI7UUFBckcsaUJBQVksR0FBWixZQUFZLENBQWM7UUFBNEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFsQnpILHNGQUFzRjtRQUM3RSxXQUFNLEdBQVksS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyxpQkFBWSxHQUEwQyxTQUFTLENBQUM7UUFFaEUsd0JBQW1CLEdBQTZCLE1BQU0sQ0FBQztRQUV2RCxtQkFBYyxHQUErQixPQUFPLENBQUM7UUFFckQscUNBQWdDLEdBQVcsQ0FBQyxDQUFDO1FBQzdDLG9DQUErQixHQUFXLENBQUMsQ0FBQztRQUM1QyxvQ0FBK0IsR0FBVyxHQUFHLENBQUM7UUFDOUMsb0NBQStCLEdBQVcsSUFBSSxDQUFDO1FBRS9DLGlDQUE0QixHQUFVLENBQUMsQ0FBQSxDQUFDLHFFQUFxRTtJQUVNLENBQUM7SUFFN0gsUUFBUTtR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QUFDLFFBQVE7cUVBdEJ6QixNQUFNO3NCQUE1QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQzJDLDRCQUE0QjtzQkFBM0csU0FBUzt1QkFBQyw4QkFBOEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFDVixnQkFBZ0I7c0JBQW5GLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBR3pELE1BQU07c0JBQWQsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxnQ0FBZ0M7c0JBQXhDLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRywrQkFBK0I7c0JBQXZDLEtBQUs7Z0JBRUcsNEJBQTRCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgXG4gIENvbXBvbmVudCwgXG4gIEVsZW1lbnRSZWYsIFxuICBJbnB1dCwgXG4gIE9uSW5pdCwgXG4gIFZpZXdDaGlsZCwgXG4gIFZpZXdFbmNhcHN1bGF0aW9uLCBcbiAgSW5qZWN0LCBcbiAgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN3aXBlck9wdGlvbnMgfSBmcm9tICdzd2lwZXInO1xuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW4uc2VydmljZSc7XG5cbi8qIFRoaXMgY29tcG9uZW50IHdyYXBzIGFyb3VuZCB0aGUgc3dpcGVyLmpzIGxpYnJhcnkgV2ViQ29tcG9uZW50ICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIFRoZSBzd2lwZXIgaW5zdGFuY2VcbiAgQFZpZXdDaGlsZChcInN3aXBlclwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBzd2lwZXI6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoXCJjYXJvdXNlbHNjcm9sbGJhcnBsYWNlaG9sZGVyXCIsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSBjYXJvdXNlbHNjcm9sbGJhcnBsYWNlaG9sZGVyOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwiY2Fyb3VzZWxjdGFzdGFja1wiLCB7IHN0YXRpYzogZmFsc2UsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2Fyb3VzZWxjdGFzdGFjazogRWxlbWVudFJlZjtcblxuICAvLyBSZXdpbmRzIHRoZSBzbGlkZXMgYmFjayB0byB0aGUgc3RhcnQgd2hlbiB0aGUgdXNlciByZWFjaGVzIHRoZSBlbmQgd2hlbiBzZXQgdG8gdHJ1ZVxuICBASW5wdXQoKSByZXdpbmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBjYXJvdXNlbF9vdmVyZmxvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGNhcm91c2VsX2dhcDogJ2RlZmF1bHQnIHwgJ3RpZ2h0JyB8ICduZWFyJyB8ICdub25lJyA9ICdkZWZhdWx0JztcblxuICBASW5wdXQoKSBjYXJvdXNlbF9wYWdpbmF0aW9uOiAnc2Nyb2xsLWFycm93cycgfCAnbm9uZScgPSAnbm9uZSc7XG5cbiAgQElucHV0KCkgY2Fyb3VzZWxfYWxpZ246ICdzdGFydCcgfCAnZW5kJyB8ICdjZW50ZXInID0gJ3N0YXJ0JztcblxuICBASW5wdXQoKSBjYXJvdXNlbF9zbGlkZXNfcGVyX3ZpZXdfZGVza3RvcDogbnVtYmVyID0gNDtcbiAgQElucHV0KCkgY2Fyb3VzZWxfc2xpZGVzX3Blcl92aWV3X2xhcHRvcDogbnVtYmVyID0gMztcbiAgQElucHV0KCkgY2Fyb3VzZWxfc2xpZGVzX3Blcl92aWV3X3RhYmxldDogbnVtYmVyID0gMi41O1xuICBASW5wdXQoKSBjYXJvdXNlbF9zbGlkZXNfcGVyX3ZpZXdfbW9iaWxlOiBudW1iZXIgPSAxLjI1O1xuXG4gIEBJbnB1dCgpIGNhcm91c2VsX3Jvd3NfcGVyX3Jvd19tb2JpbGU6IDEgfCAyID0gMSAvLyBSZXF1aXJlZCBmb3IgQ0FURUdPUllfQ0FSRCBleHBlcmltZW50LiBSZW1vdmUgaWYgZXhwZXJpbWVudCBmYWlscy5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCwgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUgaW50ZXJzZWN0aW9uIG9ic2VydmVyIHdpdGggdGhlIHJlbGV2YW50IG9wdGlvbnNcbiAgICovXG4gIHNldFVwSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKSB7XG4gICAgLy8gU2V0IEludGVyc2VjdGlvbk9ic2VydmVyIG9wdGlvbnNcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcm9vdDogbnVsbCxcbiAgICAgIHJvb3RNYXJnaW46ICcwcHgnLFxuICAgICAgdGhyZXNob2xkOiAwLjUsXG4gICAgICBvbmNlOiB0cnVlXG4gICAgfVxuICAgIC8vIFNldCB1cCB0aGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLm9uSW50ZXJzZWN0aW9uLmJpbmQodGhpcyksIG9wdGlvbnMpO1xuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQganVzdCBiZWZvcmUgdGhlIHVzZXIgc2Nyb2xscyB0aGlzIGNvbXBvbmVudCBpbnRvIHZpZXdcbiAgICogQHBhcmFtIGVudHJpZXMgLSBBbiBhcnJheSBvZiBpbnRlcnN3ZWN0aW9uIG9ic2VydmVyIGVudHJpZXNcbiAgICogQHBhcmFtIG9ic2VydmVyIC0gSW50ZXJzZWN0aW9uIG9ic2VydmVyIFxuICAgKi9cbiAgb25JbnRlcnNlY3Rpb24oZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdLCBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIGVudHJpZXMuZm9yRWFjaChlbnRyeSA9PiB7XG4gICAgICAgIGlmKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgLy8gSW5pdGlhbGlzZSBzd2lwZXJcbiAgICAgICAgICB0aGlzLmluaXRTd2lwZXIoKTtcbiAgICAgICAgICBvYnNlcnZlci51bm9ic2VydmUoZW50cnkudGFyZ2V0KVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgZ2V0U3R5bGUoZWxlbWVudCwgc3R5bGUpOiBzdHJpbmcge1xuXG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHN0eWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHNjcm9sbGJhciBwbGFjZW1lbnQgYW5kIHdpZHRoIGJhc2VkIG9uIGNhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXIgYW5kIGNhcm91c2VsY3Rhc3RhY2tcbiAgICovXG4gIHNldHVwU2Nyb2xsYmFyTGF5b3V0UHJvcGVydGllcygpOiB2b2lkIHtcbiAgICBpZih0aGlzLmNhcm91c2VsX3BhZ2luYXRpb24gIT09ICdzY3JvbGwtYXJyb3dzJyl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGNhcm91c2VsU3RhY2s6IEhUTUxFbGVtZW50ID0gdGhpcy5jYXJvdXNlbGN0YXN0YWNrLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsYmFyRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmNhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IHNjcm9sbGJhckhlaWdodCA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoXCItLXN3aXBlci1zY3JvbGxiYXItc2l6ZVwiKTtcblxuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgXCItLXVpLWNhcm91c2VsLXNjcm9sbGJhci13aWR0aFwiLCBgJHtzY3JvbGxiYXJFbGVtZW50Lm9mZnNldFdpZHRoIC0gcGFyc2VJbnQodGhpcy5nZXRTdHlsZShjYXJvdXNlbFN0YWNrLCAnZ2FwJyksIDEwKX1weGBcbiAgICApO1xuXG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXG4gICAgICBcIi0tdWktY2Fyb3VzZWwtc2Nyb2xsYmFyLW9mZnNldC10b3BcIiwgYCR7cGFyc2VJbnQodGhpcy5nZXRTdHlsZShjYXJvdXNlbFN0YWNrLCAnZ2FwJyksIDEwKSArIChzY3JvbGxiYXJFbGVtZW50Lm9mZnNldEhlaWdodCAvIDIpICsgKHBhcnNlSW50KHNjcm9sbGJhckhlaWdodCwgMTApIC8gMil9cHhgXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGR5bmFtaWMgc3dpcGVyIHBhcmFtcyBhbmQgaW5pdGlhbGlzZSB0aGUgc3dpcGVyIGluc3RhbmNlXG4gICAqL1xuICBpbml0U3dpcGVyKCk6IHZvaWQge1xuICAgIC8vIENvbG91ciBvdmVyaWRlc1xuICAgIGNvbnN0IHNjcm9sbGJhckJhY2tncm91bmRDb2xvdXIgPSB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKCctLWdsb2JhbC1jb2xvci1saW5lbi1ncmV5LTIwJyk7XG4gICAgY29uc3Qgc2Nyb2xsYmFyU2xpZGVyQ29sb3VyID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0VG9rZW5WYWx1ZSgnLS1nbG9iYWwtY29sb3ItZ3JleS05MCcpO1xuXG4gICAgLy8gc3dpcGVyIGVsZW1lbnRcbiAgICBjb25zdCBzd2lwZXJFbCA9IHRoaXMuc3dpcGVyLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBjYXJvdXNlbEdhcCA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoYC0tc2VtYW50aWMtc3BhY2luZy1zdGFjay0ke3RoaXMuY2Fyb3VzZWxfZ2FwfWApO1xuICBcbiAgICAvLyBzd2lwZXIgcGFyYW1ldGVyc1xuICAgIGNvbnN0IHN3aXBlclBhcmFtczogU3dpcGVyT3B0aW9ucyA9IHtcbiAgICAgIHJld2luZDogdGhpcy5yZXdpbmQsXG4gICAgICBncmFiQ3Vyc29yOiB0cnVlLFxuICAgICAgc3BhY2VCZXR3ZWVuOiAocGFyc2VJbnQoY2Fyb3VzZWxHYXAucmVwbGFjZSgnLicsICcnKSwgMTApKSB8fCAwLFxuICAgICAgc2Nyb2xsYmFyOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuY2Fyb3VzZWxfcGFnaW5hdGlvbiA9PT0gJ3Njcm9sbC1hcnJvd3MnLFxuICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgaW5qZWN0U3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgLnN3aXBlci1zY3JvbGxiYXIuc3dpcGVyLXNjcm9sbGJhci1ob3Jpem9udGFsIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdG9wOiB2YXIoLS11aS1jYXJvdXNlbC1zY3JvbGxiYXItb2Zmc2V0LXRvcCk7XG4gICAgICAgICAgd2lkdGg6IHZhcigtLXVpLWNhcm91c2VsLXNjcm9sbGJhci13aWR0aCk7XG4gICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtzY3JvbGxiYXJCYWNrZ3JvdW5kQ29sb3VyfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN3aXBlci1zY3JvbGxiYXItZHJhZyB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJHtzY3JvbGxiYXJTbGlkZXJDb2xvdXJ9XG4gICAgICAgIH1cblxuICAgICAgICAuc3dpcGVyLXdyYXBwZXIge1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiAke3RoaXMuY2Fyb3VzZWxfYWxpZ24gPT09ICdjZW50ZXInID8gdGhpcy5jYXJvdXNlbF9hbGlnbiA6ICdmbGV4LScrdGhpcy5jYXJvdXNlbF9hbGlnbn1cbiAgICAgICAgfVxuICAgICAgICBgLFxuICAgICAgXSxcbiAgICAgIGJyZWFrcG9pbnRzOiB7XG4gICAgICAgIDA6IHtcbiAgICAgICAgICBzY3JvbGxiYXI6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuY2Fyb3VzZWxfcGFnaW5hdGlvbiA9PT0gJ3Njcm9sbC1hcnJvd3MnLFxuICAgICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB0aGlzLmNhcm91c2VsX3NsaWRlc19wZXJfdmlld19tb2JpbGUsXG4gICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgcm93czogdGhpcy5jYXJvdXNlbF9yb3dzX3Blcl9yb3dfbW9iaWxlLFxuICAgICAgICAgICAgZmlsbDogXCJyb3dcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICA3Njc6IHtcbiAgICAgICAgICBzY3JvbGxiYXI6IHtcbiAgICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuY2Fyb3VzZWxfcGFnaW5hdGlvbiA9PT0gJ3Njcm9sbC1hcnJvd3MnLFxuICAgICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzbGlkZXNQZXJWaWV3OiB0aGlzLmNhcm91c2VsX3NsaWRlc19wZXJfdmlld190YWJsZXRcbiAgICAgICAgfSxcbiAgICAgICAgMTA4MDoge1xuICAgICAgICAgIHNjcm9sbGJhcjoge1xuICAgICAgICAgICAgZW5hYmxlZDogdGhpcy5jYXJvdXNlbF9wYWdpbmF0aW9uID09PSAnc2Nyb2xsLWFycm93cycsXG4gICAgICAgICAgICBkcmFnZ2FibGU6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNsaWRlc1BlclZpZXc6IHRoaXMuY2Fyb3VzZWxfc2xpZGVzX3Blcl92aWV3X2xhcHRvcFxuICAgICAgICB9LFxuICAgICAgICAxNDQwOiB7XG4gICAgICAgICAgc2Nyb2xsYmFyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0aGlzLmNhcm91c2VsX3BhZ2luYXRpb24gPT09ICdzY3JvbGwtYXJyb3dzJyxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2xpZGVzUGVyVmlldzogdGhpcy5jYXJvdXNlbF9zbGlkZXNfcGVyX3ZpZXdfZGVza3RvcFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb246IHt9LFxuICAgIH07XG5cbiAgICAvLyBub3cgd2UgbmVlZCB0byBhc3NpZ24gYWxsIHBhcmFtZXRlcnMgdG8gdGhlIFN3aXBlciBlbGVtZW50XG4gICAgT2JqZWN0LmFzc2lnbihzd2lwZXJFbCwgc3dpcGVyUGFyYW1zKTtcblxuICAgIC8vIGFuZCBub3cgaW5pdGlhbGl6ZSBpdFxuICAgIHN3aXBlckVsLmluaXRpYWxpemUoKTtcblxuICAgIC8vIFNldCB1cCBzY3JvbGxiYXIgYW5kIGVuc3VyZSB0aGlzIGlzIHJlY2FsY3VsYXRlZCBvbiByZXNpemUgZXZlbnRzXG4gICAgdGhpcy5zZXR1cFNjcm9sbGJhckxheW91dFByb3BlcnRpZXMoKTtcblxuICAgIHN3aXBlckVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMuc2V0dXBTY3JvbGxiYXJMYXlvdXRQcm9wZXJ0aWVzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZSB0aGUgY2Fyb3VzZWwgb24gdG8gdGhlIG5leHQgc2xpZGVcbiAgICovXG4gIG5leHRTbGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN3aXBlci5uYXRpdmVFbGVtZW50LnN3aXBlci5zbGlkZU5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb3ZlIHRoZSBjYXJvdXNlbCBiYWNrIHRvIHRoZSBwcmV2aW91cyBzbGlkZVxuICAgKi9cbiAgcHJldmlvdXNTbGlkZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN3aXBlci5uYXRpdmVFbGVtZW50LnN3aXBlci5zbGlkZVByZXYoKTtcbiAgfVxufVxuIiwiPHVpLWJveFxuY2xhc3M9XCJ1aS1jYXJvdXNlbFwiXG5bbmdDbGFzc109XCJ7J3VpLWNhcm91c2VsLW92ZXJmbG93JzogY2Fyb3VzZWxfb3ZlcmZsb3d9XCJcbmJveF9hbGlnbl95PVwiY2VudGVyXCJcbmJveF9zcGFjZT1cIm5vbmVcIlxuYm94X2NvbnRlbnRfZmlsbF93aWR0aD1cInRydWVcIlxuYm94X2JhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiPlxuXG4gICAgPHVpLXN0YWNrICNjYXJvdXNlbGN0YXN0YWNrPlxuICAgICAgICA8IS0tIFN3aXBlciBXZWJDb21wb25lbnQtLT5cbiAgICAgICAgPHN3aXBlci1jb250YWluZXJcbiAgICAgICAgI3N3aXBlclxuICAgICAgICBpbml0PVwiZmFsc2VcIlxuICAgICAgICBjZW50ZXItaW5zdWZmaWNpZW50LXNsaWRlcz1cInRydWVcIlxuICAgICAgICBwcmV2ZW50LWNsaWNrcy1wcm9wYWdhdGlvbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9zd2lwZXItY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gQ3VzdG9tIG5hdmlnYXRpb24gYnV0dG9ucyAtLT5cbiAgICAgICAgPHVpLXN0YWNrIHN0YWNrX2RpcmVjdGlvbj1cInhcIiBzdGFja19hbGlnbj1cImNlbnRlclwiICpuZ0lmPVwiY2Fyb3VzZWxfcGFnaW5hdGlvbiA9PT0gJ3Njcm9sbC1hcnJvd3MnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWktY2Fyb3VzZWwtc2Nyb2xsYmFyLXBsYWNlaG9sZGVyXCIgI2Nhcm91c2Vsc2Nyb2xsYmFycGxhY2Vob2xkZXI+PC9kaXY+XG4gICAgICAgICAgICA8dWktYm94IFxuICAgICAgICAgICAgYm94X3NwYWNlPVwibm9uZVwiIFxuICAgICAgICAgICAgYm94X2ZpbGxfbW9kZT1cImZpdFwiIFxuICAgICAgICAgICAgW2JveF9zcGFjZV9yaWdodF09XCJ7bW9iaWxlOiAndGlnaHQnLCB0YWJsZXQ6ICdub25lJywgbGFwdG9wOiAnbm9uZScsIGRlc2t0b3A6ICdub25lJ31cIlxuICAgICAgICAgICAgYm94X2JhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiPlxuICAgICAgICAgICAgICAgIDx1aS1zdGFja1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiIShzd2lwZXI/LnN3aXBlcj8uaXNCZWdpbm5pbmcgJiYgc3dpcGVyPy5zd2lwZXI/LmlzRW5kKVwiXG4gICAgICAgICAgICAgICAgc3RhY2tfZGlyZWN0aW9uPVwieFwiXG4gICAgICAgICAgICAgICAgc3RhY2tfZ2FwPVwibmVhclwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFByZXZpb3VzIGJ1dHRvbi0tPlxuICAgICAgICAgICAgICAgICAgICA8dWktYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktY2Fyb3VzZWxfX3ByZXZpb3VzXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uX3NpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbl9pY29uX3BsYWNlbWVudD1cImljb25Pbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uX2ljb249XCJhcnJvdy1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uX3R5cGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJwcmV2aW91c1NsaWRlKClcIj4gUHJldm91cyBzbGlkZVxuICAgICAgICAgICAgICAgICAgICA8L3VpLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBOZXh0IGJ1dHRvbi0tPlxuICAgICAgICAgICAgICAgICAgICA8dWktYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktY2Fyb3VzZWxfX25leHRcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25fc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uX2ljb25fcGxhY2VtZW50PVwiaWNvbk9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBidXR0b25faWNvbj1cImFycm93LXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uX3R5cGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJuZXh0U2xpZGUoKVwiPiBOZXh0IHNsaWRlIFxuICAgICAgICAgICAgICAgICAgICA8L3VpLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgICAgICAgPC91aS1ib3g+XG4gICAgICAgIDwvdWktc3RhY2s+XG4gICAgPC91aS1zdGFjaz5cbjwvdWktYm94PlxuIl19
@@ -49,10 +49,10 @@ export class ImageComponent {
49
49
  }
50
50
  }
51
51
  ImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ImageComponent, deps: [{ token: i1.ImageService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
52
- ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ImageComponent, selector: "ui-image", inputs: { image_src: "image_src", image_alt_text: "image_alt_text", image_fill: "image_fill", fetchpriority: "fetchpriority", loading: "loading", preload_aspect_ratio: "preload_aspect_ratio" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
52
+ ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ImageComponent, selector: "ui-image", inputs: { image_src: "image_src", image_alt_text: "image_alt_text", image_fill: "image_fill", fetchpriority: "fetchpriority", loading: "loading", preload_aspect_ratio: "preload_aspect_ratio" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n [ngStyle]=\"{'aspect-ratio': preload_aspect_ratio}\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ImageComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'ui-image', template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"] }]
55
+ args: [{ selector: 'ui-image', template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n [ngStyle]=\"{'aspect-ratio': preload_aspect_ratio}\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"] }]
56
56
  }], ctorParameters: function () { return [{ type: i1.ImageService }, { type: i0.ElementRef }]; }, propDecorators: { image_src: [{
57
57
  type: Input
58
58
  }], image_alt_text: [{
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
69
69
  type: HostBinding,
70
70
  args: ['class']
71
71
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFsRixNQUFNLE9BQU8sY0FBYztJQW9CekIsWUFBb0IsWUFBMEIsRUFBVSxFQUFjO1FBQWxELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWxCN0QsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUl2QixrQkFBYSxHQUE0QixNQUFNLENBQUM7UUFDaEQsWUFBTyxHQUE4QixNQUFNLENBQUM7UUFDNUMseUJBQW9CLEdBQTRELEtBQUssQ0FBQTtJQVlyQixDQUFDO0lBSjFFLElBQTBCLEtBQUs7UUFDN0IsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUE7SUFDaEQsQ0FBQztJQUlPLGdCQUFnQjtRQUN0QixNQUFNLE9BQU8sR0FBRztZQUNkLG1CQUFtQixFQUFFLElBQUk7WUFDekIsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUUsT0FBTztZQUNuQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtvQkFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BFLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDcEUsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN2RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbkQ7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCxRQUFRO1FBRU4sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQzs7MkdBOURVLGNBQWM7K0ZBQWQsY0FBYyxtU0NUM0Isd1lBZUE7MkZETmEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxVQUFVOzRIQU1YLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFRb0IsS0FBSztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VTZXJ2aWNlLCBJbWFnZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1hZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgaW1hZ2Vfc3JjOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaW1hZ2VfYWx0X3RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgaW1hZ2VfZmlsbDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBmZXRjaHByaW9yaXR5OiAnbG93JyB8ICdoaWdoJyB8ICdhdXRvJyA9ICdhdXRvJztcbiAgQElucHV0KCkgbG9hZGluZzogJ2xhenknIHwgJ2VhZ2VyJyB8ICdhdXRvJyA9ICdsYXp5JztcbiAgQElucHV0KCkgcHJlbG9hZF9hc3BlY3RfcmF0aW86ICcxOjEnIHwgJzM6NCcgfCAnMzo1JyB8ICc0OjMnIHwgJzU6MycgfCAnNTo0JyB8ICcxMzoxNScgPSAnMToxJ1xuXG4gIGltYWdlVXJsUmVzcG9uc2U6IEltYWdlUmVzcG9uc2U7XG4gIGltYWdlUmF0aW9XaWR0aDogbnVtYmVyO1xuICBpbWFnZVJhdGlvSGVpZ2h0OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBjbGFzcygpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pbWFnZV9maWxsID8gJ2ltYWdlRmlsbCcgOiAnJ31gXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGltYWdlU2VydmljZTogSW1hZ2VTZXJ2aWNlLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIHByaXZhdGUgc2V0dXBMYXp5TG9hZGluZygpOiB2b2lkIHtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgcmVtb3ZlQWZ0ZXJPYnNlcnZlZDogdHJ1ZSxcbiAgICAgIHJvb3Q6IG51bGwsXG4gICAgICByb290TWFyZ2luOiAnMjAwcHgnLFxuICAgICAgdGhyZXNob2xkOiAwLjAxXG4gICAgfTtcblxuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgY29uc3QgaW1hZ2VFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgICAgICAgIGNvbnN0IHNvdXJjZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc291cmNlJyk7XG4gICAgICAgICAgaW1hZ2VFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3JjJywgdGhpcy5pbWFnZVVybFJlc3BvbnNlLmZhbGxiYWNrVXJsKTtcbiAgICAgICAgICBzb3VyY2VFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3Jjc2V0JywgdGhpcy5pbWFnZVVybFJlc3BvbnNlLnNyY1NldFVybHMpO1xuICAgICAgICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIudW5vYnNlcnZlKGVudHJ5LnRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgY29uc3QgaW1hZ2VFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShpbWFnZUVsZW1lbnQpO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHJhdGlvcyA9IHRoaXMucHJlbG9hZF9hc3BlY3RfcmF0aW8uc3BsaXQoJzonKTtcbiAgICB0aGlzLmltYWdlUmF0aW9XaWR0aCA9IHBhcnNlSW50KHJhdGlvc1swXSwgMTApO1xuICAgIHRoaXMuaW1hZ2VSYXRpb0hlaWdodCA9IHBhcnNlSW50KHJhdGlvc1sxXSwgMTApO1xuICAgIHRoaXMuaW1hZ2VVcmxSZXNwb25zZSA9IHRoaXMuaW1hZ2VTZXJ2aWNlLmdlbmVyYXRlSW1hZ2VVcmwodGhpcy5pbWFnZV9zcmMpO1xuXG5cbiAgICBpZiAoISgnbG9hZGluZycgaW4gSFRNTEltYWdlRWxlbWVudC5wcm90b3R5cGUpKSB7XG4gICAgICB0aGlzLnNldHVwTGF6eUxvYWRpbmcoKTtcbiAgICB9XG5cbiAgICBpZighdGhpcy5pbWFnZV9hbHRfdGV4dCkge1xuICAgICAgY29uc29sZS5lcnJvcihgSW1hZ2UgaXMgbWlzc2luZyBhbiBhbHQgdGFnLCBpbWFnZSB1cmwgaXMgJHt0aGlzLmltYWdlX3NyY31gKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPHBpY3R1cmU+XG4gIDxzb3VyY2VcbiAgc3Jjc2V0PVwie3tpbWFnZVVybFJlc3BvbnNlLnNyY1NldFVybHN9fVwiXG4gIHR5cGU9XCJpbWFnZS93ZWJwXCIvPlxuXG4gIDxpbWdcbiAgW25nQ2xhc3NdPVwieydpbWFnZUZpbGwnOiBpbWFnZV9maWxsfVwiXG4gIFthdHRyLndpZHRoXT1cImltYWdlUmF0aW9XaWR0aFwiXG4gIFthdHRyLmhlaWdodF09XCJpbWFnZVJhdGlvSGVpZ2h0XCJcbiAgW2F0dHIuc3JjXT1cImltYWdlVXJsUmVzcG9uc2UuZmFsbGJhY2tVcmxcIlxuICBbYXR0ci5sb2FkaW5nXT1cImxvYWRpbmdcIlxuICBbYXR0ci5mZXRjaHByaW9yaXR5XT1cImZldGNocHJpb3JpdHlcIlxuICBbYXR0ci5hbHRdPVwiaW1hZ2VfYWx0X3RleHRcIlxuICAvPlxuPC9waWN0dXJlPlxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQWMsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFsRixNQUFNLE9BQU8sY0FBYztJQW9CekIsWUFBb0IsWUFBMEIsRUFBVSxFQUFjO1FBQWxELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQWxCN0QsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUl2QixrQkFBYSxHQUE0QixNQUFNLENBQUM7UUFDaEQsWUFBTyxHQUE4QixNQUFNLENBQUM7UUFDNUMseUJBQW9CLEdBQTRELEtBQUssQ0FBQTtJQVlyQixDQUFDO0lBSjFFLElBQTBCLEtBQUs7UUFDN0IsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUE7SUFDaEQsQ0FBQztJQUlPLGdCQUFnQjtRQUN0QixNQUFNLE9BQU8sR0FBRztZQUNkLG1CQUFtQixFQUFFLElBQUk7WUFDekIsSUFBSSxFQUFFLElBQUk7WUFDVixVQUFVLEVBQUUsT0FBTztZQUNuQixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksb0JBQW9CLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMvRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtvQkFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BFLFlBQVksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDcEUsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN2RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbkQ7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFHRCxRQUFRO1FBRU4sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRzNFLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQzs7MkdBOURVLGNBQWM7K0ZBQWQsY0FBYyxtU0NUM0IsZ2NBZ0JBOzJGRFBhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTs0SEFNWCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBUW9CLEtBQUs7c0JBQTlCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEltYWdlU2VydmljZSwgSW1hZ2VSZXNwb25zZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ltYWdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1pbWFnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGltYWdlX3NyYzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGltYWdlX2FsdF90ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGltYWdlX2ZpbGw6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZmV0Y2hwcmlvcml0eTogJ2xvdycgfCAnaGlnaCcgfCAnYXV0bycgPSAnYXV0byc7XG4gIEBJbnB1dCgpIGxvYWRpbmc6ICdsYXp5JyB8ICdlYWdlcicgfCAnYXV0bycgPSAnbGF6eSc7XG4gIEBJbnB1dCgpIHByZWxvYWRfYXNwZWN0X3JhdGlvOiAnMToxJyB8ICczOjQnIHwgJzM6NScgfCAnNDozJyB8ICc1OjMnIHwgJzU6NCcgfCAnMTM6MTUnID0gJzE6MSdcblxuICBpbWFnZVVybFJlc3BvbnNlOiBJbWFnZVJlc3BvbnNlO1xuICBpbWFnZVJhdGlvV2lkdGg6IG51bWJlcjtcbiAgaW1hZ2VSYXRpb0hlaWdodDogbnVtYmVyO1xuXG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgY2xhc3MoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaW1hZ2VfZmlsbCA/ICdpbWFnZUZpbGwnIDogJyd9YFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbWFnZVNlcnZpY2U6IEltYWdlU2VydmljZSwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBwcml2YXRlIHNldHVwTGF6eUxvYWRpbmcoKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHJlbW92ZUFmdGVyT2JzZXJ2ZWQ6IHRydWUsXG4gICAgICByb290OiBudWxsLFxuICAgICAgcm9vdE1hcmdpbjogJzIwMHB4JyxcbiAgICAgIHRocmVzaG9sZDogMC4wMVxuICAgIH07XG5cbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICAgICAgICBjb25zdCBzb3VyY2VFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NvdXJjZScpO1xuICAgICAgICAgIGltYWdlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NyYycsIHRoaXMuaW1hZ2VVcmxSZXNwb25zZS5mYWxsYmFja1VybCk7XG4gICAgICAgICAgc291cmNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3NyY3NldCcsIHRoaXMuaW1hZ2VVcmxSZXNwb25zZS5zcmNTZXRVcmxzKTtcbiAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZShlbnRyeS50YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBvcHRpb25zKTtcblxuICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoaW1hZ2VFbGVtZW50KTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICBjb25zdCByYXRpb3MgPSB0aGlzLnByZWxvYWRfYXNwZWN0X3JhdGlvLnNwbGl0KCc6Jyk7XG4gICAgdGhpcy5pbWFnZVJhdGlvV2lkdGggPSBwYXJzZUludChyYXRpb3NbMF0sIDEwKTtcbiAgICB0aGlzLmltYWdlUmF0aW9IZWlnaHQgPSBwYXJzZUludChyYXRpb3NbMV0sIDEwKTtcbiAgICB0aGlzLmltYWdlVXJsUmVzcG9uc2UgPSB0aGlzLmltYWdlU2VydmljZS5nZW5lcmF0ZUltYWdlVXJsKHRoaXMuaW1hZ2Vfc3JjKTtcblxuXG4gICAgaWYgKCEoJ2xvYWRpbmcnIGluIEhUTUxJbWFnZUVsZW1lbnQucHJvdG90eXBlKSkge1xuICAgICAgdGhpcy5zZXR1cExhenlMb2FkaW5nKCk7XG4gICAgfVxuXG4gICAgaWYoIXRoaXMuaW1hZ2VfYWx0X3RleHQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEltYWdlIGlzIG1pc3NpbmcgYW4gYWx0IHRhZywgaW1hZ2UgdXJsIGlzICR7dGhpcy5pbWFnZV9zcmN9YCk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxwaWN0dXJlPlxuICA8c291cmNlXG4gIHNyY3NldD1cInt7aW1hZ2VVcmxSZXNwb25zZS5zcmNTZXRVcmxzfX1cIlxuICB0eXBlPVwiaW1hZ2Uvd2VicFwiLz5cblxuICA8aW1nXG4gIFtuZ0NsYXNzXT1cInsnaW1hZ2VGaWxsJzogaW1hZ2VfZmlsbH1cIlxuICBbYXR0ci53aWR0aF09XCJpbWFnZVJhdGlvV2lkdGhcIlxuICBbYXR0ci5oZWlnaHRdPVwiaW1hZ2VSYXRpb0hlaWdodFwiXG4gIFthdHRyLnNyY109XCJpbWFnZVVybFJlc3BvbnNlLmZhbGxiYWNrVXJsXCJcbiAgW2F0dHIubG9hZGluZ109XCJsb2FkaW5nXCJcbiAgW2F0dHIuZmV0Y2hwcmlvcml0eV09XCJmZXRjaHByaW9yaXR5XCJcbiAgW2F0dHIuYWx0XT1cImltYWdlX2FsdF90ZXh0XCJcbiAgW25nU3R5bGVdPVwieydhc3BlY3QtcmF0aW8nOiBwcmVsb2FkX2FzcGVjdF9yYXRpb31cIlxuICAvPlxuPC9waWN0dXJlPlxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './promo-card.component';
2
+ export * from './promo-card.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9tby1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb21vLWNhcmQubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,48 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/token.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../layout/box/box.component";
6
+ import * as i4 from "../layout/stack/stack.component";
7
+ import * as i5 from "../image/image.component";
8
+ import * as i6 from "../../directives/href/href.directive";
9
+ import * as i7 from "../heading/heading.component";
10
+ export class PromoCardComponent {
11
+ constructor(tokenService) {
12
+ this.tokenService = tokenService;
13
+ this.href_primary_cta = '';
14
+ this.cta_clicked = new EventEmitter();
15
+ }
16
+ ngOnInit() {
17
+ this.aspectRatio = this.tokenService.getTokenValue('--component-promo-card-image-aspect-ratio');
18
+ this.alignment = this.tokenService.getTokenValue('--component-promo-card-heading-alignment');
19
+ }
20
+ ctaClicked() {
21
+ this.cta_clicked.emit();
22
+ }
23
+ }
24
+ PromoCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PromoCardComponent, deps: [{ token: i1.TokenService }], target: i0.ɵɵFactoryTarget.Component });
25
+ PromoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PromoCardComponent, selector: "ui-promo-card", inputs: { image: "image", alt_text: "alt_text", title: "title", subtitle: "subtitle", primary_cta_text: "primary_cta_text", href_primary_cta: "href_primary_cta", background_colour: "background_colour", font_colour: "font_colour" }, outputs: { cta_clicked: "cta_clicked" }, ngImport: i0, template: "<ui-box box_space=\"none\" [ngStyle]=\"{'background-color': background_colour, 'color': font_colour}\">\n <ui-stack stack_gap=\"default\" stack_align=\"center\">\n <ui-box box_space=\"none\">\n <ui-image [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"aspectRatio\"></ui-image>\n </ui-box>\n <ui-box [box_align_y]=\"alignment\" box_space_top=\"none\" [ngStyle]=\"{'background-color': background_colour}\">\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <ui-heading heading_type=\"secondary\" heading_title=\"{{title}}\" heading_subtitle=\"{{subtitle}}\"></ui-heading>\n <a class=\"text-link text-link--standalone\" bwtrackas=\"component.modular-content-card.cta\" href=\"{{ href_primary_cta }}\" (click)=\"ctaClicked()\">{{primary_cta_text}}</a>\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width"] }, { kind: "component", type: i4.LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "component", type: i5.ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio"] }, { kind: "directive", type: i6.OasysHrefDirective, selector: "a, uiHref, [uiHref]" }, { kind: "component", type: i7.OasysHeadingComponent, selector: "ui-heading", inputs: ["heading_type", "heading_on_dark", "heading_title", "heading_seo_priority", "heading_priority", "heading_alignment_override", "heading_subtitle", "heading_surtitle"] }] });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PromoCardComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'ui-promo-card', template: "<ui-box box_space=\"none\" [ngStyle]=\"{'background-color': background_colour, 'color': font_colour}\">\n <ui-stack stack_gap=\"default\" stack_align=\"center\">\n <ui-box box_space=\"none\">\n <ui-image [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"aspectRatio\"></ui-image>\n </ui-box>\n <ui-box [box_align_y]=\"alignment\" box_space_top=\"none\" [ngStyle]=\"{'background-color': background_colour}\">\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <ui-heading heading_type=\"secondary\" heading_title=\"{{title}}\" heading_subtitle=\"{{subtitle}}\"></ui-heading>\n <a class=\"text-link text-link--standalone\" bwtrackas=\"component.modular-content-card.cta\" href=\"{{ href_primary_cta }}\" (click)=\"ctaClicked()\">{{primary_cta_text}}</a>\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n\n" }]
29
+ }], ctorParameters: function () { return [{ type: i1.TokenService }]; }, propDecorators: { image: [{
30
+ type: Input
31
+ }], alt_text: [{
32
+ type: Input
33
+ }], title: [{
34
+ type: Input
35
+ }], subtitle: [{
36
+ type: Input
37
+ }], primary_cta_text: [{
38
+ type: Input
39
+ }], href_primary_cta: [{
40
+ type: Input
41
+ }], background_colour: [{
42
+ type: Input
43
+ }], font_colour: [{
44
+ type: Input
45
+ }], cta_clicked: [{
46
+ type: Output
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW8tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvcHJvbW8tY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvcHJvbW8tY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFTL0UsTUFBTSxPQUFPLGtCQUFrQjtJQXVCN0IsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFYckMscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBTTdCLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFLYixDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDOzsrR0FoQ1Usa0JBQWtCO21HQUFsQixrQkFBa0Isc1VDVC9CLDQ4QkFjQTsyRkRMYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZUFBZTttR0FPaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRCYWNrZ3JvdW5kcyB9IGZyb20gJy4uL2xheW91dC9MYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1wcm9tby1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21vLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9tby1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvbW9DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvLyBJbWFnZVxuICBASW5wdXQoKSBpbWFnZTogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRfdGV4dDogc3RyaW5nO1xuXG4gIC8vIENvbnRlbnRcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcblxuICAvLyBDVEFzXG4gIEBJbnB1dCgpIHByaW1hcnlfY3RhX3RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgaHJlZl9wcmltYXJ5X2N0YTogc3RyaW5nID0gJyc7XG5cbiAgLy8gU3R5bGVcbiAgQElucHV0KCkgYmFja2dyb3VuZF9jb2xvdXI6IHN0cmluZztcbiAgQElucHV0KCkgZm9udF9jb2xvdXI6IHN0cmluZztcblxuICBAT3V0cHV0KCkgY3RhX2NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBhc3BlY3RSYXRpbzogc3RyaW5nO1xuICBhbGlnbm1lbnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFzcGVjdFJhdGlvID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0VG9rZW5WYWx1ZSgnLS1jb21wb25lbnQtcHJvbW8tY2FyZC1pbWFnZS1hc3BlY3QtcmF0aW8nKTtcbiAgICB0aGlzLmFsaWdubWVudCA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoJy0tY29tcG9uZW50LXByb21vLWNhcmQtaGVhZGluZy1hbGlnbm1lbnQnKTtcbiAgfVxuXG4gIGN0YUNsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jdGFfY2xpY2tlZC5lbWl0KCk7XG4gIH1cblxufVxuIiwiPHVpLWJveCAgYm94X3NwYWNlPVwibm9uZVwiIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IGJhY2tncm91bmRfY29sb3VyLCAnY29sb3InOiBmb250X2NvbG91cn1cIj5cbiAgICA8dWktc3RhY2sgc3RhY2tfZ2FwPVwiZGVmYXVsdFwiIHN0YWNrX2FsaWduPVwiY2VudGVyXCI+XG4gICAgICAgIDx1aS1ib3ggYm94X3NwYWNlPVwibm9uZVwiPlxuICAgICAgICAgICAgPHVpLWltYWdlIFtpbWFnZV9zcmNdPVwiaW1hZ2VcIiBbaW1hZ2VfYWx0X3RleHRdPVwiYWx0X3RleHRcIiBbcHJlbG9hZF9hc3BlY3RfcmF0aW9dPVwiYXNwZWN0UmF0aW9cIj48L3VpLWltYWdlPlxuICAgICAgICA8L3VpLWJveD5cbiAgICAgICAgPHVpLWJveCBbYm94X2FsaWduX3ldPVwiYWxpZ25tZW50XCIgYm94X3NwYWNlX3RvcD1cIm5vbmVcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBiYWNrZ3JvdW5kX2NvbG91cn1cIj5cbiAgICAgICAgICA8dWktc3RhY2sgc3RhY2tfZ2FwPVwibmVhclwiIHN0YWNrX2Rpc3RyaWJ1dGU9XCJjZW50ZXJcIiBbc3RhY2tfYWxpZ25dPVwiYWxpZ25tZW50XCI+XG4gICAgICAgICAgICAgICAgICA8dWktaGVhZGluZyBoZWFkaW5nX3R5cGU9XCJzZWNvbmRhcnlcIiBoZWFkaW5nX3RpdGxlPVwie3t0aXRsZX19XCIgaGVhZGluZ19zdWJ0aXRsZT1cInt7c3VidGl0bGV9fVwiPjwvdWktaGVhZGluZz5cbiAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwidGV4dC1saW5rIHRleHQtbGluay0tc3RhbmRhbG9uZVwiIGJ3dHJhY2thcz1cImNvbXBvbmVudC5tb2R1bGFyLWNvbnRlbnQtY2FyZC5jdGFcIiBocmVmPVwie3sgaHJlZl9wcmltYXJ5X2N0YSB9fVwiIChjbGljayk9XCJjdGFDbGlja2VkKClcIj57e3ByaW1hcnlfY3RhX3RleHR9fTwvYT5cbiAgICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgICA8L3VpLWJveD5cbiAgICA8L3VpLXN0YWNrPlxuPC91aS1ib3g+XG5cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { TokenService } from '../../services/token.service';
5
+ import { OasysImageModule } from '../image';
6
+ import { OasysLayoutModule } from '../layout/layout.module';
7
+ import { OasysDirectivesModule } from '../../directives/directives.module';
8
+ import { PromoCardComponent } from './promo-card.component';
9
+ import { OasysHeadingModule } from '../heading';
10
+ import { OasysButtonModule } from '../button';
11
+ import { OasysButtonGroupModule } from '../button-group';
12
+ import * as i0 from "@angular/core";
13
+ export class OasysPromoCardModule {
14
+ }
15
+ OasysPromoCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ OasysPromoCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, declarations: [PromoCardComponent], imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule], exports: [PromoCardComponent] });
17
+ OasysPromoCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, providers: [TokenService], imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule] });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, decorators: [{
19
+ type: NgModule,
20
+ args: [{
21
+ declarations: [PromoCardComponent],
22
+ imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule],
23
+ exports: [PromoCardComponent],
24
+ providers: [TokenService],
25
+ }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW8tY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvcHJvbW8tY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFRekQsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQUxoQixrQkFBa0IsYUFDdkIsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsYUFDckosa0JBQWtCO2tIQUdqQixvQkFBb0IsYUFGcEIsQ0FBQyxZQUFZLENBQUMsWUFGZixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHNCQUFzQjsyRkFJcEosb0JBQW9CO2tCQU5oQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO29CQUNoSyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2FzeXNJbWFnZU1vZHVsZSB9IGZyb20gJy4uL2ltYWdlJztcbmltcG9ydCB7IE9hc3lzTGF5b3V0TW9kdWxlIH0gZnJvbSAnLi4vbGF5b3V0L2xheW91dC5tb2R1bGUnO1xuaW1wb3J0IHsgT2FzeXNEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XG5pbXBvcnQgeyBQcm9tb0NhcmRDb21wb25lbnQgfSBmcm9tICcuL3Byb21vLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IE9hc3lzSGVhZGluZ01vZHVsZSB9IGZyb20gJy4uL2hlYWRpbmcnO1xuaW1wb3J0IHsgT2FzeXNCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgT2FzeXNCdXR0b25Hcm91cE1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi1ncm91cCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1Byb21vQ2FyZENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9hc3lzTGF5b3V0TW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE9hc3lzSW1hZ2VNb2R1bGUsIE9hc3lzRGlyZWN0aXZlc01vZHVsZSwgT2FzeXNIZWFkaW5nTW9kdWxlLCBPYXN5c0J1dHRvbk1vZHVsZSwgT2FzeXNCdXR0b25Hcm91cE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtQcm9tb0NhcmRDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtUb2tlblNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBPYXN5c1Byb21vQ2FyZE1vZHVsZSB7fVxuIl19
@@ -26,4 +26,5 @@ export * from './lib/components/card';
26
26
  export * from './lib/components/banner';
27
27
  export * from './lib/components/price';
28
28
  export * from './lib/injection-tokens/frontend-app-injection.tokens';
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0RBQXNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG9hc3lzLWxpYlxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FsZXJ0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnJlYWRjcnVtYnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGl2aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybS1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vY2hlY2tib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3JhZGlvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS90ZXh0LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jaGlwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9lcnJvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oZWFkaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGVybyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Nlby1ibG9jayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xheW91dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFubmVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5qZWN0aW9uLXRva2Vucy9mcm9udGVuZC1hcHAtaW5qZWN0aW9uLnRva2Vucyc7XG4iXX0=
29
+ export * from './lib/components/promo-card';
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw2QkFBNkIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2FzeXMtbGliXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWxlcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vcmFkaW8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3RleHQtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2NoaXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hlYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oZXJvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VvLWJsb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbmplY3Rpb24tdG9rZW5zL2Zyb250ZW5kLWFwcC1pbmplY3Rpb24udG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvbW8tY2FyZCdcbiJdfQ==
@@ -1052,10 +1052,10 @@ class ImageComponent {
1052
1052
  }
1053
1053
  }
1054
1054
  ImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ImageComponent, deps: [{ token: ImageService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1055
- ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ImageComponent, selector: "ui-image", inputs: { image_src: "image_src", image_alt_text: "image_alt_text", image_fill: "image_fill", fetchpriority: "fetchpriority", loading: "loading", preload_aspect_ratio: "preload_aspect_ratio" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1055
+ ImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ImageComponent, selector: "ui-image", inputs: { image_src: "image_src", image_alt_text: "image_alt_text", image_fill: "image_fill", fetchpriority: "fetchpriority", loading: "loading", preload_aspect_ratio: "preload_aspect_ratio" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n [ngStyle]=\"{'aspect-ratio': preload_aspect_ratio}\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
1056
1056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ImageComponent, decorators: [{
1057
1057
  type: Component,
1058
- args: [{ selector: 'ui-image', template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"] }]
1058
+ args: [{ selector: 'ui-image', template: "<picture>\n <source\n srcset=\"{{imageUrlResponse.srcSetUrls}}\"\n type=\"image/webp\"/>\n\n <img\n [ngClass]=\"{'imageFill': image_fill}\"\n [attr.width]=\"imageRatioWidth\"\n [attr.height]=\"imageRatioHeight\"\n [attr.src]=\"imageUrlResponse.fallbackUrl\"\n [attr.loading]=\"loading\"\n [attr.fetchpriority]=\"fetchpriority\"\n [attr.alt]=\"image_alt_text\"\n [ngStyle]=\"{'aspect-ratio': preload_aspect_ratio}\"\n />\n</picture>\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"] }]
1059
1059
  }], ctorParameters: function () { return [{ type: ImageService }, { type: i0.ElementRef }]; }, propDecorators: { image_src: [{
1060
1060
  type: Input
1061
1061
  }], image_alt_text: [{
@@ -2114,6 +2114,7 @@ class CarouselComponent {
2114
2114
  this.carousel_slides_per_view_laptop = 3;
2115
2115
  this.carousel_slides_per_view_tablet = 2.5;
2116
2116
  this.carousel_slides_per_view_mobile = 1.25;
2117
+ this.carousel_rows_per_row_mobile = 1; // Required for CATEGORY_CARD experiment. Remove if experiment fails.
2117
2118
  }
2118
2119
  ngOnInit() {
2119
2120
  this.setUpIntersectionObserver();
@@ -2177,7 +2178,7 @@ class CarouselComponent {
2177
2178
  const swiperParams = {
2178
2179
  rewind: this.rewind,
2179
2180
  grabCursor: true,
2180
- spaceBetween: (parseInt(carouselGap, 10) * 10) || 0,
2181
+ spaceBetween: (parseInt(carouselGap.replace('.', ''), 10)) || 0,
2181
2182
  scrollbar: {
2182
2183
  enabled: this.carousel_pagination === 'scroll-arrows',
2183
2184
  draggable: true,
@@ -2207,7 +2208,11 @@ class CarouselComponent {
2207
2208
  enabled: this.carousel_pagination === 'scroll-arrows',
2208
2209
  draggable: true
2209
2210
  },
2210
- slidesPerView: this.carousel_slides_per_view_mobile
2211
+ slidesPerView: this.carousel_slides_per_view_mobile,
2212
+ grid: {
2213
+ rows: this.carousel_rows_per_row_mobile,
2214
+ fill: "row",
2215
+ },
2211
2216
  },
2212
2217
  767: {
2213
2218
  scrollbar: {
@@ -2257,10 +2262,10 @@ class CarouselComponent {
2257
2262
  }
2258
2263
  }
2259
2264
  CarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CarouselComponent, deps: [{ token: TokenService }, { token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
2260
- CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CarouselComponent, selector: "ui-carousel", inputs: { rewind: "rewind", carousel_overflow: "carousel_overflow", carousel_gap: "carousel_gap", carousel_pagination: "carousel_pagination", carousel_align: "carousel_align", carousel_slides_per_view_desktop: "carousel_slides_per_view_desktop", carousel_slides_per_view_laptop: "carousel_slides_per_view_laptop", carousel_slides_per_view_tablet: "carousel_slides_per_view_tablet", carousel_slides_per_view_mobile: "carousel_slides_per_view_mobile" }, viewQueries: [{ propertyName: "swiper", first: true, predicate: ["swiper"], descendants: true, static: true }, { propertyName: "carouselscrollbarplaceholder", first: true, predicate: ["carouselscrollbarplaceholder"], descendants: true, read: ElementRef }, { propertyName: "carouselctastack", first: true, predicate: ["carouselctastack"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OasysButtonComponent, selector: "ui-button", inputs: ["button_icon", "button_icon_placement", "button_size", "button_full_width", "button_type", "button_disabled", "button_text_nowrap", "href"], outputs: ["clicked"] }, { kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }], encapsulation: i0.ViewEncapsulation.None });
2265
+ CarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CarouselComponent, selector: "ui-carousel", inputs: { rewind: "rewind", carousel_overflow: "carousel_overflow", carousel_gap: "carousel_gap", carousel_pagination: "carousel_pagination", carousel_align: "carousel_align", carousel_slides_per_view_desktop: "carousel_slides_per_view_desktop", carousel_slides_per_view_laptop: "carousel_slides_per_view_laptop", carousel_slides_per_view_tablet: "carousel_slides_per_view_tablet", carousel_slides_per_view_mobile: "carousel_slides_per_view_mobile", carousel_rows_per_row_mobile: "carousel_rows_per_row_mobile" }, viewQueries: [{ propertyName: "swiper", first: true, predicate: ["swiper"], descendants: true, static: true }, { propertyName: "carouselscrollbarplaceholder", first: true, predicate: ["carouselscrollbarplaceholder"], descendants: true, read: ElementRef }, { propertyName: "carouselctastack", first: true, predicate: ["carouselctastack"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel{touch-action:manipulation}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OasysButtonComponent, selector: "ui-button", inputs: ["button_icon", "button_icon_placement", "button_size", "button_full_width", "button_type", "button_disabled", "button_text_nowrap", "href"], outputs: ["clicked"] }, { kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }], encapsulation: i0.ViewEncapsulation.None });
2261
2266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CarouselComponent, decorators: [{
2262
2267
  type: Component,
2263
- args: [{ selector: 'ui-carousel', encapsulation: ViewEncapsulation.None, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"] }]
2268
+ args: [{ selector: 'ui-carousel', encapsulation: ViewEncapsulation.None, template: "<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\nbox_content_fill_width=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n center-insufficient-slides=\"true\"\n prevent-clicks-propagation=\"true\">\n <ng-content></ng-content>\n </swiper-container>\n\n <!-- Custom navigation buttons -->\n <ui-stack stack_direction=\"x\" stack_align=\"center\" *ngIf=\"carousel_pagination === 'scroll-arrows'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box \n box_space=\"none\" \n box_fill_mode=\"fit\" \n [box_space_right]=\"{mobile: 'tight', tablet: 'none', laptop: 'none', desktop: 'none'}\"\n box_background=\"transparent\">\n <ui-stack\n *ngIf=\"!(swiper?.swiper?.isBeginning && swiper?.swiper?.isEnd)\"\n stack_direction=\"x\"\n stack_gap=\"near\">\n <!-- Previous button-->\n <ui-button\n class=\"ui-carousel__previous\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"secondary\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n (clicked)=\"nextSlide()\"> Next slide \n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [":root{--swiper-scrollbar-size: 4px}.ui-carousel{touch-action:manipulation}.ui-carousel swiper-container{width:100%}.ui-carousel.ui-carousel-overflow swiper-container{overflow:visible!important}.ui-carousel .ui-carousel-scrollbar-placeholder{width:100%;display:flex;align-self:stretch}\n"] }]
2264
2269
  }], ctorParameters: function () {
2265
2270
  return [{ type: TokenService }, { type: Document, decorators: [{
2266
2271
  type: Inject,
@@ -2293,6 +2298,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2293
2298
  type: Input
2294
2299
  }], carousel_slides_per_view_mobile: [{
2295
2300
  type: Input
2301
+ }], carousel_rows_per_row_mobile: [{
2302
+ type: Input
2296
2303
  }] } });
2297
2304
 
2298
2305
  class OasysCarouselModule {
@@ -2406,6 +2413,60 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2406
2413
  }]
2407
2414
  }] });
2408
2415
 
2416
+ class PromoCardComponent {
2417
+ constructor(tokenService) {
2418
+ this.tokenService = tokenService;
2419
+ this.href_primary_cta = '';
2420
+ this.cta_clicked = new EventEmitter();
2421
+ }
2422
+ ngOnInit() {
2423
+ this.aspectRatio = this.tokenService.getTokenValue('--component-promo-card-image-aspect-ratio');
2424
+ this.alignment = this.tokenService.getTokenValue('--component-promo-card-heading-alignment');
2425
+ }
2426
+ ctaClicked() {
2427
+ this.cta_clicked.emit();
2428
+ }
2429
+ }
2430
+ PromoCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PromoCardComponent, deps: [{ token: TokenService }], target: i0.ɵɵFactoryTarget.Component });
2431
+ PromoCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PromoCardComponent, selector: "ui-promo-card", inputs: { image: "image", alt_text: "alt_text", title: "title", subtitle: "subtitle", primary_cta_text: "primary_cta_text", href_primary_cta: "href_primary_cta", background_colour: "background_colour", font_colour: "font_colour" }, outputs: { cta_clicked: "cta_clicked" }, ngImport: i0, template: "<ui-box box_space=\"none\" [ngStyle]=\"{'background-color': background_colour, 'color': font_colour}\">\n <ui-stack stack_gap=\"default\" stack_align=\"center\">\n <ui-box box_space=\"none\">\n <ui-image [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"aspectRatio\"></ui-image>\n </ui-box>\n <ui-box [box_align_y]=\"alignment\" box_space_top=\"none\" [ngStyle]=\"{'background-color': background_colour}\">\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <ui-heading heading_type=\"secondary\" heading_title=\"{{title}}\" heading_subtitle=\"{{subtitle}}\"></ui-heading>\n <a class=\"text-link text-link--standalone\" bwtrackas=\"component.modular-content-card.cta\" href=\"{{ href_primary_cta }}\" (click)=\"ctaClicked()\">{{primary_cta_text}}</a>\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "component", type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio"] }, { kind: "directive", type: OasysHrefDirective, selector: "a, uiHref, [uiHref]" }, { kind: "component", type: OasysHeadingComponent, selector: "ui-heading", inputs: ["heading_type", "heading_on_dark", "heading_title", "heading_seo_priority", "heading_priority", "heading_alignment_override", "heading_subtitle", "heading_surtitle"] }] });
2432
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PromoCardComponent, decorators: [{
2433
+ type: Component,
2434
+ args: [{ selector: 'ui-promo-card', template: "<ui-box box_space=\"none\" [ngStyle]=\"{'background-color': background_colour, 'color': font_colour}\">\n <ui-stack stack_gap=\"default\" stack_align=\"center\">\n <ui-box box_space=\"none\">\n <ui-image [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"aspectRatio\"></ui-image>\n </ui-box>\n <ui-box [box_align_y]=\"alignment\" box_space_top=\"none\" [ngStyle]=\"{'background-color': background_colour}\">\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <ui-heading heading_type=\"secondary\" heading_title=\"{{title}}\" heading_subtitle=\"{{subtitle}}\"></ui-heading>\n <a class=\"text-link text-link--standalone\" bwtrackas=\"component.modular-content-card.cta\" href=\"{{ href_primary_cta }}\" (click)=\"ctaClicked()\">{{primary_cta_text}}</a>\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n\n" }]
2435
+ }], ctorParameters: function () { return [{ type: TokenService }]; }, propDecorators: { image: [{
2436
+ type: Input
2437
+ }], alt_text: [{
2438
+ type: Input
2439
+ }], title: [{
2440
+ type: Input
2441
+ }], subtitle: [{
2442
+ type: Input
2443
+ }], primary_cta_text: [{
2444
+ type: Input
2445
+ }], href_primary_cta: [{
2446
+ type: Input
2447
+ }], background_colour: [{
2448
+ type: Input
2449
+ }], font_colour: [{
2450
+ type: Input
2451
+ }], cta_clicked: [{
2452
+ type: Output
2453
+ }] } });
2454
+
2455
+ class OasysPromoCardModule {
2456
+ }
2457
+ OasysPromoCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2458
+ OasysPromoCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, declarations: [PromoCardComponent], imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule], exports: [PromoCardComponent] });
2459
+ OasysPromoCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, providers: [TokenService], imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule] });
2460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OasysPromoCardModule, decorators: [{
2461
+ type: NgModule,
2462
+ args: [{
2463
+ declarations: [PromoCardComponent],
2464
+ imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule],
2465
+ exports: [PromoCardComponent],
2466
+ providers: [TokenService],
2467
+ }]
2468
+ }] });
2469
+
2409
2470
  /*
2410
2471
  * Public API Surface of oasys-lib
2411
2472
  */
@@ -2414,5 +2475,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
2414
2475
  * Generated bundle index. Do not edit.
2415
2476
  */
2416
2477
 
2417
- export { BannerComponent, BreadcrumbsComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, DividerComponent, FormErrorsComponents, FormGroupComponent, HeroComponent, IconComponent, ImageComponent, LayoutBoxComponent, LayoutContainerComponent, LayoutGridColumnComponent, LayoutGridComponent, LayoutStackComponent, OasysAlertCancelDirective, OasysAlertComponent, OasysAlertConfirmDirective, OasysAlertContentDirective, OasysAlertModule, OasysAlertTitleDirective, OasysBannerModule, OasysBreadcrumbModule, OasysButtonComponent, OasysButtonGroupComponent, OasysButtonGroupModule, OasysButtonModule, OasysCardModule, OasysCarouselModule, OasysCheckboxModule, OasysChipModule, OasysDividerModule, OasysFormErrorsModule, OasysFormGroupModule, OasysHeadingComponent, OasysHeadingModule, OasysHeroModule, OasysIconModule, OasysImageModule, OasysLayoutModule, OasysPriceComponent, OasysPriceModule, OasysRadioModule, OasysSeoBlockModule, OasysTextInputModule, OasysTextModule, ROUTING_HANDLER, RadioComponent, SectionComponent, SectionModule, SeoBlockComponent, TextComponent, TextInputComponent };
2478
+ export { BannerComponent, BreadcrumbsComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, DividerComponent, FormErrorsComponents, FormGroupComponent, HeroComponent, IconComponent, ImageComponent, LayoutBoxComponent, LayoutContainerComponent, LayoutGridColumnComponent, LayoutGridComponent, LayoutStackComponent, OasysAlertCancelDirective, OasysAlertComponent, OasysAlertConfirmDirective, OasysAlertContentDirective, OasysAlertModule, OasysAlertTitleDirective, OasysBannerModule, OasysBreadcrumbModule, OasysButtonComponent, OasysButtonGroupComponent, OasysButtonGroupModule, OasysButtonModule, OasysCardModule, OasysCarouselModule, OasysCheckboxModule, OasysChipModule, OasysDividerModule, OasysFormErrorsModule, OasysFormGroupModule, OasysHeadingComponent, OasysHeadingModule, OasysHeroModule, OasysIconModule, OasysImageModule, OasysLayoutModule, OasysPriceComponent, OasysPriceModule, OasysPromoCardModule, OasysRadioModule, OasysSeoBlockModule, OasysTextInputModule, OasysTextModule, PromoCardComponent, ROUTING_HANDLER, RadioComponent, SectionComponent, SectionModule, SeoBlockComponent, TextComponent, TextInputComponent };
2418
2479
  //# sourceMappingURL=oasys-lib.mjs.map