oasys-lib 1.26.0 → 1.26.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"oasys-lib.js","sources":["../../../projects/oasys-lib/src/lib/components/alert/alert-cancel.directive.ts","../../../projects/oasys-lib/src/lib/components/alert/alert-confirm.directive.ts","../../../projects/oasys-lib/src/lib/components/alert/alert-content.directive.ts","../../../projects/oasys-lib/src/lib/components/alert/alert-title.directive.ts","../../../projects/oasys-lib/src/lib/services/breakpoint.service.ts","../../../projects/oasys-lib/src/lib/services/token.service.ts","../../../projects/oasys-lib/src/lib/components/layout/box/box.component.ts","../../../projects/oasys-lib/src/lib/components/layout/stack/stack.component.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.component.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.component.html","../../../projects/oasys-lib/src/lib/injection-tokens/frontend-app-injection.tokens.ts","../../../projects/oasys-lib/src/lib/directives/href/href.directive.ts","../../../projects/oasys-lib/src/lib/components/button/button.component.ts","../../../projects/oasys-lib/src/lib/components/button/button.component.html","../../../projects/oasys-lib/src/lib/components/alert/alert.component.ts","../../../projects/oasys-lib/src/lib/components/alert/alert.component.html","../../../projects/oasys-lib/src/lib/services/href.service.ts","../../../projects/oasys-lib/src/lib/directives/directives.module.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.module.ts","../../../projects/oasys-lib/src/lib/components/button/button.module.ts","../../../projects/oasys-lib/src/lib/components/layout/container/container.component.ts","../../../projects/oasys-lib/src/lib/components/layout/grid/grid-column.component.ts","../../../projects/oasys-lib/src/lib/components/layout/grid/grid.component.ts","../../../projects/oasys-lib/src/lib/components/layout/layout.module.ts","../../../projects/oasys-lib/src/lib/components/alert/alert.module.ts","../../../projects/oasys-lib/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/oasys-lib/src/lib/components/breadcrumbs/breadcrumbs.component.html","../../../projects/oasys-lib/src/lib/components/breadcrumbs/breadcrumbs.module.ts","../../../projects/oasys-lib/src/lib/components/button-group/button-group.component.ts","../../../projects/oasys-lib/src/lib/components/button-group/button-group.component.html","../../../projects/oasys-lib/src/lib/components/button-group/button-group.module.ts","../../../projects/oasys-lib/src/lib/services/image.service.ts","../../../projects/oasys-lib/src/lib/components/image/image.component.ts","../../../projects/oasys-lib/src/lib/components/image/image.component.html","../../../projects/oasys-lib/src/lib/components/card/card.component.ts","../../../projects/oasys-lib/src/lib/components/card/card.component.html","../../../projects/oasys-lib/src/lib/components/image/image.module.ts","../../../projects/oasys-lib/src/lib/components/card/card.module.ts","../../../projects/oasys-lib/src/lib/components/divider/divider.component.ts","../../../projects/oasys-lib/src/lib/components/divider/divider.component.html","../../../projects/oasys-lib/src/lib/components/divider/divider.module.ts","../../../projects/oasys-lib/src/lib/components/heading/heading.component.ts","../../../projects/oasys-lib/src/lib/components/heading/heading.component.html","../../../projects/oasys-lib/src/lib/components/heading/heading.module.ts","../../../projects/oasys-lib/src/lib/components/hero/hero.component.ts","../../../projects/oasys-lib/src/lib/components/hero/hero.component.html","../../../projects/oasys-lib/src/lib/components/hero/hero.module.ts","../../../projects/oasys-lib/src/lib/components/seo-block/seo-block.component.ts","../../../projects/oasys-lib/src/lib/components/seo-block/seo-block.component.html","../../../projects/oasys-lib/src/lib/components/seo-block/seo-block.module.ts","../../../projects/oasys-lib/src/lib/components/text/text.component.ts","../../../projects/oasys-lib/src/lib/components/text/text.component.html","../../../projects/oasys-lib/src/lib/components/text/text.module.ts","../../../projects/oasys-lib/src/lib/components/section/section.component.ts","../../../projects/oasys-lib/src/lib/components/section/section.component.html","../../../projects/oasys-lib/src/lib/components/section/section.module.ts","../../../projects/oasys-lib/src/lib/components/carousel/carousel.component.ts","../../../projects/oasys-lib/src/lib/components/carousel/carousel.component.html","../../../projects/oasys-lib/src/lib/components/carousel/carousel.module.ts","../../../projects/oasys-lib/src/lib/components/banner/banner.component.ts","../../../projects/oasys-lib/src/lib/components/banner/banner.component.html","../../../projects/oasys-lib/src/lib/components/banner/banner.module.ts","../../../projects/oasys-lib/src/public-api.ts","../../../projects/oasys-lib/src/oasys-lib.ts"],"sourcesContent":["import { AfterContentChecked, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-cancel, [ui-alert-cancel]',\n})\nexport class OasysAlertCancelDirective implements AfterContentChecked {\n public text = '';\n\n constructor(private elem: ElementRef) {}\n\n public ngAfterContentChecked(): void {\n this.text = this.elem.nativeElement.innerText;\n }\n}\n","import { AfterContentChecked, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-confirm, [ui-alert-confirm]',\n})\nexport class OasysAlertConfirmDirective implements AfterContentChecked {\n public text = '';\n\n constructor(private elem: ElementRef) {}\n\n public ngAfterContentChecked(): void {\n this.text = this.elem.nativeElement.innerText;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-content, [ui-alert-content]',\n})\nexport class OasysAlertContentDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-title, [ui-alert-title]',\n})\nexport class OasysAlertTitleDirective {}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport enum Breakpoint {\n MOBILE = '(min-width: 0px)',\n TABLET = '(min-width: 768px)',\n LAPTOP = '(min-width: 1080px)',\n DESKTOP = '(min-width: 1440px)',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreakpointService implements OnDestroy {\n public currentSize: BehaviorSubject<Breakpoint> =\n new BehaviorSubject<Breakpoint>(Breakpoint.MOBILE);\n\n private breakpoints = [\n Breakpoint.DESKTOP,\n Breakpoint.LAPTOP,\n Breakpoint.TABLET,\n Breakpoint.MOBILE,\n ];\n\n private isDestroyed: Subject<void> = new Subject<void>();\n\n constructor(public breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe(this.breakpoints)\n .pipe(takeUntil(this.isDestroyed))\n .subscribe((result) => {\n for (let match of Object.keys(result.breakpoints)) {\n if (result.breakpoints[match]) {\n return this.currentSize.next(match as Breakpoint);\n }\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.isDestroyed.next();\n this.isDestroyed.complete();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable()\nexport class TokenService {\n\n brandCustomPropertyName: string = '--utility-brand-name';\n\n constructor(@Inject(DOCUMENT) private document: Document){}\n\n /*\n Get the brand name for the currently enable custom property set (ie. /bloomon/variables.css)\n Because variables are scoped via a selector (ie: ':root .bloomon {}')\n we cannot get brand-specific custom properties programatically\n\n Important: Ensure that the component requiring the brand name has locally scoped the custom property:\n | ui-icon {\n | --icon-component-brand: var(--utility-brand-name);\n | }\n */\n getBrandName(): string {\n return this.getTokenValue(this.brandCustomPropertyName);\n }\n\n getTokenValue(tokenName: string, element?: Element): string {\n const rootElement = element || this.document.querySelector('[class*=\"brand-tokens\"]');\n if(!rootElement) {\n return '';\n }\n return this.document.defaultView.getComputedStyle(rootElement)\n .getPropertyValue(tokenName)\n .trim() || '';\n }\n\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Component} from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { LayoutAlignment, LayoutBackgrounds, LayoutBoxSizes, LayoutFillModes } from '../Layout';\n\n@Component({\n selector:'ui-box',\n template: '<div class=\"ui-box-content\"><ng-content></ng-content></div>',\n host: {\n '[class]' : 'boxLayoutClasses'\n },\n styleUrls: ['./box.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutBoxComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-box';\n boxLayoutClasses?: string[];\n backgroundIsDark: boolean = false;\n\n @Input() box_space?: LayoutBoxSizes = 'default';\n\n @Input() box_space_top?: LayoutBoxSizes;\n @Input() box_space_right?: LayoutBoxSizes;\n @Input() box_space_bottom?: LayoutBoxSizes;\n @Input() box_space_left?: LayoutBoxSizes;\n\n @Input() box_align_x?: LayoutAlignment = 'start';\n @Input() box_align_y?: LayoutAlignment = 'start';\n\n @Input() box_fill_mode?: LayoutFillModes = 'fill';\n\n @Input() box_background: LayoutBackgrounds = 'core-primary';\n @Input() box_content_fill_width: boolean = false;\n\n constructor(private changes: ChangeDetectorRef, private tokenService: TokenService) {}\n\n /**\n * Check the passed string to see if it contains JSON\n *\n * @param string\n * @returns - boolean\n */\n stringContainsJson(string: string):boolean {\n try {\n JSON.parse(string);\n } catch (e) {\n return false;\n }\n\n return true;\n }\n\n getSizeClasses(spaceInput?: LayoutBoxSizes, overrideName?: string): string[] {\n if(!spaceInput || spaceInput === undefined){\n return null;\n }\n\n // Used for responsive spacing, check if the input is either an object or JSON\n if(typeof spaceInput === 'object' || this.stringContainsJson(spaceInput)) {\n // If JSON then convert this to an object\n const spaceInputObject: LayoutBoxSizes = typeof spaceInput === 'object' ? spaceInput : JSON.parse(spaceInput)\n\n return Object.keys(spaceInputObject).map((key) => {\n return `${this.prefix}-${spaceInputObject[key]}-${key}${overrideName ? `-${overrideName}` : ``}`\n });\n\n }\n\n return [\n this.prefix,\n `${this.prefix}-${spaceInput}${overrideName ? `-${overrideName}` : ``}`\n ];\n\n }\n\n getOverrideClasses(spaceOverrides): string[] {\n const spaceTypes = ['top', 'right', 'bottom', 'left'];\n\n return spaceOverrides.map((item, index) => {\n return this.getSizeClasses(item, spaceTypes[index]);\n }).filter(Boolean);\n }\n\n getAlignmentClasses(alignmentOverride): string[] {\n const spaceTypes = ['align-x', 'distribute-y'];\n\n return alignmentOverride.map((item, index) => {\n return item ? `${this.prefix}-${spaceTypes[index]}-${item}` : undefined;\n }).filter(Boolean);\n }\n\n getBackgroundClass(): string {\n const value = this.box_background ? `${this.prefix}-background-${this.box_background}` : ``;\n return value;\n }\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n const spaceOverrides = [this.box_space_top, this.box_space_right, this.box_space_bottom, this.box_space_left];\n const alignmentOverride = [this.box_align_x, this.box_align_y];\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.box_background}`) === 'on-dark';\n // Basic basic classes\n this.boxLayoutClasses = [\n this.getSizeClasses(this.box_space),\n this.getOverrideClasses(spaceOverrides),\n this.getAlignmentClasses(alignmentOverride),\n this.getBackgroundClass(),\n this.box_fill_mode === 'fit' ? `${this.prefix}-fit-content` : `${this.prefix}-fill-container`,\n this.backgroundIsDark ? 'text-color--on-dark' : '',\n this.box_content_fill_width ? '' : `${this.prefix}-content-max-width`\n ].flat(10).filter(Boolean);\n\n this.didFirstInit = true;\n }\n\n}\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { LayoutDirections, LayoutAlignment, LayoutGapSizes, LayoutDistribute } from '../Layout';\n\n@Component({\n selector:'ui-stack',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'stackLayoutClasses'\n },\n styleUrls: ['./stack.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutStackComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-stack';\n stackLayoutClasses?: string[];\n\n @Input() stack_gap: LayoutGapSizes = 'default';\n @Input() stack_align: LayoutAlignment = 'start';\n @Input() stack_direction: LayoutDirections = 'y';\n @Input() stack_distribute?: LayoutDistribute = 'start';\n @Input() stack_wrap?: Boolean = false;\n @Input() stack_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'none';\n\n constructor(private changes: ChangeDetectorRef) {}\n\n defaultDistribution(): LayoutDistribute {\n if(this.stack_distribute) {\n return this.stack_distribute;\n }\n\n return this.stack_direction === 'x' ? 'fit' : 'fill';\n }\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.stack_distribute = this.defaultDistribution();\n this.stackLayoutClasses = [\n this.prefix,\n `${this.prefix}-${this.stack_gap}`,\n `${this.prefix}-align-${this.stack_align}`,\n `${this.prefix}-distribute-${this.stack_distribute}`,\n `${this.prefix}-direction-${this.stack_direction}`,\n `${this.prefix}-${this.stack_wrap ? 'wrap' : 'no-wrap'}`,\n `${this.prefix}-collapse-below-${this.stack_collapse_below}`\n ]\n this.didFirstInit = true;\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { IconContext, IconNames } from './icon';\n\n@Component({\n selector:'ui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent implements OnInit, OnChanges {\n @Input() icon_size: 'small'|'large' = 'large';\n @Input() icon_name!: IconNames;\n @Input() icon_context: IconContext = 'none';\n\n @Input() icon_width?: number;\n @Input() icon_height?: number;\n @Input() icon_class?: string;\n\n size?: string;\n iconBrandPath?: string;\n iconDisplayClasses: string[];\n\n constructor(@Inject(DOCUMENT) private document: Document, private tokenService: TokenService) { }\n\n convertRemToPixels(remString: string): number {\n const remNumber = parseFloat(remString.replace('rem', ''));\n return remNumber * parseFloat(getComputedStyle(this.document.documentElement).fontSize);\n }\n\n ngOnChanges(): void {\n this.ngOnInit();\n }\n\n ngOnInit(): void {\n this.iconBrandPath = `${this.tokenService.getBrandName()}`\n this.size = this.tokenService.getTokenValue(`--global-size-icon-${this.icon_size}`);\n\n this.iconDisplayClasses = [\n `icon-context-${this.icon_context}`,\n `icon-size-${this.icon_size}`\n ];\n\n const sizeInPixels = this.convertRemToPixels(this.size);\n this.icon_width = sizeInPixels;\n this.icon_height = sizeInPixels;\n }\n\n}\n","<div class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"icon_width\" [attr.height]=\"icon_height\" [attr.class]=\"icon_class\">\n <use attr.xlink:href=\"./{{iconBrandPath}}/assets/icons/icons.svg#icon-{{icon_name}}\"></use>\n </svg>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { IRoutingHandlerService } from '../directives/href/href.directive';\n\nexport const ROUTING_HANDLER = new InjectionToken<IRoutingHandlerService>('ROUTING_HANDLER');\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ROUTING_HANDLER} from '../../injection-tokens/frontend-app-injection.tokens';\n\n@Directive({\n selector: 'a, uiHref, [uiHref]'\n})\n\nexport class OasysHrefDirective implements AfterViewInit{\n element: ElementRef;\n \n constructor(\n el: ElementRef,\n @Inject(ROUTING_HANDLER) private routingHandler: IRoutingHandlerService) {\n this.element = el;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n this.routingHandler.handleRoutingOnClick(this.element.nativeElement, event);\n }\n\n ngAfterViewInit(): void {\n this.routingHandler.handleHrefDomains(this.element.nativeElement);\n }\n}\n\nexport interface IRoutingHandlerService {\n handleRoutingOnClick(element: any, event: any): void;\n handleHrefDomains(element: any): void;\n};","import { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, ContentChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { IconNames, IconContext } from '../icon/icon';\nimport { TextTransform } from '../text/text';\nimport {\n // ButtonTypeOptions,\n UIButton,\n UIButtonBoolean,\n UIButtonSize,\n UIButtonType\n} from './button';\n\n@Component({\n selector:'ui-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OasysButtonComponent implements OnInit, OnChanges, AfterViewInit {\n\n button: UIButton;\n\n // // Button Content\n @Input() button_icon?: IconNames;\n @Input() button_icon_placement: IconContext = 'leading';\n\n @ContentChild('buttontext') ngContent: ElementRef;\n\n // Button Stylings\n @Input() button_size: UIButtonSize = 'large';\n\n @Input() button_full_width: UIButtonBoolean = false;\n @Input() button_type: UIButtonType = 'primary';\n @Input() button_disabled: UIButtonBoolean = false;\n @Input() button_text_nowrap: UIButtonBoolean = false;\n\n // Button Actions\n @Input() href: string;\n @Output() clicked: EventEmitter<void> = new EventEmitter();\n\n buttonDisplayClasses: string[];\n iconContext: IconContext = 'none';\n textTransform!: TextTransform;\n accessibleButtonContent: string;\n outlineButtonTypes = ['secondary', 'secondary-inverse']\n\n constructor(private changes: ChangeDetectorRef) {}\n\n onClick(): void {\n this.clicked.emit();\n }\n\n createButton(): UIButton {\n\n return <UIButton>{\n buttonIcon: this.button_icon,\n buttonIconPlacement: this.button_icon_placement,\n buttonType: this.button_type,\n buttonSize: this.button_size,\n buttonDisabled: this.button_disabled,\n href: this.href,\n target: '',\n buttonDisplayClasses: [\n `type-${this.button_type}`,\n `size-${this.button_size}`,\n `${this.button_icon ? 'button--has-icon': ''}`,\n `${this.button_text_nowrap ? 'button--nowrap': ''}`,\n `${this.button_full_width ? 'button--full-width': ''}`,\n `${this.button_icon ? 'button--icon--'+this.button_icon_placement : ''}`,\n `${this.outlineButtonTypes.indexOf(this.button_type) !== -1 ? 'button--outline' : ''}`\n ].filter((d) => !!d)\n };\n }\n\n ngAfterViewInit(): void {\n if(this.ngContent?.nativeElement?.innerText) {\n this.accessibleButtonContent = this.ngContent.nativeElement.innerText;\n } else {\n throw new Error(`\n No inner text found. All buttons should have text passed via ng-content to enable accessibility for screen readers, this includes icon-only buttons.\n\n Pass content using the template variable #buttontext eg:\n ui-button()\n span(#buttontext) Buy All The Things\n `)\n }\n }\n\n ngOnChanges(): void {\n this.button = this.createButton();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.button = this.createButton();\n }\n}\n","<ng-template #content>\n <div class=\"button-content\">\n <ui-icon *ngIf=\"button.buttonIcon && button.buttonIconPlacement !== 'none'\" [icon_name]=\"button.buttonIcon\" [icon_size]=\"button.buttonSize\" [icon_class]=\"'buttonIcon'\" [icon_context]=\"button.buttonIconPlacement\"></ui-icon>\n <span class=\"ui-text\" [ngClass]=\"{'visuallyhidden': button.buttonIconPlacement === 'iconOnly'}\">\n <ng-content></ng-content>\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n <div class=\"button-overlay-focus\"></div>\n</ng-template>\n\n<button \n *ngIf=\"!button.href\" \n (click)=\"onClick()\"\n [ngClass]=\"button.buttonDisplayClasses\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n [attr.aria-label]=\"accessibleButtonContent\"\n [attr.title]=\"accessibleButtonContent\"\n role=\"button\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<a \n *ngIf=\"button.href\"\n [href]=\"button.href\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n [attr.aria-label]=\"accessibleButtonContent\"\n [attr.title]=\"accessibleButtonContent\"\n [ngClass]=\"button.buttonDisplayClasses\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport {\n Breakpoint,\n BreakpointService,\n} from '../../services/breakpoint.service';\nimport { OasysAlertCancelDirective } from './alert-cancel.directive';\nimport { OasysAlertConfirmDirective } from './alert-confirm.directive';\n\nexport type UIAlertTone = 'positive' | 'neutral' | 'negative';\n\n@Component({\n selector: 'ui-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n})\nexport class OasysAlertComponent {\n @Input()\n public direction: 'dynamic' | 'vertical' | 'horizontal' = 'dynamic';\n\n @Input()\n public tone: UIAlertTone = 'neutral';\n\n @Output()\n public cancel: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public confirm: EventEmitter<void> = new EventEmitter<void>();\n\n @ContentChild(OasysAlertCancelDirective)\n public cancelButton: OasysAlertCancelDirective;\n\n @ContentChild(OasysAlertConfirmDirective)\n public confirmButton: OasysAlertConfirmDirective;\n\n constructor(public breakpointService: BreakpointService) {}\n\n get isVertical(): boolean {\n switch (this.direction) {\n case 'vertical':\n return true;\n case 'horizontal':\n return false;\n default:\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE;\n }\n }\n\n public cancelled(): void {\n this.cancel.emit();\n }\n\n public confirmed(): void {\n this.confirm.emit();\n }\n}\n","<ui-box class=\"ui-alert\" box_space=\"near\" box_align_x=\"center\" [ngClass]=\"tone\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\">\n <div class=\"badge\" [ngClass]=\"tone\" [ngSwitch]=\"tone\">\n <ui-icon *ngSwitchCase=\"'negative'\" icon_name=\"error\"></ui-icon>\n <ui-icon *ngSwitchCase=\"'positive'\" icon_name=\"tick\"></ui-icon>\n <ui-icon *ngSwitchDefault icon_name=\"info\"></ui-icon>\n </div>\n\n <ui-stack stack_gap=\"near\" [stack_direction]=\"isVertical ? 'y' : 'x'\">\n <ui-stack class=\"content\" stack_direction=\"y\">\n <div class=\"text-body--emphasis\">\n <ng-content select=\"ui-alert-title\"></ng-content>\n </div>\n <div>\n <ng-content select=\"ui-alert-content\"></ng-content>\n </div>\n </ui-stack>\n\n <ui-box\n box_space=\"none\"\n box_background=\"transparent\"\n [box_fill_mode]=\"isVertical ? 'fill' : 'fit'\"\n >\n <ui-stack stack_direction=\"x\" stack_gap=\"near\" stack_distribute=\"end\">\n <ui-button\n *ngIf=\"cancelButton && cancelButton.text\"\n button_type=\"tertiary\"\n button_text_nowrap=\"true\"\n (clicked)=\"cancelled()\"\n >\n <span #buttontext>\n <ng-content select=\"ui-alert-cancel\"></ng-content>\n </span>\n </ui-button>\n <ui-button\n *ngIf=\"confirmButton && confirmButton.text\"\n button_type=\"secondary\"\n button_text_nowrap=\"true\"\n (clicked)=\"confirmed()\"\n >\n <span #buttontext>\n <ng-content select=\"ui-alert-confirm\"></ng-content>\n </span>\n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n","import { Injectable } from '@angular/core';\nimport { IRoutingHandlerService } from '../directives/href/href.directive';\n\n@Injectable({ providedIn: 'root' })\nexport class HrefService implements IRoutingHandlerService {\n public handleRoutingOnClick(): void {\n // throw new Error('handleRoutingOnClick has not been implemented');\n }\n\n public handleHrefDomains(): void {\n // throw new Error('handleHrefDomains has not been implemented');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ROUTING_HANDLER } from '../injection-tokens/frontend-app-injection.tokens';\nimport { HrefService } from '../services/href.service';\nimport { OasysHrefDirective } from './href/href.directive';\n\n@NgModule({\n declarations: [OasysHrefDirective],\n imports: [CommonModule, RouterModule],\n exports: [OasysHrefDirective],\n providers: [{ provide: ROUTING_HANDLER, useClass: HrefService }],\n})\nexport class OasysDirectivesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { IconComponent } from './icon.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [IconComponent],\n imports: [CommonModule, OasysDirectivesModule],\n exports: [IconComponent],\n providers: [TokenService],\n})\nexport class OasysIconModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysButtonComponent } from './button.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [OasysButtonComponent],\n imports: [CommonModule, RouterModule, OasysIconModule, OasysDirectivesModule],\n exports: [OasysButtonComponent],\n})\nexport class OasysButtonModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Component} from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { LayoutContainerSizes } from '../Layout';\n@Component({\n selector:'ui-container',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n '[class]' : 'containerLayoutClasses'\n },\n styleUrls: ['./container.component.scss'],\n\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutContainerComponent implements OnInit, OnChanges {\n @Input() container_fluid: boolean = false;\n @Input() container_gutter: true | false | 'true' | 'false' = true;\n prefix = 'ui-layout-container';\n containerLayoutClasses?: string[];\n\n containerGutterNameLarge: string;\n containerGutterNameSmall: string;\n containerHorizontalSizes: LayoutContainerSizes;\n\n constructor(private changes: ChangeDetectorRef) { }\n\n ngOnChanges(): void {\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.containerLayoutClasses = [\n this.prefix,\n this.container_fluid ? `${this.prefix}-fluid` : '',\n this.container_gutter === true || this.container_gutter === 'true' ? '' : `${this.prefix}-no-gutter`\n ].flat(10).filter(Boolean);\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ResponsiveGridColumns } from '../Layout';\n\n@Component({\n selector:'ui-column',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'columnLayoutClasses'\n },\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutGridColumnComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-column';\n columnLayoutClasses?: string[];\n\n @Input() columns: ResponsiveGridColumns = 12;\n @Input() column_inset: ResponsiveGridColumns;\n\n constructor(private changes: ChangeDetectorRef) {}\n\n getSizeClasses(columns: ResponsiveGridColumns, classString: string): string[] {\n\n if(!columns) {\n return [''];\n }\n\n if(typeof columns === 'object'){\n\n return Object.keys(columns).map((key) => {\n return `${this.prefix}${classString}${key}-${columns[key]}`\n });\n\n }\n\n return [\n this.prefix,\n `${this.prefix}${classString}${columns}`,\n ];\n\n }\n\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.columnLayoutClasses = [\n this.prefix,\n this.getSizeClasses(this.columns, '-col-'),\n this.getSizeClasses(this.column_inset, '-col-inset-')\n ].flat(10).filter(Boolean);\n this.didFirstInit = true;\n }\n\n}\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector:'ui-grid',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'gridLayoutClasses'\n },\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutGridComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-grid';\n gridLayoutClasses?: string[];\n\n @Input() grid_auto: boolean = false;\n @Input() grid_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n @Input() grid_gap: 'default' | 'none' | 'expanded' = 'default';\n\n constructor(private changes: ChangeDetectorRef) {}\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n\n this.gridLayoutClasses = [\n this.prefix,\n `${this.prefix}-${this.grid_gap}`,\n `${this.prefix}-${this.grid_auto ? 'width-auto' : ''}`,\n `${this.prefix}-collapse-below-${this.grid_collapse_below}`,\n ]\n this.didFirstInit = true;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBoxComponent } from './box/box.component';\nimport { LayoutContainerComponent } from './container/container.component';\nimport { LayoutGridColumnComponent } from './grid/grid-column.component';\nimport { LayoutGridComponent } from './grid/grid.component';\nimport { LayoutStackComponent } from './stack/stack.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [\n LayoutBoxComponent,\n LayoutContainerComponent,\n LayoutGridComponent,\n LayoutGridColumnComponent,\n LayoutStackComponent,\n ],\n imports: [OasysDirectivesModule],\n exports: [\n LayoutBoxComponent,\n LayoutContainerComponent,\n LayoutGridComponent,\n LayoutGridColumnComponent,\n LayoutStackComponent,\n ],\n providers: [TokenService],\n})\nexport class OasysLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysAlertCancelDirective } from './alert-cancel.directive';\nimport { OasysAlertConfirmDirective } from './alert-confirm.directive';\nimport { OasysAlertContentDirective } from './alert-content.directive';\nimport { OasysAlertTitleDirective } from './alert-title.directive';\nimport { OasysAlertComponent } from './alert.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [\n OasysAlertCancelDirective,\n OasysAlertConfirmDirective,\n OasysAlertContentDirective,\n OasysAlertTitleDirective,\n OasysAlertComponent,\n ],\n imports: [\n CommonModule,\n OasysLayoutModule,\n OasysButtonModule,\n OasysIconModule,\n OasysDirectivesModule\n ],\n exports: [\n OasysAlertCancelDirective,\n OasysAlertConfirmDirective,\n OasysAlertContentDirective,\n OasysAlertTitleDirective,\n OasysAlertComponent,\n ],\n})\nexport class OasysAlertModule {}\n","import { OnInit, ViewEncapsulation } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Component} from '@angular/core';\n\ninterface BreadcrumbsItem{\n href: string;\n name: string;\n}\n@Component({\n selector:'ui-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BreadcrumbsComponent implements OnInit {\n\n @Input() breadcrumbs_values: string | BreadcrumbsItem[];\n values: BreadcrumbsItem[];\n constructor() { }\n\n ngOnInit(): void {\n if(typeof this.breadcrumbs_values === 'string'){\n this.values = JSON.parse(this.breadcrumbs_values)??[];\n }else{\n this.values = this.breadcrumbs_values;\n }\n\n }\n\n}\n\n","<ui-box box_fill_mode=\"fill\" box_space=\"near\" box_background=\"core-secondary\" *ngIf=\"values\">\n <nav aria-label=\"breadcrumbs\">\n <ui-stack stack_gap=\"none\" stack_direction=\"x\" stack_align=\"center\" stack_wrap=\"true\">\n <ng-container *ngFor=\"let item of values; let i = index\">\n <!-- Link followed by an icon -->\n <ui-box box_space=\"none\" box_background=\"none\" box_fill_mode=\"fit\">\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_wrap=\"false\" stack_gap=\"none\">\n <ui-button *ngIf=\"i<values.length-1\" button_size=\"small\" button_type=\"tertiary\" button_full_width=\"true\" href=\"{{item.href}}\"> \n <span #buttontext> {{item.name}} </span>\n </ui-button> \n <ui-icon *ngIf=\"i<values.length-1\" icon_name=\"chevron-right\" icon_size=\"small\" icon_class=\"buttonIcon\" aria-hidden=\"true\"></ui-icon>\n </ui-stack>\n </ui-box>\n <!-- Last link and current page -->\n <ui-button *ngIf=\"i===values.length-1\" button_size=\"small\" button_type=\"tertiary\" button_full_width=\"true\" href=\"{{item.href}}\" [attr.aria-current]=\"item.name\"> \n <span #buttontext> {{item.name}} </span>\n </ui-button> \n </ng-container>\n </ui-stack>\n </nav>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { BreadcrumbsComponent } from './breadcrumbs.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [BreadcrumbsComponent],\n imports: [CommonModule, OasysButtonModule, OasysIconModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [BreadcrumbsComponent],\n})\nexport class OasysBreadcrumbModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, ContentChild, ElementRef, AfterViewInit, Inject, HostBinding } from '@angular/core';\nimport { Breakpoint, BreakpointService } from '../../services/breakpoint.service';\n\n\n@Component({\n selector:'ui-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n encapsulation: ViewEncapsulation.None, // to hide non ui-buttons via css\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OasysButtonGroupComponent implements OnInit {\n\n prefix: '';\n\n @Input() button_group_align: 'start' | 'center' | 'end' = 'start';\n @Input() button_group_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n\n // Used for only 'ghost' buttons (button_type=\"tertiary\")\n // applies a negative X margin so that the text of a button aligns with\n // other content. Do not use unless all buttons are of type Tertiary.\n @Input() button_group_ghost_align: 'none' | 'small' | 'large' = 'none';\n\n @HostBinding('class') get class() {\n return `\n ui-button-group-ghost-${this.button_group_ghost_align}\n `\n }\n\n constructor(private breakpointService: BreakpointService){}\n\n\n ngOnInit(): void {\n }\n\n get shouldCollapse(): boolean {\n switch (this.button_group_collapse_below) {\n case 'tablet':\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE;\n case 'laptop':\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE || this.breakpointService.currentSize.value === Breakpoint.TABLET\n case 'desktop':\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE || this.breakpointService.currentSize.value === Breakpoint.TABLET || this.breakpointService.currentSize.value === Breakpoint.LAPTOP;\n default:\n return false;\n }\n }\n}\n","<ui-stack\n stack_gap=\"near\"\n stack_direction=\"x\"\n [stack_collapse_below]=\"button_group_collapse_below\"\n [stack_distribute]=\"button_group_align\"\n>\n<ng-content></ng-content>\n</ui-stack>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { OasysButtonGroupComponent } from './button-group.component';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysLayoutModule } from '../layout';\n\n@NgModule({\n declarations: [OasysButtonGroupComponent],\n imports: [OasysLayoutModule, CommonModule, RouterModule, OasysButtonModule],\n exports: [OasysButtonGroupComponent],\n})\nexport class OasysButtonGroupModule {}\n","import { Injectable, Inject, Optional } from '@angular/core';\n\ntype ImageFormat = 'webp' | 'jpg';\ntype ImageCDNs = 'contentful' | 'thumbor' | void;\n\nexport interface ImageResponse {\n srcSetUrls: string;\n fallbackUrl: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImageService {\n private mediaUrl: string;\n private fallbackBreakpoint: number = 768;\n\n private breakpoints: number[] = [\n 320, 360, 375, 414, 640, 750, 768, 1080, 1280, 1366, 1440, 1536, 1600, 1680, 1920, 2560, 3440,\n 3840,\n ];\n\n constructor(@Inject('env') @Optional() env: { mediaUrl: string }) {\n this.mediaUrl = env?.mediaUrl ?? 'https://media.bloomdev.org';\n }\n\n private getQualityForWidth(width: number): number {\n return width > 1440 ? 50 : 75;\n }\n\n private generateUrl(\n baseUrl: string,\n format: ImageFormat,\n width: number,\n quality: number,\n cdnType: ImageCDNs,\n ): string {\n switch (cdnType) {\n case 'thumbor':\n return `${this.mediaUrl}/v1/${width}x0/filters:format(${format}):quality(${quality})/${baseUrl}`;\n case 'contentful':\n return `${baseUrl}?w=${width}&fm=${format}&q=${quality}`;\n default:\n return baseUrl;\n }\n }\n\n private generateUrls(\n baseUrl: string,\n format: ImageFormat,\n sizes: number[],\n isFallback: boolean,\n cdnType: ImageCDNs,\n ): string {\n return sizes\n .map((width) => {\n const quality = isFallback ? 100 : this.getQualityForWidth(width);\n const url = this.generateUrl(baseUrl, format, width, quality, cdnType);\n return isFallback ? url : `${url} ${width}w`;\n })\n .join(', ');\n }\n\n private detectCdnType(baseUrl: string): ImageCDNs {\n if (\n baseUrl.includes('assets-0.bloomandwild.com') ||\n baseUrl.includes('bw-site-images-processed-staging.s3.amazonaws.com')\n ) {\n return 'thumbor';\n } else if (baseUrl.includes('images.ctfassets.net/')) {\n return 'contentful';\n }\n }\n\n private getImageUrlsFromCDN(\n baseUrl: string,\n format: ImageFormat,\n sizes: number[],\n isFallback: boolean,\n ): string {\n const cdnType = this.detectCdnType(baseUrl);\n\n if (isFallback) {\n sizes = [this.fallbackBreakpoint];\n }\n\n return this.generateUrls(baseUrl, format, sizes, isFallback, cdnType);\n }\n\n public generateImageUrl(baseUrl: string): ImageResponse {\n return {\n srcSetUrls: this.getImageUrlsFromCDN(baseUrl, 'webp', this.breakpoints, false),\n fallbackUrl: this.getImageUrlsFromCDN(baseUrl, 'jpg', this.breakpoints, true),\n } as ImageResponse;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\nimport { ImageService, ImageResponse } from '../../services/image.service';\n\n@Component({\n selector: 'ui-image',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.scss']\n})\nexport class ImageComponent implements OnInit {\n\n @Input() image_src: string = '';\n @Input() image_alt_text: string;\n @Input() image_fill: boolean;\n\n @Input() fetchpriority: 'low' | 'high' | 'auto' = 'auto';\n @Input() loading: 'lazy' | 'eager' | 'auto' = 'lazy';\n @Input() preload_aspect_ratio: '1:1' | '3:4' | '3:5' | '4:3' | '5:3' | '5:4' | '13:15' = '1:1'\n\n imageUrlResponse: ImageResponse;\n imageRatioWidth: number;\n imageRatioHeight: number;\n\n private intersectionObserver: IntersectionObserver;\n\n @HostBinding('class') get class() {\n return `${this.image_fill ? 'imageFill' : ''}`\n }\n\n constructor(private imageService: ImageService, private el: ElementRef) {}\n\n private setupLazyLoading(): void {\n const options = {\n removeAfterObserved: true,\n root: null,\n rootMargin: '200px',\n threshold: 0.01\n };\n\n this.intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const imageElement = this.el.nativeElement.querySelector('img');\n const sourceElement = this.el.nativeElement.querySelector('source');\n imageElement.setAttribute('src', this.imageUrlResponse.fallbackUrl);\n sourceElement.setAttribute('srcset', this.imageUrlResponse.srcSetUrls);\n this.intersectionObserver.unobserve(entry.target);\n }\n });\n }, options);\n\n const imageElement = this.el.nativeElement.querySelector('img');\n this.intersectionObserver.observe(imageElement);\n }\n\n\n ngOnInit(): void {\n\n const ratios = this.preload_aspect_ratio.split(':');\n this.imageRatioWidth = parseInt(ratios[0], 10);\n this.imageRatioHeight = parseInt(ratios[1], 10);\n this.imageUrlResponse = this.imageService.generateImageUrl(this.image_src);\n\n\n if (!('loading' in HTMLImageElement.prototype)) {\n this.setupLazyLoading();\n }\n\n if(!this.image_alt_text) {\n console.error(`Image is missing an alt tag, image url is ${this.image_src}`);\n }\n }\n\n}\n","<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","import { AfterViewInit, Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { CardImageFormat } from './card';\n@Component({\n selector: 'ui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent implements OnInit, AfterViewInit {\n // We need to know the label height so that we can adjust the parent stack placement\n @ViewChild(\"imagelabel\", { static: false, read: ElementRef }) imageLabel: ElementRef;\n\n // Card image variables\n @Input() label_text: string;\n @Input() image: string;\n @Input() alt_text: string;\n @Input() image_format: CardImageFormat;\n aspectRatio: string;\n\n // Card content variables\n @Input() small_title_left: string;\n @Input() small_sub_title_right: string;\n @Input() standard_content: string;\n @Input() bold_content: string;\n stackOffset: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.aspectRatio = this.setImageAspectRatio(this.image_format);\n \n }\n\n ngAfterViewInit(): void {\n this.setStackPlacement();\n }\n\n /**\n * This calculates the stack offset based on the image labels height.\n */\n @HostListener('window:resize', ['$event'])\n setStackPlacement(): void {\n this.stackOffset = `calc(-${\n this.imageLabel?.nativeElement?.offsetHeight / 2\n }px - ${this.tokenService.getTokenValue('--semantic-spacing-box-tight')}`;\n }\n\n /**\n * This function retrieves the appropriate design token value based on the passed imageFormat choice\n * \n * @param format - The format of the image e.g. square, portrait, landscape\n * @returns - string to be used as the aspect ratio\n */\n setImageAspectRatio(format: CardImageFormat): string {\n switch(format) {\n case 'square':\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-square');\n case 'portrait':\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-portrait');\n case 'landscape':\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-landscape');\n default:\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-portrait');\n }\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ImageService } from '../../services/image.service';\nimport { ImageComponent } from './image.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [ImageComponent],\n imports: [CommonModule, OasysDirectivesModule],\n exports: [ImageComponent],\n providers: [ImageService],\n})\nexport class OasysImageModule {\n public static forRoot(environment: { mediaUrl: string }): ModuleWithProviders<OasysImageModule> {\n return {\n ngModule: OasysImageModule,\n providers: [\n ImageService,\n {\n provide: 'env',\n useValue: environment,\n },\n ],\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { OasysImageModule } from '../image';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { CardComponent } from './card.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule],\n exports: [CardComponent],\n providers: [TokenService],\n})\nexport class OasysCardModule {}\n","import { Input, ViewEncapsulation } from '@angular/core';\nimport { Component} from '@angular/core';\nimport { DividerType } from './divider';\n\n\n@Component({\n selector:'ui-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DividerComponent {\n @Input()\n divider_type: DividerType = 'secondary';\n\n getClass(): string{\n return this.divider_type==='secondary'? `ui-divider--type-${this.divider_type}`: `ui-divider--type-${this.divider_type}`;\n }\n}\n\n","<ui-box box_fill_mode=\"fill\" box_space=\"none\" box_background=\"core-secondary\" [ngClass]=\"getClass()\"></ui-box>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { DividerComponent } from './divider.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [DividerComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [DividerComponent],\n})\nexport class OasysDividerModule {}\n","import { Component, Input, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, HostBinding } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { HeadingAlignment, HeadingGap, HeadingType } from './heading';\nimport { UIBoolean } from './heading';\n\n@Component({\n selector:'ui-heading',\n templateUrl: './heading.component.html',\n styleUrls: ['./heading.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class OasysHeadingComponent implements OnInit {\n\n @Input()\n heading_type: HeadingType = 'primary';\n\n @Input()\n heading_on_dark: UIBoolean;\n\n @Input()\n heading_title: string;\n\n @Input()\n heading_seo_priority: boolean = false;\n\n @Input()\n heading_priority?: 1 | 2 | 3 | 4 | 5 | 6;\n\n @Input()\n heading_alignment_override?: HeadingAlignment;\n\n @Input()\n heading_subtitle?: string = '';\n\n @Input()\n heading_surtitle?: string = '';\n\n headingAlignment: HeadingAlignment;\n headingGap: HeadingGap;\n\n\n @HostBinding('class') get class() {\n return `\n ${this.heading_on_dark ? 'text-color--on-dark' : ''}\n ui-heading-alignment-${this.headingAlignment}\n `\n }\n\n constructor(private tokenService: TokenService) { }\n\n headingTypeIsFunctional(headingType: HeadingType): boolean {\n return (headingType||'').indexOf('functional') !== -1;\n }\n\n setupHeadingStackAlignment(headingType: HeadingType): void {\n if(this.heading_alignment_override) {\n this.headingAlignment = this.heading_alignment_override;\n return;\n }\n\n const alignment = this.tokenService.getTokenValue('--component-heading-alignment-default') as HeadingAlignment;\n const functionalAlignment = this.tokenService.getTokenValue('--component-heading-alignment-functional') as HeadingAlignment;\n\n this.headingAlignment = this.headingTypeIsFunctional(headingType) ? functionalAlignment : alignment;\n\n }\n\n setupHeadingStackGap(headingType: HeadingType): void {\n if(this.headingTypeIsFunctional(headingType)){\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-functional') as HeadingGap;\n return;\n }\n\n if(this.heading_type === 'secondary') {\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-secondary') as HeadingGap;\n return;\n }\n\n if(this.heading_type === 'primary') {\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-primary') as HeadingGap;\n return;\n }\n\n // Hero gap\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-default') as HeadingGap;\n }\n\n ngOnInit(): void {\n this.setupHeadingStackAlignment(this.heading_type);\n this.setupHeadingStackGap(this.heading_type);\n this.heading_priority = this.heading_priority || this.heading_seo_priority ? 1 : 2;\n }\n\n}\n","<div>\n <ui-stack [stack_align]=\"headingAlignment\" [stack_gap]=\"headingGap\">\n\n <p *ngIf=\"heading_surtitle && heading_surtitle.length\" class=\"heading-surtitle text-body--supporting text-color--supporting\">\n {{heading_surtitle}}\n </p>\n\n <ng-template #content>\n <span\n class=\"heading-title\"\n [ngClass]=\"{\n 'text-heading': !headingTypeIsFunctional(heading_type),\n 'text-heading--functional': headingTypeIsFunctional(heading_type),\n\n 'text-heading--hero': heading_type === 'hero',\n 'text-heading--primary': heading_type === 'primary',\n 'text-heading--secondary': heading_type === 'secondary',\n 'text-heading--functional--primary': heading_type === 'functional-primary',\n 'text-heading--functional--secondary': heading_type === 'functional-secondary'\n }\"\n >{{heading_title}}</span>\n </ng-template>\n\n <h1 role=\"heading\" [attr.aria-level]=\"heading_priority\" class=\"seo-h1\" *ngIf=\"heading_seo_priority\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h1>\n <span role=\"heading\" [attr.aria-level]=\"heading_priority\" *ngIf=\"!heading_seo_priority\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n\n <p\n *ngIf=\"heading_subtitle && heading_subtitle.length\"\n class=\"heading-subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n >{{heading_subtitle}}</p>\n\n </ui-stack>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { OasysHeadingComponent } from './heading.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [OasysHeadingComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [OasysHeadingComponent],\n providers: [TokenService],\n})\nexport class OasysHeadingModule {}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\n\n@Component({\n selector: 'ui-hero',\n templateUrl: './hero.component.html',\n styleUrls: ['./hero.component.scss']\n})\nexport class HeroComponent implements OnInit {\n\n // Style input variables\n @Input() min_container_height: number;\n @Input() image_left_desktop: boolean = false;\n @Input() image_top_mobile: boolean = true;\n @Input() background_colour: LayoutBackgrounds;\n\n // Content input variables\n @Input() heading_title: string;\n @Input() heading_subtitle: string;\n @Input() heading_surtitle: string;\n @Input() primary_cta_text: string;\n @Input() secondary_cta_text: string;\n @Input() image: string;\n @Input() alt_text: string;\n @Input() media_type: 'image' | 'video' = 'image';\n\n // Event input variables\n @Input() href_primary_cta: string = '';\n @Input() href_secondary_cta: string = '';\n\n // Design token variables\n heroCtaAlignment: string;\n backgroundIsDark: string;\n heroInsetSpaceSmall: string;\n heroInsetSpaceLarge: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.heroCtaAlignment = this.tokenService.getTokenValue('--component-hero-actions-alignment');\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.background_colour}`);\n this.heroInsetSpaceSmall = this.tokenService.getTokenValue(`--component-hero-inset-spacing-small`);\n this.heroInsetSpaceLarge = this.tokenService.getTokenValue(`--component-hero-inset-spacing-large`);\n }\n\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysImageModule } from '../image';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { HeroComponent } from './hero.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [HeroComponent],\n imports: [CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysImageModule, OasysDirectivesModule],\n exports: [HeroComponent],\n providers: [TokenService],\n})\nexport class OasysHeroModule {}\n","import { Component, Input, OnInit } from '@angular/core';\ninterface linkItem {\n href: string;\n name: string;\n}\n@Component({\n selector: 'ui-seo-block',\n templateUrl: './seo-block.component.html',\n styleUrls: ['./seo-block.component.scss'],\n})\nexport class SeoBlockComponent implements OnInit {\n @Input() heading_paragraph: string;\n @Input() heading_links: string;\n @Input() main_content: string;\n @Input() expanded_content: string;\n @Input() links: string | linkItem[];\n\n @Input() read_more_content_text: string;\n @Input() read_less_content_text: string;\n @Input() show_more_links_text: string;\n @Input() show_less_links_text: string;\n\n linksColumnsNumber: number;\n expandedLinksVisible: boolean = false;\n expandedContentVisible: boolean = false;\n linksValues: linkItem[];\n\n constructor() {}\n\n showMoreLinks(flag: boolean): void {\n this.expandedLinksVisible = flag;\n }\n\n showMoreContent(flag: boolean): void {\n this.expandedContentVisible = flag;\n }\n\n ngOnInit(): void {\n // This is to fix a bug in Oasys that threats arrays as string initially\n if (typeof this.links === 'string') {\n this.linksValues = JSON.parse(this.links) ?? [];\n } else {\n this.linksValues = this.links;\n }\n\n if (this.linksValues.length <= 10) {\n this.linksColumnsNumber = 1;\n } else if (this.linksValues.length <= 20) {\n this.linksColumnsNumber = 2;\n } else {\n this.linksColumnsNumber = 3;\n }\n }\n}\n","<ui-box>\n <ui-grid>\n <ui-column columns=\"6\">\n <ui-box box_space=\"none\" [box_space_right]=\"{\n mobile: 'none',\n tablet: 'expanded',\n laptop: 'expanded',\n desktop: 'expanded'\n }\">\n <ui-stack stack_gap=\"near\">\n <ui-box box_space=\"none\">\n <ui-heading heading_type=\"functional-primary\" heading_title=\"{{ heading_paragraph }}\"></ui-heading>\n </ui-box>\n <ui-box box_space=\"none\">\n <span class=\"text-body--default\" class=\"ui-prose\" [innerHTML]=\"main_content\"></span>\n <span class=\"text-body--default\" class=\"ui-prose\" *ngIf=\"expandedContentVisible\"\n [innerHTML]=\"expanded_content\"></span>\n </ui-box>\n <ui-box box_space=\"none\" *ngIf=\"expanded_content\">\n <span *ngIf=\"!expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(true)\"\n class=\"text-link text-link--standalone\">\n {{read_more_content_text}}\n </span>\n <span *ngIf=\"expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(false)\"\n class=\"text-link text-link--standalone\">\n {{read_less_content_text}}\n </span>\n </ui-box>\n </ui-stack>\n </ui-box>\n </ui-column>\n <ui-column columns=\"6\">\n <ui-box box_space=\"none\">\n <ui-stack stack_gap=\"near\">\n <ui-box box_space=\"none\">\n <ui-heading heading_type=\"functional-secondary\" heading_title=\"{{ heading_links }}\"></ui-heading>\n </ui-box>\n <ui-stack stack_gap=\"tight\">\n <ui-box box_space=\"none\" box_fill_mode=\"fit\" [ngStyle]=\"{'column-count': linksColumnsNumber}\"\n class=\"links-container text-body--supporting\">\n <ng-container *ngFor=\"let link of linksValues; index as i\">\n <ui-box box_space=\"none\" box_space_bottom=\"tight\" box_fill_mode=\"fit\" class=\"link-container\"\n [ngClass]=\"{ 'hidden-mobile': i > 4 && !expandedLinksVisible }\">\n <a href=\"{{ link.href }}\">\n {{ link.name }}\n </a>\n </ui-box>\n </ng-container>\n </ui-box>\n <ui-box box_space=\"none\" class=\"hidden-desktop hidden-tablet\" *ngIf=\"linksValues.length > 4\">\n <span *ngIf=\"!expandedLinksVisible\" (click)=\"showMoreLinks(true)\" class=\"text-link text-link--standalone\">\n {{show_more_links_text}}\n </span>\n <span *ngIf=\"expandedLinksVisible\" (click)=\"showMoreLinks(false)\" class=\"text-link text-link--standalone\">\n {{show_less_links_text}}\n </span>\n </ui-box>\n </ui-stack>\n\n </ui-stack>\n </ui-box>\n </ui-column>\n </ui-grid>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { SeoBlockComponent } from './seo-block.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [SeoBlockComponent],\n imports: [\n CommonModule,\n OasysButtonModule,\n OasysHeadingModule,\n OasysLayoutModule,\n OasysDirectivesModule\n ],\n exports: [SeoBlockComponent],\n providers: [TokenService],\n})\nexport class OasysSeoBlockModule {}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TextTransform } from './text';\n\n@Component({\n selector:'ui-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextComponent implements OnInit {\n\n @Input() textAlign: 'left' | 'center' | 'right' = 'left';\n @Input() textWeight: 'normal' | 'medium' | 'bold' = 'normal';\n @Input() textTransform: TextTransform = 'none';\n\n uiTextClasses!: string;\n\n constructor() { }\n\n ngOnInit(): void {\n this.uiTextClasses = [\n `ui-text--align-${this.textAlign}`,\n `ui-text--weight-${this.textWeight}`,\n `ui-text--transform-${this.textTransform}`,\n ].join(' ');\n }\n\n}\n","<span class=\"ui-text\" [ngClass]=\"uiTextClasses\"><ng-content></ng-content></span>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TextComponent } from './text.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [TextComponent],\n imports: [CommonModule, OasysDirectivesModule],\n exports: [TextComponent],\n})\nexport class OasysTextModule {}\n","import { Component, Input, OnInit, AfterViewInit } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\n\n@Component({\n selector: 'ui-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss']\n})\nexport class SectionComponent implements OnInit, AfterViewInit {\n\n // Style input variables\n @Input() brand_background_colour: LayoutBackgrounds;\n @Input() non_brand_background_colour: string;\n @Input() text_on_dark_override: boolean = false; // This is for custom/non-brand BG colours\n @Input() image_on_left: boolean = false;\n @Input() section_type: 'spotlight' | 'inform' = 'inform';\n\n // Content input variables\n @Input() heading_title: string;\n @Input() heading_subtitle: string;\n @Input() primary_cta_text: string;\n @Input() secondary_cta_text: string;\n @Input() image: string;\n @Input() alt_text: string;\n\n // Event input variables\n @Input() href_primary_cta: string = '';\n @Input() href_secondary_cta: string = '';\n\n backgroundIsDark: string;\n isSpotLight: string;\n uiBoxId: string; // To randomise the box id\n outterContainer: any = {};\n innerContainer: any = {};\n\n containerInsetSpaceSmall: string;\n containerInsetSpaceLarge: string;\n\n contentInsetSpaceSmall: string;\n contentInsetSpaceLarge: string;\n\n imageAspectRatio: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngAfterViewInit(): void {\n\n if(this.non_brand_background_colour) {\n this.setNonBrandBackgroundColour();\n }\n\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.brand_background_colour}`);\n }\n\n ngOnInit(): void {\n\n this.containerInsetSpaceSmall = this.tokenService.getTokenValue(`--component-section-inset-spacing-container-small`);\n this.containerInsetSpaceLarge = this.tokenService.getTokenValue(`--component-section-inset-spacing-container-large`);\n\n this.contentInsetSpaceSmall = this.tokenService.getTokenValue(`--component-section-inset-spacing-content-small-${this.section_type}`);\n this.contentInsetSpaceLarge = this.tokenService.getTokenValue(`--component-section-inset-spacing-content-large-${this.section_type}`);\n\n this.imageAspectRatio = this.tokenService.getTokenValue(`--component-section-image-aspect-ratio-${this.section_type}`);\n\n // Setting a unique ID, this is important & needed to apply\n // styles to ui-box\n this.uiBoxId = Date.now() + '-' + Math.random();\n }\n\n /**\n * Users are able to set custom non brand background colours\n * If a non brand background colour is provided we ignore branded colours\n * even if they are provided.\n */\n setNonBrandBackgroundColour(): void {\n const box = document.getElementById(`ui-box-${this.uiBoxId}`);\n\n if (box) {\n this.brand_background_colour = undefined;\n box.style.background = this.non_brand_background_colour;\n\n if (this.text_on_dark_override) {\n box.classList.add('text-color--on-dark');\n }\n }\n\n }\n\n}\n","<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>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SectionComponent } from './section.component';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { OasysImageModule } from '../image/image.module';\nimport { TokenService } from '../../services/token.service';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [SectionComponent],\n imports: [CommonModule, OasysHeadingModule, OasysImageModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [SectionComponent],\n providers: [TokenService]\n})\nexport class SectionModule { }\n","import { DOCUMENT } from '@angular/common';\nimport { \n Component, \n ElementRef, \n Input, \n OnInit, \n ViewChild, \n ViewEncapsulation, \n Inject, \n OnDestroy} from '@angular/core';\nimport { SwiperOptions } from 'swiper';\nimport { TokenService } from '../../services/token.service';\n\n/* This component wraps around the swiper.js library WebComponent */\n\n@Component({\n selector: 'ui-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CarouselComponent implements OnInit {\n // The swiper instance\n @ViewChild(\"swiper\", { static: true }) swiper: ElementRef;\n @ViewChild(\"carouselscrollbarplaceholder\", { static: false, read: ElementRef }) carouselscrollbarplaceholder: ElementRef;\n @ViewChild(\"carouselctastack\", { static: false, read: ElementRef }) carouselctastack: ElementRef;\n\n // Rewinds the slides back to the start when the user reaches the end when set to true\n @Input() rewind: boolean = false;\n\n @Input() carousel_overflow: boolean = false;\n\n @Input() carousel_gap: 'default' | 'none' = 'default';\n\n @Input() carousel_pagination: 'scroll-arrows' | 'none' = 'none';\n\n @Input() carousel_align: 'start' | 'end' | 'center' = 'start';\n\n @Input() carousel_slides_per_view_desktop: number = 4;\n @Input() carousel_slides_per_view_laptop: number = 3;\n @Input() carousel_slides_per_view_tablet: number = 2.5;\n @Input() carousel_slides_per_view_mobile: number = 1.25;\n\n constructor(private tokenService: TokenService, @Inject(DOCUMENT) private document: Document, private element: ElementRef) {}\n\n ngOnInit(): void {\n this.setUpIntersectionObserver();\n }\n\n /**\n * Set up the intersection observer with the relevant options\n */\n setUpIntersectionObserver() {\n // Set IntersectionObserver options\n const options = {\n root: null,\n rootMargin: '0px',\n threshold: 0.5,\n once: true\n }\n // Set up the IntersectionObserver\n const observer = new IntersectionObserver(this.onIntersection.bind(this), options);\n observer.observe(this.element.nativeElement);\n }\n\n /**\n * This function gets called just before the user scrolls this component into view\n * @param entries - An array of interswection observer entries\n * @param observer - Intersection observer \n */\n onIntersection(entries: IntersectionObserverEntry[], observer: IntersectionObserver) {\n entries.forEach(entry => {\n if(entry.isIntersecting) {\n // Initialise swiper\n this.initSwiper();\n observer.unobserve(entry.target)\n }\n })\n }\n\n getStyle(element, style): string {\n\n return this.document.defaultView.getComputedStyle(element, null).getPropertyValue(style);\n }\n\n /**\n * Set the scrollbar placement and width based on carouselscrollbarplaceholder and carouselctastack\n */\n setupScrollbarLayoutProperties(): void {\n if(this.carousel_pagination !== 'scroll-arrows'){\n return;\n }\n \n const carouselStack: HTMLElement = this.carouselctastack.nativeElement;\n const scrollbarElement: HTMLElement = this.carouselscrollbarplaceholder.nativeElement;\n\n const scrollbarHeight = this.document.defaultView.getComputedStyle(document.documentElement).getPropertyValue(\"--swiper-scrollbar-size\");\n\n this.element.nativeElement.style.setProperty(\n \"--ui-carousel-scrollbar-width\", `${scrollbarElement.offsetWidth - parseInt(this.getStyle(carouselStack, 'gap'), 10)}px`\n );\n\n this.element.nativeElement.style.setProperty(\n \"--ui-carousel-scrollbar-offset-top\", `${parseInt(this.getStyle(carouselStack, 'gap'), 10) + (scrollbarElement.offsetHeight / 2) + (parseInt(scrollbarHeight, 10) / 2)}px`\n );\n }\n\n /**\n * Set the dynamic swiper params and initialise the swiper instance\n */\n initSwiper(): void {\n // Colour overides\n const scrollbarBackgroundColour = this.tokenService.getTokenValue('--global-color-linen-grey-20');\n const scrollbarSliderColour = this.tokenService.getTokenValue('--global-color-grey-90');\n\n // swiper element\n const swiperEl = this.swiper.nativeElement;\n\n const carouselGap = this.tokenService.getTokenValue(`--semantic-spacing-stack-${this.carousel_gap}`);\n\n // swiper parameters\n const swiperParams: SwiperOptions = {\n rewind: this.rewind,\n grabCursor: true,\n spaceBetween: (parseInt(carouselGap, 10) * 10) || 0,\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true,\n },\n injectStyles: [\n `\n .swiper-scrollbar.swiper-scrollbar-horizontal {\n position: relative;\n top: var(--ui-carousel-scrollbar-offset-top);\n width: var(--ui-carousel-scrollbar-width);\n height: 2px;\n background: ${scrollbarBackgroundColour}\n }\n\n .swiper-scrollbar-drag {\n background: ${scrollbarSliderColour}\n }\n\n .swiper-wrapper {\n align-items: ${this.carousel_align === 'center' ? this.carousel_align : 'flex-'+this.carousel_align}\n }\n `,\n ],\n breakpoints: {\n 0: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_mobile\n },\n 767: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_tablet\n },\n 1080: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_laptop\n },\n 1440: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_desktop\n }\n },\n on: {},\n };\n\n // now we need to assign all parameters to the Swiper element\n Object.assign(swiperEl, swiperParams);\n\n // and now initialize it\n swiperEl.initialize();\n\n swiperEl.addEventListener('resize', () => {\n this.setupScrollbarLayoutProperties()\n });\n }\n\n /**\n * Move the carousel on to the next slide\n */\n nextSlide(): void {\n this.swiper.nativeElement.swiper.slideNext();\n }\n\n /**\n * Move the carousel back to the previous slide\n */\n previousSlide(): void {\n this.swiper.nativeElement.swiper.slidePrev();\n }\n}\n","<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()\">\n <span #buttontext>Prevous slide</span>\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()\">\n <span #buttontext>Next slide</span>\n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { CarouselComponent } from './carousel.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n// Import function to register Swiper custom elements\nimport { register } from 'swiper/element/bundle';\nregister();\n\n@NgModule({\n declarations: [CarouselComponent],\n imports: [CommonModule, OasysButtonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [CarouselComponent],\n providers: [TokenService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class OasysCarouselModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\n\n@Component({\n selector: 'ui-banner',\n templateUrl: './banner.component.html',\n styleUrls: ['./banner.component.scss']\n})\nexport class BannerComponent implements OnInit {\n\n @Input() background_colour: LayoutBackgrounds = 'tint-highlight';\n @Input() cta_text: string;\n @Input() banner_title: string;\n @Input() banner_surtitle: string;\n @Input() banner_subtitle: string;\n\n // CTA actions\n @Input() cta_link: string;\n @Output() cta_clicked: EventEmitter<void> = new EventEmitter();\n\n // Design token variables;\n backgroundIsDark: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.background_colour}`);\n }\n\n onCtaClicked(): void {\n this.cta_clicked.emit();\n }\n\n}\n","<ui-box\n [box_background]=\"background_colour\"\n box_space_left=\"none\"\n box_space_right=\"none\"\n box_fill_mode=\"fill\"\n box_align_x=\"center\"\n class=\"ui-banner\">\n <ui-grid grid_collapse_below=\"tablet\">\n <ui-column\n [columns]=\"{mobile: '12', tablet: '10', laptop: '8', desktop: '8'}\"\n [column_inset]=\"{mobile: '0', tablet: '1', laptop: '2', desktop: '2'}\"\n class=\"ui-banner__content\">\n <ui-stack class=\"content__stack\" stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"near\">\n <ui-stack class=\"content__stack\" stack_direction=\"x\" stack_align=\"center\" stack_gap=\"near\">\n <!-- This is a stack as the icon will go here above the ui-heading -->\n <ui-heading\n *ngIf=\"banner_title || banner_surtitle || banner_subtitle\"\n heading_type=\"functional-primary\"\n [heading_title]=\"banner_title\"\n [heading_surtitle]=\"banner_surtitle\"\n [heading_subtitle]=\"banner_subtitle\">\n </ui-heading>\n </ui-stack>\n <ui-button\n *ngIf=\"cta_text\"\n bwtrackas=\"oasys.hva-banner.cta\"\n button_size=\"large\"\n [button_type]=\"backgroundIsDark === 'on-dark' ? 'primary-inverse' : 'primary'\"\n [href]=\"cta_link\"\n (clicked)=\"onCtaClicked()\">\n <span #buttontext>{{cta_text}}</span>\n </ui-button>\n </ui-stack>\n </ui-column>\n </ui-grid>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { BannerComponent } from './banner.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [BannerComponent],\n imports: [CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysIconModule, OasysDirectivesModule],\n exports: [BannerComponent],\n providers: [TokenService],\n})\nexport class OasysBannerModule {}","/*\n * Public API Surface of oasys-lib\n */\nexport * from './lib/components/alert';\nexport * from './lib/components/breadcrumbs';\nexport * from './lib/components/button';\nexport * from './lib/components/button-group';\nexport * from './lib/components/card';\nexport * from './lib/components/divider';\nexport * from './lib/components/heading';\nexport * from './lib/components/hero';\nexport * from './lib/components/seo-block';\nexport * from './lib/components/icon';\nexport * from './lib/components/image';\nexport * from './lib/components/layout';\nexport * from './lib/components/text';\nexport * from './lib/components/section';\nexport * from './lib/components/carousel';\nexport * from './lib/components/card';\nexport * from './lib/components/banner';\nexport * from './lib/injection-tokens/frontend-app-injection.tokens';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TokenService","i2","i1.IconComponent","i3.OasysHrefDirective","i1.BreakpointService","i2.LayoutBoxComponent","i3.LayoutStackComponent","i4.IconComponent","i5.OasysButtonComponent","i1.LayoutBoxComponent","i2.LayoutStackComponent","i3.OasysButtonComponent","i5","i1.ImageService","i4.ImageComponent","i3","i3.LayoutGridComponent","i4.LayoutGridColumnComponent","i5.LayoutStackComponent","i6.OasysHeadingComponent","i7.OasysButtonComponent","i8.ImageComponent","i9","i2.LayoutGridComponent","i3.LayoutGridColumnComponent","i4.LayoutStackComponent","i5.OasysHeadingComponent","i7.OasysHrefDirective","i1","i5.ImageComponent","i6.LayoutStackComponent","i7.OasysHeadingComponent","i8","i9.OasysHrefDirective","i4.OasysButtonComponent"],"mappings":"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"}
1
+ {"version":3,"file":"oasys-lib.js","sources":["../../../projects/oasys-lib/src/lib/components/alert/alert-cancel.directive.ts","../../../projects/oasys-lib/src/lib/components/alert/alert-confirm.directive.ts","../../../projects/oasys-lib/src/lib/components/alert/alert-content.directive.ts","../../../projects/oasys-lib/src/lib/components/alert/alert-title.directive.ts","../../../projects/oasys-lib/src/lib/services/breakpoint.service.ts","../../../projects/oasys-lib/src/lib/services/token.service.ts","../../../projects/oasys-lib/src/lib/components/layout/box/box.component.ts","../../../projects/oasys-lib/src/lib/components/layout/stack/stack.component.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.component.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.component.html","../../../projects/oasys-lib/src/lib/injection-tokens/frontend-app-injection.tokens.ts","../../../projects/oasys-lib/src/lib/directives/href/href.directive.ts","../../../projects/oasys-lib/src/lib/components/button/button.component.ts","../../../projects/oasys-lib/src/lib/components/button/button.component.html","../../../projects/oasys-lib/src/lib/components/alert/alert.component.ts","../../../projects/oasys-lib/src/lib/components/alert/alert.component.html","../../../projects/oasys-lib/src/lib/services/href.service.ts","../../../projects/oasys-lib/src/lib/directives/directives.module.ts","../../../projects/oasys-lib/src/lib/components/icon/icon.module.ts","../../../projects/oasys-lib/src/lib/components/button/button.module.ts","../../../projects/oasys-lib/src/lib/components/layout/container/container.component.ts","../../../projects/oasys-lib/src/lib/components/layout/grid/grid-column.component.ts","../../../projects/oasys-lib/src/lib/components/layout/grid/grid.component.ts","../../../projects/oasys-lib/src/lib/components/layout/layout.module.ts","../../../projects/oasys-lib/src/lib/components/alert/alert.module.ts","../../../projects/oasys-lib/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/oasys-lib/src/lib/components/breadcrumbs/breadcrumbs.component.html","../../../projects/oasys-lib/src/lib/components/breadcrumbs/breadcrumbs.module.ts","../../../projects/oasys-lib/src/lib/components/button-group/button-group.component.ts","../../../projects/oasys-lib/src/lib/components/button-group/button-group.component.html","../../../projects/oasys-lib/src/lib/components/button-group/button-group.module.ts","../../../projects/oasys-lib/src/lib/services/image.service.ts","../../../projects/oasys-lib/src/lib/components/image/image.component.ts","../../../projects/oasys-lib/src/lib/components/image/image.component.html","../../../projects/oasys-lib/src/lib/components/card/card.component.ts","../../../projects/oasys-lib/src/lib/components/card/card.component.html","../../../projects/oasys-lib/src/lib/components/image/image.module.ts","../../../projects/oasys-lib/src/lib/components/card/card.module.ts","../../../projects/oasys-lib/src/lib/components/divider/divider.component.ts","../../../projects/oasys-lib/src/lib/components/divider/divider.component.html","../../../projects/oasys-lib/src/lib/components/divider/divider.module.ts","../../../projects/oasys-lib/src/lib/components/heading/heading.component.ts","../../../projects/oasys-lib/src/lib/components/heading/heading.component.html","../../../projects/oasys-lib/src/lib/components/heading/heading.module.ts","../../../projects/oasys-lib/src/lib/components/hero/hero.component.ts","../../../projects/oasys-lib/src/lib/components/hero/hero.component.html","../../../projects/oasys-lib/src/lib/components/hero/hero.module.ts","../../../projects/oasys-lib/src/lib/components/seo-block/seo-block.component.ts","../../../projects/oasys-lib/src/lib/components/seo-block/seo-block.component.html","../../../projects/oasys-lib/src/lib/components/seo-block/seo-block.module.ts","../../../projects/oasys-lib/src/lib/components/text/text.component.ts","../../../projects/oasys-lib/src/lib/components/text/text.component.html","../../../projects/oasys-lib/src/lib/components/text/text.module.ts","../../../projects/oasys-lib/src/lib/components/section/section.component.ts","../../../projects/oasys-lib/src/lib/components/section/section.component.html","../../../projects/oasys-lib/src/lib/components/section/section.module.ts","../../../projects/oasys-lib/src/lib/components/carousel/carousel.component.ts","../../../projects/oasys-lib/src/lib/components/carousel/carousel.component.html","../../../projects/oasys-lib/src/lib/components/carousel/carousel.module.ts","../../../projects/oasys-lib/src/lib/components/banner/banner.component.ts","../../../projects/oasys-lib/src/lib/components/banner/banner.component.html","../../../projects/oasys-lib/src/lib/components/banner/banner.module.ts","../../../projects/oasys-lib/src/public-api.ts","../../../projects/oasys-lib/src/oasys-lib.ts"],"sourcesContent":["import { AfterContentChecked, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-cancel, [ui-alert-cancel]',\n})\nexport class OasysAlertCancelDirective implements AfterContentChecked {\n public text = '';\n\n constructor(private elem: ElementRef) {}\n\n public ngAfterContentChecked(): void {\n this.text = this.elem.nativeElement.innerText;\n }\n}\n","import { AfterContentChecked, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-confirm, [ui-alert-confirm]',\n})\nexport class OasysAlertConfirmDirective implements AfterContentChecked {\n public text = '';\n\n constructor(private elem: ElementRef) {}\n\n public ngAfterContentChecked(): void {\n this.text = this.elem.nativeElement.innerText;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-content, [ui-alert-content]',\n})\nexport class OasysAlertContentDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'ui-alert-title, [ui-alert-title]',\n})\nexport class OasysAlertTitleDirective {}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport enum Breakpoint {\n MOBILE = '(min-width: 0px)',\n TABLET = '(min-width: 768px)',\n LAPTOP = '(min-width: 1080px)',\n DESKTOP = '(min-width: 1440px)',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BreakpointService implements OnDestroy {\n public currentSize: BehaviorSubject<Breakpoint> =\n new BehaviorSubject<Breakpoint>(Breakpoint.MOBILE);\n\n private breakpoints = [\n Breakpoint.DESKTOP,\n Breakpoint.LAPTOP,\n Breakpoint.TABLET,\n Breakpoint.MOBILE,\n ];\n\n private isDestroyed: Subject<void> = new Subject<void>();\n\n constructor(public breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe(this.breakpoints)\n .pipe(takeUntil(this.isDestroyed))\n .subscribe((result) => {\n for (let match of Object.keys(result.breakpoints)) {\n if (result.breakpoints[match]) {\n return this.currentSize.next(match as Breakpoint);\n }\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.isDestroyed.next();\n this.isDestroyed.complete();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable()\nexport class TokenService {\n\n brandCustomPropertyName: string = '--utility-brand-name';\n\n constructor(@Inject(DOCUMENT) private document: Document){}\n\n /*\n Get the brand name for the currently enable custom property set (ie. /bloomon/variables.css)\n Because variables are scoped via a selector (ie: ':root .bloomon {}')\n we cannot get brand-specific custom properties programatically\n\n Important: Ensure that the component requiring the brand name has locally scoped the custom property:\n | ui-icon {\n | --icon-component-brand: var(--utility-brand-name);\n | }\n */\n getBrandName(): string {\n return this.getTokenValue(this.brandCustomPropertyName);\n }\n\n getTokenValue(tokenName: string, element?: Element): string {\n const rootElement = element || this.document.querySelector('[class*=\"brand-tokens\"]');\n if(!rootElement) {\n return '';\n }\n return this.document.defaultView.getComputedStyle(rootElement)\n .getPropertyValue(tokenName)\n .trim() || '';\n }\n\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Component} from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { LayoutAlignment, LayoutBackgrounds, LayoutBoxSizes, LayoutFillModes } from '../Layout';\n\n@Component({\n selector:'ui-box',\n template: '<div class=\"ui-box-content\"><ng-content></ng-content></div>',\n host: {\n '[class]' : 'boxLayoutClasses'\n },\n styleUrls: ['./box.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutBoxComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-box';\n boxLayoutClasses?: string[];\n backgroundIsDark: boolean = false;\n\n @Input() box_space?: LayoutBoxSizes = 'default';\n\n @Input() box_space_top?: LayoutBoxSizes;\n @Input() box_space_right?: LayoutBoxSizes;\n @Input() box_space_bottom?: LayoutBoxSizes;\n @Input() box_space_left?: LayoutBoxSizes;\n\n @Input() box_align_x?: LayoutAlignment = 'start';\n @Input() box_align_y?: LayoutAlignment = 'start';\n\n @Input() box_fill_mode?: LayoutFillModes = 'fill';\n\n @Input() box_background: LayoutBackgrounds = 'core-primary';\n @Input() box_content_fill_width: boolean = false;\n\n constructor(private changes: ChangeDetectorRef, private tokenService: TokenService) {}\n\n /**\n * Check the passed string to see if it contains JSON\n *\n * @param string\n * @returns - boolean\n */\n stringContainsJson(string: string):boolean {\n try {\n JSON.parse(string);\n } catch (e) {\n return false;\n }\n\n return true;\n }\n\n getSizeClasses(spaceInput?: LayoutBoxSizes, overrideName?: string): string[] {\n if(!spaceInput || spaceInput === undefined){\n return null;\n }\n\n // Used for responsive spacing, check if the input is either an object or JSON\n if(typeof spaceInput === 'object' || this.stringContainsJson(spaceInput)) {\n // If JSON then convert this to an object\n const spaceInputObject: LayoutBoxSizes = typeof spaceInput === 'object' ? spaceInput : JSON.parse(spaceInput)\n\n return Object.keys(spaceInputObject).map((key) => {\n return `${this.prefix}-${spaceInputObject[key]}-${key}${overrideName ? `-${overrideName}` : ``}`\n });\n\n }\n\n return [\n this.prefix,\n `${this.prefix}-${spaceInput}${overrideName ? `-${overrideName}` : ``}`\n ];\n\n }\n\n getOverrideClasses(spaceOverrides): string[] {\n const spaceTypes = ['top', 'right', 'bottom', 'left'];\n\n return spaceOverrides.map((item, index) => {\n return this.getSizeClasses(item, spaceTypes[index]);\n }).filter(Boolean);\n }\n\n getAlignmentClasses(alignmentOverride): string[] {\n const spaceTypes = ['align-x', 'distribute-y'];\n\n return alignmentOverride.map((item, index) => {\n return item ? `${this.prefix}-${spaceTypes[index]}-${item}` : undefined;\n }).filter(Boolean);\n }\n\n getBackgroundClass(): string {\n const value = this.box_background ? `${this.prefix}-background-${this.box_background}` : ``;\n return value;\n }\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n const spaceOverrides = [this.box_space_top, this.box_space_right, this.box_space_bottom, this.box_space_left];\n const alignmentOverride = [this.box_align_x, this.box_align_y];\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.box_background}`) === 'on-dark';\n // Basic basic classes\n this.boxLayoutClasses = [\n this.getSizeClasses(this.box_space),\n this.getOverrideClasses(spaceOverrides),\n this.getAlignmentClasses(alignmentOverride),\n this.getBackgroundClass(),\n this.box_fill_mode === 'fit' ? `${this.prefix}-fit-content` : `${this.prefix}-fill-container`,\n this.backgroundIsDark ? 'text-color--on-dark' : '',\n this.box_content_fill_width ? '' : `${this.prefix}-content-max-width`\n ].flat(10).filter(Boolean);\n\n this.didFirstInit = true;\n }\n\n}\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { LayoutDirections, LayoutAlignment, LayoutGapSizes, LayoutDistribute } from '../Layout';\n\n@Component({\n selector:'ui-stack',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'stackLayoutClasses'\n },\n styleUrls: ['./stack.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutStackComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-stack';\n stackLayoutClasses?: string[];\n\n @Input() stack_gap: LayoutGapSizes = 'default';\n @Input() stack_align: LayoutAlignment = 'start';\n @Input() stack_direction: LayoutDirections = 'y';\n @Input() stack_distribute?: LayoutDistribute = 'start';\n @Input() stack_wrap?: Boolean = false;\n @Input() stack_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'none';\n\n constructor(private changes: ChangeDetectorRef) {}\n\n defaultDistribution(): LayoutDistribute {\n if(this.stack_distribute) {\n return this.stack_distribute;\n }\n\n return this.stack_direction === 'x' ? 'fit' : 'fill';\n }\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.stack_distribute = this.defaultDistribution();\n this.stackLayoutClasses = [\n this.prefix,\n `${this.prefix}-${this.stack_gap}`,\n `${this.prefix}-align-${this.stack_align}`,\n `${this.prefix}-distribute-${this.stack_distribute}`,\n `${this.prefix}-direction-${this.stack_direction}`,\n `${this.prefix}-${this.stack_wrap ? 'wrap' : 'no-wrap'}`,\n `${this.prefix}-collapse-below-${this.stack_collapse_below}`\n ]\n this.didFirstInit = true;\n }\n\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { IconContext, IconNames } from './icon';\n\n@Component({\n selector:'ui-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent implements OnInit, OnChanges {\n @Input() icon_size: 'small'|'large' = 'large';\n @Input() icon_name!: IconNames;\n @Input() icon_context: IconContext = 'none';\n\n @Input() icon_width?: number;\n @Input() icon_height?: number;\n @Input() icon_class?: string;\n\n size?: string;\n iconBrandPath?: string;\n iconDisplayClasses: string[];\n\n constructor(@Inject(DOCUMENT) private document: Document, private tokenService: TokenService) { }\n\n convertRemToPixels(remString: string): number {\n const remNumber = parseFloat(remString.replace('rem', ''));\n return remNumber * parseFloat(getComputedStyle(this.document.documentElement).fontSize);\n }\n\n ngOnChanges(): void {\n this.ngOnInit();\n }\n\n ngOnInit(): void {\n this.iconBrandPath = `${this.tokenService.getBrandName()}`\n this.size = this.tokenService.getTokenValue(`--global-size-icon-${this.icon_size}`);\n\n this.iconDisplayClasses = [\n `icon-context-${this.icon_context}`,\n `icon-size-${this.icon_size}`\n ];\n\n const sizeInPixels = this.convertRemToPixels(this.size);\n this.icon_width = sizeInPixels;\n this.icon_height = sizeInPixels;\n }\n\n}\n","<div class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" [attr.width]=\"icon_width\" [attr.height]=\"icon_height\" [attr.class]=\"icon_class\">\n <use attr.xlink:href=\"./{{iconBrandPath}}/assets/icons/icons.svg#icon-{{icon_name}}\"></use>\n </svg>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { IRoutingHandlerService } from '../directives/href/href.directive';\n\nexport const ROUTING_HANDLER = new InjectionToken<IRoutingHandlerService>('ROUTING_HANDLER');\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ROUTING_HANDLER} from '../../injection-tokens/frontend-app-injection.tokens';\n\n@Directive({\n selector: 'a, uiHref, [uiHref]'\n})\n\nexport class OasysHrefDirective implements AfterViewInit{\n element: ElementRef;\n \n constructor(\n el: ElementRef,\n @Inject(ROUTING_HANDLER) private routingHandler: IRoutingHandlerService) {\n this.element = el;\n }\n\n @HostListener('click', ['$event'])\n onClick(event: any): void {\n this.routingHandler.handleRoutingOnClick(this.element.nativeElement, event);\n }\n\n ngAfterViewInit(): void {\n this.routingHandler.handleHrefDomains(this.element.nativeElement);\n }\n}\n\nexport interface IRoutingHandlerService {\n handleRoutingOnClick(element: any, event: any): void;\n handleHrefDomains(element: any): void;\n};","import { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, ContentChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { IconNames, IconContext } from '../icon/icon';\nimport { TextTransform } from '../text/text';\nimport {\n // ButtonTypeOptions,\n UIButton,\n UIButtonBoolean,\n UIButtonSize,\n UIButtonType\n} from './button';\n\n@Component({\n selector:'ui-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OasysButtonComponent implements OnInit, OnChanges, AfterViewInit {\n\n button: UIButton;\n\n // // Button Content\n @Input() button_icon?: IconNames;\n @Input() button_icon_placement: IconContext = 'leading';\n\n @ContentChild('buttontext') ngContent: ElementRef;\n\n // Button Stylings\n @Input() button_size: UIButtonSize = 'large';\n\n @Input() button_full_width: UIButtonBoolean = false;\n @Input() button_type: UIButtonType = 'primary';\n @Input() button_disabled: UIButtonBoolean = false;\n @Input() button_text_nowrap: UIButtonBoolean = false;\n\n // Button Actions\n @Input() href: string;\n @Output() clicked: EventEmitter<void> = new EventEmitter();\n\n buttonDisplayClasses: string[];\n iconContext: IconContext = 'none';\n textTransform!: TextTransform;\n accessibleButtonContent: string;\n outlineButtonTypes = ['secondary', 'secondary-inverse']\n\n constructor(private changes: ChangeDetectorRef) {}\n\n onClick(): void {\n this.clicked.emit();\n }\n\n createButton(): UIButton {\n\n return <UIButton>{\n buttonIcon: this.button_icon,\n buttonIconPlacement: this.button_icon_placement,\n buttonType: this.button_type,\n buttonSize: this.button_size,\n buttonDisabled: this.button_disabled,\n href: this.href,\n target: '',\n buttonDisplayClasses: [\n `type-${this.button_type}`,\n `size-${this.button_size}`,\n `${this.button_icon ? 'button--has-icon': ''}`,\n `${this.button_text_nowrap ? 'button--nowrap': ''}`,\n `${this.button_full_width ? 'button--full-width': ''}`,\n `${this.button_icon ? 'button--icon--'+this.button_icon_placement : ''}`,\n `${this.outlineButtonTypes.indexOf(this.button_type) !== -1 ? 'button--outline' : ''}`\n ].filter((d) => !!d)\n };\n }\n\n ngAfterViewInit(): void {\n if(this.ngContent?.nativeElement?.innerText) {\n this.accessibleButtonContent = this.ngContent.nativeElement.innerText;\n } else {\n throw new Error(`\n No inner text found. All buttons should have text passed via ng-content to enable accessibility for screen readers, this includes icon-only buttons.\n\n Pass content using the template variable #buttontext eg:\n ui-button()\n span(#buttontext) Buy All The Things\n `)\n }\n }\n\n ngOnChanges(): void {\n this.button = this.createButton();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.button = this.createButton();\n }\n}\n","<ng-template #content>\n <div class=\"button-content\">\n <ui-icon *ngIf=\"button.buttonIcon && button.buttonIconPlacement !== 'none'\" [icon_name]=\"button.buttonIcon\" [icon_size]=\"button.buttonSize\" [icon_class]=\"'buttonIcon'\" [icon_context]=\"button.buttonIconPlacement\"></ui-icon>\n <span class=\"ui-text\" [ngClass]=\"{'visuallyhidden': button.buttonIconPlacement === 'iconOnly'}\">\n <ng-content></ng-content>\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n <div class=\"button-overlay-focus\"></div>\n</ng-template>\n\n<button \n *ngIf=\"!button.href\" \n (click)=\"onClick()\"\n [ngClass]=\"button.buttonDisplayClasses\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n [attr.aria-label]=\"accessibleButtonContent\"\n [attr.title]=\"accessibleButtonContent\"\n role=\"button\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<a \n *ngIf=\"button.href\"\n [href]=\"button.href\"\n [attr.disabled]=\"button.buttonDisabled === true || null\"\n [attr.aria-label]=\"accessibleButtonContent\"\n [attr.title]=\"accessibleButtonContent\"\n [ngClass]=\"button.buttonDisplayClasses\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</a>\n","import {\n Component,\n ContentChild,\n EventEmitter,\n Input,\n Output,\n} from '@angular/core';\nimport {\n Breakpoint,\n BreakpointService,\n} from '../../services/breakpoint.service';\nimport { OasysAlertCancelDirective } from './alert-cancel.directive';\nimport { OasysAlertConfirmDirective } from './alert-confirm.directive';\n\nexport type UIAlertTone = 'positive' | 'neutral' | 'negative';\n\n@Component({\n selector: 'ui-alert',\n templateUrl: './alert.component.html',\n styleUrls: ['./alert.component.scss'],\n})\nexport class OasysAlertComponent {\n @Input()\n public direction: 'dynamic' | 'vertical' | 'horizontal' = 'dynamic';\n\n @Input()\n public tone: UIAlertTone = 'neutral';\n\n @Output()\n public cancel: EventEmitter<void> = new EventEmitter<void>();\n\n @Output()\n public confirm: EventEmitter<void> = new EventEmitter<void>();\n\n @ContentChild(OasysAlertCancelDirective)\n public cancelButton: OasysAlertCancelDirective;\n\n @ContentChild(OasysAlertConfirmDirective)\n public confirmButton: OasysAlertConfirmDirective;\n\n constructor(public breakpointService: BreakpointService) {}\n\n get isVertical(): boolean {\n switch (this.direction) {\n case 'vertical':\n return true;\n case 'horizontal':\n return false;\n default:\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE;\n }\n }\n\n public cancelled(): void {\n this.cancel.emit();\n }\n\n public confirmed(): void {\n this.confirm.emit();\n }\n}\n","<ui-box class=\"ui-alert\" box_space=\"near\" box_align_x=\"center\" [ngClass]=\"tone\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\">\n <div class=\"badge\" [ngClass]=\"tone\" [ngSwitch]=\"tone\">\n <ui-icon *ngSwitchCase=\"'negative'\" icon_name=\"error\"></ui-icon>\n <ui-icon *ngSwitchCase=\"'positive'\" icon_name=\"tick\"></ui-icon>\n <ui-icon *ngSwitchDefault icon_name=\"info\"></ui-icon>\n </div>\n\n <ui-stack stack_gap=\"near\" [stack_direction]=\"isVertical ? 'y' : 'x'\">\n <ui-stack class=\"content\" stack_direction=\"y\">\n <div class=\"text-body--emphasis\">\n <ng-content select=\"ui-alert-title\"></ng-content>\n </div>\n <div>\n <ng-content select=\"ui-alert-content\"></ng-content>\n </div>\n </ui-stack>\n\n <ui-box\n box_space=\"none\"\n box_background=\"transparent\"\n [box_fill_mode]=\"isVertical ? 'fill' : 'fit'\"\n >\n <ui-stack stack_direction=\"x\" stack_gap=\"near\" stack_distribute=\"end\">\n <ui-button\n *ngIf=\"cancelButton && cancelButton.text\"\n button_type=\"tertiary\"\n button_text_nowrap=\"true\"\n (clicked)=\"cancelled()\"\n >\n <span #buttontext>\n <ng-content select=\"ui-alert-cancel\"></ng-content>\n </span>\n </ui-button>\n <ui-button\n *ngIf=\"confirmButton && confirmButton.text\"\n button_type=\"secondary\"\n button_text_nowrap=\"true\"\n (clicked)=\"confirmed()\"\n >\n <span #buttontext>\n <ng-content select=\"ui-alert-confirm\"></ng-content>\n </span>\n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n","import { Injectable } from '@angular/core';\nimport { IRoutingHandlerService } from '../directives/href/href.directive';\n\n@Injectable({ providedIn: 'root' })\nexport class HrefService implements IRoutingHandlerService {\n public handleRoutingOnClick(): void {\n // throw new Error('handleRoutingOnClick has not been implemented');\n }\n\n public handleHrefDomains(): void {\n // throw new Error('handleHrefDomains has not been implemented');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ROUTING_HANDLER } from '../injection-tokens/frontend-app-injection.tokens';\nimport { HrefService } from '../services/href.service';\nimport { OasysHrefDirective } from './href/href.directive';\n\n@NgModule({\n declarations: [OasysHrefDirective],\n imports: [CommonModule, RouterModule],\n exports: [OasysHrefDirective],\n providers: [{ provide: ROUTING_HANDLER, useClass: HrefService }],\n})\nexport class OasysDirectivesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { IconComponent } from './icon.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [IconComponent],\n imports: [CommonModule, OasysDirectivesModule],\n exports: [IconComponent],\n providers: [TokenService],\n})\nexport class OasysIconModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysButtonComponent } from './button.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [OasysButtonComponent],\n imports: [CommonModule, RouterModule, OasysIconModule, OasysDirectivesModule],\n exports: [OasysButtonComponent],\n})\nexport class OasysButtonModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Component} from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { LayoutContainerSizes } from '../Layout';\n@Component({\n selector:'ui-container',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n '[class]' : 'containerLayoutClasses'\n },\n styleUrls: ['./container.component.scss'],\n\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutContainerComponent implements OnInit, OnChanges {\n @Input() container_fluid: boolean = false;\n @Input() container_gutter: true | false | 'true' | 'false' = true;\n prefix = 'ui-layout-container';\n containerLayoutClasses?: string[];\n\n containerGutterNameLarge: string;\n containerGutterNameSmall: string;\n containerHorizontalSizes: LayoutContainerSizes;\n\n constructor(private changes: ChangeDetectorRef) { }\n\n ngOnChanges(): void {\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.containerLayoutClasses = [\n this.prefix,\n this.container_fluid ? `${this.prefix}-fluid` : '',\n this.container_gutter === true || this.container_gutter === 'true' ? '' : `${this.prefix}-no-gutter`\n ].flat(10).filter(Boolean);\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ResponsiveGridColumns } from '../Layout';\n\n@Component({\n selector:'ui-column',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'columnLayoutClasses'\n },\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutGridColumnComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-column';\n columnLayoutClasses?: string[];\n\n @Input() columns: ResponsiveGridColumns = 12;\n @Input() column_inset: ResponsiveGridColumns;\n\n constructor(private changes: ChangeDetectorRef) {}\n\n getSizeClasses(columns: ResponsiveGridColumns, classString: string): string[] {\n\n if(!columns) {\n return [''];\n }\n\n if(typeof columns === 'object'){\n\n return Object.keys(columns).map((key) => {\n return `${this.prefix}${classString}${key}-${columns[key]}`\n });\n\n }\n\n return [\n this.prefix,\n `${this.prefix}${classString}${columns}`,\n ];\n\n }\n\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n this.columnLayoutClasses = [\n this.prefix,\n this.getSizeClasses(this.columns, '-col-'),\n this.getSizeClasses(this.column_inset, '-col-inset-')\n ].flat(10).filter(Boolean);\n this.didFirstInit = true;\n }\n\n}\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector:'ui-grid',\n template: '<ng-content></ng-content>',\n host: {\n '[class]' : 'gridLayoutClasses'\n },\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutGridComponent implements OnInit, OnChanges {\n didFirstInit: boolean = false;\n prefix = 'ui-layout-grid';\n gridLayoutClasses?: string[];\n\n @Input() grid_auto: boolean = false;\n @Input() grid_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n @Input() grid_gap: 'default' | 'none' | 'expanded' = 'default';\n\n constructor(private changes: ChangeDetectorRef) {}\n\n ngOnChanges(): void {\n if(!this.didFirstInit){\n return;\n }\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\n\n this.gridLayoutClasses = [\n this.prefix,\n `${this.prefix}-${this.grid_gap}`,\n `${this.prefix}-${this.grid_auto ? 'width-auto' : ''}`,\n `${this.prefix}-collapse-below-${this.grid_collapse_below}`,\n ]\n this.didFirstInit = true;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBoxComponent } from './box/box.component';\nimport { LayoutContainerComponent } from './container/container.component';\nimport { LayoutGridColumnComponent } from './grid/grid-column.component';\nimport { LayoutGridComponent } from './grid/grid.component';\nimport { LayoutStackComponent } from './stack/stack.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [\n LayoutBoxComponent,\n LayoutContainerComponent,\n LayoutGridComponent,\n LayoutGridColumnComponent,\n LayoutStackComponent,\n ],\n imports: [OasysDirectivesModule],\n exports: [\n LayoutBoxComponent,\n LayoutContainerComponent,\n LayoutGridComponent,\n LayoutGridColumnComponent,\n LayoutStackComponent,\n ],\n providers: [TokenService],\n})\nexport class OasysLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysAlertCancelDirective } from './alert-cancel.directive';\nimport { OasysAlertConfirmDirective } from './alert-confirm.directive';\nimport { OasysAlertContentDirective } from './alert-content.directive';\nimport { OasysAlertTitleDirective } from './alert-title.directive';\nimport { OasysAlertComponent } from './alert.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [\n OasysAlertCancelDirective,\n OasysAlertConfirmDirective,\n OasysAlertContentDirective,\n OasysAlertTitleDirective,\n OasysAlertComponent,\n ],\n imports: [\n CommonModule,\n OasysLayoutModule,\n OasysButtonModule,\n OasysIconModule,\n OasysDirectivesModule\n ],\n exports: [\n OasysAlertCancelDirective,\n OasysAlertConfirmDirective,\n OasysAlertContentDirective,\n OasysAlertTitleDirective,\n OasysAlertComponent,\n ],\n})\nexport class OasysAlertModule {}\n","import { OnInit, ViewEncapsulation } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Component} from '@angular/core';\n\ninterface BreadcrumbsItem{\n href: string;\n name: string;\n}\n@Component({\n selector:'ui-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BreadcrumbsComponent implements OnInit {\n\n @Input() breadcrumbs_values: string | BreadcrumbsItem[];\n values: BreadcrumbsItem[];\n constructor() { }\n\n ngOnInit(): void {\n if(typeof this.breadcrumbs_values === 'string'){\n this.values = JSON.parse(this.breadcrumbs_values)??[];\n }else{\n this.values = this.breadcrumbs_values;\n }\n\n }\n\n}\n\n","<ui-box box_fill_mode=\"fill\" box_space=\"near\" box_background=\"core-secondary\" *ngIf=\"values\">\n <nav aria-label=\"breadcrumbs\">\n <ui-stack stack_gap=\"none\" stack_direction=\"x\" stack_align=\"center\" stack_wrap=\"true\">\n <ng-container *ngFor=\"let item of values; let i = index\">\n <!-- Link followed by an icon -->\n <ui-box box_space=\"none\" box_background=\"none\" box_fill_mode=\"fit\">\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_wrap=\"false\" stack_gap=\"none\">\n <ui-button *ngIf=\"i<values.length-1\" button_size=\"small\" button_type=\"tertiary\" button_full_width=\"true\" href=\"{{item.href}}\"> \n <span #buttontext> {{item.name}} </span>\n </ui-button> \n <ui-icon *ngIf=\"i<values.length-1\" icon_name=\"chevron-right\" icon_size=\"small\" icon_class=\"buttonIcon\" aria-hidden=\"true\"></ui-icon>\n </ui-stack>\n </ui-box>\n <!-- Last link and current page -->\n <ui-button *ngIf=\"i===values.length-1\" button_size=\"small\" button_type=\"tertiary\" button_full_width=\"true\" href=\"{{item.href}}\" [attr.aria-current]=\"item.name\"> \n <span #buttontext> {{item.name}} </span>\n </ui-button> \n </ng-container>\n </ui-stack>\n </nav>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { BreadcrumbsComponent } from './breadcrumbs.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [BreadcrumbsComponent],\n imports: [CommonModule, OasysButtonModule, OasysIconModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [BreadcrumbsComponent],\n})\nexport class OasysBreadcrumbModule {}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, OnChanges, ContentChild, ElementRef, AfterViewInit, Inject, HostBinding } from '@angular/core';\nimport { Breakpoint, BreakpointService } from '../../services/breakpoint.service';\n\n\n@Component({\n selector:'ui-button-group',\n templateUrl: './button-group.component.html',\n styleUrls: ['./button-group.component.scss'],\n encapsulation: ViewEncapsulation.None, // to hide non ui-buttons via css\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OasysButtonGroupComponent implements OnInit {\n\n prefix: '';\n\n @Input() button_group_align: 'start' | 'center' | 'end' = 'start';\n @Input() button_group_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n\n // Used for only 'ghost' buttons (button_type=\"tertiary\")\n // applies a negative X margin so that the text of a button aligns with\n // other content. Do not use unless all buttons are of type Tertiary.\n @Input() button_group_ghost_align: 'none' | 'small' | 'large' = 'none';\n\n @HostBinding('class') get class() {\n return `\n ui-button-group-ghost-${this.button_group_ghost_align}\n `\n }\n\n constructor(private breakpointService: BreakpointService){}\n\n\n ngOnInit(): void {\n }\n\n get shouldCollapse(): boolean {\n switch (this.button_group_collapse_below) {\n case 'tablet':\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE;\n case 'laptop':\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE || this.breakpointService.currentSize.value === Breakpoint.TABLET\n case 'desktop':\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE || this.breakpointService.currentSize.value === Breakpoint.TABLET || this.breakpointService.currentSize.value === Breakpoint.LAPTOP;\n default:\n return false;\n }\n }\n}\n","<ui-stack\n stack_gap=\"near\"\n stack_direction=\"x\"\n [stack_collapse_below]=\"button_group_collapse_below\"\n [stack_distribute]=\"button_group_align\"\n>\n<ng-content></ng-content>\n</ui-stack>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { OasysButtonGroupComponent } from './button-group.component';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysLayoutModule } from '../layout';\n\n@NgModule({\n declarations: [OasysButtonGroupComponent],\n imports: [OasysLayoutModule, CommonModule, RouterModule, OasysButtonModule],\n exports: [OasysButtonGroupComponent],\n})\nexport class OasysButtonGroupModule {}\n","import { Injectable, Inject, Optional } from '@angular/core';\n\ntype ImageFormat = 'webp' | 'jpg';\ntype ImageCDNs = 'contentful' | 'thumbor' | void;\n\nexport interface ImageResponse {\n srcSetUrls: string;\n fallbackUrl: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ImageService {\n private mediaUrl: string;\n private fallbackBreakpoint: number = 768;\n\n private breakpoints: number[] = [\n 320, 360, 375, 414, 640, 750, 768, 1080, 1280, 1366, 1440, 1536, 1600, 1680, 1920, 2560, 3440,\n 3840,\n ];\n\n constructor(@Inject('env') @Optional() env: { mediaUrl: string }) {\n this.mediaUrl = env?.mediaUrl ?? 'https://media.bloomdev.org';\n }\n\n private getQualityForWidth(width: number): number {\n return width > 1440 ? 50 : 75;\n }\n\n private generateUrl(\n baseUrl: string,\n format: ImageFormat,\n width: number,\n quality: number,\n cdnType: ImageCDNs,\n ): string {\n switch (cdnType) {\n case 'thumbor':\n return `${this.mediaUrl}/v1/${width}x0/filters:format(${format}):quality(${quality})/${baseUrl}`;\n case 'contentful':\n return `${baseUrl}?w=${width}&fm=${format}&q=${quality}`;\n default:\n return baseUrl;\n }\n }\n\n private generateUrls(\n baseUrl: string,\n format: ImageFormat,\n sizes: number[],\n isFallback: boolean,\n cdnType: ImageCDNs,\n ): string {\n return sizes\n .map((width) => {\n const quality = isFallback ? 100 : this.getQualityForWidth(width);\n const url = this.generateUrl(baseUrl, format, width, quality, cdnType);\n return isFallback ? url : `${url} ${width}w`;\n })\n .join(', ');\n }\n\n private detectCdnType(baseUrl: string): ImageCDNs {\n if (\n baseUrl.includes('assets-0.bloomandwild.com') ||\n baseUrl.includes('bw-site-images-processed-staging.s3.amazonaws.com')\n ) {\n return 'thumbor';\n } else if (baseUrl.includes('images.ctfassets.net/')) {\n return 'contentful';\n }\n }\n\n private getImageUrlsFromCDN(\n baseUrl: string,\n format: ImageFormat,\n sizes: number[],\n isFallback: boolean,\n ): string {\n const cdnType = this.detectCdnType(baseUrl);\n\n if (isFallback) {\n sizes = [this.fallbackBreakpoint];\n }\n\n return this.generateUrls(baseUrl, format, sizes, isFallback, cdnType);\n }\n\n public generateImageUrl(baseUrl: string): ImageResponse {\n return {\n srcSetUrls: this.getImageUrlsFromCDN(baseUrl, 'webp', this.breakpoints, false),\n fallbackUrl: this.getImageUrlsFromCDN(baseUrl, 'jpg', this.breakpoints, true),\n } as ImageResponse;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\nimport { ImageService, ImageResponse } from '../../services/image.service';\n\n@Component({\n selector: 'ui-image',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.scss']\n})\nexport class ImageComponent implements OnInit {\n\n @Input() image_src: string = '';\n @Input() image_alt_text: string;\n @Input() image_fill: boolean;\n\n @Input() fetchpriority: 'low' | 'high' | 'auto' = 'auto';\n @Input() loading: 'lazy' | 'eager' | 'auto' = 'lazy';\n @Input() preload_aspect_ratio: '1:1' | '3:4' | '3:5' | '4:3' | '5:3' | '5:4' | '13:15' = '1:1'\n\n imageUrlResponse: ImageResponse;\n imageRatioWidth: number;\n imageRatioHeight: number;\n\n private intersectionObserver: IntersectionObserver;\n\n @HostBinding('class') get class() {\n return `${this.image_fill ? 'imageFill' : ''}`\n }\n\n constructor(private imageService: ImageService, private el: ElementRef) {}\n\n private setupLazyLoading(): void {\n const options = {\n removeAfterObserved: true,\n root: null,\n rootMargin: '200px',\n threshold: 0.01\n };\n\n this.intersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const imageElement = this.el.nativeElement.querySelector('img');\n const sourceElement = this.el.nativeElement.querySelector('source');\n imageElement.setAttribute('src', this.imageUrlResponse.fallbackUrl);\n sourceElement.setAttribute('srcset', this.imageUrlResponse.srcSetUrls);\n this.intersectionObserver.unobserve(entry.target);\n }\n });\n }, options);\n\n const imageElement = this.el.nativeElement.querySelector('img');\n this.intersectionObserver.observe(imageElement);\n }\n\n\n ngOnInit(): void {\n\n const ratios = this.preload_aspect_ratio.split(':');\n this.imageRatioWidth = parseInt(ratios[0], 10);\n this.imageRatioHeight = parseInt(ratios[1], 10);\n this.imageUrlResponse = this.imageService.generateImageUrl(this.image_src);\n\n\n if (!('loading' in HTMLImageElement.prototype)) {\n this.setupLazyLoading();\n }\n\n if(!this.image_alt_text) {\n console.error(`Image is missing an alt tag, image url is ${this.image_src}`);\n }\n }\n\n}\n","<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","import { AfterViewInit, Component, ElementRef, HostListener, Input, OnInit, ViewChild } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { CardImageFormat } from './card';\n@Component({\n selector: 'ui-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent implements OnInit, AfterViewInit {\n // We need to know the label height so that we can adjust the parent stack placement\n @ViewChild(\"imagelabel\", { static: false, read: ElementRef }) imageLabel: ElementRef;\n\n // Card image variables\n @Input() label_text: string;\n @Input() image: string;\n @Input() alt_text: string;\n @Input() image_format: CardImageFormat;\n aspectRatio: string;\n\n // Card content variables\n @Input() small_title_left: string;\n @Input() small_sub_title_right: string;\n @Input() standard_content: string;\n @Input() bold_content: string;\n stackOffset: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.aspectRatio = this.setImageAspectRatio(this.image_format);\n \n }\n\n ngAfterViewInit(): void {\n this.setStackPlacement();\n }\n\n /**\n * This calculates the stack offset based on the image labels height.\n */\n @HostListener('window:resize', ['$event'])\n setStackPlacement(): void {\n this.stackOffset = `calc(-${\n this.imageLabel?.nativeElement?.offsetHeight / 2\n }px - ${this.tokenService.getTokenValue('--semantic-spacing-box-tight')}`;\n }\n\n /**\n * This function retrieves the appropriate design token value based on the passed imageFormat choice\n * \n * @param format - The format of the image e.g. square, portrait, landscape\n * @returns - string to be used as the aspect ratio\n */\n setImageAspectRatio(format: CardImageFormat): string {\n switch(format) {\n case 'square':\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-square');\n case 'portrait':\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-portrait');\n case 'landscape':\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-landscape');\n default:\n return this.tokenService.getTokenValue('--component-card-aspect-ratio-portrait');\n }\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { ImageService } from '../../services/image.service';\nimport { ImageComponent } from './image.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [ImageComponent],\n imports: [CommonModule, OasysDirectivesModule],\n exports: [ImageComponent],\n providers: [ImageService],\n})\nexport class OasysImageModule {\n public static forRoot(environment: { mediaUrl: string }): ModuleWithProviders<OasysImageModule> {\n return {\n ngModule: OasysImageModule,\n providers: [\n ImageService,\n {\n provide: 'env',\n useValue: environment,\n },\n ],\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TokenService } from '../../services/token.service';\nimport { OasysImageModule } from '../image';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { CardComponent } from './card.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n@NgModule({\n declarations: [CardComponent],\n imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule],\n exports: [CardComponent],\n providers: [TokenService],\n})\nexport class OasysCardModule {}\n","import { Input, ViewEncapsulation } from '@angular/core';\nimport { Component} from '@angular/core';\nimport { DividerType } from './divider';\n\n\n@Component({\n selector:'ui-divider',\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DividerComponent {\n @Input()\n divider_type: DividerType = 'secondary';\n\n getClass(): string{\n return this.divider_type==='secondary'? `ui-divider--type-${this.divider_type}`: `ui-divider--type-${this.divider_type}`;\n }\n}\n\n","<ui-box box_fill_mode=\"fill\" box_space=\"none\" box_background=\"core-secondary\" [ngClass]=\"getClass()\"></ui-box>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { DividerComponent } from './divider.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [DividerComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [DividerComponent],\n})\nexport class OasysDividerModule {}\n","import { Component, Input, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, HostBinding } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { HeadingAlignment, HeadingGap, HeadingType } from './heading';\nimport { UIBoolean } from './heading';\n\n@Component({\n selector:'ui-heading',\n templateUrl: './heading.component.html',\n styleUrls: ['./heading.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class OasysHeadingComponent implements OnInit {\n\n @Input()\n heading_type: HeadingType = 'primary';\n\n @Input()\n heading_on_dark: UIBoolean;\n\n @Input()\n heading_title: string;\n\n @Input()\n heading_seo_priority: boolean = false;\n\n @Input()\n heading_priority?: 1 | 2 | 3 | 4 | 5 | 6;\n\n @Input()\n heading_alignment_override?: HeadingAlignment;\n\n @Input()\n heading_subtitle?: string = '';\n\n @Input()\n heading_surtitle?: string = '';\n\n headingAlignment: HeadingAlignment;\n headingGap: HeadingGap;\n\n\n @HostBinding('class') get class() {\n return `\n ${this.heading_on_dark ? 'text-color--on-dark' : ''}\n ui-heading-alignment-${this.headingAlignment}\n `\n }\n\n constructor(private tokenService: TokenService) { }\n\n headingTypeIsFunctional(headingType: HeadingType): boolean {\n return (headingType||'').indexOf('functional') !== -1;\n }\n\n setupHeadingStackAlignment(headingType: HeadingType): void {\n if(this.heading_alignment_override) {\n this.headingAlignment = this.heading_alignment_override;\n return;\n }\n\n const alignment = this.tokenService.getTokenValue('--component-heading-alignment-default') as HeadingAlignment;\n const functionalAlignment = this.tokenService.getTokenValue('--component-heading-alignment-functional') as HeadingAlignment;\n\n this.headingAlignment = this.headingTypeIsFunctional(headingType) ? functionalAlignment : alignment;\n\n }\n\n setupHeadingStackGap(headingType: HeadingType): void {\n if(this.headingTypeIsFunctional(headingType)){\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-functional') as HeadingGap;\n return;\n }\n\n if(this.heading_type === 'secondary') {\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-secondary') as HeadingGap;\n return;\n }\n\n if(this.heading_type === 'primary') {\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-primary') as HeadingGap;\n return;\n }\n\n // Hero gap\n this.headingGap = this.tokenService.getTokenValue('--component-heading-gap-default') as HeadingGap;\n }\n\n ngOnInit(): void {\n this.setupHeadingStackAlignment(this.heading_type);\n this.setupHeadingStackGap(this.heading_type);\n this.heading_priority = this.heading_priority || this.heading_seo_priority ? 1 : 2;\n }\n\n}\n","<div>\n <ui-stack [stack_align]=\"headingAlignment\" [stack_gap]=\"headingGap\">\n\n <p *ngIf=\"heading_surtitle && heading_surtitle.length\" class=\"heading-surtitle text-body--supporting text-color--supporting\">\n {{heading_surtitle}}\n </p>\n\n <ng-template #content>\n <span\n class=\"heading-title\"\n [ngClass]=\"{\n 'text-heading': !headingTypeIsFunctional(heading_type),\n 'text-heading--functional': headingTypeIsFunctional(heading_type),\n\n 'text-heading--hero': heading_type === 'hero',\n 'text-heading--primary': heading_type === 'primary',\n 'text-heading--secondary': heading_type === 'secondary',\n 'text-heading--functional--primary': heading_type === 'functional-primary',\n 'text-heading--functional--secondary': heading_type === 'functional-secondary'\n }\"\n >{{heading_title}}</span>\n </ng-template>\n\n <h1 role=\"heading\" [attr.aria-level]=\"heading_priority\" class=\"seo-h1\" *ngIf=\"heading_seo_priority\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h1>\n <span role=\"heading\" [attr.aria-level]=\"heading_priority\" *ngIf=\"!heading_seo_priority\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n\n <p\n *ngIf=\"heading_subtitle && heading_subtitle.length\"\n class=\"heading-subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n >{{heading_subtitle}}</p>\n\n </ui-stack>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { OasysHeadingComponent } from './heading.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [OasysHeadingComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [OasysHeadingComponent],\n providers: [TokenService],\n})\nexport class OasysHeadingModule {}\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\n\n@Component({\n selector: 'ui-hero',\n templateUrl: './hero.component.html',\n styleUrls: ['./hero.component.scss']\n})\nexport class HeroComponent implements OnInit {\n\n // Style input variables\n @Input() min_container_height: number;\n @Input() image_left_desktop: boolean = false;\n @Input() image_top_mobile: boolean = true;\n @Input() background_colour: LayoutBackgrounds;\n\n // Content input variables\n @Input() heading_title: string;\n @Input() heading_subtitle: string;\n @Input() heading_surtitle: string;\n @Input() primary_cta_text: string;\n @Input() secondary_cta_text: string;\n @Input() image: string;\n @Input() alt_text: string;\n @Input() media_type: 'image' | 'video' = 'image';\n\n // Event input variables\n @Input() href_primary_cta: string = '';\n @Input() href_secondary_cta: string = '';\n\n // Design token variables\n heroCtaAlignment: string;\n backgroundIsDark: string;\n heroInsetSpaceSmall: string;\n heroInsetSpaceLarge: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.heroCtaAlignment = this.tokenService.getTokenValue('--component-hero-actions-alignment');\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.background_colour}`);\n this.heroInsetSpaceSmall = this.tokenService.getTokenValue(`--component-hero-inset-spacing-small`);\n this.heroInsetSpaceLarge = this.tokenService.getTokenValue(`--component-hero-inset-spacing-large`);\n }\n\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysImageModule } from '../image';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { HeroComponent } from './hero.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [HeroComponent],\n imports: [CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysImageModule, OasysDirectivesModule],\n exports: [HeroComponent],\n providers: [TokenService],\n})\nexport class OasysHeroModule {}\n","import { Component, Input, OnInit } from '@angular/core';\ninterface linkItem {\n href: string;\n name: string;\n}\n@Component({\n selector: 'ui-seo-block',\n templateUrl: './seo-block.component.html',\n styleUrls: ['./seo-block.component.scss'],\n})\nexport class SeoBlockComponent implements OnInit {\n @Input() heading_paragraph: string;\n @Input() heading_links: string;\n @Input() main_content: string;\n @Input() expanded_content: string;\n @Input() links: string | linkItem[];\n\n @Input() read_more_content_text: string;\n @Input() read_less_content_text: string;\n @Input() show_more_links_text: string;\n @Input() show_less_links_text: string;\n\n linksColumnsNumber: number;\n expandedLinksVisible: boolean = false;\n expandedContentVisible: boolean = false;\n linksValues: linkItem[];\n\n constructor() {}\n\n showMoreLinks(flag: boolean): void {\n this.expandedLinksVisible = flag;\n }\n\n showMoreContent(flag: boolean): void {\n this.expandedContentVisible = flag;\n }\n\n ngOnInit(): void {\n // This is to fix a bug in Oasys that threats arrays as string initially\n if (typeof this.links === 'string') {\n this.linksValues = JSON.parse(this.links) ?? [];\n } else {\n this.linksValues = this.links;\n }\n\n if (this.linksValues.length <= 10) {\n this.linksColumnsNumber = 1;\n } else if (this.linksValues.length <= 20) {\n this.linksColumnsNumber = 2;\n } else {\n this.linksColumnsNumber = 3;\n }\n }\n}\n","<ui-box>\n <ui-grid>\n <ui-column columns=\"6\">\n <ui-box box_space=\"none\" [box_space_right]=\"{\n mobile: 'none',\n tablet: 'expanded',\n laptop: 'expanded',\n desktop: 'expanded'\n }\">\n <ui-stack stack_gap=\"near\">\n <ui-box box_space=\"none\">\n <ui-heading heading_type=\"functional-primary\" heading_title=\"{{ heading_paragraph }}\"></ui-heading>\n </ui-box>\n <ui-box box_space=\"none\">\n <span class=\"text-body--default\" class=\"ui-prose\" [innerHTML]=\"main_content\"></span>\n <span class=\"text-body--default\" class=\"ui-prose\" *ngIf=\"expandedContentVisible\"\n [innerHTML]=\"expanded_content\"></span>\n </ui-box>\n <ui-box box_space=\"none\" *ngIf=\"expanded_content\">\n <span *ngIf=\"!expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(true)\"\n class=\"text-link text-link--standalone\">\n {{read_more_content_text}}\n </span>\n <span *ngIf=\"expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(false)\"\n class=\"text-link text-link--standalone\">\n {{read_less_content_text}}\n </span>\n </ui-box>\n </ui-stack>\n </ui-box>\n </ui-column>\n <ui-column columns=\"6\">\n <ui-box box_space=\"none\">\n <ui-stack stack_gap=\"near\">\n <ui-box box_space=\"none\">\n <ui-heading heading_type=\"functional-secondary\" heading_title=\"{{ heading_links }}\"></ui-heading>\n </ui-box>\n <ui-stack stack_gap=\"tight\">\n <ui-box box_space=\"none\" box_fill_mode=\"fit\" [ngStyle]=\"{'column-count': linksColumnsNumber}\"\n class=\"links-container text-body--supporting\">\n <ng-container *ngFor=\"let link of linksValues; index as i\">\n <ui-box box_space=\"none\" box_space_bottom=\"tight\" box_fill_mode=\"fit\" class=\"link-container\"\n [ngClass]=\"{ 'hidden-mobile': i > 4 && !expandedLinksVisible }\">\n <a href=\"{{ link.href }}\">\n {{ link.name }}\n </a>\n </ui-box>\n </ng-container>\n </ui-box>\n <ui-box box_space=\"none\" class=\"hidden-desktop hidden-tablet\" *ngIf=\"linksValues.length > 4\">\n <span *ngIf=\"!expandedLinksVisible\" (click)=\"showMoreLinks(true)\" class=\"text-link text-link--standalone\">\n {{show_more_links_text}}\n </span>\n <span *ngIf=\"expandedLinksVisible\" (click)=\"showMoreLinks(false)\" class=\"text-link text-link--standalone\">\n {{show_less_links_text}}\n </span>\n </ui-box>\n </ui-stack>\n\n </ui-stack>\n </ui-box>\n </ui-column>\n </ui-grid>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { SeoBlockComponent } from './seo-block.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [SeoBlockComponent],\n imports: [\n CommonModule,\n OasysButtonModule,\n OasysHeadingModule,\n OasysLayoutModule,\n OasysDirectivesModule\n ],\n exports: [SeoBlockComponent],\n providers: [TokenService],\n})\nexport class OasysSeoBlockModule {}\n","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TextTransform } from './text';\n\n@Component({\n selector:'ui-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TextComponent implements OnInit {\n\n @Input() textAlign: 'left' | 'center' | 'right' = 'left';\n @Input() textWeight: 'normal' | 'medium' | 'bold' = 'normal';\n @Input() textTransform: TextTransform = 'none';\n\n uiTextClasses!: string;\n\n constructor() { }\n\n ngOnInit(): void {\n this.uiTextClasses = [\n `ui-text--align-${this.textAlign}`,\n `ui-text--weight-${this.textWeight}`,\n `ui-text--transform-${this.textTransform}`,\n ].join(' ');\n }\n\n}\n","<span class=\"ui-text\" [ngClass]=\"uiTextClasses\"><ng-content></ng-content></span>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TextComponent } from './text.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [TextComponent],\n imports: [CommonModule, OasysDirectivesModule],\n exports: [TextComponent],\n})\nexport class OasysTextModule {}\n","import { Component, Input, OnInit, AfterViewInit } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\n\n@Component({\n selector: 'ui-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss']\n})\nexport class SectionComponent implements OnInit, AfterViewInit {\n\n // Style input variables\n @Input() brand_background_colour: LayoutBackgrounds;\n @Input() non_brand_background_colour: string;\n @Input() text_on_dark_override: boolean = false; // This is for custom/non-brand BG colours\n @Input() image_on_left: boolean = false;\n @Input() section_type: 'spotlight' | 'inform' = 'inform';\n\n // Content input variables\n @Input() heading_title: string;\n @Input() heading_subtitle: string;\n @Input() primary_cta_text: string;\n @Input() secondary_cta_text: string;\n @Input() image: string;\n @Input() alt_text: string;\n\n // Event input variables\n @Input() href_primary_cta: string = '';\n @Input() href_secondary_cta: string = '';\n\n backgroundIsDark: string;\n isSpotLight: string;\n uiBoxId: string; // To randomise the box id\n outterContainer: any = {};\n innerContainer: any = {};\n\n containerInsetSpaceSmall: string;\n containerInsetSpaceLarge: string;\n\n contentInsetSpaceSmall: string;\n contentInsetSpaceLarge: string;\n\n imageAspectRatio: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngAfterViewInit(): void {\n\n if(this.non_brand_background_colour) {\n this.setNonBrandBackgroundColour();\n }\n\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.brand_background_colour}`);\n }\n\n ngOnInit(): void {\n\n this.containerInsetSpaceSmall = this.tokenService.getTokenValue(`--component-section-inset-spacing-container-small`);\n this.containerInsetSpaceLarge = this.tokenService.getTokenValue(`--component-section-inset-spacing-container-large`);\n\n this.contentInsetSpaceSmall = this.tokenService.getTokenValue(`--component-section-inset-spacing-content-small-${this.section_type}`);\n this.contentInsetSpaceLarge = this.tokenService.getTokenValue(`--component-section-inset-spacing-content-large-${this.section_type}`);\n\n this.imageAspectRatio = this.tokenService.getTokenValue(`--component-section-image-aspect-ratio-${this.section_type}`);\n\n // Setting a unique ID, this is important & needed to apply\n // styles to ui-box\n this.uiBoxId = Date.now() + '-' + Math.random();\n }\n\n /**\n * Users are able to set custom non brand background colours\n * If a non brand background colour is provided we ignore branded colours\n * even if they are provided.\n */\n setNonBrandBackgroundColour(): void {\n const box = document.getElementById(`ui-box-${this.uiBoxId}`);\n\n if (box) {\n this.brand_background_colour = undefined;\n box.style.background = this.non_brand_background_colour;\n\n if (this.text_on_dark_override) {\n box.classList.add('text-color--on-dark');\n }\n }\n\n }\n\n}\n","<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>","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SectionComponent } from './section.component';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { OasysImageModule } from '../image/image.module';\nimport { TokenService } from '../../services/token.service';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [SectionComponent],\n imports: [CommonModule, OasysHeadingModule, OasysImageModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [SectionComponent],\n providers: [TokenService]\n})\nexport class SectionModule { }\n","import { DOCUMENT } from '@angular/common';\nimport { \n Component, \n ElementRef, \n Input, \n OnInit, \n ViewChild, \n ViewEncapsulation, \n Inject, \n OnDestroy} from '@angular/core';\nimport { SwiperOptions } from 'swiper';\nimport { TokenService } from '../../services/token.service';\n\n/* This component wraps around the swiper.js library WebComponent */\n\n@Component({\n selector: 'ui-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CarouselComponent implements OnInit {\n // The swiper instance\n @ViewChild(\"swiper\", { static: true }) swiper: ElementRef;\n @ViewChild(\"carouselscrollbarplaceholder\", { static: false, read: ElementRef }) carouselscrollbarplaceholder: ElementRef;\n @ViewChild(\"carouselctastack\", { static: false, read: ElementRef }) carouselctastack: ElementRef;\n\n // Rewinds the slides back to the start when the user reaches the end when set to true\n @Input() rewind: boolean = false;\n\n @Input() carousel_overflow: boolean = false;\n\n @Input() carousel_gap: 'default' | 'none' = 'default';\n\n @Input() carousel_pagination: 'scroll-arrows' | 'none' = 'none';\n\n @Input() carousel_align: 'start' | 'end' | 'center' = 'start';\n\n @Input() carousel_slides_per_view_desktop: number = 4;\n @Input() carousel_slides_per_view_laptop: number = 3;\n @Input() carousel_slides_per_view_tablet: number = 2.5;\n @Input() carousel_slides_per_view_mobile: number = 1.25;\n\n constructor(private tokenService: TokenService, @Inject(DOCUMENT) private document: Document, private element: ElementRef) {}\n\n ngOnInit(): void {\n this.setUpIntersectionObserver();\n }\n\n /**\n * Set up the intersection observer with the relevant options\n */\n setUpIntersectionObserver() {\n // Set IntersectionObserver options\n const options = {\n root: null,\n rootMargin: '0px',\n threshold: 0.5,\n once: true\n }\n // Set up the IntersectionObserver\n const observer = new IntersectionObserver(this.onIntersection.bind(this), options);\n observer.observe(this.element.nativeElement);\n }\n\n /**\n * This function gets called just before the user scrolls this component into view\n * @param entries - An array of interswection observer entries\n * @param observer - Intersection observer \n */\n onIntersection(entries: IntersectionObserverEntry[], observer: IntersectionObserver) {\n entries.forEach(entry => {\n if(entry.isIntersecting) {\n // Initialise swiper\n this.initSwiper();\n observer.unobserve(entry.target)\n }\n })\n }\n\n getStyle(element, style): string {\n\n return this.document.defaultView.getComputedStyle(element, null).getPropertyValue(style);\n }\n\n /**\n * Set the scrollbar placement and width based on carouselscrollbarplaceholder and carouselctastack\n */\n setupScrollbarLayoutProperties(): void {\n if(this.carousel_pagination !== 'scroll-arrows'){\n return;\n }\n \n const carouselStack: HTMLElement = this.carouselctastack.nativeElement;\n const scrollbarElement: HTMLElement = this.carouselscrollbarplaceholder.nativeElement;\n\n const scrollbarHeight = this.document.defaultView.getComputedStyle(document.documentElement).getPropertyValue(\"--swiper-scrollbar-size\");\n\n this.element.nativeElement.style.setProperty(\n \"--ui-carousel-scrollbar-width\", `${scrollbarElement.offsetWidth - parseInt(this.getStyle(carouselStack, 'gap'), 10)}px`\n );\n\n this.element.nativeElement.style.setProperty(\n \"--ui-carousel-scrollbar-offset-top\", `${parseInt(this.getStyle(carouselStack, 'gap'), 10) + (scrollbarElement.offsetHeight / 2) + (parseInt(scrollbarHeight, 10) / 2)}px`\n );\n }\n\n /**\n * Set the dynamic swiper params and initialise the swiper instance\n */\n initSwiper(): void {\n // Colour overides\n const scrollbarBackgroundColour = this.tokenService.getTokenValue('--global-color-linen-grey-20');\n const scrollbarSliderColour = this.tokenService.getTokenValue('--global-color-grey-90');\n\n // swiper element\n const swiperEl = this.swiper.nativeElement;\n\n const carouselGap = this.tokenService.getTokenValue(`--semantic-spacing-stack-${this.carousel_gap}`);\n\n // swiper parameters\n const swiperParams: SwiperOptions = {\n rewind: this.rewind,\n grabCursor: true,\n spaceBetween: (parseInt(carouselGap, 10) * 10) || 0,\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true,\n },\n injectStyles: [\n `\n .swiper-scrollbar.swiper-scrollbar-horizontal {\n position: relative;\n top: var(--ui-carousel-scrollbar-offset-top);\n width: var(--ui-carousel-scrollbar-width);\n height: 2px;\n background: ${scrollbarBackgroundColour}\n }\n\n .swiper-scrollbar-drag {\n background: ${scrollbarSliderColour}\n }\n\n .swiper-wrapper {\n align-items: ${this.carousel_align === 'center' ? this.carousel_align : 'flex-'+this.carousel_align}\n }\n `,\n ],\n breakpoints: {\n 0: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_mobile\n },\n 767: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_tablet\n },\n 1080: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_laptop\n },\n 1440: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_desktop\n }\n },\n on: {},\n };\n\n // now we need to assign all parameters to the Swiper element\n Object.assign(swiperEl, swiperParams);\n\n // and now initialize it\n swiperEl.initialize();\n\n // Set up scrollbar and ensure this is recalculated on resize events\n this.setupScrollbarLayoutProperties();\n\n swiperEl.addEventListener('resize', () => {\n this.setupScrollbarLayoutProperties();\n });\n }\n\n /**\n * Move the carousel on to the next slide\n */\n nextSlide(): void {\n this.swiper.nativeElement.swiper.slideNext();\n }\n\n /**\n * Move the carousel back to the previous slide\n */\n previousSlide(): void {\n this.swiper.nativeElement.swiper.slidePrev();\n }\n}\n","<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()\">\n <span #buttontext>Prevous slide</span>\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()\">\n <span #buttontext>Next slide</span>\n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n </ui-stack>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { CarouselComponent } from './carousel.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n// Import function to register Swiper custom elements\nimport { register } from 'swiper/element/bundle';\n\n@NgModule({\n declarations: [CarouselComponent],\n imports: [CommonModule, OasysButtonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [CarouselComponent],\n providers: [TokenService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\n\nexport class OasysCarouselModule {\n constructor() {\n register();\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\n\n@Component({\n selector: 'ui-banner',\n templateUrl: './banner.component.html',\n styleUrls: ['./banner.component.scss']\n})\nexport class BannerComponent implements OnInit {\n\n @Input() background_colour: LayoutBackgrounds = 'tint-highlight';\n @Input() cta_text: string;\n @Input() banner_title: string;\n @Input() banner_surtitle: string;\n @Input() banner_subtitle: string;\n\n // CTA actions\n @Input() cta_link: string;\n @Output() cta_clicked: EventEmitter<void> = new EventEmitter();\n\n // Design token variables;\n backgroundIsDark: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.backgroundIsDark = this.tokenService.getTokenValue(`--semantic-on-dark-${this.background_colour}`);\n }\n\n onCtaClicked(): void {\n this.cta_clicked.emit();\n }\n\n}\n","<ui-box\n [box_background]=\"background_colour\"\n box_space_left=\"none\"\n box_space_right=\"none\"\n box_fill_mode=\"fill\"\n box_align_x=\"center\"\n class=\"ui-banner\">\n <ui-grid grid_collapse_below=\"tablet\">\n <ui-column\n [columns]=\"{mobile: '12', tablet: '10', laptop: '8', desktop: '8'}\"\n [column_inset]=\"{mobile: '0', tablet: '1', laptop: '2', desktop: '2'}\"\n class=\"ui-banner__content\">\n <ui-stack class=\"content__stack\" stack_direction=\"x\" stack_distribute=\"space-between\" stack_align=\"center\" stack_gap=\"near\">\n <ui-stack class=\"content__stack\" stack_direction=\"x\" stack_align=\"center\" stack_gap=\"near\">\n <!-- This is a stack as the icon will go here above the ui-heading -->\n <ui-heading\n *ngIf=\"banner_title || banner_surtitle || banner_subtitle\"\n heading_type=\"functional-primary\"\n [heading_title]=\"banner_title\"\n [heading_surtitle]=\"banner_surtitle\"\n [heading_subtitle]=\"banner_subtitle\">\n </ui-heading>\n </ui-stack>\n <ui-button\n *ngIf=\"cta_text\"\n bwtrackas=\"oasys.hva-banner.cta\"\n button_size=\"large\"\n [button_type]=\"backgroundIsDark === 'on-dark' ? 'primary-inverse' : 'primary'\"\n [href]=\"cta_link\"\n (clicked)=\"onCtaClicked()\">\n <span #buttontext>{{cta_text}}</span>\n </ui-button>\n </ui-stack>\n </ui-column>\n </ui-grid>\n</ui-box>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { OasysButtonModule } from '../button/button.module';\nimport { OasysHeadingModule } from '../heading/heading.module';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { BannerComponent } from './banner.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [BannerComponent],\n imports: [CommonModule, OasysButtonModule, OasysHeadingModule, OasysLayoutModule, OasysIconModule, OasysDirectivesModule],\n exports: [BannerComponent],\n providers: [TokenService],\n})\nexport class OasysBannerModule {}","/*\n * Public API Surface of oasys-lib\n */\nexport * from './lib/components/alert';\nexport * from './lib/components/breadcrumbs';\nexport * from './lib/components/button';\nexport * from './lib/components/button-group';\nexport * from './lib/components/card';\nexport * from './lib/components/divider';\nexport * from './lib/components/heading';\nexport * from './lib/components/hero';\nexport * from './lib/components/seo-block';\nexport * from './lib/components/icon';\nexport * from './lib/components/image';\nexport * from './lib/components/layout';\nexport * from './lib/components/text';\nexport * from './lib/components/section';\nexport * from './lib/components/carousel';\nexport * from './lib/components/card';\nexport * from './lib/components/banner';\nexport * from './lib/injection-tokens/frontend-app-injection.tokens';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TokenService","i2","i1.IconComponent","i3.OasysHrefDirective","i1.BreakpointService","i2.LayoutBoxComponent","i3.LayoutStackComponent","i4.IconComponent","i5.OasysButtonComponent","i1.LayoutBoxComponent","i2.LayoutStackComponent","i3.OasysButtonComponent","i5","i1.ImageService","i4.ImageComponent","i3","i3.LayoutGridComponent","i4.LayoutGridColumnComponent","i5.LayoutStackComponent","i6.OasysHeadingComponent","i7.OasysButtonComponent","i8.ImageComponent","i9","i2.LayoutGridComponent","i3.LayoutGridColumnComponent","i4.LayoutStackComponent","i5.OasysHeadingComponent","i7.OasysHrefDirective","i1","i5.ImageComponent","i6.LayoutStackComponent","i7.OasysHeadingComponent","i8","i9.OasysHrefDirective","i4.OasysButtonComponent"],"mappings":"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"}