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.
- package/esm2020/lib/components/carousel/carousel.component.mjs +12 -5
- package/esm2020/lib/components/image/image.component.mjs +3 -3
- package/esm2020/lib/components/promo-card/index.mjs +3 -0
- package/esm2020/lib/components/promo-card/promo-card.component.mjs +48 -0
- package/esm2020/lib/components/promo-card/promo-card.module.mjs +27 -0
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/oasys-lib.mjs +68 -7
- package/fesm2015/oasys-lib.mjs.map +1 -1
- package/fesm2020/oasys-lib.mjs +68 -7
- package/fesm2020/oasys-lib.mjs.map +1 -1
- package/lib/components/carousel/carousel.component.d.ts +3 -2
- package/lib/components/carousel/carousel.component.d.ts.map +1 -1
- package/lib/components/promo-card/index.d.ts +3 -0
- package/lib/components/promo-card/index.d.ts.map +1 -0
- package/lib/components/promo-card/promo-card.component.d.ts +23 -0
- package/lib/components/promo-card/promo-card.component.d.ts.map +1 -0
- package/lib/components/promo-card/promo-card.module.d.ts +16 -0
- package/lib/components/promo-card/promo-card.module.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/public-api.d.ts.map +1 -1
- package/src/assets/bloomandwild/variables.css +3 -1
- package/src/assets/bloomon/variables.css +3 -3
- package/src/assets/global/scss-breakpoints.scss +1 -1
- package/src/assets/global/variables.css +1 -1
|
@@ -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,
|
|
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,
|
|
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
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -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
|
-
|
|
29
|
+
export * from './lib/components/promo-card';
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw2QkFBNkIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygb2FzeXMtbGliXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWxlcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLWdyb3VwJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Zvcm0vcmFkaW8nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL3RleHQtaW5wdXQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2NoaXAnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2Vycm9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hlYWRpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oZXJvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VvLWJsb2NrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGV4dCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJvdXNlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iYW5uZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wcmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbmplY3Rpb24tdG9rZW5zL2Zyb250ZW5kLWFwcC1pbmplY3Rpb24udG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvbW8tY2FyZCdcbiJdfQ==
|
package/fesm2015/oasys-lib.mjs
CHANGED
|
@@ -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,
|
|
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
|