oasys-lib 1.17.0 → 1.18.3
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/bundles/oasys-lib.umd.js +171 -12
- package/bundles/oasys-lib.umd.js.map +1 -1
- package/esm2015/lib/components/card/card.component.js +4 -3
- package/esm2015/lib/components/card/card.module.js +5 -4
- package/esm2015/lib/components/hero/hero.component.js +4 -3
- package/esm2015/lib/components/hero/hero.module.js +5 -4
- package/esm2015/lib/components/image/image.component.js +76 -0
- package/esm2015/lib/components/image/image.module.js +20 -0
- package/esm2015/lib/components/image/index.js +3 -0
- package/esm2015/lib/components/section/section.component.js +7 -5
- package/esm2015/lib/components/section/section.module.js +5 -4
- package/esm2015/lib/services/image.service.js +60 -0
- package/esm2015/public-api.js +2 -1
- package/fesm2015/oasys-lib.js +160 -14
- package/fesm2015/oasys-lib.js.map +1 -1
- package/lib/components/card/card.module.d.ts +2 -1
- package/lib/components/card/card.module.d.ts.map +1 -1
- package/lib/components/hero/hero.module.d.ts +2 -1
- package/lib/components/hero/hero.module.d.ts.map +1 -1
- package/lib/components/image/image.component.d.ts +24 -0
- package/lib/components/image/image.component.d.ts.map +1 -0
- package/lib/components/image/image.module.d.ts +9 -0
- package/lib/components/image/image.module.d.ts.map +1 -0
- package/lib/components/image/index.d.ts +3 -0
- package/lib/components/image/index.d.ts.map +1 -0
- package/lib/components/section/section.component.d.ts +1 -0
- package/lib/components/section/section.component.d.ts.map +1 -1
- package/lib/components/section/section.module.d.ts +3 -2
- package/lib/components/section/section.module.d.ts.map +1 -1
- package/lib/services/image.service.d.ts +18 -0
- package/lib/services/image.service.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 -1
- package/src/assets/global/scss-breakpoints.scss +1 -1
- package/src/assets/global/typography.scss +1 -1
- package/src/assets/global/variables.css +1 -1
package/bundles/oasys-lib.umd.js
CHANGED
|
@@ -1215,6 +1215,144 @@
|
|
|
1215
1215
|
}]
|
|
1216
1216
|
}] });
|
|
1217
1217
|
|
|
1218
|
+
var ImageService = /** @class */ (function () {
|
|
1219
|
+
function ImageService() {
|
|
1220
|
+
this.fallbackBreakpoint = 768;
|
|
1221
|
+
this.breakpoints = [
|
|
1222
|
+
320, 360, 375, 414, 640, 750, 768, 1080, 1280, 1366, 1440, 1536, 1600, 1680, 1920, 2560, 3440, 3840
|
|
1223
|
+
];
|
|
1224
|
+
}
|
|
1225
|
+
ImageService.prototype.getQualityForWidth = function (width) {
|
|
1226
|
+
return width > 1440 ? 50 : 75;
|
|
1227
|
+
};
|
|
1228
|
+
ImageService.prototype.generateUrl = function (baseUrl, format, width, quality, cdnType) {
|
|
1229
|
+
switch (cdnType) {
|
|
1230
|
+
case 'thumbor':
|
|
1231
|
+
return "https://media.bloomdev.org/v1/" + width + "x0/filters:format(" + format + "):quality(" + quality + ")/" + baseUrl;
|
|
1232
|
+
case 'contentful':
|
|
1233
|
+
return baseUrl + "?w=" + width + "&fm=" + format + "&q=" + quality;
|
|
1234
|
+
default:
|
|
1235
|
+
return baseUrl;
|
|
1236
|
+
}
|
|
1237
|
+
};
|
|
1238
|
+
ImageService.prototype.generateUrls = function (baseUrl, format, sizes, isFallback, cdnType) {
|
|
1239
|
+
var _this = this;
|
|
1240
|
+
return sizes.map(function (width) {
|
|
1241
|
+
var quality = isFallback ? 100 : _this.getQualityForWidth(width);
|
|
1242
|
+
var url = _this.generateUrl(baseUrl, format, width, quality, cdnType);
|
|
1243
|
+
return isFallback ? url : url + " " + width + "w";
|
|
1244
|
+
}).join(', ');
|
|
1245
|
+
};
|
|
1246
|
+
ImageService.prototype.detectCdnType = function (baseUrl) {
|
|
1247
|
+
if (baseUrl.includes('assets-0.bloomandwild.com')) {
|
|
1248
|
+
return 'thumbor';
|
|
1249
|
+
}
|
|
1250
|
+
else if (baseUrl.includes('images.ctfassets.net/')) {
|
|
1251
|
+
return 'contentful';
|
|
1252
|
+
}
|
|
1253
|
+
};
|
|
1254
|
+
ImageService.prototype.getImageUrlsFromCDN = function (baseUrl, format, sizes, isFallback) {
|
|
1255
|
+
var cdnType = this.detectCdnType(baseUrl);
|
|
1256
|
+
if (isFallback) {
|
|
1257
|
+
sizes = [this.fallbackBreakpoint];
|
|
1258
|
+
}
|
|
1259
|
+
return this.generateUrls(baseUrl, format, sizes, isFallback, cdnType);
|
|
1260
|
+
};
|
|
1261
|
+
ImageService.prototype.generateImageUrl = function (baseUrl) {
|
|
1262
|
+
return {
|
|
1263
|
+
srcSetUrls: this.getImageUrlsFromCDN(baseUrl, 'webp', this.breakpoints, false),
|
|
1264
|
+
fallbackUrl: this.getImageUrlsFromCDN(baseUrl, 'jpg', this.breakpoints, true)
|
|
1265
|
+
};
|
|
1266
|
+
};
|
|
1267
|
+
return ImageService;
|
|
1268
|
+
}());
|
|
1269
|
+
ImageService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImageService, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
1270
|
+
ImageService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImageService, providedIn: 'root' });
|
|
1271
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImageService, decorators: [{
|
|
1272
|
+
type: i0.Injectable,
|
|
1273
|
+
args: [{
|
|
1274
|
+
providedIn: 'root',
|
|
1275
|
+
}]
|
|
1276
|
+
}] });
|
|
1277
|
+
|
|
1278
|
+
var ImageComponent = /** @class */ (function () {
|
|
1279
|
+
function ImageComponent(imageService, el) {
|
|
1280
|
+
this.imageService = imageService;
|
|
1281
|
+
this.el = el;
|
|
1282
|
+
this.image_src = '';
|
|
1283
|
+
this.fetchpriority = 'auto';
|
|
1284
|
+
this.loading = 'lazy';
|
|
1285
|
+
this.preload_aspect_ratio = '1:1';
|
|
1286
|
+
}
|
|
1287
|
+
Object.defineProperty(ImageComponent.prototype, "class", {
|
|
1288
|
+
get: function () {
|
|
1289
|
+
return "" + (this.image_fill ? 'imageFill' : '');
|
|
1290
|
+
},
|
|
1291
|
+
enumerable: false,
|
|
1292
|
+
configurable: true
|
|
1293
|
+
});
|
|
1294
|
+
ImageComponent.prototype.setupLazyLoading = function () {
|
|
1295
|
+
var _this = this;
|
|
1296
|
+
var options = {
|
|
1297
|
+
removeAfterObserved: true,
|
|
1298
|
+
root: null,
|
|
1299
|
+
rootMargin: '200px',
|
|
1300
|
+
threshold: 0.01
|
|
1301
|
+
};
|
|
1302
|
+
this.intersectionObserver = new IntersectionObserver(function (entries) {
|
|
1303
|
+
entries.forEach(function (entry) {
|
|
1304
|
+
if (entry.isIntersecting) {
|
|
1305
|
+
var imageElement_1 = _this.el.nativeElement.querySelector('img');
|
|
1306
|
+
var sourceElement = _this.el.nativeElement.querySelector('source');
|
|
1307
|
+
imageElement_1.setAttribute('src', _this.imageUrlResponse.fallbackUrl);
|
|
1308
|
+
sourceElement.setAttribute('srcset', _this.imageUrlResponse.srcSetUrls);
|
|
1309
|
+
_this.intersectionObserver.unobserve(entry.target);
|
|
1310
|
+
}
|
|
1311
|
+
});
|
|
1312
|
+
}, options);
|
|
1313
|
+
var imageElement = this.el.nativeElement.querySelector('img');
|
|
1314
|
+
this.intersectionObserver.observe(imageElement);
|
|
1315
|
+
};
|
|
1316
|
+
ImageComponent.prototype.ngOnInit = function () {
|
|
1317
|
+
var ratios = this.preload_aspect_ratio.split(':');
|
|
1318
|
+
this.imageRatioWidth = parseInt(ratios[0], 10);
|
|
1319
|
+
this.imageRatioHeight = parseInt(ratios[1], 10);
|
|
1320
|
+
this.imageUrlResponse = this.imageService.generateImageUrl(this.image_src);
|
|
1321
|
+
if (!('loading' in HTMLImageElement.prototype)) {
|
|
1322
|
+
this.setupLazyLoading();
|
|
1323
|
+
}
|
|
1324
|
+
if (!this.image_alt_text) {
|
|
1325
|
+
throw Error("Image is missing an alt tag, image url is " + this.image_src);
|
|
1326
|
+
}
|
|
1327
|
+
};
|
|
1328
|
+
return ImageComponent;
|
|
1329
|
+
}());
|
|
1330
|
+
ImageComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImageComponent, deps: [{ token: ImageService }, { token: i0__namespace.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1331
|
+
ImageComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", 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__namespace, 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 />\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"], directives: [{ type: i6__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
1332
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ImageComponent, decorators: [{
|
|
1333
|
+
type: i0.Component,
|
|
1334
|
+
args: [{
|
|
1335
|
+
selector: 'ui-image',
|
|
1336
|
+
templateUrl: './image.component.html',
|
|
1337
|
+
styleUrls: ['./image.component.scss']
|
|
1338
|
+
}]
|
|
1339
|
+
}], ctorParameters: function () { return [{ type: ImageService }, { type: i0__namespace.ElementRef }]; }, propDecorators: { image_src: [{
|
|
1340
|
+
type: i0.Input
|
|
1341
|
+
}], image_alt_text: [{
|
|
1342
|
+
type: i0.Input
|
|
1343
|
+
}], image_fill: [{
|
|
1344
|
+
type: i0.Input
|
|
1345
|
+
}], fetchpriority: [{
|
|
1346
|
+
type: i0.Input
|
|
1347
|
+
}], loading: [{
|
|
1348
|
+
type: i0.Input
|
|
1349
|
+
}], preload_aspect_ratio: [{
|
|
1350
|
+
type: i0.Input
|
|
1351
|
+
}], class: [{
|
|
1352
|
+
type: i0.HostBinding,
|
|
1353
|
+
args: ['class']
|
|
1354
|
+
}] } });
|
|
1355
|
+
|
|
1218
1356
|
var CardComponent = /** @class */ (function () {
|
|
1219
1357
|
function CardComponent(tokenService) {
|
|
1220
1358
|
this.tokenService = tokenService;
|
|
@@ -1253,7 +1391,7 @@
|
|
|
1253
1391
|
return CardComponent;
|
|
1254
1392
|
}());
|
|
1255
1393
|
CardComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CardComponent, deps: [{ token: TokenService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1256
|
-
CardComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CardComponent, selector: "ui-card", inputs: { label_text: "label_text", image: "image", alt_text: "alt_text", image_format: "image_format", small_title_left: "small_title_left", small_sub_title_right: "small_sub_title_right", standard_content: "standard_content", bold_content: "bold_content" }, host: { listeners: { "window:resize": "setStackPlacement($event)" } }, viewQueries: [{ propertyName: "imageLabel", first: true, predicate: ["imagelabel"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<ui-box class=\"ui-card\" box_background=\"core-primary\" box_space=\"none\">\n <ui-stack stack_align=\"center\" stack_gap=\"tight\">\n <ui-box\n class=\"ui-card__image\"\n [ngStyle]=\"{'aspect-ratio': aspectRatio}\"\n box_background=\"transparent\"\n box_align_x=\"center\"\n box_space=\"none\">\n <
|
|
1394
|
+
CardComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CardComponent, selector: "ui-card", inputs: { label_text: "label_text", image: "image", alt_text: "alt_text", image_format: "image_format", small_title_left: "small_title_left", small_sub_title_right: "small_sub_title_right", standard_content: "standard_content", bold_content: "bold_content" }, host: { listeners: { "window:resize": "setStackPlacement($event)" } }, viewQueries: [{ propertyName: "imageLabel", first: true, predicate: ["imagelabel"], descendants: true, read: i0.ElementRef }], ngImport: i0__namespace, template: "<ui-box class=\"ui-card\" box_background=\"core-primary\" box_space=\"none\">\n <ui-stack stack_align=\"center\" stack_gap=\"tight\">\n <ui-box\n class=\"ui-card__image\"\n [ngStyle]=\"{'aspect-ratio': aspectRatio}\"\n box_background=\"transparent\"\n box_align_x=\"center\"\n box_space=\"none\">\n <ui-image [image_src]=\"image\" [image_alt_text]=\"alt_text\" [image_fill]=\"true\"></ui-image>\n </ui-box>\n <ui-stack stack_gap=\"tight\" [ngStyle]=\"{'margin-top': stackOffset}\">\n <ui-box\n #imagelabel\n *ngIf=\"label_text\"\n class=\"card__image-label center-content\"\n box_background=\"tint-highlight\"\n box_align_x=\"center\"\n box_align_y=\"center\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"tight\"\n box_space_top=\"tight\">\n <h5>{{label_text}}</h5>\n </ui-box>\n <ui-box *ngIf=\"small_title_left || small_sub_title_right\" [box_space_top]=\"label_text ? 'none' : 'tight'\" box_space=\"none\" box_background=\"transparent\" >\n <ui-stack stack_direction=\"x\" stack_distribute=\"space-between\" stack_gap=\"tight\">\n <span class=\"text-body--supporting text-color--supporting\">{{small_title_left}}</span>\n <span class=\"text-body--supporting text-color--supporting\">{{small_sub_title_right}}</span>\n </ui-stack>\n </ui-box>\n <p *ngIf=\"standard_content\" class=\"text-label--default center-content\">{{standard_content}}</p>\n <p *ngIf=\"bold_content\" class=\"text-label--primary text-body--emphasis\">{{bold_content}}</p>\n </ui-stack>\n </ui-stack>\n</ui-box>\n", styles: [".ui-card__image{position:relative}.ui-card__image ui-image{position:absolute;height:100%;object-fit:cover;width:100%;left:0}.ui-card .center-content{text-align:center;align-self:center}.ui-card .card__image-label{width:auto;height:auto;border-radius:2px;margin:0 8px;text-align:center;overflow:hidden;z-index:2}\n"], components: [{ 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"] }, { type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap"] }, { type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio"] }], directives: [{ type: i6__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1257
1395
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CardComponent, decorators: [{
|
|
1258
1396
|
type: i0.Component,
|
|
1259
1397
|
args: [{
|
|
@@ -1285,19 +1423,37 @@
|
|
|
1285
1423
|
args: ['window:resize', ['$event']]
|
|
1286
1424
|
}] } });
|
|
1287
1425
|
|
|
1426
|
+
var OasysImageModule = /** @class */ (function () {
|
|
1427
|
+
function OasysImageModule() {
|
|
1428
|
+
}
|
|
1429
|
+
return OasysImageModule;
|
|
1430
|
+
}());
|
|
1431
|
+
OasysImageModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysImageModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
1432
|
+
OasysImageModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysImageModule, declarations: [ImageComponent], imports: [i6.CommonModule], exports: [ImageComponent] });
|
|
1433
|
+
OasysImageModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysImageModule, providers: [ImageService], imports: [[i6.CommonModule]] });
|
|
1434
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysImageModule, decorators: [{
|
|
1435
|
+
type: i0.NgModule,
|
|
1436
|
+
args: [{
|
|
1437
|
+
declarations: [ImageComponent],
|
|
1438
|
+
imports: [i6.CommonModule],
|
|
1439
|
+
exports: [ImageComponent],
|
|
1440
|
+
providers: [ImageService]
|
|
1441
|
+
}]
|
|
1442
|
+
}] });
|
|
1443
|
+
|
|
1288
1444
|
var OasysCardModule = /** @class */ (function () {
|
|
1289
1445
|
function OasysCardModule() {
|
|
1290
1446
|
}
|
|
1291
1447
|
return OasysCardModule;
|
|
1292
1448
|
}());
|
|
1293
1449
|
OasysCardModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysCardModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
1294
|
-
OasysCardModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysCardModule, declarations: [CardComponent], imports: [i6.CommonModule, OasysLayoutModule, router.RouterModule], exports: [CardComponent] });
|
|
1295
|
-
OasysCardModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysCardModule, providers: [TokenService], imports: [[i6.CommonModule, OasysLayoutModule, router.RouterModule]] });
|
|
1450
|
+
OasysCardModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysCardModule, declarations: [CardComponent], imports: [i6.CommonModule, OasysLayoutModule, router.RouterModule, OasysImageModule], exports: [CardComponent] });
|
|
1451
|
+
OasysCardModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysCardModule, providers: [TokenService], imports: [[i6.CommonModule, OasysLayoutModule, router.RouterModule, OasysImageModule]] });
|
|
1296
1452
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysCardModule, decorators: [{
|
|
1297
1453
|
type: i0.NgModule,
|
|
1298
1454
|
args: [{
|
|
1299
1455
|
declarations: [CardComponent],
|
|
1300
|
-
imports: [i6.CommonModule, OasysLayoutModule, router.RouterModule],
|
|
1456
|
+
imports: [i6.CommonModule, OasysLayoutModule, router.RouterModule, OasysImageModule],
|
|
1301
1457
|
exports: [CardComponent],
|
|
1302
1458
|
providers: [TokenService],
|
|
1303
1459
|
}]
|
|
@@ -1461,7 +1617,7 @@
|
|
|
1461
1617
|
return HeroComponent;
|
|
1462
1618
|
}());
|
|
1463
1619
|
HeroComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: HeroComponent, deps: [{ token: TokenService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1464
|
-
HeroComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: HeroComponent, selector: "ui-hero", inputs: { min_container_height: "min_container_height", image_left_desktop: "image_left_desktop", image_top_mobile: "image_top_mobile", background_colour: "background_colour", heading_title: "heading_title", heading_subtitle: "heading_subtitle", heading_surtitle: "heading_surtitle", primary_cta_text: "primary_cta_text", secondary_cta_text: "secondary_cta_text", image: "image", alt_text: "alt_text", media_type: "media_type", href_primary_cta: "href_primary_cta", href_secondary_cta: "href_secondary_cta" }, ngImport: i0__namespace, template: "<ui-box [box_background]=\"background_colour\" box_space=\"none\">\n <ui-grid [ngStyle]=\"{'min-height' : min_container_height ? min_container_height + 'px' : 'auto'}\" grid_gap=\"none\" grid_collapse_below=\"tablet\">\n <ui-column columns=\"5\" [ngClass]=\"{'image-left': image_left_desktop, 'image-top': image_top_mobile}\">\n <ui-box box_fill_mode=\"fill\" box_align_y=\"center\" box_background=\"transparent\" [box_space]=\"{mobile: heroInsetSpaceSmall, tablet: heroInsetSpaceSmall, laptop: heroInsetSpaceLarge, desktop: heroInsetSpaceLarge}\">\n <ui-stack stack_direction=\"y\" stack_align=\"center\" stack_distribute=\"center\" stack_gap=\"default\">\n <ui-heading\n heading_type=\"primary\"\n [heading_on_dark]=\"backgroundIsDark === 'on-dark' ? true : false\"\n [heading_title]=\"heading_title\"\n [heading_seo_priority]=\"true\"\n [heading_subtitle]=\"heading_subtitle\"\n [heading_surtitle]=\"heading_surtitle\">\n </ui-heading>\n <!-- TODO: replace with ui-button-group once built-->\n <ui-stack\n *ngIf=\"primary_cta_text\"\n class=\"cta-container\"\n stack_direction=\"x\"\n [stack_align]=\"heroCtaAlignment\"\n [stack_distribute]=\"heroCtaAlignment\"\n stack_wrap=\"true\"\n stack_gap=\"near\">\n <ui-button\n button_size=\"large\"\n [button_type]=\"backgroundIsDark === 'on-dark' ? 'primary-inverse' : 'primary'\"\n [href]=\"href_primary_cta\">\n <span #buttontext>{{primary_cta_text}}</span>\n </ui-button>\n <ui-button\n *ngIf=\"secondary_cta_text\"\n button-size=\"large\"\n [button_type]=\"backgroundIsDark === 'on-dark' ? 'secondary-inverse' : 'secondary'\"\n [href]=\"href_secondary_cta\">\n <span #buttontext>{{secondary_cta_text}}</span>\n </ui-button>\n </ui-stack>\n </ui-stack>\n </ui-box>\n </ui-column>\n <ui-column columns=\"7\">\n <
|
|
1620
|
+
HeroComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: HeroComponent, selector: "ui-hero", inputs: { min_container_height: "min_container_height", image_left_desktop: "image_left_desktop", image_top_mobile: "image_top_mobile", background_colour: "background_colour", heading_title: "heading_title", heading_subtitle: "heading_subtitle", heading_surtitle: "heading_surtitle", primary_cta_text: "primary_cta_text", secondary_cta_text: "secondary_cta_text", image: "image", alt_text: "alt_text", media_type: "media_type", href_primary_cta: "href_primary_cta", href_secondary_cta: "href_secondary_cta" }, ngImport: i0__namespace, template: "<ui-box [box_background]=\"background_colour\" box_space=\"none\">\n <ui-grid [ngStyle]=\"{'min-height' : min_container_height ? min_container_height + 'px' : 'auto'}\" grid_gap=\"none\" grid_collapse_below=\"tablet\">\n <ui-column columns=\"5\" [ngClass]=\"{'image-left': image_left_desktop, 'image-top': image_top_mobile}\">\n <ui-box box_fill_mode=\"fill\" box_align_y=\"center\" box_background=\"transparent\" [box_space]=\"{mobile: heroInsetSpaceSmall, tablet: heroInsetSpaceSmall, laptop: heroInsetSpaceLarge, desktop: heroInsetSpaceLarge}\">\n <ui-stack stack_direction=\"y\" stack_align=\"center\" stack_distribute=\"center\" stack_gap=\"default\">\n <ui-heading\n heading_type=\"primary\"\n [heading_on_dark]=\"backgroundIsDark === 'on-dark' ? true : false\"\n [heading_title]=\"heading_title\"\n [heading_seo_priority]=\"true\"\n [heading_subtitle]=\"heading_subtitle\"\n [heading_surtitle]=\"heading_surtitle\">\n </ui-heading>\n <!-- TODO: replace with ui-button-group once built-->\n <ui-stack\n *ngIf=\"primary_cta_text\"\n class=\"cta-container\"\n stack_direction=\"x\"\n [stack_align]=\"heroCtaAlignment\"\n [stack_distribute]=\"heroCtaAlignment\"\n stack_wrap=\"true\"\n stack_gap=\"near\">\n <ui-button\n bwtrackas=\"oasys.hero-block.primary-cta\"\n button_size=\"large\"\n [button_type]=\"backgroundIsDark === 'on-dark' ? 'primary-inverse' : 'primary'\"\n [href]=\"href_primary_cta\">\n <span #buttontext>{{primary_cta_text}}</span>\n </ui-button>\n <ui-button\n *ngIf=\"secondary_cta_text\"\n bwtrackas=\"oasys.hero-block.secondary-cta\"\n button-size=\"large\"\n [button_type]=\"backgroundIsDark === 'on-dark' ? 'secondary-inverse' : 'secondary'\"\n [href]=\"href_secondary_cta\">\n <span #buttontext>{{secondary_cta_text}}</span>\n </ui-button>\n </ui-stack>\n </ui-stack>\n </ui-box>\n </ui-column>\n <ui-column columns=\"7\">\n <ui-image\n *ngIf=\"media_type === 'image'\"\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n preload_aspect_ratio=\"5:4\"\n [image_fill]=\"true\"></ui-image>\n <ng-content *ngIf=\"media_type === 'video'\"></ng-content>\n </ui-column>\n </ui-grid>\n</ui-box>\n\n", styles: ["@media only screen and (max-width: 767px){ui-grid .image-top{order:1}}@media only screen and (min-width: 768px){ui-grid .image-top{order:0}ui-grid .image-left{order:1}}\n"], components: [{ 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"] }, { type: LayoutGridComponent, selector: "ui-grid", inputs: ["grid_auto", "grid_collapse_below", "grid_gap"] }, { type: LayoutGridColumnComponent, selector: "ui-column", inputs: ["columns", "column_inset"] }, { type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap"] }, { 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"] }, { type: OasysButtonComponent, selector: "ui-button", inputs: ["button_icon", "button_icon_placement", "button_size", "button_full_width", "button_type", "button_disabled", "href"], outputs: ["clicked"] }, { type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio"] }], directives: [{ type: i6__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1465
1621
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: HeroComponent, decorators: [{
|
|
1466
1622
|
type: i0.Component,
|
|
1467
1623
|
args: [{
|
|
@@ -1505,13 +1661,13 @@
|
|
|
1505
1661
|
return OasysHeroModule;
|
|
1506
1662
|
}());
|
|
1507
1663
|
OasysHeroModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysHeroModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
1508
|
-
OasysHeroModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysHeroModule, declarations: [HeroComponent], imports: [i6.CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule], exports: [HeroComponent] });
|
|
1509
|
-
OasysHeroModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysHeroModule, providers: [TokenService], imports: [[i6.CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule]] });
|
|
1664
|
+
OasysHeroModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysHeroModule, declarations: [HeroComponent], imports: [i6.CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysImageModule], exports: [HeroComponent] });
|
|
1665
|
+
OasysHeroModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysHeroModule, providers: [TokenService], imports: [[i6.CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysImageModule]] });
|
|
1510
1666
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: OasysHeroModule, decorators: [{
|
|
1511
1667
|
type: i0.NgModule,
|
|
1512
1668
|
args: [{
|
|
1513
1669
|
declarations: [HeroComponent],
|
|
1514
|
-
imports: [i6.CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule],
|
|
1670
|
+
imports: [i6.CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysImageModule],
|
|
1515
1671
|
exports: [HeroComponent],
|
|
1516
1672
|
providers: [TokenService],
|
|
1517
1673
|
}]
|
|
@@ -1683,6 +1839,7 @@
|
|
|
1683
1839
|
this.containerInsetSpaceLarge = this.tokenService.getTokenValue("--component-section-inset-spacing-container-large");
|
|
1684
1840
|
this.contentInsetSpaceSmall = this.tokenService.getTokenValue("--component-section-inset-spacing-content-small-" + this.section_type);
|
|
1685
1841
|
this.contentInsetSpaceLarge = this.tokenService.getTokenValue("--component-section-inset-spacing-content-large-" + this.section_type);
|
|
1842
|
+
this.imageAspectRatio = this.tokenService.getTokenValue("--component-section-image-aspect-ratio-" + this.section_type);
|
|
1686
1843
|
// Setting a unique ID, this is important & needed to apply
|
|
1687
1844
|
// styles to ui-box
|
|
1688
1845
|
this.uiBoxId = Date.now() + '-' + Math.random();
|
|
@@ -1705,7 +1862,7 @@
|
|
|
1705
1862
|
return SectionComponent;
|
|
1706
1863
|
}());
|
|
1707
1864
|
SectionComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionComponent, deps: [{ token: TokenService }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1708
|
-
SectionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SectionComponent, selector: "ui-section", inputs: { brand_background_colour: "brand_background_colour", non_brand_background_colour: "non_brand_background_colour", text_on_dark_override: "text_on_dark_override", image_on_left: "image_on_left", section_type: "section_type", heading_title: "heading_title", heading_subtitle: "heading_subtitle", primary_cta_text: "primary_cta_text", secondary_cta_text: "secondary_cta_text", image: "image", alt_text: "alt_text", href_primary_cta: "href_primary_cta", href_secondary_cta: "href_secondary_cta" }, ngImport: i0__namespace, template: "<ui-box\nid=\"ui-box-{{uiBoxId}}\"\n[box_background]=\"brand_background_colour\"\n[box_space_left]=\"section_type === 'spotlight' && !image_on_left ? 'none' : ''\"\n[box_space_right]=\"section_type === 'spotlight' && image_on_left ? 'none' : ''\"\n[box_space]=\"section_type === 'spotlight' ? 'none' : {mobile: containerInsetSpaceSmall, tablet: containerInsetSpaceLarge, laptop: containerInsetSpaceLarge, desktop: containerInsetSpaceLarge}\">\n\n <ui-grid [grid_gap]=\"section_type === 'spotlight' ? 'none' : 'default'\">\n <ui-column columns=\"6\" [ngClass]=\"{'image-left': image_on_left, 'image-top-mobile': image_on_left}\">\n <ui-box\n
|
|
1865
|
+
SectionComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SectionComponent, selector: "ui-section", inputs: { brand_background_colour: "brand_background_colour", non_brand_background_colour: "non_brand_background_colour", text_on_dark_override: "text_on_dark_override", image_on_left: "image_on_left", section_type: "section_type", heading_title: "heading_title", heading_subtitle: "heading_subtitle", primary_cta_text: "primary_cta_text", secondary_cta_text: "secondary_cta_text", image: "image", alt_text: "alt_text", href_primary_cta: "href_primary_cta", href_secondary_cta: "href_secondary_cta" }, ngImport: i0__namespace, template: "<ui-box\nid=\"ui-box-{{uiBoxId}}\"\n[box_background]=\"brand_background_colour\"\n[box_space_left]=\"section_type === 'spotlight' && !image_on_left ? 'none' : ''\"\n[box_space_right]=\"section_type === 'spotlight' && image_on_left ? 'none' : ''\"\n[box_space]=\"section_type === 'spotlight' ? 'none' : {mobile: containerInsetSpaceSmall, tablet: containerInsetSpaceLarge, laptop: containerInsetSpaceLarge, desktop: containerInsetSpaceLarge}\">\n\n <ui-grid [grid_gap]=\"section_type === 'spotlight' ? 'none' : 'default'\">\n <ui-column columns=\"6\" [ngClass]=\"{'image-left': image_on_left, 'image-top-mobile': image_on_left}\">\n <ui-box\n box_space=\"none\"\n box_background=\"none\"\n box_align_y=\"center\"\n >\n <ui-image [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"imageAspectRatio\"></ui-image>\n </ui-box>\n </ui-column>\n\n <ui-column columns=\"6\">\n <ui-box\n [box_background]=\"brand_background_colour\"\n box_align_y=\"center\"\n [box_space]=\"section_type === 'spotlight' ? {mobile: contentInsetSpaceSmall, tablet: contentInsetSpaceLarge, laptop: contentInsetSpaceLarge, desktop: contentInsetSpaceLarge} : {mobile: contentInsetSpaceSmall, tablet: contentInsetSpaceSmall, laptop: contentInsetSpaceLarge, desktop: contentInsetSpaceLarge}\">\n <ui-stack\n stack_direction=\"y\"\n stack_align=\"center\"\n stack_distribute=\"center\"\n stack_wrap=\"true\"\n >\n <ui-heading\n [heading_type]=\"section_type === 'spotlight' ? 'primary' : 'functional-primary'\"\n [heading_title]=\"heading_title\"\n [heading_subtitle]=\"heading_subtitle\">\n </ui-heading>\n\n <ui-stack\n stack_direction=\"x\"\n stack_align=\"start\"\n [stack_distribute]=\"section_type === 'spotlight' ? 'center' : 'start'\"\n stack_wrap=\"true\"\n stack_gap=\"near\">\n\n <a class=\"text-link text-link--standalone\" [href]=\"href_primary_cta\" bwtrackas=\"oasys.story-block.primary-cta\">{{primary_cta_text}}</a>\n <a *ngIf=\"section_type !== 'spotlight'\" class=\"text-link text-link--standalone\" [href]=\"href_secondary_cta\" bwtrackas=\"oasys.story-block.secondary-cta\">{{secondary_cta_text}}</a>\n\n </ui-stack>\n </ui-stack>\n </ui-box>\n </ui-column>\n </ui-grid>\n</ui-box>", styles: ["ui-grid ui-column img{width:100%;display:block}ui-grid .image-left{order:1}@media only screen and (max-width: 767px){ui-grid .image-top-mobile{order:0}}\n"], components: [{ 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"] }, { type: LayoutGridComponent, selector: "ui-grid", inputs: ["grid_auto", "grid_collapse_below", "grid_gap"] }, { type: LayoutGridColumnComponent, selector: "ui-column", inputs: ["columns", "column_inset"] }, { type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio"] }, { type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap"] }, { 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"] }], directives: [{ type: i6__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1709
1866
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionComponent, decorators: [{
|
|
1710
1867
|
type: i0.Component,
|
|
1711
1868
|
args: [{
|
|
@@ -1747,13 +1904,13 @@
|
|
|
1747
1904
|
return SectionModule;
|
|
1748
1905
|
}());
|
|
1749
1906
|
SectionModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
1750
|
-
SectionModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionModule, declarations: [SectionComponent], imports: [i6.CommonModule, OasysHeadingModule, OasysLayoutModule], exports: [SectionComponent] });
|
|
1751
|
-
SectionModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionModule, providers: [TokenService], imports: [[i6.CommonModule, OasysHeadingModule, OasysLayoutModule]] });
|
|
1907
|
+
SectionModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionModule, declarations: [SectionComponent], imports: [i6.CommonModule, OasysHeadingModule, OasysImageModule, OasysLayoutModule], exports: [SectionComponent] });
|
|
1908
|
+
SectionModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionModule, providers: [TokenService], imports: [[i6.CommonModule, OasysHeadingModule, OasysImageModule, OasysLayoutModule]] });
|
|
1752
1909
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SectionModule, decorators: [{
|
|
1753
1910
|
type: i0.NgModule,
|
|
1754
1911
|
args: [{
|
|
1755
1912
|
declarations: [SectionComponent],
|
|
1756
|
-
imports: [i6.CommonModule, OasysHeadingModule, OasysLayoutModule],
|
|
1913
|
+
imports: [i6.CommonModule, OasysHeadingModule, OasysImageModule, OasysLayoutModule],
|
|
1757
1914
|
exports: [SectionComponent],
|
|
1758
1915
|
providers: [TokenService]
|
|
1759
1916
|
}]
|
|
@@ -2013,6 +2170,7 @@
|
|
|
2013
2170
|
exports.DividerComponent = DividerComponent;
|
|
2014
2171
|
exports.HeroComponent = HeroComponent;
|
|
2015
2172
|
exports.IconComponent = IconComponent;
|
|
2173
|
+
exports.ImageComponent = ImageComponent;
|
|
2016
2174
|
exports.LayoutBoxComponent = LayoutBoxComponent;
|
|
2017
2175
|
exports.LayoutContainerComponent = LayoutContainerComponent;
|
|
2018
2176
|
exports.LayoutGridColumnComponent = LayoutGridColumnComponent;
|
|
@@ -2035,6 +2193,7 @@
|
|
|
2035
2193
|
exports.OasysHeadingModule = OasysHeadingModule;
|
|
2036
2194
|
exports.OasysHeroModule = OasysHeroModule;
|
|
2037
2195
|
exports.OasysIconModule = OasysIconModule;
|
|
2196
|
+
exports.OasysImageModule = OasysImageModule;
|
|
2038
2197
|
exports.OasysLayoutModule = OasysLayoutModule;
|
|
2039
2198
|
exports.OasysSeoBlockModule = OasysSeoBlockModule;
|
|
2040
2199
|
exports.OasysTextModule = OasysTextModule;
|