oasys-lib 1.86.0-rc.0 → 1.86.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/carousel/carousel.component.mjs +3 -3
- package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/lib/components/form/chip/chip.component.mjs +3 -3
- package/esm2022/lib/components/form/combobox/combobox.component.mjs +3 -3
- package/esm2022/lib/components/form/errors/form-errors.component.mjs +5 -3
- package/esm2022/lib/components/form/radio/radio.component.mjs +3 -3
- package/esm2022/lib/components/form/text-input/text-input.component.mjs +6 -6
- package/esm2022/lib/components/hero/hero.component.mjs +3 -3
- package/esm2022/lib/components/icon/icon.mjs +1 -1
- package/esm2022/lib/components/layout/Layout.mjs +1 -1
- package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2022/lib/components/navigation/tabs/tab-header/tab-header.component.mjs +3 -3
- package/esm2022/lib/components/promo-card/promo-card.component.mjs +1 -1
- package/esm2022/lib/components/section/section.component.mjs +3 -3
- package/esm2022/lib/components/seo-block/seo-block.component.mjs +3 -3
- package/fesm2022/oasys-lib.mjs +29 -29
- package/fesm2022/oasys-lib.mjs.map +1 -1
- package/lib/components/form/combobox/combobox.component.d.ts +3 -3
- package/lib/components/form/combobox/combobox.component.d.ts.map +1 -1
- package/lib/components/form/errors/form-errors.component.d.ts.map +1 -1
- package/lib/components/form/text-input/text-input.component.d.ts +1 -1
- package/lib/components/form/text-input/text-input.component.d.ts.map +1 -1
- package/lib/components/hero/hero.component.d.ts +2 -2
- package/lib/components/hero/hero.component.d.ts.map +1 -1
- package/lib/components/icon/icon.d.ts +1 -1
- package/lib/components/icon/icon.d.ts.map +1 -1
- package/lib/components/layout/Layout.d.ts +1 -0
- package/lib/components/layout/Layout.d.ts.map +1 -1
- package/lib/components/promo-card/promo-card.component.d.ts +5 -3
- package/lib/components/promo-card/promo-card.component.d.ts.map +1 -1
- package/lib/components/section/section.component.d.ts +2 -1
- package/lib/components/section/section.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/bloomandwild/icons/icons.svg +1 -1
- package/src/assets/bloomandwild/variables.css +1 -1
- package/src/assets/bloomon/icons/icons.svg +1 -1
- package/src/assets/bloomon/variables.css +1 -1
- package/src/assets/global/scss-breakpoints.scss +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oasys-lib.mjs","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/autofocus/autofocus.directive.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/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/components/alert/alert.module.ts","../../../projects/oasys-lib/src/lib/components/navigation/breadcrumbs/breadcrumbs.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/breadcrumbs/breadcrumbs.component.html","../../../projects/oasys-lib/src/lib/components/navigation/breadcrumbs/breadcrumbs.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/form/form-group/form-group.component.ts","../../../projects/oasys-lib/src/lib/components/form/form-group/form-group.component.html","../../../projects/oasys-lib/src/lib/components/form/radio/radio.component.ts","../../../projects/oasys-lib/src/lib/components/form/radio/radio.component.html","../../../projects/oasys-lib/src/lib/components/form/radio/radio.module.ts","../../../projects/oasys-lib/src/lib/components/form/checkbox/checkbox.component.ts","../../../projects/oasys-lib/src/lib/components/form/checkbox/checkbox.component.html","../../../projects/oasys-lib/src/lib/components/form/checkbox/checkbox.module.ts","../../../projects/oasys-lib/src/lib/components/form/form-group/form-group.module.ts","../../../projects/oasys-lib/src/lib/components/form/text-input/text-input.component.ts","../../../projects/oasys-lib/src/lib/components/form/text-input/text-input.component.html","../../../projects/oasys-lib/src/lib/components/form/errors/form-errors.component.ts","../../../projects/oasys-lib/src/lib/components/form/errors/form-errors.component.html","../../../projects/oasys-lib/src/lib/components/form/errors/form-errors.module.ts","../../../projects/oasys-lib/src/lib/components/form/text-input/text-input.module.ts","../../../projects/oasys-lib/src/lib/components/form/chip/chip.component.ts","../../../projects/oasys-lib/src/lib/components/form/chip/chip.component.html","../../../projects/oasys-lib/src/lib/components/form/chip/chip.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/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/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/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/lib/components/price/price.component.ts","../../../projects/oasys-lib/src/lib/components/price/price.component.html","../../../projects/oasys-lib/src/lib/components/price/price.module.ts","../../../projects/oasys-lib/src/lib/components/pill/pill.component.ts","../../../projects/oasys-lib/src/lib/components/pill/pill.component.html","../../../projects/oasys-lib/src/lib/components/pill/pill.module.ts","../../../projects/oasys-lib/src/lib/components/pill-group/pill-group.component.ts","../../../projects/oasys-lib/src/lib/components/pill-group/pill-group.component.html","../../../projects/oasys-lib/src/lib/components/pill-group/pill-group.module.ts","../../../projects/oasys-lib/src/lib/components/promo-card/promo-card.component.ts","../../../projects/oasys-lib/src/lib/components/promo-card/promo-card.component.html","../../../projects/oasys-lib/src/lib/components/promo-card/promo-card.module.ts","../../../projects/oasys-lib/src/lib/components/select-card/select-card.component.ts","../../../projects/oasys-lib/src/lib/components/select-card/select-card.component.html","../../../projects/oasys-lib/src/lib/components/select-card/select-card.module.ts","../../../projects/oasys-lib/src/lib/directives/emphasis/emphasis.directive.ts","../../../projects/oasys-lib/src/lib/components/form/combobox/combobox.component.ts","../../../projects/oasys-lib/src/lib/components/form/combobox/combobox.component.html","../../../projects/oasys-lib/src/lib/components/form/combobox/combobox.module.ts","../../../projects/oasys-lib/src/lib/components/label/label.component.ts","../../../projects/oasys-lib/src/lib/components/label/label.component.html","../../../projects/oasys-lib/src/lib/components/label/label.module.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab/tab.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-active/tab-active.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-header/tab-header.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-header/tab-header.component.html","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-group/tab-group.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-group/tab-group.component.html","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-group/tab-group.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 readonly isDestroyed = new Subject<void>();\n\n constructor(public breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe(this.breakpoints)\n .pipe(takeUntil(this.isDestroyed))\n .subscribe((result): void => {\n for (const 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';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n@Injectable()\nexport class TokenService {\n brandCustomPropertyName: string = '--oasys-utility-brand-slug';\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n convertRemToPixels(remString: string): number {\n const remNumber = parseFloat(remString.replace('rem', ''));\n return (\n remNumber *\n parseFloat(getComputedStyle(this.document.documentElement).fontSize)\n );\n }\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(--oasys-utility-brand);\n | }\n */\n getBrandName(): Observable<string> {\n return this.waitForElement('[class*=\"brand-tokens\"]').pipe(\n take(1),\n map((el) => this.getTokenValue(this.brandCustomPropertyName, el))\n );\n }\n\n getTokenValue(tokenName: string, element?: Element): string {\n const rootElement =\n element || this.document.querySelector('[class*=\"brand-tokens\"]');\n\n if (!rootElement) {\n return '';\n }\n\n return (\n this.document.defaultView\n .getComputedStyle(rootElement)\n .getPropertyValue(tokenName)\n .trim() || ''\n );\n }\n\n /**\n * Waits for an element to be present in the DOM\n * @param {string} selector\n * @returns {Observable<Element>}\n */\n waitForElement(selector: string): Observable<Element> {\n return new Observable((observer) => {\n let element = this.document.querySelector(selector);\n\n if (element) {\n observer.next(element);\n observer.complete();\n }\n\n new MutationObserver((mutationRecord, mutationObserver) => {\n const el = document.querySelector(selector);\n\n if (el) {\n observer.next(el);\n observer.complete();\n mutationObserver.disconnect();\n }\n }).observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnChanges,\n OnInit,\n ViewEncapsulation,\n Input,\n Component\n} from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport {\n LayoutAlignment,\n LayoutBackgrounds,\n LayoutBackgroundsDeprecated,\n LayoutBoxSizes,\n LayoutFillModes\n} from '../Layout';\nimport {\n BoxBorderColor,\n BoxBorderWidth,\n BoxBorderRadius,\n BoxBorderStyle\n} from './box';\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 @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: LayoutBackgroundsDeprecated | LayoutBackgrounds =\n 'primary';\n\n @Input() box_content_fill_width: boolean = false;\n\n @Input() box_border_color?: BoxBorderColor = 'primary';\n @Input() box_border_width?: BoxBorderWidth = 'none';\n @Input() box_border_style?: BoxBorderStyle = 'solid';\n @Input() box_border_radius?: BoxBorderRadius = 'none';\n\n didFirstInit: boolean = false;\n prefix = 'ui-layout-box';\n boxLayoutClasses?: string[];\n backgroundIsDark: boolean = false;\n\n constructor(\n private changes: ChangeDetectorRef,\n private tokenService: TokenService\n ) {}\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 =\n typeof spaceInput === 'object' ? spaceInput : JSON.parse(spaceInput);\n\n return Object.keys(spaceInputObject).map(\n (key): string =>\n `${this.prefix}-${spaceInputObject[key]}-${key}${\n overrideName ? `-${overrideName}` : ''\n }`\n );\n }\n\n return [\n this.prefix,\n `${this.prefix}-${spaceInput}${overrideName ? `-${overrideName}` : ''}`\n ];\n }\n\n getOverrideClasses(spaceOverrides: LayoutBoxSizes[]): string[][] {\n const spaceTypes = ['top', 'right', 'bottom', 'left'];\n\n return spaceOverrides\n .map((item, index): string[] =>\n this.getSizeClasses(item, spaceTypes[index])\n )\n .filter(Boolean);\n }\n\n getAlignmentClasses(alignmentOverride: LayoutAlignment[]): string[] {\n const spaceTypes = ['align-x', 'distribute-y'];\n\n return alignmentOverride\n .map((item, index): string =>\n item ? `${this.prefix}-${spaceTypes[index]}-${item}` : undefined\n )\n .filter(Boolean);\n }\n\n getBackgroundClass(): string {\n const value = this.box_background\n ? `${this.prefix}-background-${this.box_background}`\n : '';\n return value;\n }\n\n getBorderColorClass(): string {\n const value = this.box_border_color\n ? `${this.prefix}-border-color-${this.box_border_color}`\n : '';\n return value;\n }\n\n getBorderWidthClass(): string {\n const value = this.box_border_width\n ? `${this.prefix}-border-width-${this.box_border_width}`\n : '';\n return value;\n }\n\n getBorderStyleClass(): string {\n const value = this.box_border_style\n ? `${this.prefix}-border-style-${this.box_border_style}`\n : '';\n return value;\n }\n\n getBorderRadiusClass(): string {\n const value = this.box_border_radius\n ? `${this.prefix}-border-radius-${this.box_border_radius}`\n : '';\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 = [\n this.box_space_top,\n this.box_space_right,\n this.box_space_bottom,\n this.box_space_left\n ];\n const alignmentOverride = [this.box_align_x, this.box_align_y];\n this.backgroundIsDark =\n this.tokenService.getTokenValue(\n `--oasys-component-box-on-dark-${this.box_background}`\n ) === 'on-dark';\n // Basic basic classes\n this.boxLayoutClasses = [\n 'ui-layout-box',\n this.getSizeClasses(this.box_space),\n this.getOverrideClasses(spaceOverrides),\n this.getAlignmentClasses(alignmentOverride),\n this.getBackgroundClass(),\n this.getBoxModeClass(),\n this.backgroundIsDark ? 'text-color--on-dark' : '',\n this.box_content_fill_width\n ? `${this.prefix}-full-width`\n : `${this.prefix}-content-max-width`,\n this.getBorderColorClass(),\n this.getBorderWidthClass(),\n this.getBorderStyleClass(),\n this.getBorderRadiusClass()\n ]\n .flat(10)\n .filter(Boolean);\n\n this.didFirstInit = true;\n }\n\n private getBoxModeClass(): string {\n switch (this.box_fill_mode) {\n case 'fit':\n return `${this.prefix}-fit-content`;\n case 'cover':\n return `${this.prefix}-cover-content`;\n default:\n return `${this.prefix}-fill-container`;\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 {\n Component,\n Inject,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} 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_size_override?: string;\n @Input() icon_name!: IconNames;\n @Input() icon_context: IconContext = 'none';\n @Input() alt_text: string = '';\n\n @Input() icon_class?: string;\n\n size?: string;\n iconDisplayClasses: string[];\n iconSizeInPixels: number;\n iconPath: string;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private tokenService: TokenService\n ) {}\n\n ngOnChanges(): void {\n this.ngOnInit();\n }\n\n ngOnInit(): void {\n this.tokenService.getBrandName().subscribe((brandName): void => {\n this.iconPath = `./${brandName}/assets/icons/icons.svg#icon-${this.icon_name}`;\n\n this.size =\n this.icon_size_override ||\n this.tokenService.getTokenValue('--oasys-size-unit-20');\n\n this.iconDisplayClasses = [\n `icon-context-${this.icon_context}`,\n `icon-size-${this.icon_size}`\n ];\n\n const sizeInPixels = this.tokenService.convertRemToPixels(this.size);\n this.iconSizeInPixels = sizeInPixels;\n });\n }\n}\n","<div *ngIf=\"iconPath\" class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"iconSizeInPixels\"\n [attr.height]=\"iconSizeInPixels\"\n [attr.class]=\"icon_class\"\n [attr.alt]=\"alt_text\"\n >\n <use [attr.xlink:href]=\"iconPath\"></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 {\n Component,\n Output,\n ViewEncapsulation,\n EventEmitter,\n ChangeDetectionStrategy,\n ElementRef,\n ViewChild,\n AfterViewInit,\n Input,\n OnInit,\n OnChanges\n} from '@angular/core';\nimport { IconNames, IconContext } from '../icon/icon';\nimport { TextTransform } from '../text/text';\nimport {\n UIButton,\n UIButtonBoolean,\n UIButtonSize,\n UIButtonType,\n UIButtonEventType\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.Default\n})\nexport class OasysButtonComponent implements AfterViewInit, OnInit, OnChanges {\n @Output() clicked = new EventEmitter<void>();\n @ViewChild('buttontext') ngContent: ElementRef;\n\n @Input() button_icon: IconNames | undefined;\n @Input() button_icon_placement: IconContext = 'leading';\n @Input() button_size: UIButtonSize = 'large';\n @Input() button_type: UIButtonType = 'primary';\n @Input() button_full_width: UIButtonBoolean = false;\n @Input() button_event_type: UIButtonEventType = 'button';\n @Input() button_disabled: UIButtonBoolean = false;\n @Input() button_selected: UIButtonBoolean = false;\n @Input() button_text_nowrap: UIButtonBoolean = false;\n @Input() aria_label: string | undefined;\n @Input() aria_role: string = 'button';\n @Input() href: string | undefined;\n\n button: UIButton;\n iconContext: IconContext = 'none';\n textTransform!: TextTransform;\n outlineButtonTypes = ['secondary', 'secondary-inverse'];\n computedAccessibleButtonContent = '';\n computedButtonDisplayClasses = [];\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>\n ) {}\n\n onClick(): void {\n this.clicked.emit();\n }\n\n ngOnInit(): void {\n this.computedAccessibleButtonContent = this.accessibleButtonContent();\n this.computedButtonDisplayClasses = this.buttonDisplayClasses();\n }\n\n /**\n * required because signals cannot be used here to force change detection on strings computed from inputs\n * TODO - migrate inputs to InputSignals when Angular supports it within angular 19.\n * Issue - https://github.com/angular/angular/issues/53981\n */\n ngOnChanges(): void {\n this.computedAccessibleButtonContent = this.accessibleButtonContent();\n this.computedButtonDisplayClasses = this.buttonDisplayClasses();\n }\n\n ngAfterViewInit(): void {\n if (!this.aria_label && !this.ngContent && !this.elementRef.nativeElement?.innerText?.length) {\n throw new Error(`\n No inner text found. All buttons should have text passed via ng-content to enable accessibility for screen readers, \\\n this includes icon-only buttons.\n Pass content using the example templates:\n // Example 1\n ui-button() Buy All The Things\n // Example 2\n ui-button()\n span Buy All The Things\n `);\n }\n }\n\n private accessibleButtonContent = (): string => {\n if (this.aria_label) {\n return this.aria_label;\n } else if (this.ngContent && this.ngContent?.nativeElement?.innerText?.length) {\n return this.ngContent.nativeElement.innerText;\n } else if (\n !this.ngContent &&\n this.elementRef.nativeElement?.innerText?.length\n ) {\n return this.elementRef.nativeElement.innerText;\n }\n return '';\n };\n\n private buttonDisplayClasses = (): string[] => [\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 `${\n this.button_icon ? 'button--icon--' + this.button_icon_placement : ''\n }`,\n `${\n this.outlineButtonTypes.indexOf(this.button_type) !== -1\n ? 'button--outline'\n : ''\n }`,\n `${this.button_selected ? 'button--selected' : ''}`,\n `${this.button_type === 'chip' ? 'button--chip' : ''}`\n ].filter(Boolean);\n}\n","<ng-template #content>\n <div class=\"button-content\">\n <ui-icon\n *ngIf=\"button_icon && button_icon_placement !== 'none'\"\n [icon_name]=\"button_icon\"\n [icon_size]=\"button_size\"\n [icon_class]=\"'buttonIcon'\"\n [icon_context]=\"button_icon_placement\"\n ></ui-icon>\n <span\n class=\"ui-text\"\n [ngClass]=\"{ visuallyhidden: button_icon_placement === 'iconOnly' }\"\n >\n <span #buttontext>\n <ng-content></ng-content>\n </span>\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n <div class=\"button-overlay-focus\"></div>\n \n</ng-template>\n\n<button\n *ngIf=\"!href\"\n (click)=\"onClick()\"\n [type]=\"button_event_type\"\n [ngClass]=\"computedButtonDisplayClasses\"\n [attr.disabled]=\"button_disabled === true || null\"\n [attr.aria-label]=\"computedAccessibleButtonContent\"\n [attr.role]=\"aria_role\"\n [attr.aria-checked]=\"aria_role === 'checkbox' || aria_role === 'switch' ? button_selected : null\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<a\n *ngIf=\"href\"\n [href]=\"href\"\n [attr.disabled]=\"button_disabled === true || null\"\n [attr.aria-label]=\"computedAccessibleButtonContent\"\n [ngClass]=\"computedButtonDisplayClasses\"\n>\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';\nimport { UIButtonSize } from '../button/button';\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 @Input() button_size: UIButtonSize = 'large';\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 get buttonSize(): UIButtonSize {\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE ? 'small' : this.button_size;\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_wrap]=\"isVertical\" stack_direction=\"x\" stack_gap=\"near\" stack_distribute=\"end\">\n <ui-button\n *ngIf=\"cancelButton && cancelButton.text\"\n button_type=\"tertiary\"\n [button_size]=\"buttonSize\"\n [button_text_nowrap]=\"!isVertical\"\n (clicked)=\"cancelled()\"\n >\n <ng-content select=\"ui-alert-cancel\"></ng-content>\n </ui-button>\n <ui-button\n *ngIf=\"confirmButton && confirmButton.text\"\n button_type=\"secondary\"\n [button_size]=\"buttonSize\"\n [button_text_nowrap]=\"!isVertical\"\n (clicked)=\"confirmed()\"\n >\n <ng-content select=\"ui-alert-confirm\"></ng-content>\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 { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class OasysAutofocusDirective {\n private _autofocus;\n\n @Input() set autofocus(condition: boolean) {\n this._autofocus = condition != false;\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n if (this._autofocus || typeof this._autofocus === 'undefined') {\n setTimeout(() =>{\n this.el.nativeElement.focus();\n }, 500)\n }\n }\n\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';\nimport { OasysAutofocusDirective } from './autofocus/autofocus.directive';\n\n@NgModule({\n declarations: [OasysHrefDirective, OasysAutofocusDirective],\n imports: [CommonModule, RouterModule],\n exports: [OasysHrefDirective, OasysAutofocusDirective],\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 grid_base: number;\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 {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'ui-grid',\n template: '<ng-content></ng-content>',\n host: {\n '[class]': 'gridLayoutClasses',\n '[style.grid-template-columns]': 'gridTemplateColumns'\n },\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutGridComponent implements OnInit, OnChanges {\n @Input() grid_auto: boolean = false;\n @Input() grid_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n @Input() grid_gap: 'none' | 'tiny' | 'tight' | 'near' | 'default' | 'expanded' = 'default';\n @Input() grid_base: number = 12;\n\n didFirstInit: boolean = false;\n prefix = 'ui-layout-grid';\n gridLayoutClasses?: string[];\n\n constructor(private changes: ChangeDetectorRef) {}\n\n get gridTemplateColumns(): string | null {\n if (this.grid_auto) return null;\n return `repeat(${this.grid_base}, 1fr)`;\n }\n\n ngOnChanges(): void {\n if (!this.didFirstInit) return;\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\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","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 LayoutGridColumnComponent,\n LayoutGridComponent,\n LayoutStackComponent,\n ],\n providers: [TokenService],\n})\nexport class OasysLayoutModule {}\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 { 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';\nimport { OasysButtonGroupModule } from '../button-group/button-group.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 OasysButtonGroupModule\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 @Input() breadcrumbs_values: string | BreadcrumbsItem[];\n values: BreadcrumbsItem[];\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","<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\" href=\"{{item.href}}\"> \n <span> {{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\" href=\"{{item.href}}\" [attr.aria-current]=\"item.name\"> \n <span> {{item.name}} </span>\n </ui-button> \n </ng-container>\n </ui-stack>\n </nav>\n</ui-box>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysDirectivesModule } from '../../../directives/directives.module';\nimport { OasysButtonModule } from '../../button';\nimport { OasysIconModule } from '../../icon';\nimport { OasysLayoutModule } from '../../layout';\nimport { BreadcrumbsComponent } from './breadcrumbs.component';\n\n@NgModule({\n declarations: [BreadcrumbsComponent],\n imports: [\n CommonModule,\n OasysButtonModule,\n OasysIconModule,\n OasysLayoutModule,\n OasysDirectivesModule\n ],\n exports: [BreadcrumbsComponent]\n})\nexport class OasysBreadcrumbModule {}\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,\n 1920, 2560, 3440, 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(\n baseUrl,\n 'webp',\n this.breakpoints,\n false\n ),\n fallbackUrl: this.getImageUrlsFromCDN(\n baseUrl,\n 'jpg',\n this.breakpoints,\n true\n )\n } as ImageResponse;\n }\n\n public getImageSizes(): string {\n return this.breakpoints\n .map((size) => `(max-width: ${size}px) ${size}px`)\n .join(', ');\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { ImageService } from '../../services/image.service';\nimport {\n ImageAspectRatio,\n ImageFetchPriority,\n ImageLoading,\n UIImage\n} from './image';\nimport { NgStyle } from '@angular/common';\n\n/**\n * ImageComponent is a reusable component. Necessary accessibility attributes are set by default for a decorative image.\n * alt text and airia described by text can be set to make the image non-decorative.\n *\n * TODO - migrate inputs to InputSignals when Angular supports it within angular 19.\n * Issue - https://github.com/angular/angular/issues/53981\n */\n@Component({\n standalone: true,\n imports: [NgStyle],\n selector: 'ui-image',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.scss']\n})\nexport class ImageComponent implements OnInit, OnChanges, OnDestroy {\n @Input({ required: true }) image_src: string;\n @Input() image_alt_text = ''; // Default set here so images are set as decorative by default\n @Input() image_aria_describedby: string | null = null;\n @Input() image_fill = false;\n @Input() fetchpriority: ImageFetchPriority = 'auto';\n @Input() loading: ImageLoading = 'lazy';\n @Input() preload_aspect_ratio: ImageAspectRatio = '1:1';\n @Input() image_width: number | null = null; // source when defining sizes either relates on viewport width or a specificed width in pixels\n\n @Output() readonly image_loaded = new EventEmitter<void>();\n\n private readonly imageService = inject(ImageService);\n private readonly el = inject<ElementRef<HTMLElement>>(\n ElementRef<HTMLElement>\n );\n\n readonly image = signal<UIImage | null>(null);\n readonly imageSizes = this.imageService.getImageSizes();\n\n private intersectionObserver: IntersectionObserver | null = null;\n\n @HostBinding('class') get class() {\n return `${this.image_fill ? 'imageFill' : ''}`;\n }\n\n /**\n * On init lifecycle hook to create the image.\n */\n ngOnInit(): void {\n this.createImage();\n void this.setupLazyLoading();\n }\n\n /**\n * On changes, handle any changes in input properties.\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['image_src'] || changes['image_width'] || changes['preload_aspect_ratio']) {\n this.createImage();\n this.cleanupObserver();\n this.setupLazyLoading();\n }\n }\n\n /**\n * Clean up the observer when the component is destroyed.\n */\n ngOnDestroy(): void {\n this.cleanupObserver();\n }\n\n /**\n * Creates the image object with the provided properties.\n */\n createImage(): void {\n const ratios = this.preload_aspect_ratio.split(':');\n const imageUrlResponse = this.imageService.generateImageUrl(this.image_src);\n\n const newImage: UIImage = {\n ...imageUrlResponse,\n ratioWidth: parseInt(ratios[0], 10),\n ratioHeight: parseInt(ratios[1], 10),\n loading: this.loading,\n fill: this.image_fill,\n fetchpriority: this.fetchpriority,\n preloadAspectRatio: this.preload_aspect_ratio,\n width: this.image_width ? `${this.image_width}px` : null,\n altText: this.image_alt_text,\n ariaDescribedby: this.image_aria_describedby ?? null\n };\n this.image.set(newImage);\n }\n\n /**\n * Sets up lazy loading for the image using IntersectionObserver.\n * This method observes the image element and loads the image when it comes into view.\n * It sets the `src` attribute for the image and the `srcset` attribute for the source element.\n * The observer is configured to remove the image after it has been observed to save memory.\n */\n private setupLazyLoading(): Promise<void> {\n return Promise.resolve().then((): void => {\n // Defer setup until after the view is initialized to ensure the <img> element exists.\n const imageElement = this.el.nativeElement.querySelector('img');\n if (!imageElement) {\n return;\n }\n\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const img = entry.target as HTMLImageElement;\n const source = img.parentElement?.querySelector('source');\n\n // Move the URL from data-src to src\n const dataSrc = img.getAttribute('data-src');\n if (dataSrc) {\n img.setAttribute('src', dataSrc);\n }\n\n // Move the URLs from data-srcset to srcset\n if (source) {\n const dataSrcset = source.getAttribute('data-srcset');\n if (dataSrcset) {\n source.setAttribute('srcset', dataSrcset);\n }\n }\n\n // Stop observing this image once it's loaded.\n this.intersectionObserver?.unobserve(img);\n }\n });\n },\n {\n root: null,\n rootMargin: '100px',\n threshold: 0.01\n }\n );\n this.intersectionObserver.observe(imageElement);\n });\n }\n\n /**\n * Cleans up the IntersectionObserver to prevent memory leaks.\n * This method disconnects the observer and sets it to null.\n */\n private cleanupObserver(): void {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n }\n }\n}\n","@if (image()) {\n <picture>\n <source\n [attr.sizes]=\"image().width ?? imageSizes\"\n [attr.srcset]=\"null\"\n [attr.data-srcset]=\"image().srcSetUrls\"\n type=\"image/webp\"\n />\n\n <img\n [class.imageFill]=\"image().fill\"\n [attr.width]=\"image().ratioWidth\"\n [attr.height]=\"image().ratioHeight\"\n [attr.src]=\"null\"\n [attr.data-src]=\"image().fallbackUrl\"\n [attr.loading]=\"image().loading\"\n [attr.fetchpriority]=\"image().fetchpriority\"\n [attr.alt]=\"image().altText\"\n [attr.aria-describedby]=\"image().ariaDescribedby\"\n [ngStyle]=\"{ 'aspect-ratio': image().preloadAspectRatio }\"\n (load)=\"image_loaded.emit()\"\n />\n </picture>\n}\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('--oasys-spacing-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('--oasys-component-card-aspect-ratio-square');\n case 'portrait':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');\n case 'landscape':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-landscape');\n default:\n return this.tokenService.getTokenValue('--oasys-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: [],\n imports: [CommonModule, OasysDirectivesModule, ImageComponent],\n exports: [ImageComponent],\n providers: [ImageService]\n})\nexport class OasysImageModule {\n public static forRoot(environment: {\n mediaUrl: string;\n }): 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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormGroupComponent {\n /**\n * Required\n * Set the title to automatically show the correctly styled heading/legend\n */\n @Input() group_title: string;\n\n /**\n * Hide the title of the form group but it remains accessible to screen readers.\n */\n @Input() group_title_hidden: boolean = false;\n\n /**\n * Affects which type title text and input is shown\n */\n @Input() group_type: 'primary' | 'secondary' = 'primary';\n}\n","<fieldset>\n <legend [ngClass]=\"{'visually-hidden': group_title_hidden, 'primary': group_type === 'primary', 'secondary': group_type === 'secondary'}\">\n {{group_title}}\n </legend>\n <ui-stack stack_gap=\"near\">\n <ng-content></ng-content>\n </ui-stack>\n</fieldset>","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconNames } from '../../icon/icon';\n\n@Component({\n selector: 'ui-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true,\n },\n ],\n})\nexport class RadioComponent implements ControlValueAccessor, OnInit {\n @Input() radio_type: 'primary' | 'secondary' = 'primary';\n\n // Required for chip component\n @Input() hide_radio: boolean = false;\n @Input() iconName?: IconNames;\n\n @Input() label?: string;\n @Input() value?: string;\n @Input() name?: string;\n @Input() checked?: boolean;\n\n @Output() didChange: EventEmitter<string> = new EventEmitter();\n\n id: string | number;\n iconSize: string;\n\n selectedValue: string;\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor() {}\n\n selectOption() {\n this.onChange(this.value);\n this.onTouched();\n }\n\n writeValue(value: string): void {\n this.selectedValue = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n onModelChange(event: string) {\n this.value = event;\n this.onChange(event);\n this.didChange.emit(event);\n this.onTouched();\n }\n\n ngOnInit(): void {\n this.id = this.label + Math.random();\n }\n}\n","<ui-stack stack_direction=\"x\" stack_gap=\"near\" stack class=\"ui-radio\">\n <input\n role=\"radio\"\n type=\"radio\"\n [id]=\"id\"\n [value]=\"value\"\n [ngModel]=\"selectedValue\"\n (ngModelChange)=\"onModelChange($event)\"\n [ngClass]=\"radio_type\"\n [name]=\"name\"\n [checked]=\"checked\"\n />\n <label [for]=\"id\" [ngClass]=\"radio_type\">\n <ui-stack stack_gap=\"near\" [stack_align]=\"hide_radio ? 'center' : 'left'\" stack_direction=\"x\">\n <div [ngClass]=\"{ 'icon--hidden': hide_radio, 'icon-container': true }\">\n <div class=\"dot\"></div>\n </div>\n <ui-stack stack_gap=\"tight\">\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_gap=\"near\"\n [ngClass]=\"radio_type === 'primary' ? 'text-body--default' : 'text-body--supporting'\"\n >\n <ui-icon\n *ngIf=\"hide_radio && iconName\"\n [icon_name]=\"iconName\"\n icon_size=\"small\"\n ></ui-icon>\n <span class=\"main-label\" [ngClass]=\"{ 'label--center': hide_radio }\">{{ label }}</span>\n <ng-content select=\"[tertiary-content]\"></ng-content>\n </ui-stack>\n <span\n [attr.aria-details]=\"id\"\n class=\"input-hint text-body--regular text-body--supporting text-color--supporting\"\n ><ng-content></ng-content\n ></span>\n </ui-stack>\n </ui-stack>\n </label>\n</ui-stack>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { RadioComponent } from './radio.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\n\n@NgModule({\n declarations: [RadioComponent],\n imports: [CommonModule, OasysLayoutModule, ReactiveFormsModule, FormsModule, OasysIconModule],\n exports: [RadioComponent],\n providers: [TokenService],\n})\nexport class OasysRadioModule {}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { TokenService } from '../../../services/token.service';\nimport { IconNames } from '../../icon/icon';\n\n@Component({\n selector: 'ui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent implements ControlValueAccessor, OnInit {\n @Input() checkbox_type: 'primary' | 'secondary' = 'primary';\n\n // Required for chip component\n @Input() hide_checkbox: boolean = false;\n @Input() iconName?: IconNames;\n\n @Input() label?: string;\n @Input() checked: boolean;\n @Input() required: boolean;\n @Output() didChange: EventEmitter<boolean> = new EventEmitter();\n\n id: string | number;\n iconSize: string;\n\n constructor(private tokenService: TokenService) {}\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(checked: boolean): void {\n this.checked = checked;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n onModelChange(event: boolean) {\n this.checked = event;\n this.onChange(event);\n this.didChange.emit(event);\n this.onTouched();\n }\n\n ngOnInit(): void {\n this.id = this.label + Math.random();\n this.iconSize = this.tokenService.getTokenValue(\n `--oasys-component-checkbox-icon-size-${this.checkbox_type}`,\n );\n }\n}\n","<ui-stack stack_direction=\"x\" stack_gap=\"near\" stack class=\"ui-checkbox\">\n <input\n type=\"checkbox\"\n [required]=\"required\"\n [id]=\"id\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onModelChange($event)\"\n [attr.checked]=\"checked || null\"\n [ngClass]=\"checkbox_type\"\n />\n <label [for]=\"id\" [ngClass]=\"checkbox_type\">\n <ui-stack\n stack_gap=\"near\"\n [stack_align]=\"hide_checkbox ? 'center' : 'left'\"\n stack_direction=\"x\"\n >\n <div\n class=\"icon-container\"\n [ngClass]=\"{\n 'focus-element': checkbox_type === 'secondary',\n 'icon--hidden': hide_checkbox\n }\"\n >\n <ui-icon\n icon_name=\"tick\"\n [icon_size_override]=\"iconSize\"\n icon_class=\"checkboxIcon\"\n ></ui-icon>\n </div>\n <ui-stack stack_gap=\"tight\">\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n [ngClass]=\"checkbox_type === 'primary' ? 'text-body--default' : 'text-body--supporting'\"\n >\n <ui-icon\n *ngIf=\"hide_checkbox && iconName\"\n [icon_name]=\"iconName\"\n icon_size=\"small\"\n ></ui-icon>\n <span class=\"main-label\">{{ label }}</span>\n <ng-content select=\"[tertiary-content]\"></ng-content>\n </ui-stack>\n <span class=\"input-hint text-body--regular text-body--supporting text-color--supporting\"\n ><ng-content></ng-content\n ></span>\n </ui-stack>\n </ui-stack>\n </label>\n</ui-stack>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { CheckboxComponent } from './checkbox.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, OasysLayoutModule, ReactiveFormsModule, FormsModule, OasysIconModule],\n exports: [CheckboxComponent],\n providers: [TokenService],\n})\nexport class OasysCheckboxModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { FormGroupComponent } from './form-group.component';\nimport { OasysRadioModule } from '../radio';\nimport { OasysCheckboxModule } from '../checkbox';\n\n@NgModule({\n declarations: [FormGroupComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysRadioModule,\n OasysCheckboxModule\n ],\n exports: [FormGroupComponent],\n providers: [TokenService]\n})\nexport class OasysFormGroupModule {}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n forwardRef,\n ElementRef,\n Inject,\n AfterViewInit,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AutocompleteType, TextInputType } from './text-input';\nimport { ValidationErrorTypes } from '../forms';\n\n@Component({\n selector: 'ui-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(\n (): typeof TextInputComponent => TextInputComponent\n ),\n multi: true\n }\n ]\n})\nexport class TextInputComponent\n implements ControlValueAccessor, OnInit, AfterViewInit\n{\n @Input() label!: string;\n @Input() hint?: string;\n @Input() optional: boolean = true;\n @Input() type: TextInputType = 'text';\n @Input() autocomplete: AutocompleteType = 'on';\n @Input() autofocus: boolean = false;\n @Input() minlength: number;\n @Input() maxlength: number = 255;\n @Input() pattern: string;\n @Input() autocorrect: boolean = this.type === 'text'; // do not spell check emails and passwords\n @Input() disabled: boolean = false;\n @Input() aria_label: string | undefined;\n\n @Input() show_password_string: string = 'Show'; // Pass in translated string\n @Input() hide_password_string: string = 'Hide'; // Pass in translated string\n\n @Input() validation_messages: ValidationErrorTypes; // Pass in translated string\n\n @Output() didChange = new EventEmitter<string>();\n\n @ViewChild('textinput', { read: ElementRef })\n textInput: ElementRef<HTMLElement>;\n\n @ViewChild('prefaceContent', { read: ElementRef, static: false })\n prefaceContent: ElementRef<HTMLElement>;\n\n textValue: string = '';\n showPassword: boolean = false;\n inputDidChange: boolean = false; // only show valdiation after a change event (ie. blur)\n textInputType: TextInputType = 'text';\n\n id: string | number;\n\n safariAutocorrect: 'on' | 'off' = 'on';\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n onChange: any = (): void => {};\n onTouched: any = (): void => {};\n\n writeValue(textValue: string): void {\n this.textValue = textValue;\n }\n\n registerOnChange(fn: unknown): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: unknown): void {\n this.onTouched = fn;\n }\n\n onModelChange(textValue: string): void {\n this.textValue = textValue;\n this.onChange(textValue);\n this.didChange.emit(textValue);\n this.onTouched();\n }\n\n toggleShowPassword(): void {\n this.showPassword = !this.showPassword;\n this.textInputType = this.showPassword ? 'text' : 'password';\n }\n\n handleEvent(): void {\n this.inputDidChange = true;\n\n const inputElement = this.document.getElementById(this.id.toString());\n inputElement?.removeEventListener('change', this);\n }\n\n setupValidationListener(): void {\n const inputElement = this.document.getElementById(this.id.toString());\n inputElement?.addEventListener('change', this);\n }\n\n ngAfterViewInit(): void {\n this.setupValidationListener();\n }\n\n ngOnInit(): void {\n this.id = Math.random();\n this.textInputType = this.type;\n this.safariAutocorrect = this.autocorrect ? 'on' : 'off';\n }\n\n accessibleAriaLabel(): string | undefined {\n let prefaceText = '';\n\n if (this.aria_label || this.textInputType !== 'tel') {\n return this.aria_label;\n }\n\n // Get preface content if available\n if (this.prefaceContent?.nativeElement?.textContent?.trim()) {\n prefaceText = ' ' + this.prefaceContent.nativeElement.textContent.trim();\n }\n\n const textValue = this.textValue?.trim() ?? '';\n const telephoneToText = prefaceText + ' ' + textValue.split('').join(' ');\n\n return this.label + telephoneToText;\n }\n\n getInputMode(): string | undefined {\n // For telephone inputs, use tel input mode\n if (this.textInputType === 'tel') {\n return 'tel';\n }\n\n return undefined;\n }\n\n getAriaDescribedBy(): string | undefined {\n const describedBy = [];\n\n // Add error if it exists\n describedBy.push('error_' + this.id);\n\n // Add hint if it exists\n if (this.hint) {\n describedBy.push('hint_' + this.id);\n }\n\n return describedBy.length > 0 ? describedBy.join(' ') : undefined;\n }\n}\n","<ui-stack class=\"ui-text-input-container\" stack_gap=\"tight\">\n <div class=\"ui-text-input\">\n <ui-stack stack_direction=\"x\">\n <div class=\"input-preface\" [attr.id]=\"'preface_' + id\" #prefaceContent>\n <ng-content select=\"[preface]\"></ng-content>\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"safariAutocorrect\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"autocomplete || null\"\n [minlength]=\"minlength || null\"\n [maxlength]=\"maxlength\"\n [pattern]=\"pattern || null\"\n [required]=\"!optional\"\n [spellcheck]=\"autocorrect\"\n [type]=\"textInputType\"\n [value]=\"textValue\"\n [attr.inputmode]=\"getInputMode()\"\n [attr.aria-describedby]=\"getAriaDescribedBy()\"\n [attr.aria-label]=\"accessibleAriaLabel()\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-stack>\n <ui-stack\n class=\"label-container\"\n stack_direction=\"x\"\n [stack_distribute]=\"type === 'password' ? 'space-between' : 'start'\"\n >\n <label class=\"text-body--supporting text-body--regular\" [for]=\"id\">{{\n label\n }}</label>\n @if (type === \"password\") {\n <a\n (click)=\"toggleShowPassword()\"\n class=\"text-body--supporting text-color--supporting\"\n >\n @if (!showPassword) {\n <span>{{ show_password_string }}</span>\n } @else if (showPassword) {\n <span>{{ hide_password_string }}</span>\n }\n </a>\n }\n </ui-stack>\n </div>\n <ui-stack stack_gap=\"none\">\n <div class=\"input-errors\">\n <div class=\"input-errors-content\" [attr.id]=\"'error_' + id\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n @if (hint) {\n <ui-box\n class=\"hint-container\"\n box_background=\"none\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n >\n <div\n class=\"ui-text-input-hint text-body--supporting text-color--supporting\"\n [attr.id]=\"'hint_' + id\"\n >\n {{ hint }}\n </div>\n </ui-box>\n }\n </ui-stack>\n</ui-stack>\n","import { Component, computed, input } from '@angular/core';\nimport { ValidationErrorTypes } from '../forms';\nimport { ValidationErrors } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ui-form-errors',\n templateUrl: './form-errors.component.html',\n standalone: true,\n imports: [CommonModule]\n})\nexport class FormErrorsComponent {\n errors = input<ValidationErrors | null | undefined>(null);\n error_messages = input<ValidationErrorTypes | undefined>({});\n\n errorMessage = computed((): string => {\n const currentErrors = this.errors();\n const messages = this.error_messages() || {};\n\n if (!currentErrors) {\n return undefined;\n }\n const errorKeys = Object.keys(currentErrors);\n const firstErrorKey = errorKeys.length ? errorKeys[0] : undefined;\n return firstErrorKey ? messages[firstErrorKey] : undefined;\n });\n}\n","@if (errorMessage()) {\n<ui-box\n box_background=\"none\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n>\n <div class=\"text-color--error\">{{ errorMessage() }}</div>\n</ui-box>\n}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormErrorsComponent } from './form-errors.component';\n\n@NgModule({\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n FormErrorsComponent\n ],\n exports: [FormErrorsComponent],\n providers: [TokenService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class OasysFormErrorsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { TextInputComponent } from './text-input.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { OasysDirectivesModule } from '../../../directives/directives.module';\nimport { OasysFormErrorsModule } from '../errors';\n\n@NgModule({\n declarations: [TextInputComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysDirectivesModule,\n OasysFormErrorsModule\n ],\n exports: [TextInputComponent],\n providers: [TokenService]\n})\nexport class OasysTextInputModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { IconNames } from '../../icon/icon';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ui-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipComponent),\n multi: true,\n },\n ],\n})\nexport class ChipComponent implements ControlValueAccessor, OnInit {\n @Input() chip_type: 'radio' | 'checkbox' = 'radio';\n\n @Input() icon_name!: IconNames;\n @Input() label?: string;\n @Input() value?: string | boolean;\n\n // Checkbox only\n @Input() required: boolean;\n\n @Output() didChange: EventEmitter<string | boolean> = new EventEmitter();\n\n id: string;\n selectedValue: string | boolean;\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor() {}\n\n /**\n * On init\n */\n ngOnInit(): void {\n this.id = 'chip' + Math.random();\n }\n\n /**\n * CVA - Write value\n * @param {string | boolean} value\n */\n writeValue(value: string | boolean): void {\n this.selectedValue = value;\n }\n\n /**\n * CVA - Register on change\n * @param {() => void} fn\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * CVA - Register on touched\n * @param {() => void} fn\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * On modal interaction and change\n * @param event\n */\n onModalChange(event: string | boolean): void {\n this.value = event;\n this.onChange(event);\n this.didChange.emit(event);\n this.onTouched();\n }\n}\n","<div [id]=\"id\" class=\"ui-chip\">\n <ui-radio\n *ngIf=\"chip_type === 'radio'\"\n [label]=\"label\"\n [value]=\"value\"\n radio_type=\"primary\"\n [hide_radio]=\"true\"\n [iconName]=\"icon_name\"\n [ngModel]=\"selectedValue\"\n (didChange)=\"onModalChange($event)\"\n >\n <ng-content ngProjectAs=\"[tertiary-content]\"></ng-content>\n </ui-radio>\n\n <ui-checkbox\n *ngIf=\"chip_type === 'checkbox'\"\n [label]=\"label\"\n [checked]=\"checked\"\n [required]=\"required\"\n checkbox_type=\"primary\"\n [hide_checkbox]=\"true\"\n [iconName]=\"iconName\"\n [ngModel]=\"selectedValue\"\n (didChange)=\"onModalChange($event)\"\n >\n <ng-content ngProjectAs=\"[tertiary-content]\"></ng-content>\n </ui-checkbox>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ChipComponent } from './chip.component';\nimport { CommonModule } from '@angular/common';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { OasysRadioModule } from '../radio';\nimport { OasysCheckboxModule } from '../checkbox';\n\n@NgModule({\n declarations: [ChipComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysRadioModule,\n OasysCheckboxModule,\n ],\n exports: [ChipComponent],\n providers: [TokenService],\n})\nexport class OasysChipModule {}\n","import { Component, Input, OnInit, ViewEncapsulation, HostBinding } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { HeadingAlignment, HeadingGap, HeadingLevel, HeadingType, 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 @Input() heading_type: HeadingType = 'primary';\n @Input() heading_on_dark: UIBoolean;\n @Input() heading_title: string;\n @Input() heading_seo_priority: boolean = false;\n @Input() heading_priority?: 1 | 2 | 3 | 4 | 5 | 6;\n @Input() heading_alignment_override?: HeadingAlignment;\n @Input() heading_subtitle?: string = '';\n @Input() heading_surtitle?: string = '';\n @Input() heading_level?: HeadingLevel;\n\n computed_heading_level: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n headingAlignment: HeadingAlignment;\n headingGap: HeadingGap;\n\n constructor(private tokenService: TokenService) { }\n\n @HostBinding('class') get class(): string {\n return `\n ${this.heading_on_dark ? 'text-color--on-dark' : ''}\n ui-heading-alignment-${this.headingAlignment}\n `;\n }\n\n setComputedHeadingLevel(): void {\n if (this.heading_level) {\n this.computed_heading_level = this.heading_level;\n } else if (this.heading_priority) {\n this.computed_heading_level = `h${this.heading_priority}`;\n } else if (this.heading_seo_priority) {\n this.computed_heading_level = 'h1';\n } else {\n this.computed_heading_level = 'h2';\n }\n }\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('--oasys-component-heading-alignment-default') as HeadingAlignment;\n const functionalAlignment = this.tokenService.getTokenValue('--oasys-component-heading-alignment-functional') as HeadingAlignment;\n\n this.headingAlignment = this.headingTypeIsFunctional(headingType) ? functionalAlignment : alignment;\n }\n\n setupHeadingStackGap(headingType: HeadingType): void {\n if (this.headingTypeIsFunctional(headingType)) {\n this.headingGap = this.tokenService.getTokenValue('--oasys-component-heading-gap-functional') as HeadingGap;\n return;\n }\n\n if (this.heading_type === 'secondary') {\n this.headingGap = this.tokenService.getTokenValue('--oasys-component-heading-gap-secondary') as HeadingGap;\n return;\n }\n\n if (this.heading_type === 'primary') {\n this.headingGap = this.tokenService.getTokenValue('--oasys-component-heading-gap-primary') as HeadingGap;\n return;\n }\n\n // Hero gap\n this.headingGap = this.tokenService.getTokenValue('--oasys-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.setComputedHeadingLevel();\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 <!-- Title -->\n <h1 *ngIf=\"computed_heading_level==='h1'\" role=\"heading\" class=\"seo-h1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h1>\n <h2 *ngIf=\"computed_heading_level==='h2'\" role=\"heading\" class=\"seo-h2\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h2>\n <h3 *ngIf=\"computed_heading_level==='h3'\" role=\"heading\" class=\"seo-h3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h3>\n <h4 *ngIf=\"computed_heading_level==='h4'\" role=\"heading\" class=\"seo-h4\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h4>\n <h5 *ngIf=\"computed_heading_level==='h5'\" role=\"heading\" class=\"seo-h5\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h5>\n <h6 *ngIf=\"computed_heading_level==='h6'\" role=\"heading\" class=\"seo-h6\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h6>\n\n <!-- Subtitle -->\n <h2\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h1'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h2>\n <h3\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h2'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h3>\n <h4\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h3'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h4>\n <h5\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h4'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h5>\n <h6\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h5'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h6>\n <p\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h6'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></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, AfterViewInit, ElementRef, ViewChild } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\nimport { HeadingLevel } from '../heading/heading';\n@Component({\n selector: 'ui-hero',\n templateUrl: './hero.component.html',\n styleUrls: ['./hero.component.scss']\n})\nexport class HeroComponent implements OnInit, AfterViewInit {\n @ViewChild('herobox', { read: ElementRef }) herobox: ElementRef;\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 @Input() non_brand_background_colour: string;\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 @Input() text_on_dark_override: string;\n @Input() heading_level: HeadingLevel = 'h1';\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 heroInsetSpaceSmall: string;\n heroInsetSpaceLarge: string;\n\n constructor(private tokenService: TokenService\n ) { }\n\n setNonBrandBackgroundColour(): void {\n this.herobox.nativeElement.style.background = this.non_brand_background_colour;\n }\n\n ngAfterViewInit(): void {\n if (this.non_brand_background_colour) {\n this.setNonBrandBackgroundColour();\n }\n }\n\n ngOnInit(): void {\n this.heroCtaAlignment = this.tokenService.getTokenValue('--oasys-component-hero-actions-alignment');\n this.heroInsetSpaceSmall = this.tokenService.getTokenValue('--oasys-component-hero-inset-spacing-small');\n this.heroInsetSpaceLarge = this.tokenService.getTokenValue('--oasys-component-hero-inset-spacing-large');\n }\n}\n","<ui-box [box_background]=\"background_colour\" box_space=\"none\" #herobox>\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]=\"(herobox.backgroundIsDark || (text_on_dark_override === 'true')) ? true : false\"\n [heading_title]=\"heading_title\"\n [heading_seo_priority]=\"true\"\n [heading_subtitle]=\"heading_subtitle\"\n [heading_surtitle]=\"heading_surtitle\"\n [heading_level]=\"heading_level\">\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]=\"(herobox.backgroundIsDark || (text_on_dark_override === 'true')) ? 'primary-inverse' : 'primary'\"\n [href]=\"href_primary_cta\">\n <span>{{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]=\"(herobox.backgroundIsDark || (text_on_dark_override === 'true')) ? 'secondary-inverse' : 'secondary'\"\n [href]=\"href_secondary_cta\">\n <span>{{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 <picture *ngIf=\"media_type === 'image'\">\n <source [srcset]=\"image + '?w=880&h=880&fm=webp&q=75 1x,' + image + '?w=1760&h=1760&fm=webp&q=40 2x'\" media=\"(min-width: 1440px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=720&h=720&fm=webp&q=75 1x,' + image + '?w=1440&h=1440&fm=webp&q=40 2x'\" media=\"(min-width: 1200px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=580&h=580&fm=webp&q=75 1x,' + image + '?w=1160&h=1160&fm=webp&q=40 2x'\" media=\"(min-width: 992px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=430&h=430&fm=webp&q=75 1x,' + image + '?w=860&h=860&fm=webp&q=40 2x'\" media=\"(min-width: 768px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=720&h=720&fm=webp&q=40 2x'\" media=\"(min-width: 454px)\" type=\"image/webp\">\n <img fetchpriority=\"high\" [src]=\"image + '?w=430&h=430&fm=webp&q=75'\" [attr.alt]=\"alt_text\" width=\"100%\" height=\"100%\" style=\"object-fit: cover;\">\n </picture>\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 <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"!expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(true)\"\n class=\"text-link text-link--standalone\">\n {{read_more_content_text}}\n </a>\n <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(false)\"\n class=\"text-link text-link--standalone\">\n {{read_less_content_text}}\n </a>\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 <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"!expandedLinksVisible\" (click)=\"showMoreLinks(true)\" class=\"text-link text-link--standalone\">\n {{show_more_links_text}}\n </a>\n <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"expandedLinksVisible\" (click)=\"showMoreLinks(false)\" class=\"text-link text-link--standalone\">\n {{show_less_links_text}}\n </a>\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 { 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 doesn't appear to be used anywhere\n this.backgroundIsDark = this.tokenService.getTokenValue(`--oasys-component-box-on-dark-${this.brand_background_colour}`);\n }\n\n ngOnInit(): void {\n\n this.containerInsetSpaceSmall = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-container-small`);\n this.containerInsetSpaceLarge = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-container-large`);\n\n this.contentInsetSpaceSmall = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-content-small-${this.section_type}`);\n this.contentInsetSpaceLarge = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-content-large-${this.section_type}`);\n\n this.imageAspectRatio = this.tokenService.getTokenValue(`--oasys-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 EventEmitter,\n Output\n} from '@angular/core';\nimport Swiper from 'swiper';\nimport { SwiperOptions } from 'swiper/types';\nimport { TokenService } from '../../services/token.service';\nimport { SwiperContainer } from 'swiper/element';\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<SwiperContainer>;\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' | 'tight' | 'near' | 'none' = 'default';\n\n @Input() carousel_pagination: 'scroll-arrows' | 'none' | 'scroll-bar' | 'small-arrows' = 'none';\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 @Input() text_for_left_arrow: string = 'previous slide';\n @Input() text_for_right_arrow: string = 'next slide';\n\n @Input() carousel_rows_per_row_mobile: 1 | 2 = 1; // Required for CATEGORY_CARD experiment. Remove if experiment fails.\n\n @Input() carousel_loading: 'lazy' | 'eager' = 'lazy'; // If we don't have multiple carousels on page and want to prioritise UI loading on time\n @Input() carousel_free_mode: boolean = false; // Enables scrolling with mousewheel / smoother momentum swiping experience\n @Input() center_insufficient_slides: boolean = true; // Centers the slides if there are not enough to fill the space\n @Input() center_active_slide: boolean = false; // Centers the active slide\n @Input() start_slide: number = 0; // Start slide index\n @Input() offset_scrollbar_top: boolean = false; // Offset the scrollbar to the top of the carousel\n\n @Output() activeIndexOnSlideChange = new EventEmitter<number>();\n\n constructor(private tokenService: TokenService, @Inject(DOCUMENT) private document: Document, private element: ElementRef) {}\n\n ngOnInit(): void {\n if (this.carousel_loading === 'lazy') {\n this.setUpIntersectionObserver();\n } else {\n this.initSwiper();\n }\n }\n\n /**\n * Set up the intersection observer with the relevant options\n */\n setUpIntersectionObserver(): void {\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): void {\n entries.forEach((entry): void => {\n if (entry.isIntersecting) {\n // Initialise swiper\n this.initSwiper();\n observer.unobserve(entry.target);\n }\n });\n }\n\n getStyle(element: HTMLElement, style: string): string {\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 === 'none') {\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 if (carouselStack && this.carousel_pagination === 'scroll-arrows') {\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 this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-height', '2px'\n );\n }\n\n if (carouselStack && this.carousel_pagination === 'scroll-bar') {\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-width', '100%'\n );\n\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-offset-top', `${this.offset_scrollbar_top ? parseInt(this.getStyle(carouselStack, 'gap'), 10) + 'px' : '0px'}`\n );\n\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-height', '4px'\n );\n\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-left', '0px'\n );\n }\n }\n\n /**\n * Set the dynamic swiper params and initialise the swiper instance\n */\n // eslint-disable-next-line complexity\n initSwiper(): void {\n // Colour overides\n const scrollbarBackgroundColour = this.tokenService.getTokenValue('--oasys-color-linen-grey-200');\n const scrollbarSliderColour = this.tokenService.getTokenValue('--oasys-color-brand-foreground-primary');\n\n // swiper element\n const swiperEl = this.swiper.nativeElement;\n\n const carouselGap = this.tokenService.getTokenValue(`--oasys-spacing-${this.carousel_gap}`);\n\n // swiper parameters\n const swiperParams: SwiperOptions = {\n rewind: this.rewind,\n grabCursor: true,\n spaceBetween: (parseInt(carouselGap.replace('.', ''), 10)) || 0,\n centeredSlides: this.center_active_slide,\n initialSlide: this.start_slide,\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n centerInsufficientSlides: this.center_insufficient_slides,\n freeMode: this.carousel_free_mode\n ? {\n enabled: true,\n sticky: true,\n momentumVelocityRatio: 0.75,\n momentumRatio: 0.75\n }\n : false,\n mousewheel: this.carousel_free_mode\n ? {\n forceToAxis: true\n }\n : false,\n injectStyles: [\n `\n .swiper {\n overflow: ${this.carousel_overflow ? 'visible' : 'hidden'} !important;\n }\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: var(--ui-carousel-scrollbar-height);\n left: ${this.carousel_pagination === 'scroll-bar' ? 'var(--ui-carousel-scrollbar-left)' : '1%'};\n background: ${scrollbarBackgroundColour}\n }\n\n .swiper-scrollbar-drag {\n background: ${scrollbarSliderColour}\n }`\n ],\n breakpoints: {\n 0: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_mobile,\n grid: {\n rows: this.carousel_rows_per_row_mobile,\n fill: 'row'\n }\n },\n 767: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_tablet\n },\n 1080: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_laptop\n },\n 1440: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_desktop\n }\n },\n on: {\n slideChange: this.onSlideChange.bind(this)\n }\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', (): void => {\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 /**\n * Emit event when the slide changes\n * @param swiper\n */\n onSlideChange(swiper: Swiper): void {\n this.activeIndexOnSlideChange.emit(swiper.activeIndex);\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 <!-- Custom navigation buttons -->\n <ui-stack *ngIf=\"carousel_pagination === 'small-arrows'\" stack_direction=\"x\" stack_align=\"center\" stack_distribute=\"end\">\n <ui-box\n box_space=\"none\"\n box_fill_mode=\"fit\"\n box_space_bottom=\"near\"\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=\"small\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"tertiary\"\n [aria_label]=\"text_for_left_arrow\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"small\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"tertiary\"\n [aria_label]=\"text_for_right_arrow\"\n (clicked)=\"nextSlide()\"> Next slide\n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n touch-start-prevent-default=\"false\"\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' || carousel_pagination === 'scroll-bar'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box\n *ngIf=\"carousel_pagination === 'scroll-arrows'\"\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 [aria_label]=\"text_for_left_arrow\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n [aria_label]=\"text_for_right_arrow\"\n (clicked)=\"nextSlide()\"> Next slide\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 { 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, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds, LayoutBackgroundsDeprecated } 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 // Design token variables;\n public mobilePadding: string\n\n @Input() background_colour: LayoutBackgrounds | LayoutBackgroundsDeprecated = '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 constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.mobilePadding = this.tokenService.getTokenValue('--oasys-component-banner-spacing-mobile');\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 #bannerbox\n >\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-box [box_space]='{mobile: mobilePadding, tablet: \"none\"}' box_space_top=\"none\" box_space_bottom=\"none\" box_background=\"transparent\">\n <ui-stack\n class=\"content__stack\"\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_gap=\"near\"\n stack_collapse_below=\"tablet\">\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]=\"bannerbox.backgroundIsDark ? 'primary-inverse' : 'primary'\"\n [href]=\"cta_link\"\n (clicked)=\"onCtaClicked()\">\n <span>{{cta_text}}</span>\n </ui-button>\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 { 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 {}","import { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'ui-price',\n templateUrl: './price.component.html',\n styleUrls: ['./price.component.scss']\n})\nexport class OasysPriceComponent {\n\n @HostBinding('class') get class() {\n return `\n ${this.price_type === 'hero' ? 'text-body--hero' : ''}\n ${this.price_type === 'primary' ? 'text-body--default' : ''}\n ${this.price_type === 'supporting' ? 'text-body--supporting' : ''}\n `\n }\n\n @Input() price: string;\n @Input() price_before_discount?: string;\n\n @Input() price_type: 'hero' | 'primary' | 'supporting' = 'primary';\n\n}\n","<div class=\"ui-price\" [ngClass]=\"price_type\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\" stack_align=\"center\" [ngClass]=\"{'oasys-price-has-discount': price_before_discount}\">\n <div [attr.aria-hidden]=\"true\" *ngIf=\"price_before_discount\" class=\"text-body--line-through\">{{price_before_discount}}</div>\n <div itemprop=\"price\" class=\"price-to-pay\">{{price}}</div>\n </ui-stack>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysPriceComponent } from './price.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n\n@NgModule({\n declarations: [OasysPriceComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [OasysPriceComponent]\n})\nexport class OasysPriceModule {}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { PillTone } from './pill';\n\n@Component({\n selector: 'ui-pill',\n templateUrl: './pill.component.html',\n styleUrls: ['./pill.component.scss']\n})\nexport class OasysPillComponent {\n\n prefix = 'ui-pill';\n\n @HostBinding('class') get class() {\n return `${this.prefix}-${this.tone}`\n }\n\n @Input() tone: PillTone = 'neutral';\n\n}\n","<div role=\"status\" class=\"text-body--supporting text-body--emphasis\"><ng-content></ng-content></div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysPillComponent } from './pill.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n\n@NgModule({\n declarations: [OasysPillComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [OasysPillComponent]\n})\nexport class OasysPillModule {}\n","import { Component, Input, OnInit, ViewEncapsulation, HostBinding } from '@angular/core';\nimport { Breakpoint, BreakpointService } from '../../services/breakpoint.service';\n\n\n@Component({\n selector:'ui-pill-group',\n templateUrl: './pill-group.component.html',\n styleUrls: ['./pill-group.component.scss'],\n encapsulation: ViewEncapsulation.None, // to hide non ui-pills via css\n})\nexport class OasysPillGroupComponent implements OnInit {\n\n prefix: 'ui-pill-group';\n\n @Input() pill_group_align: 'start' | 'center' | 'end' = 'start';\n @Input() pill_group_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n\n constructor(private breakpointService: BreakpointService){}\n\n\n ngOnInit(): void {\n }\n\n get shouldCollapse(): boolean {\n switch (this.pill_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]=\"pill_group_collapse_below\"\n [stack_distribute]=\"pill_group_align\"\n [stack_wrap]=\"true\"\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 { OasysPillGroupComponent } from './pill-group.component';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysPillComponent } from '../pill/pill.component';\nimport { OasysPillModule } from '../pill/pill.module';\n\n@NgModule({\n declarations: [OasysPillGroupComponent],\n imports: [OasysLayoutModule, CommonModule, RouterModule, OasysPillModule],\n exports: [OasysPillGroupComponent],\n})\nexport class OasysPillGroupModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\n\nexport type PromoCardLayout = 'default' | 'compact';\n\nconst PROMO_CARD_LAYOUTS: Record<PromoCardLayout, {\n headingType: string;\n bodyType: string;\n spacing: string;\n}> = {\n default: {\n headingType: 'secondary',\n bodyType: 'body-default',\n spacing: 'default'\n },\n compact: {\n headingType: 'body-expressive',\n bodyType: 'body-supporting',\n spacing: 'near'\n }\n};\n\n@Component({\n selector: 'ui-promo-card',\n templateUrl: './promo-card.component.html',\n styleUrls: ['./promo-card.component.scss']\n})\nexport class PromoCardComponent implements OnInit {\n\n // Image\n @Input() image: string;\n @Input() alt_text: string;\n\n // Content\n @Input() title: string;\n @Input() subtitle: string;\n\n // CTAs\n @Input() primary_cta_text: string;\n @Input() href_primary_cta: string = '';\n\n // Style\n @Input() background_colour: string;\n @Input() font_colour: string;\n\n // Layout\n @Input() layout: PromoCardLayout = 'default';\n\n @Output() cta_clicked: EventEmitter<void> = new EventEmitter();\n\n aspectRatio: string;\n alignment: string;\n layoutConfig = PROMO_CARD_LAYOUTS['default'];\n\n constructor(private tokenService: TokenService) {}\n\n ngOnInit(): void {\n this.layoutConfig = PROMO_CARD_LAYOUTS[this.layout] ?? PROMO_CARD_LAYOUTS['default'];\n this.aspectRatio = this.tokenService.getTokenValue('--oasys-component-promo-card-image-aspect-ratio');\n this.alignment = this.tokenService.getTokenValue('--oasys-component-promo-card-heading-alignment');\n }\n\n ctaClicked(): void {\n this.cta_clicked.emit();\n }\n}\n","<ui-box box_space=\"none\" [ngStyle]=\"{'background-color': background_colour, 'color': font_colour}\">\n <ui-stack [stack_gap]=\"layoutConfig.spacing\" stack_align=\"center\">\n <ui-box box_space=\"none\">\n <ui-image [image_fill]=\"true\" [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"aspectRatio\"></ui-image>\n </ui-box>\n <ui-box [box_align_y]=\"alignment\" box_space_top=\"none\" [box_space]=\"layoutConfig.spacing\" [ngStyle]=\"{'background-color': background_colour}\">\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <h3 [ngClass]=\"{\n 'text-heading--body--expressive': layoutConfig.headingType === 'body-expressive',\n 'text-heading--secondary': layoutConfig.headingType === 'secondary'\n }\" role=\"heading\" class=\"seo-h2\">\n <span class=\"heading-title text-heading\">{{title}}</span>\n </h3>\n <p [ngClass]=\"{\n 'text-body--default': layoutConfig.bodyType === 'body-default',\n 'text-body--supporting': layoutConfig.bodyType === 'body-supporting'\n }\">{{subtitle}}</p>\n <a class=\"text-link text-link--standalone\" bwtrackas=\"component.modular-content-card.cta\" href=\"{{ href_primary_cta }}\" (click)=\"ctaClicked()\">{{primary_cta_text}}</a>\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n\n","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 { OasysDirectivesModule } from '../../directives/directives.module';\nimport { PromoCardComponent } from './promo-card.component';\nimport { OasysHeadingModule } from '../heading';\nimport { OasysButtonModule } from '../button';\nimport { OasysButtonGroupModule } from '../button-group';\n\n@NgModule({\n declarations: [PromoCardComponent],\n imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule],\n exports: [PromoCardComponent],\n providers: [TokenService],\n})\nexport class OasysPromoCardModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\n\nexport type ISelectCardType = 'product-card' | 'gift-card';\n\n\n@Component({\n selector: 'ui-select-card',\n templateUrl: './select-card.component.html',\n styleUrls: ['./select-card.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SelectCardComponent implements OnInit {\n // Image\n @Input() image?: string;\n @Input() alt_text: string;\n @Input() image_format: string;\n\n // Content\n @Input() title: string;\n @Input() primary_copy: string;\n @Input() secondary_copy: string;\n @Input() price: string;\n @Input() price_before_discount: string;\n @Input() selected: boolean = false;\n @Input() select_card_type: ISelectCardType = 'gift-card';\n\n @Output() clicked: EventEmitter<void> = new EventEmitter();\n\n aspectRatio: string;\n alignment: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n if(!this.image){\n return;\n }\n\n this.aspectRatio = this.setImageAspectRatio(this.image_format);\n }\n\n onClick(): void {\n this.clicked.emit();\n }\n\n\n /**\n * \n * @param format \n * @returns \n */\n setImageAspectRatio(format: string): string {\n switch(format) {\n case 'square':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-square');\n case 'portrait':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');\n default:\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');\n }\n }\n\n}\n","<button role=\"button\" class=\"ui-select-card--{{select_card_type}}\" tabindex=\"0\" [ngClass]=\"{'selected': selected}\" [attr.aria-pressed]=\"selected ? 'true' : 'false'\" (click)=\"onClick()\">\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <ui-stack stack_gap=\"none\" stack_align=\"center\">\n <ui-box class=\"ui-select-card__image\" [ngStyle]=\"{'aspect-ratio': aspectRatio}\" box_background=\"transparent\"\n box_align_x=\"center\" box_space=\"none\">\n <ui-image *ngIf=\"image\" [image_src]=\"image\" [image_alt_text]=\"alt_text\" [image_fill]=\"true\"></ui-image>\n <ng-content></ng-content>\n </ui-box>\n <ng-template *ngIf=\"select_card_type === 'gift-card'\" [ngTemplateOutlet]=\"giftcard\"></ng-template>\n <ng-template *ngIf=\"select_card_type === 'product-card'\" [ngTemplateOutlet]=\"productcard\"></ng-template>\n </ui-stack>\n </ui-box>\n</button>\n\n\n<!--- GIFT CARD TEMPLATE -->\n<ng-template #giftcard>\n <ui-box box_space=\"tight\" box_background=\"transparent\">\n <ui-stack class=\"ui-select-card__text-stack\" stack_direction=\"y\" stack_gap=\"tight\">\n <span class=\"ui-select-card__text-body text-label--primary\">{{title}}</span>\n\n <ui-price [price]=\"price\" [price_before_discount]=\"price_before_discount\"\n price_type=\"primary\"></ui-price>\n </ui-stack>\n </ui-box>\n</ng-template>\n\n<!--- PRODUCT CARD TEMPLATE -->\n<ng-template #productcard>\n <ui-box box_fill_mode=\"fit\" box_space=\"near\" box_background=\"transparent\">\n <ui-stack stack_direction=\"y\" stack_gap=\"near\">\n <ui-stack class=\"ui-select-card__text-stack\" stack_direction=\"y\" stack_gap=\"none\">\n <h5>{{title}}</h5>\n <ui-stack stack_direction=\"x\" stack_gap=\"near\" stack_align=\"center\">\n <ui-price [price]=\"price\" [price_before_discount]=\"price_before_discount\"\n price_type=\"hero\"></ui-price>\n <ui-icon *ngIf=\"price_before_discount\" class=\"ui-select-card--product-card__discount-icon\" icon_name=\"tag\" icon_size_override=\"1.5\"></ui-icon>\n </ui-stack>\n\n </ui-stack>\n <ui-stack stack_gap=\"near\">\n <p class=\"text-body--supporting\">{{secondary_copy}}</p>\n <p class=\"text-body--default\">{{primary_copy}}</p>\n </ui-stack>\n </ui-stack>\n </ui-box>\n</ng-template>","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 { OasysDirectivesModule } from '../../directives/directives.module';\nimport { SelectCardComponent } from './select-card.component';\nimport { OasysHeadingModule } from '../heading';\nimport { OasysButtonModule } from '../button';\nimport { OasysButtonGroupModule } from '../button-group';\nimport { OasysPriceModule } from '../price';\nimport { OasysIconModule } from '../icon';\n\n@NgModule({\n declarations: [SelectCardComponent],\n imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule, OasysPriceModule, OasysIconModule],\n exports: [SelectCardComponent],\n providers: [TokenService],\n})\nexport class OasysSelectCardModule {}\n","import { Directive, ElementRef, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n selector: '[ui-emphasis]',\n standalone: true\n})\nexport class EmphasisDirective implements OnChanges {\n @Input() searchText: string = '';\n @Input() displayParagraph: string = '';\n\n constructor(private element: ElementRef) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['searchText'] || changes['displayParagraph']) {\n this.boldsearchText();\n }\n }\n\n private boldsearchText() {\n if (!this.searchText || !this.displayParagraph) {\n this.element.nativeElement.innerHTML = this.displayParagraph;\n return;\n }\n\n const regex = new RegExp(`${this.searchText}`, 'gi');\n const emphasisText = this.displayParagraph.replace(regex, match => `<span class=\"text-body--emphasis\">${match}</span>`);\n this.element.nativeElement.innerHTML = emphasisText;\n\n }\n\n}","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n forwardRef,\n ElementRef,\n Inject,\n AfterViewInit,\n ViewChild,\n QueryList,\n ViewChildren,\n OnChanges,\n SimpleChanges,\n HostListener,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComboboxOption, ComboboxType } from './combobox';\n\n@Component({\n selector: 'ui-combobox',\n templateUrl: './combobox.component.html',\n styleUrls: ['./combobox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComboboxComponent),\n multi: true,\n },\n ],\n})\nexport class ComboboxComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges\n{\n @Input() label!: string;\n @Input() type: ComboboxType = 'options';\n @Input() options: ComboboxOption[] | unknown[] = [];\n @Input() optional: boolean = true;\n\n @Input({ required: false }) hint?: string;\n @Input({ required: false }) header?: string;\n @Input({ required: false }) footer?: string;\n @Input({ required: false }) autofocus?: boolean = false;\n @Input({ required: false }) disabled?: boolean = false;\n @Input({ required: false }) selected?: ComboboxOption | unknown;\n // Key value from options to be displayed as option label\n @Input({ required: false }) displayKey?: string;\n // Key value from options to be used as icon in option label\n @Input({ required: false }) iconNameKey?: string;\n // Key value from options be be value\n @Input({ required: false }) valueKey?: string;\n // Available for Autocomplete\n @Input({ required: false }) subtextKey?: string;\n @Input({ required: false }) placeholder?: string;\n // Will open the list of options on init\n @Input({ required: false }) showOptions = false;\n\n @Output() didChange: EventEmitter<unknown> = new EventEmitter();\n @Output() didSearch: EventEmitter<unknown> = new EventEmitter();\n @Output() didEdit: EventEmitter<unknown> = new EventEmitter();\n\n textValue: string = '';\n inputDidChange: boolean = false; // only show valdiation after a change event (ie. blur)\n displayOptions: ComboboxOption[] | unknown[] = [];\n private _panelOpen: boolean = false;\n private _selectedOption: ComboboxOption | unknown;\n private _focusedOption: ComboboxOption | unknown;\n private _focusedOptionId: number;\n\n id: string | number;\n\n /** Whether or not the overlay panel is open. */\n get panelOpen(): boolean {\n return this._panelOpen;\n }\n\n /**\n * Selected option\n */\n get selectedOption(): ComboboxOption | unknown {\n return this._selectedOption || null;\n }\n\n /**\n * Focused Option\n */\n get focusedOption(): ComboboxOption | unknown {\n return this._focusedOption || null;\n }\n\n /**\n * Return the id of the focused option\n */\n get focusedId(): number {\n return this._focusedOptionId;\n }\n\n get valueOptionKey(): string {\n return this.valueKey ? this.valueKey : 'value';\n }\n\n get displayOptionKey(): string {\n return this.displayKey ? this.displayKey : 'label';\n }\n\n get subtextOptionKey(): string {\n return this.subtextKey ? this.subtextKey : 'subtext';\n }\n\n @ViewChild('textinput', { read: ElementRef })\n textInput: ElementRef<HTMLElement>;\n\n @ViewChild('combobox', { read: ElementRef })\n combobox: ElementRef<HTMLElement>;\n\n @ViewChildren('option') optionsList: QueryList<ElementRef<HTMLElement>>;\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n @HostListener('document:click', ['$event.target'])\n\n /**\n * Click outside combobox close the panel\n */\n public onClick(targetElement: Node): void {\n if (this.panelOpen) {\n const clickedInside = this.combobox.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.closePanel();\n }\n }\n }\n\n /**\n * On Change\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges): void {\n // Detects if the autocomplete options list is chnaged after a selection of an option.\n // Example: Address search can have options assigned to a group of options. One postcode to have x number of addreses\n // If Options list is Changed as part of group option we let the options panel open to let user select a single option. This is considered as change input value(similar with type value)\n if (this.type === 'autocomplete' && changes['options']) {\n const optionchanges = changes['options'];\n if (!this.options) {\n this.closePanel();\n }\n if (\n optionchanges['currentValue'] !== optionchanges['previousValue'] &&\n this.options?.length !== 0 &&\n !optionchanges['firstChange']\n ) {\n this.resetOptionsList();\n this.openPanel();\n }\n }\n }\n\n /**\n * On Init\n */\n ngOnInit(): void {\n this.id = this.label + Math.random();\n this.resetSelection();\n this.resetOptionsList();\n\n if (this.selected) {\n const selectedIndex = this.options.findIndex(\n (option: ComboboxOption | unknown) =>\n option[this.valueOptionKey] === this.selected[this.valueOptionKey],\n );\n this.selectOption(this.options[selectedIndex], selectedIndex);\n }\n if (this.showOptions) {\n this.openPanel();\n }\n }\n\n /**\n * After View Init\n */\n ngAfterViewInit(): void {\n this.setupValidationListener();\n }\n\n /**\n * Select Option\n * @param option\n */\n public selectOption(option: ComboboxOption | unknown, index?: number) {\n this._selectedOption = option;\n this._focusedOptionId = index;\n this._focusedOption = option;\n this.textValue = this._selectedOption[this.displayOptionKey];\n\n this.onChange(this.textValue);\n this.didChange.emit(this.selectedOption);\n this.onTouched();\n this.closePanel();\n }\n\n /**\n * On Key Navigation\n * @param event\n */\n public onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n this.pressEnter();\n break;\n case 'Tab':\n if (this.panelOpen) {\n this.closePanel();\n }\n break;\n case 'Escape':\n if (this.panelOpen) {\n this.closePanel();\n }\n break;\n }\n\n // Logic for open panel\n if (this.panelOpen) {\n this.pressArrows(event);\n this.optionsList.get(this._focusedOptionId)?.nativeElement.focus();\n }\n }\n\n /**\n * Toggle Options Panel\n */\n togglePanel(): void {\n this._panelOpen = this.panelOpen ? false : true;\n this.initSelectedFocus();\n }\n\n /**\n * Clase Options Panel\n */\n openPanel(event?: Event): void {\n event?.preventDefault();\n if (!this._panelOpen) {\n this._panelOpen = true;\n this.initSelectedFocus();\n }\n }\n\n /**\n * Close Options Panel\n */\n closePanel(): void {\n if (this._panelOpen) {\n this._panelOpen = false;\n }\n }\n\n /**\n * Get Input display value\n * @param textValue\n */\n writeValue(textValue: string): void {\n if ((this.selected && typeof textValue !== 'string') || textValue === '') {\n this.textValue = this._selectedOption[this.displayOptionKey];\n } else {\n this.textValue = textValue;\n }\n }\n\n /**\n * Register Form input chnage\n * @param fn\n */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * Register form input touch\n * @param fn\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * On Model Change\n * @param textValue\n */\n onModelChange(textValue: string) {\n this.textValue = textValue;\n this.inputDidChange = true;\n this.onChange(textValue);\n this.onTouched();\n this.didChange.emit(this.selectedOption);\n }\n\n /**\n * On Model Change\n * @param textValue\n */\n onModelChangeAutocomplete(textValue: string) {\n this.textValue = textValue;\n this.inputDidChange = true;\n this.onChange(textValue);\n this.onTouched();\n this.didChange.emit(this.selectedOption);\n\n this.onAutocompleteListSearch(textValue);\n }\n\n /**\n * Event handling for Input value\n */\n handleEvent(): void {\n this.inputDidChange = true;\n\n const inputElement = this.document.getElementById(this.id.toString());\n inputElement?.removeEventListener('change', this);\n }\n\n /**\n * Clean Input\n */\n cleanInput(): void {\n this.textValue = '';\n this.resetSelection();\n this.resetOptionsList();\n this.closePanel();\n this.didSearch.emit(this.textValue);\n }\n\n /**\n * On footer action\n */\n onFooterAction(): void {\n this.didEdit.emit();\n }\n\n /**\n * On Focus Input\n */\n onFocusInput(): void {\n this.textInput.nativeElement.focus();\n }\n\n /**\n * Search in Autocomplete\n * @param textValue\n */\n private onAutocompleteListSearch(textValue: string) {\n if (!textValue) {\n this.closePanel();\n this.resetSelection();\n } else {\n this.openPanel();\n this.displayOptions = this.options.filter(\n (option: ComboboxOption<unknown>) => {\n return (\n this.checkIncludesSubstring(option, this.displayOptionKey) ||\n this.checkIncludesSubstring(option, this.subtextOptionKey)\n );\n },\n );\n if (this.displayOptions.length === 0) {\n this.closePanel();\n }\n }\n this.textInput.nativeElement.focus();\n this.didSearch.emit(this.textValue);\n }\n\n /**\n * Check a susbcring is included in option value\n * @param option\n * @returns\n */\n private checkIncludesSubstring(\n option: ComboboxOption<unknown>,\n key: string,\n ): unknown {\n return option[key]\n ?.toString()\n .toLowerCase()\n .includes(this.textValue.toLowerCase());\n }\n\n /**\n * Set Input Validators\n */\n private setupValidationListener(): void {\n const inputElement = this.document.getElementById(this.id.toString());\n inputElement?.addEventListener('change', this);\n }\n\n /**\n * Init focus mode or set the selected option as focused\n */\n private initSelectedFocus(): void {\n if (this._panelOpen) {\n if (this._selectedOption) {\n this._focusedOption = this._selectedOption;\n } else {\n this._focusedOptionId = 0;\n this._focusedOption = this.options[this._focusedOptionId];\n }\n }\n }\n\n /**\n * Arrows Up/Down navigation inside Options Panel\n */\n private pressArrows(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n this._focusedOptionId = Math.min(\n this._focusedOptionId + 1,\n this.displayOptions.length - 1,\n );\n this._focusedOption = this.displayOptions[this._focusedOptionId];\n this.autocompleteOptionTextPreview();\n break;\n case 'ArrowUp':\n this._focusedOptionId = Math.max(this._focusedOptionId - 1, 0);\n this._focusedOption = this.displayOptions[this._focusedOptionId];\n\n this.autocompleteOptionTextPreview();\n break;\n }\n }\n\n /**\n * Change textValue to preview the option in autocomplete\n */\n private autocompleteOptionTextPreview() {\n if (this.type === 'autocomplete') {\n this.textValue = this._focusedOption[this.displayOptionKey];\n }\n }\n\n /**\n * Press Enter inside Options Panel\n */\n private pressEnter(): void {\n if (\n this.panelOpen &&\n this._focusedOptionId < this.options.length &&\n this._focusedOptionId >= 0\n ) {\n this.selectOption(this._focusedOption, this._focusedOptionId);\n }\n }\n\n /**\n * Reset selected option\n */\n private resetSelection(): void {\n this._selectedOption = null;\n this._focusedOption = null;\n this._focusedOptionId = 0;\n }\n\n /**\n * Reset to original or unfiltered option list\n */\n private resetOptionsList(): void {\n this.displayOptions = this.options;\n }\n}\n","<ui-stack class=\"ui-combobox-container\" stack_gap=\"tight\">\n <div class=\"ui-combobox text-body--default text-body--regular\">\n <!-- Compbobox Options Input -->\n <div\n *ngIf=\"type === 'options'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"togglePanel($event)\"\n (focus)=\"openPanel($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onModelChange(textValue)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'on'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"selectedOption\"\n [placeholder]=\"placeholder || ''\"\n readonly=\"readonly\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n <!-- Select Icon Chevron Area -->\n <div class=\"icon-container\" [ngClass]=\"{ expand: panelOpen }\">\n <ui-icon icon_name=\"chevron-down\"></ui-icon>\n <!-- <ui-icon *ngIf=\"panelOpen\" icon_name=\"chevron-up\"></ui-icon> -->\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Autocomplete Input -->\n <div\n *ngIf=\"type === 'autocomplete'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocusInput($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChangeAutocomplete($event)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'list'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"textValue\"\n [placeholder]=\"placeholder || ''\"\n role=\"combobox\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n\n <!-- Combobox Icon Clear Area -->\n <div\n class=\"icon-container\"\n [aria-label]=\"'clean'\"\n (click)=\"cleanInput()\"\n >\n <ui-icon *ngIf=\"textValue\" icon_name=\"close\"></ui-icon>\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Options Panel -->\n <div\n *ngIf=\"panelOpen\"\n class=\"ui-combobox-options\"\n [ngClass]=\"{ expand: panelOpen }\"\n [attr.aria-expanded]=\"panelOpen\"\n role=\"listbox\"\n id=\"activedescendent-list\"\n >\n <!-- Autocomplete Options Panel Header -->\n <div\n *ngIf=\"header && type === 'autocomplete'\"\n class=\"ui-combobox-header text-body--supporting\"\n >\n <span>{{ header }}</span>\n </div>\n\n <!-- Options list -->\n <div\n #option\n *ngFor=\"let option of displayOptions; index as i\"\n class=\"ui-combobox-option\"\n [ngClass]=\"{\n selected: selectedOption === option,\n focus: focusedOption === option\n }\"\n (click)=\"selectOption(option, i)\"\n (keydown)=\"onKeyDown($event)\"\n [id]=\"'activedescendent-opt-' + i\"\n [attr.aria-label]=\"\n selectedOption === option\n ? option[displayOptionKey] + ' is selected'\n : option[displayOptionKey]\n \"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <!-- Option display -->\n <div\n [value]=\"valueKey ? option[valueKey] : option.value\"\n [ngValue]=\"displayKey ? option[displayKey] : option.label\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-icon\n *ngIf=\"option.icon_name || (iconNameKey && option[iconNameKey])\"\n [icon_name]=\"\n iconNameKey ? option[iconNameKey] : option.icon_name\n \"\n ></ui-icon>\n\n <!-- Display options label -->\n <span *ngIf=\"type === 'options'\">{{\n option[displayOptionKey]\n }}</span>\n\n <!-- Display autocomplete option information and emphasis-->\n <ui-stack stack_gap=\"tiny\" *ngIf=\"type === 'autocomplete'\">\n <span\n ui-emphasis\n [searchText]=\"textValue\"\n [displayParagraph]=\"option[displayOptionKey]\"\n >\n {{ displayParagraph }}\n </span>\n <p\n class=\"foreground-secondary-text\"\n *ngIf=\"type === 'autocomplete'\"\n >\n {{ option[subtextOptionKey] }}\n </p>\n </ui-stack>\n </ui-stack>\n </div>\n\n <!-- Selected icon -->\n <ui-icon *ngIf=\"selectedOption === option\" icon_name=\"tick\"></ui-icon>\n </ui-stack>\n </div>\n\n <!-- Autocomplete Options Panel Footer -->\n <div *ngIf=\"footer && type === 'autocomplete'\" class=\"ui-combobox-footer\">\n <ui-button button_type=\"tertiary\" (click)=\"onFooterAction()\">\n {{ footer }}\n </ui-button>\n </div>\n </div>\n </div>\n <ui-stack stack_gap=\"none\">\n <div class=\"input-errors\">\n <div class=\"input-errors-content\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n <ui-box\n class=\"hint-container\"\n *ngIf=\"hint\"\n box_background=\"none\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n >\n <div\n class=\"ui-text-input-hint text-body--supporting text-color--supporting\"\n >\n {{ hint }}\n </div>\n </ui-box>\n </ui-stack>\n</ui-stack>\n","import { CommonModule } from '@angular/common';\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { ComboboxComponent } from './combobox.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { OasysDirectivesModule } from '../../../directives/directives.module';\nimport { OasysFormErrorsModule } from '../errors';\nimport { OasysTextInputModule } from '../text-input';\nimport { EmphasisDirective } from '../../../directives/emphasis/emphasis.directive';\n\n@NgModule({\n declarations: [ComboboxComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysDirectivesModule,\n OasysTextInputModule,\n OasysFormErrorsModule,\n EmphasisDirective,\n ],\n exports: [ComboboxComponent],\n providers: [TokenService],\n schemas: [NO_ERRORS_SCHEMA],\n})\n/**\n * @ngModule OasysComboboxModule\n * @description\n *\n * A combo box is a text box with a list box attached.\n * This type of control enables users to select a predefined value in a list or type their own value in the text box portion of the control.\n *\n * @usageNotes\n *\n * @example of a Combobox Options type\n * <ui-combobox\n * formControlName=\"select\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\"\n * ></ui-combobox>\n *\n * Pug:\n * ui-combobox(\n * formControlName=\"select\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\")\n *\n *\n * @example of a Combobox Autocomplete type\n * <ui-combobox\n * formControlName=\"select\"\n * type=\"autocomplete\"\n * footer=\"Add manual an option\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\"\n * ></ui-combobox>\n *\n * Pug:\n * ui-combobox(\n * formControlName=\"select\"\n * type=\"autocomplete\"\n * footer=\"Add manual an option\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\")\n *\n * @OasysLib\n */\nexport class OasysComboboxModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { LayoutBackgrounds } from '../layout/Layout';\nimport { IconNames } from '../icon/icon';\n\ninterface LabelType {\n type: 'free-delivery' | 'featured' | 'limited-edition' | 'rewards-bonus-points' | '';\n}\n\ntype TextStyle = 'bodySupporting' | 'bodyMicro' | '';\n\n@Component({\n selector: 'ui-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss']\n})\nexport class LabelComponent implements OnInit {\n @Input() type: LabelType['type'] = '';\n @Input() text: string = '';\n @Input() textStyle: TextStyle = '';\n @Input() showIcon = true;\n @Input() iconOverride: IconNames;\n @Input() backgroundColorOverride: LayoutBackgrounds;\n\n backgroundColour: LayoutBackgrounds = 'tint-highlight';\n iconName: IconNames;\n labelStyle: LayoutBackgrounds;\n\n private readonly textStyleToFontSizeMap: Record<TextStyle, string> = {\n bodySupporting: 'text-body--supporting',\n bodyMicro: 'text-body--micro',\n '': 'text-body--supporting'\n };\n\n get fontSize(): string {\n return (\n this.textStyleToFontSizeMap[this.textStyle as TextStyle] || 'text-body--supporting'\n );\n }\n\n ngOnInit(): void {\n if (this.showIcon && this.iconOverride) {\n this.iconName = this.iconOverride;\n }\n\n switch (this.type) {\n case 'free-delivery':\n this.setLabelProperties('delivery');\n break;\n case 'featured':\n this.setLabelProperties('featured');\n break;\n case 'limited-edition':\n this.setLabelProperties('logomark');\n break;\n case 'rewards-bonus-points':\n this.setLabelProperties('rewards');\n break;\n default:\n this.backgroundColour = 'tint-highlight';\n }\n }\n\n private setLabelProperties(defaultIconName: string): void {\n this.labelStyle =\n this.backgroundColorOverride || (this.type as LayoutBackgrounds);\n this.iconName = this.iconName || (defaultIconName as IconNames);\n }\n}\n","<ui-box class=\"ui-label oasys-label-style-{{labelStyle}}\" box_space=\"tiny\" box_space_left=\"tight\" box_space_right=\"tight\" box_fill_mode=\"fit\" [box_background]=\"backgroundColour\">\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_gap=\"tiny\">\n <ui-icon *ngIf=\"showIcon\" [icon_name]=\"iconName\" icon_size=\"small\"></ui-icon>\n <span [class]=\"fontSize\">{{text}}</span>\n </ui-stack>\n</ui-box>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { LabelComponent } from './label.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [LabelComponent],\n imports: [\n CommonModule,\n OasysIconModule,\n OasysLayoutModule,\n OasysDirectivesModule,\n ],\n exports: [LabelComponent],\n})\nexport class OasysLabelModule {}\n","import {\n AfterContentInit,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'ui-tab',\n template: '<ng-template #tabContent><ng-content></ng-content></ng-template>'\n})\nexport class OasysTabComponent implements AfterContentInit {\n @Input() tab_label = undefined;\n @Input() tab_active: boolean = false;\n @Output() clicked = new EventEmitter<void>();\n\n @ViewChild('tabContent', { static: true }) template!: TemplateRef<void>;\n\n ngAfterContentInit(): void {\n if (!this.template) {\n throw new Error(this.tab_label + ': <ui-tab> can`t be empty');\n }\n }\n}\n","import { Component, input, Input, TemplateRef } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'ui-tab-active',\n template:\n '<div role=\"tabpanel\"> <ng-template [ngTemplateOutlet]=\"templateRef()\"></ng-template></div>'\n})\nexport class OasysTabActiveComponent {\n templateRef = input<TemplateRef<void>>();\n}\n","import {\n Component,\n Input,\n QueryList,\n Output,\n EventEmitter,\n input\n} from '@angular/core';\nimport { NgClass, NgFor } from '@angular/common';\n\nimport { OasysLayoutModule } from '../../../layout';\nimport { OasysTabComponent } from '../tab/tab.component';\n\n@Component({\n standalone: true,\n imports: [OasysLayoutModule, NgClass, NgFor],\n selector: 'ui-tab-header',\n templateUrl: './tab-header.component.html',\n styleUrl: './tab-header.component.scss'\n})\nexport class OasysTabHeaderComponent {\n @Input() tab_size: 'small' | 'large' = 'small';\n @Input() tabs: QueryList<OasysTabComponent>;\n @Output() tab_clicked = new EventEmitter<OasysTabComponent>();\n tab_active = input<OasysTabComponent>();\n\n activeComponent: OasysTabComponent;\n length: 0;\n domEles;\n /**\n * Get class for the active indicator based os size\n * @returns\n */\n getIndicatorClass(): string {\n return this.tab_size === 'small'\n ? 'ui-tab-header_item-indicator'\n : 'ui-tab-header_item-indicator large';\n }\n\n /**\n * Set active tab\n * @param item\n */\n activateTab(item: OasysTabComponent): void {\n this.tab_clicked.emit(item);\n }\n\n /**\n * Handles keyboard events on the header.\n * @param event\n * @param index\n * @returns\n */\n handleKeydown(event: KeyboardEvent, index: number): void {\n const items = Array.from(\n document.querySelectorAll('.ui-tab-header_item-label')\n ) as HTMLElement[];\n\n if (!items.length) return;\n\n let newIndex = index;\n\n switch (event.code) {\n case 'Enter':\n this.activateTab(this.tabs.get(index));\n break;\n\n case 'ArrowRight': {\n newIndex = (index + 1) % items.length;\n items[newIndex]?.focus();\n break;\n }\n case 'ArrowLeft': {\n newIndex = (index - 1 + items.length) % items.length;\n items[newIndex]?.focus();\n break;\n }\n }\n }\n}\n","<div role=\"tablist\" aria-orientation=\"horizontal\">\n <ui-stack\n class=\"ui-tab-header\"\n stack_direction=\"x\"\n stack_wrap=\"true\"\n stack_gap=\"none\"\n stack_distribute=\"fit\"\n >\n <div class=\"ui-tab-header_item\" *ngFor=\"let tab of tabs; index as i\">\n <div\n class=\"ui-tab-header_item-label\"\n tabindex=\"0\"\n (click)=\"activateTab(tab)\"\n (keydown)=\"handleKeydown($event, i)\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === tab_active()\"\n [attr.aria-label]=\"tab.tab_label\"\n >\n <span\n class=\"text-body--default\"\n [ngClass]=\"{ 'text-body--emphasis': tab === tab_active() }\"\n >{{ tab.tab_label }}</span\n >\n </div>\n <div\n [class]=\"getIndicatorClass()\"\n [ngClass]=\"{ active: tab === tab_active() }\"\n ></div>\n </div>\n </ui-stack>\n</div>\n","import {\n Component,\n Input,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n AfterContentInit\n} from '@angular/core';\n\nimport { OasysLayoutModule } from '../../../layout';\nimport { OasysTabComponent } from '../tab/tab.component';\nimport { NgIf } from '@angular/common';\nimport { OasysTabActiveComponent } from '../tab-active/tab-active.component';\nimport { OasysTabHeaderComponent } from '../tab-header/tab-header.component';\n\n@Component({\n standalone: true,\n imports: [\n OasysLayoutModule,\n OasysTabActiveComponent,\n OasysTabHeaderComponent,\n NgIf\n ],\n selector: 'ui-tab-group',\n templateUrl: './tab-group.component.html',\n encapsulation: ViewEncapsulation.None, // to hide non ui-buttons via css\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OasysTabGroupComponent implements AfterContentInit {\n @Input() tab_size: 'small' | 'large' = 'small';\n\n @ContentChildren(OasysTabComponent) tabs!: QueryList<OasysTabComponent>;\n activeComponent!: OasysTabComponent;\n\n getIndicatorClass(): string {\n return this.tab_size === 'small'\n ? 'nav-item_indicator line'\n : 'nav-item_indicator large line';\n }\n\n ngAfterContentInit(): void {\n if (this.tabs.length === 0) {\n throw new Error('<ui-tab-group> requires at least one <ui-tab>');\n }\n const selectedTab = this.tabs?.find((tab): boolean => !!tab.tab_active);\n this.activeComponent = selectedTab ?? this.tabs?.first;\n }\n\n activateTab(tab: OasysTabComponent): void {\n this.activeComponent = tab;\n this.activeComponent.clicked.emit();\n }\n}\n","<div class=\"ui-tab-group\">\n <ui-tab-header\n *ngIf=\"tabs || activeComponent\"\n [tab_size]=\"tab_size\"\n [tabs]=\"tabs\"\n [tab_active]=\"activeComponent\"\n (tab_clicked)=\"activateTab($event)\"\n ></ui-tab-header>\n\n <ui-tab-active [templateRef]=\"activeComponent?.template\"></ui-tab-active>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { OasysTabGroupComponent } from './tab-group.component';\nimport { OasysTabComponent } from '../tab/tab.component';\nimport { OasysTabActiveComponent } from '../tab-active/tab-active.component';\nimport { OasysTabHeaderComponent } from '../tab-header/tab-header.component';\n\n@NgModule({\n imports: [\n OasysTabGroupComponent,\n OasysTabComponent,\n OasysTabActiveComponent,\n OasysTabHeaderComponent\n ]\n})\nexport class OasysTabsModule {}\n/**\n * @ngModule OasysTabsModule\n * @description\n *\n * Tabs provide a structured way to organize and navigate through different areas of an application.\n *\n * @usageNotes\n *\n * @example\n * <ui-tab-group tab_size=${args['tab_size']} >\n * <!-- Tab -->\n * <ui-tab tab_label=\"${args['tab_label']}\">\n * <!-- Tab content -->\n * </ui-tab>\n *\n * <!-- Tab -->\n * <ui-tab tab_label=\"Tab 2\">\n * <!-- Tab content -->\n * </ui-tab>\n *\n * <!-- Tab -->\n * <ui-tab tab_label=\"Tab 3\" [tab_active]=${args['tab_active']}>\n * <!-- Tab content -->\n * </ui-tab>\n * </ui-tab-group>\n *\n * Pug:\n * ui-tab-group(tab_size=\"${args['tab_size']}\")\n * ui-tab(tab_label=\"${args['tab_label']}\")\n * <!-- Tab content body -->\n *\n * ui-tab(tab_label=\"Tab 2\" tab_active=\"${args['tab_active']}\")\n * <!-- Tab content body -->\n * @OasysLib\n */\n","/*\n * Public API Surface of oasys-lib\n */\nexport * from './lib/components/alert';\nexport * from './lib/components/navigation/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/form/form-group';\nexport * from './lib/components/form/checkbox';\nexport * from './lib/components/form/radio';\nexport * from './lib/components/form/text-input';\nexport * from './lib/components/form/chip';\nexport * from './lib/components/form/errors';\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/section';\nexport * from './lib/components/carousel';\nexport * from './lib/components/card';\nexport * from './lib/components/text';\nexport * from './lib/components/banner';\nexport * from './lib/components/price';\nexport * from './lib/components/pill';\nexport * from './lib/components/pill-group';\nexport * from './lib/injection-tokens/frontend-app-injection.tokens';\nexport * from './lib/components/promo-card';\nexport * from './lib/components/select-card';\nexport * from './lib/components/form/combobox';\nexport * from './lib/components/label';\nexport * from './lib/components/navigation/tabs/tab-group';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TokenService","i1","i2.IconComponent","i3.OasysHrefDirective","i1.BreakpointService","i3.LayoutBoxComponent","i4.LayoutStackComponent","i5.OasysButtonComponent","i6.IconComponent","i2.LayoutStackComponent","i2.OasysButtonComponent","i3.IconComponent","i4.LayoutBoxComponent","i5.LayoutStackComponent","i5.ImageComponent","i2.LayoutBoxComponent","i3","i4.IconComponent","i3.LayoutStackComponent","i5.IconComponent","i5.OasysHrefDirective","i6.OasysAutofocusDirective","i2","i3.RadioComponent","i4.CheckboxComponent","i3.OasysButtonComponent","i4.OasysHeadingComponent","i5.LayoutBoxComponent","i6.LayoutGridColumnComponent","i7.LayoutGridComponent","i8.LayoutStackComponent","i2.OasysHeadingComponent","i4.LayoutGridColumnComponent","i5.LayoutGridComponent","i6.LayoutStackComponent","i7.OasysHrefDirective","i3.OasysHeadingComponent","i4.ImageComponent","i9.OasysHrefDirective","i6.OasysHrefDirective","i6.OasysPriceComponent","i7.IconComponent","i7.EmphasisDirective","i1.LayoutStackComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oasys-lib.mjs","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/autofocus/autofocus.directive.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/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/components/alert/alert.module.ts","../../../projects/oasys-lib/src/lib/components/navigation/breadcrumbs/breadcrumbs.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/breadcrumbs/breadcrumbs.component.html","../../../projects/oasys-lib/src/lib/components/navigation/breadcrumbs/breadcrumbs.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/form/form-group/form-group.component.ts","../../../projects/oasys-lib/src/lib/components/form/form-group/form-group.component.html","../../../projects/oasys-lib/src/lib/components/form/radio/radio.component.ts","../../../projects/oasys-lib/src/lib/components/form/radio/radio.component.html","../../../projects/oasys-lib/src/lib/components/form/radio/radio.module.ts","../../../projects/oasys-lib/src/lib/components/form/checkbox/checkbox.component.ts","../../../projects/oasys-lib/src/lib/components/form/checkbox/checkbox.component.html","../../../projects/oasys-lib/src/lib/components/form/checkbox/checkbox.module.ts","../../../projects/oasys-lib/src/lib/components/form/form-group/form-group.module.ts","../../../projects/oasys-lib/src/lib/components/form/text-input/text-input.component.ts","../../../projects/oasys-lib/src/lib/components/form/text-input/text-input.component.html","../../../projects/oasys-lib/src/lib/components/form/errors/form-errors.component.ts","../../../projects/oasys-lib/src/lib/components/form/errors/form-errors.component.html","../../../projects/oasys-lib/src/lib/components/form/errors/form-errors.module.ts","../../../projects/oasys-lib/src/lib/components/form/text-input/text-input.module.ts","../../../projects/oasys-lib/src/lib/components/form/chip/chip.component.ts","../../../projects/oasys-lib/src/lib/components/form/chip/chip.component.html","../../../projects/oasys-lib/src/lib/components/form/chip/chip.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/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/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/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/lib/components/price/price.component.ts","../../../projects/oasys-lib/src/lib/components/price/price.component.html","../../../projects/oasys-lib/src/lib/components/price/price.module.ts","../../../projects/oasys-lib/src/lib/components/pill/pill.component.ts","../../../projects/oasys-lib/src/lib/components/pill/pill.component.html","../../../projects/oasys-lib/src/lib/components/pill/pill.module.ts","../../../projects/oasys-lib/src/lib/components/pill-group/pill-group.component.ts","../../../projects/oasys-lib/src/lib/components/pill-group/pill-group.component.html","../../../projects/oasys-lib/src/lib/components/pill-group/pill-group.module.ts","../../../projects/oasys-lib/src/lib/components/promo-card/promo-card.component.ts","../../../projects/oasys-lib/src/lib/components/promo-card/promo-card.component.html","../../../projects/oasys-lib/src/lib/components/promo-card/promo-card.module.ts","../../../projects/oasys-lib/src/lib/components/select-card/select-card.component.ts","../../../projects/oasys-lib/src/lib/components/select-card/select-card.component.html","../../../projects/oasys-lib/src/lib/components/select-card/select-card.module.ts","../../../projects/oasys-lib/src/lib/directives/emphasis/emphasis.directive.ts","../../../projects/oasys-lib/src/lib/components/form/combobox/combobox.component.ts","../../../projects/oasys-lib/src/lib/components/form/combobox/combobox.component.html","../../../projects/oasys-lib/src/lib/components/form/combobox/combobox.module.ts","../../../projects/oasys-lib/src/lib/components/label/label.component.ts","../../../projects/oasys-lib/src/lib/components/label/label.component.html","../../../projects/oasys-lib/src/lib/components/label/label.module.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab/tab.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-active/tab-active.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-header/tab-header.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-header/tab-header.component.html","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-group/tab-group.component.ts","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-group/tab-group.component.html","../../../projects/oasys-lib/src/lib/components/navigation/tabs/tab-group/tab-group.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 readonly isDestroyed = new Subject<void>();\n\n constructor(public breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe(this.breakpoints)\n .pipe(takeUntil(this.isDestroyed))\n .subscribe((result): void => {\n for (const 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';\nimport { Observable } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n@Injectable()\nexport class TokenService {\n brandCustomPropertyName: string = '--oasys-utility-brand-slug';\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n convertRemToPixels(remString: string): number {\n const remNumber = parseFloat(remString.replace('rem', ''));\n return (\n remNumber *\n parseFloat(getComputedStyle(this.document.documentElement).fontSize)\n );\n }\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(--oasys-utility-brand);\n | }\n */\n getBrandName(): Observable<string> {\n return this.waitForElement('[class*=\"brand-tokens\"]').pipe(\n take(1),\n map((el) => this.getTokenValue(this.brandCustomPropertyName, el))\n );\n }\n\n getTokenValue(tokenName: string, element?: Element): string {\n const rootElement =\n element || this.document.querySelector('[class*=\"brand-tokens\"]');\n\n if (!rootElement) {\n return '';\n }\n\n return (\n this.document.defaultView\n .getComputedStyle(rootElement)\n .getPropertyValue(tokenName)\n .trim() || ''\n );\n }\n\n /**\n * Waits for an element to be present in the DOM\n * @param {string} selector\n * @returns {Observable<Element>}\n */\n waitForElement(selector: string): Observable<Element> {\n return new Observable((observer) => {\n let element = this.document.querySelector(selector);\n\n if (element) {\n observer.next(element);\n observer.complete();\n }\n\n new MutationObserver((mutationRecord, mutationObserver) => {\n const el = document.querySelector(selector);\n\n if (el) {\n observer.next(el);\n observer.complete();\n mutationObserver.disconnect();\n }\n }).observe(document.documentElement, {\n childList: true,\n subtree: true,\n });\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnChanges,\n OnInit,\n ViewEncapsulation,\n Input,\n Component\n} from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport {\n LayoutAlignment,\n LayoutBackgrounds,\n LayoutBackgroundsDeprecated,\n LayoutBoxSizes,\n LayoutFillModes\n} from '../Layout';\nimport {\n BoxBorderColor,\n BoxBorderWidth,\n BoxBorderRadius,\n BoxBorderStyle\n} from './box';\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 @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: LayoutBackgroundsDeprecated | LayoutBackgrounds =\n 'primary';\n\n @Input() box_content_fill_width: boolean = false;\n\n @Input() box_border_color?: BoxBorderColor = 'primary';\n @Input() box_border_width?: BoxBorderWidth = 'none';\n @Input() box_border_style?: BoxBorderStyle = 'solid';\n @Input() box_border_radius?: BoxBorderRadius = 'none';\n\n didFirstInit: boolean = false;\n prefix = 'ui-layout-box';\n boxLayoutClasses?: string[];\n backgroundIsDark: boolean = false;\n\n constructor(\n private changes: ChangeDetectorRef,\n private tokenService: TokenService\n ) {}\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 =\n typeof spaceInput === 'object' ? spaceInput : JSON.parse(spaceInput);\n\n return Object.keys(spaceInputObject).map(\n (key): string =>\n `${this.prefix}-${spaceInputObject[key]}-${key}${\n overrideName ? `-${overrideName}` : ''\n }`\n );\n }\n\n return [\n this.prefix,\n `${this.prefix}-${spaceInput}${overrideName ? `-${overrideName}` : ''}`\n ];\n }\n\n getOverrideClasses(spaceOverrides: LayoutBoxSizes[]): string[][] {\n const spaceTypes = ['top', 'right', 'bottom', 'left'];\n\n return spaceOverrides\n .map((item, index): string[] =>\n this.getSizeClasses(item, spaceTypes[index])\n )\n .filter(Boolean);\n }\n\n getAlignmentClasses(alignmentOverride: LayoutAlignment[]): string[] {\n const spaceTypes = ['align-x', 'distribute-y'];\n\n return alignmentOverride\n .map((item, index): string =>\n item ? `${this.prefix}-${spaceTypes[index]}-${item}` : undefined\n )\n .filter(Boolean);\n }\n\n getBackgroundClass(): string {\n const value = this.box_background\n ? `${this.prefix}-background-${this.box_background}`\n : '';\n return value;\n }\n\n getBorderColorClass(): string {\n const value = this.box_border_color\n ? `${this.prefix}-border-color-${this.box_border_color}`\n : '';\n return value;\n }\n\n getBorderWidthClass(): string {\n const value = this.box_border_width\n ? `${this.prefix}-border-width-${this.box_border_width}`\n : '';\n return value;\n }\n\n getBorderStyleClass(): string {\n const value = this.box_border_style\n ? `${this.prefix}-border-style-${this.box_border_style}`\n : '';\n return value;\n }\n\n getBorderRadiusClass(): string {\n const value = this.box_border_radius\n ? `${this.prefix}-border-radius-${this.box_border_radius}`\n : '';\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 = [\n this.box_space_top,\n this.box_space_right,\n this.box_space_bottom,\n this.box_space_left\n ];\n const alignmentOverride = [this.box_align_x, this.box_align_y];\n this.backgroundIsDark =\n this.tokenService.getTokenValue(\n `--oasys-component-box-on-dark-${this.box_background}`\n ) === 'on-dark';\n // Basic basic classes\n this.boxLayoutClasses = [\n 'ui-layout-box',\n this.getSizeClasses(this.box_space),\n this.getOverrideClasses(spaceOverrides),\n this.getAlignmentClasses(alignmentOverride),\n this.getBackgroundClass(),\n this.getBoxModeClass(),\n this.backgroundIsDark ? 'text-color--on-dark' : '',\n this.box_content_fill_width\n ? `${this.prefix}-full-width`\n : `${this.prefix}-content-max-width`,\n this.getBorderColorClass(),\n this.getBorderWidthClass(),\n this.getBorderStyleClass(),\n this.getBorderRadiusClass()\n ]\n .flat(10)\n .filter(Boolean);\n\n this.didFirstInit = true;\n }\n\n private getBoxModeClass(): string {\n switch (this.box_fill_mode) {\n case 'fit':\n return `${this.prefix}-fit-content`;\n case 'cover':\n return `${this.prefix}-cover-content`;\n default:\n return `${this.prefix}-fill-container`;\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 {\n Component,\n Inject,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} 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_size_override?: string;\n @Input() icon_name!: IconNames;\n @Input() icon_context: IconContext = 'none';\n @Input() alt_text: string = '';\n\n @Input() icon_class?: string;\n\n size?: string;\n iconDisplayClasses: string[];\n iconSizeInPixels: number;\n iconPath: string;\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private tokenService: TokenService\n ) {}\n\n ngOnChanges(): void {\n this.ngOnInit();\n }\n\n ngOnInit(): void {\n this.tokenService.getBrandName().subscribe((brandName): void => {\n this.iconPath = `./${brandName}/assets/icons/icons.svg#icon-${this.icon_name}`;\n\n this.size =\n this.icon_size_override ||\n this.tokenService.getTokenValue('--oasys-size-unit-20');\n\n this.iconDisplayClasses = [\n `icon-context-${this.icon_context}`,\n `icon-size-${this.icon_size}`\n ];\n\n const sizeInPixels = this.tokenService.convertRemToPixels(this.size);\n this.iconSizeInPixels = sizeInPixels;\n });\n }\n}\n","<div *ngIf=\"iconPath\" class=\"ui-icon\" [ngClass]=\"iconDisplayClasses\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n [attr.width]=\"iconSizeInPixels\"\n [attr.height]=\"iconSizeInPixels\"\n [attr.class]=\"icon_class\"\n [attr.alt]=\"alt_text\"\n >\n <use [attr.xlink:href]=\"iconPath\"></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 {\n Component,\n Output,\n ViewEncapsulation,\n EventEmitter,\n ChangeDetectionStrategy,\n ElementRef,\n ViewChild,\n AfterViewInit,\n Input,\n OnInit,\n OnChanges\n} from '@angular/core';\nimport { IconNames, IconContext } from '../icon/icon';\nimport { TextTransform } from '../text/text';\nimport {\n UIButton,\n UIButtonBoolean,\n UIButtonSize,\n UIButtonType,\n UIButtonEventType\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.Default\n})\nexport class OasysButtonComponent implements AfterViewInit, OnInit, OnChanges {\n @Output() clicked = new EventEmitter<void>();\n @ViewChild('buttontext') ngContent: ElementRef;\n\n @Input() button_icon: IconNames | undefined;\n @Input() button_icon_placement: IconContext = 'leading';\n @Input() button_size: UIButtonSize = 'large';\n @Input() button_type: UIButtonType = 'primary';\n @Input() button_full_width: UIButtonBoolean = false;\n @Input() button_event_type: UIButtonEventType = 'button';\n @Input() button_disabled: UIButtonBoolean = false;\n @Input() button_selected: UIButtonBoolean = false;\n @Input() button_text_nowrap: UIButtonBoolean = false;\n @Input() aria_label: string | undefined;\n @Input() aria_role: string = 'button';\n @Input() href: string | undefined;\n\n button: UIButton;\n iconContext: IconContext = 'none';\n textTransform!: TextTransform;\n outlineButtonTypes = ['secondary', 'secondary-inverse'];\n computedAccessibleButtonContent = '';\n computedButtonDisplayClasses = [];\n\n constructor(\n private elementRef: ElementRef<HTMLInputElement>\n ) {}\n\n onClick(): void {\n this.clicked.emit();\n }\n\n ngOnInit(): void {\n this.computedAccessibleButtonContent = this.accessibleButtonContent();\n this.computedButtonDisplayClasses = this.buttonDisplayClasses();\n }\n\n /**\n * required because signals cannot be used here to force change detection on strings computed from inputs\n * TODO - migrate inputs to InputSignals when Angular supports it within angular 19.\n * Issue - https://github.com/angular/angular/issues/53981\n */\n ngOnChanges(): void {\n this.computedAccessibleButtonContent = this.accessibleButtonContent();\n this.computedButtonDisplayClasses = this.buttonDisplayClasses();\n }\n\n ngAfterViewInit(): void {\n if (!this.aria_label && !this.ngContent && !this.elementRef.nativeElement?.innerText?.length) {\n throw new Error(`\n No inner text found. All buttons should have text passed via ng-content to enable accessibility for screen readers, \\\n this includes icon-only buttons.\n Pass content using the example templates:\n // Example 1\n ui-button() Buy All The Things\n // Example 2\n ui-button()\n span Buy All The Things\n `);\n }\n }\n\n private accessibleButtonContent = (): string => {\n if (this.aria_label) {\n return this.aria_label;\n } else if (this.ngContent && this.ngContent?.nativeElement?.innerText?.length) {\n return this.ngContent.nativeElement.innerText;\n } else if (\n !this.ngContent &&\n this.elementRef.nativeElement?.innerText?.length\n ) {\n return this.elementRef.nativeElement.innerText;\n }\n return '';\n };\n\n private buttonDisplayClasses = (): string[] => [\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 `${\n this.button_icon ? 'button--icon--' + this.button_icon_placement : ''\n }`,\n `${\n this.outlineButtonTypes.indexOf(this.button_type) !== -1\n ? 'button--outline'\n : ''\n }`,\n `${this.button_selected ? 'button--selected' : ''}`,\n `${this.button_type === 'chip' ? 'button--chip' : ''}`\n ].filter(Boolean);\n}\n","<ng-template #content>\n <div class=\"button-content\">\n <ui-icon\n *ngIf=\"button_icon && button_icon_placement !== 'none'\"\n [icon_name]=\"button_icon\"\n [icon_size]=\"button_size\"\n [icon_class]=\"'buttonIcon'\"\n [icon_context]=\"button_icon_placement\"\n ></ui-icon>\n <span\n class=\"ui-text\"\n [ngClass]=\"{ visuallyhidden: button_icon_placement === 'iconOnly' }\"\n >\n <span #buttontext>\n <ng-content></ng-content>\n </span>\n </span>\n </div>\n <div class=\"button-overlay\"></div>\n <div class=\"button-overlay-focus\"></div>\n \n</ng-template>\n\n<button\n *ngIf=\"!href\"\n (click)=\"onClick()\"\n [type]=\"button_event_type\"\n [ngClass]=\"computedButtonDisplayClasses\"\n [attr.disabled]=\"button_disabled === true || null\"\n [attr.aria-label]=\"computedAccessibleButtonContent\"\n [attr.role]=\"aria_role\"\n [attr.aria-checked]=\"aria_role === 'checkbox' || aria_role === 'switch' ? button_selected : null\"\n>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</button>\n\n<a\n *ngIf=\"href\"\n [href]=\"href\"\n [attr.disabled]=\"button_disabled === true || null\"\n [attr.aria-label]=\"computedAccessibleButtonContent\"\n [ngClass]=\"computedButtonDisplayClasses\"\n>\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';\nimport { UIButtonSize } from '../button/button';\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 @Input() button_size: UIButtonSize = 'large';\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 get buttonSize(): UIButtonSize {\n return this.breakpointService.currentSize.value === Breakpoint.MOBILE ? 'small' : this.button_size;\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_wrap]=\"isVertical\" stack_direction=\"x\" stack_gap=\"near\" stack_distribute=\"end\">\n <ui-button\n *ngIf=\"cancelButton && cancelButton.text\"\n button_type=\"tertiary\"\n [button_size]=\"buttonSize\"\n [button_text_nowrap]=\"!isVertical\"\n (clicked)=\"cancelled()\"\n >\n <ng-content select=\"ui-alert-cancel\"></ng-content>\n </ui-button>\n <ui-button\n *ngIf=\"confirmButton && confirmButton.text\"\n button_type=\"secondary\"\n [button_size]=\"buttonSize\"\n [button_text_nowrap]=\"!isVertical\"\n (clicked)=\"confirmed()\"\n >\n <ng-content select=\"ui-alert-confirm\"></ng-content>\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 { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]',\n})\nexport class OasysAutofocusDirective {\n private _autofocus;\n\n @Input() set autofocus(condition: boolean) {\n this._autofocus = condition != false;\n }\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n if (this._autofocus || typeof this._autofocus === 'undefined') {\n setTimeout(() =>{\n this.el.nativeElement.focus();\n }, 500)\n }\n }\n\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';\nimport { OasysAutofocusDirective } from './autofocus/autofocus.directive';\n\n@NgModule({\n declarations: [OasysHrefDirective, OasysAutofocusDirective],\n imports: [CommonModule, RouterModule],\n exports: [OasysHrefDirective, OasysAutofocusDirective],\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 grid_base: number;\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 {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\n\n@Component({\n selector: 'ui-grid',\n template: '<ng-content></ng-content>',\n host: {\n '[class]': 'gridLayoutClasses',\n '[style.grid-template-columns]': 'gridTemplateColumns'\n },\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutGridComponent implements OnInit, OnChanges {\n @Input() grid_auto: boolean = false;\n @Input() grid_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n @Input() grid_gap: 'none' | 'tiny' | 'tight' | 'near' | 'default' | 'expanded' = 'default';\n @Input() grid_base: number = 12;\n\n didFirstInit: boolean = false;\n prefix = 'ui-layout-grid';\n gridLayoutClasses?: string[];\n\n constructor(private changes: ChangeDetectorRef) {}\n\n get gridTemplateColumns(): string | null {\n if (this.grid_auto) return null;\n return `repeat(${this.grid_base}, 1fr)`;\n }\n\n ngOnChanges(): void {\n if (!this.didFirstInit) return;\n this.ngOnInit();\n this.changes.markForCheck();\n }\n\n ngOnInit(): void {\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","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 LayoutGridColumnComponent,\n LayoutGridComponent,\n LayoutStackComponent,\n ],\n providers: [TokenService],\n})\nexport class OasysLayoutModule {}\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 { 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';\nimport { OasysButtonGroupModule } from '../button-group/button-group.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 OasysButtonGroupModule\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 @Input() breadcrumbs_values: string | BreadcrumbsItem[];\n values: BreadcrumbsItem[];\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","<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=\"transparent\" 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\" href=\"{{item.href}}\"> \n <span> {{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\" href=\"{{item.href}}\" [attr.aria-current]=\"item.name\"> \n <span> {{item.name}} </span>\n </ui-button> \n </ng-container>\n </ui-stack>\n </nav>\n</ui-box>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysDirectivesModule } from '../../../directives/directives.module';\nimport { OasysButtonModule } from '../../button';\nimport { OasysIconModule } from '../../icon';\nimport { OasysLayoutModule } from '../../layout';\nimport { BreadcrumbsComponent } from './breadcrumbs.component';\n\n@NgModule({\n declarations: [BreadcrumbsComponent],\n imports: [\n CommonModule,\n OasysButtonModule,\n OasysIconModule,\n OasysLayoutModule,\n OasysDirectivesModule\n ],\n exports: [BreadcrumbsComponent]\n})\nexport class OasysBreadcrumbModule {}\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,\n 1920, 2560, 3440, 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(\n baseUrl,\n 'webp',\n this.breakpoints,\n false\n ),\n fallbackUrl: this.getImageUrlsFromCDN(\n baseUrl,\n 'jpg',\n this.breakpoints,\n true\n )\n } as ImageResponse;\n }\n\n public getImageSizes(): string {\n return this.breakpoints\n .map((size) => `(max-width: ${size}px) ${size}px`)\n .join(', ');\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n signal,\n SimpleChanges\n} from '@angular/core';\nimport { ImageService } from '../../services/image.service';\nimport {\n ImageAspectRatio,\n ImageFetchPriority,\n ImageLoading,\n UIImage\n} from './image';\nimport { NgStyle } from '@angular/common';\n\n/**\n * ImageComponent is a reusable component. Necessary accessibility attributes are set by default for a decorative image.\n * alt text and airia described by text can be set to make the image non-decorative.\n *\n * TODO - migrate inputs to InputSignals when Angular supports it within angular 19.\n * Issue - https://github.com/angular/angular/issues/53981\n */\n@Component({\n standalone: true,\n imports: [NgStyle],\n selector: 'ui-image',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.scss']\n})\nexport class ImageComponent implements OnInit, OnChanges, OnDestroy {\n @Input({ required: true }) image_src: string;\n @Input() image_alt_text = ''; // Default set here so images are set as decorative by default\n @Input() image_aria_describedby: string | null = null;\n @Input() image_fill = false;\n @Input() fetchpriority: ImageFetchPriority = 'auto';\n @Input() loading: ImageLoading = 'lazy';\n @Input() preload_aspect_ratio: ImageAspectRatio = '1:1';\n @Input() image_width: number | null = null; // source when defining sizes either relates on viewport width or a specificed width in pixels\n\n @Output() readonly image_loaded = new EventEmitter<void>();\n\n private readonly imageService = inject(ImageService);\n private readonly el = inject<ElementRef<HTMLElement>>(\n ElementRef<HTMLElement>\n );\n\n readonly image = signal<UIImage | null>(null);\n readonly imageSizes = this.imageService.getImageSizes();\n\n private intersectionObserver: IntersectionObserver | null = null;\n\n @HostBinding('class') get class() {\n return `${this.image_fill ? 'imageFill' : ''}`;\n }\n\n /**\n * On init lifecycle hook to create the image.\n */\n ngOnInit(): void {\n this.createImage();\n void this.setupLazyLoading();\n }\n\n /**\n * On changes, handle any changes in input properties.\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['image_src'] || changes['image_width'] || changes['preload_aspect_ratio']) {\n this.createImage();\n this.cleanupObserver();\n this.setupLazyLoading();\n }\n }\n\n /**\n * Clean up the observer when the component is destroyed.\n */\n ngOnDestroy(): void {\n this.cleanupObserver();\n }\n\n /**\n * Creates the image object with the provided properties.\n */\n createImage(): void {\n const ratios = this.preload_aspect_ratio.split(':');\n const imageUrlResponse = this.imageService.generateImageUrl(this.image_src);\n\n const newImage: UIImage = {\n ...imageUrlResponse,\n ratioWidth: parseInt(ratios[0], 10),\n ratioHeight: parseInt(ratios[1], 10),\n loading: this.loading,\n fill: this.image_fill,\n fetchpriority: this.fetchpriority,\n preloadAspectRatio: this.preload_aspect_ratio,\n width: this.image_width ? `${this.image_width}px` : null,\n altText: this.image_alt_text,\n ariaDescribedby: this.image_aria_describedby ?? null\n };\n this.image.set(newImage);\n }\n\n /**\n * Sets up lazy loading for the image using IntersectionObserver.\n * This method observes the image element and loads the image when it comes into view.\n * It sets the `src` attribute for the image and the `srcset` attribute for the source element.\n * The observer is configured to remove the image after it has been observed to save memory.\n */\n private setupLazyLoading(): Promise<void> {\n return Promise.resolve().then((): void => {\n // Defer setup until after the view is initialized to ensure the <img> element exists.\n const imageElement = this.el.nativeElement.querySelector('img');\n if (!imageElement) {\n return;\n }\n\n this.intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const img = entry.target as HTMLImageElement;\n const source = img.parentElement?.querySelector('source');\n\n // Move the URL from data-src to src\n const dataSrc = img.getAttribute('data-src');\n if (dataSrc) {\n img.setAttribute('src', dataSrc);\n }\n\n // Move the URLs from data-srcset to srcset\n if (source) {\n const dataSrcset = source.getAttribute('data-srcset');\n if (dataSrcset) {\n source.setAttribute('srcset', dataSrcset);\n }\n }\n\n // Stop observing this image once it's loaded.\n this.intersectionObserver?.unobserve(img);\n }\n });\n },\n {\n root: null,\n rootMargin: '100px',\n threshold: 0.01\n }\n );\n this.intersectionObserver.observe(imageElement);\n });\n }\n\n /**\n * Cleans up the IntersectionObserver to prevent memory leaks.\n * This method disconnects the observer and sets it to null.\n */\n private cleanupObserver(): void {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = null;\n }\n }\n}\n","@if (image()) {\n <picture>\n <source\n [attr.sizes]=\"image().width ?? imageSizes\"\n [attr.srcset]=\"null\"\n [attr.data-srcset]=\"image().srcSetUrls\"\n type=\"image/webp\"\n />\n\n <img\n [class.imageFill]=\"image().fill\"\n [attr.width]=\"image().ratioWidth\"\n [attr.height]=\"image().ratioHeight\"\n [attr.src]=\"null\"\n [attr.data-src]=\"image().fallbackUrl\"\n [attr.loading]=\"image().loading\"\n [attr.fetchpriority]=\"image().fetchpriority\"\n [attr.alt]=\"image().altText\"\n [attr.aria-describedby]=\"image().ariaDescribedby\"\n [ngStyle]=\"{ 'aspect-ratio': image().preloadAspectRatio }\"\n (load)=\"image_loaded.emit()\"\n />\n </picture>\n}\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('--oasys-spacing-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('--oasys-component-card-aspect-ratio-square');\n case 'portrait':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');\n case 'landscape':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-landscape');\n default:\n return this.tokenService.getTokenValue('--oasys-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: [],\n imports: [CommonModule, OasysDirectivesModule, ImageComponent],\n exports: [ImageComponent],\n providers: [ImageService]\n})\nexport class OasysImageModule {\n public static forRoot(environment: {\n mediaUrl: string;\n }): 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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ui-form-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormGroupComponent {\n /**\n * Required\n * Set the title to automatically show the correctly styled heading/legend\n */\n @Input() group_title: string;\n\n /**\n * Hide the title of the form group but it remains accessible to screen readers.\n */\n @Input() group_title_hidden: boolean = false;\n\n /**\n * Affects which type title text and input is shown\n */\n @Input() group_type: 'primary' | 'secondary' = 'primary';\n}\n","<fieldset>\n <legend [ngClass]=\"{'visually-hidden': group_title_hidden, 'primary': group_type === 'primary', 'secondary': group_type === 'secondary'}\">\n {{group_title}}\n </legend>\n <ui-stack stack_gap=\"near\">\n <ng-content></ng-content>\n </ui-stack>\n</fieldset>","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconNames } from '../../icon/icon';\n\n@Component({\n selector: 'ui-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioComponent),\n multi: true,\n },\n ],\n})\nexport class RadioComponent implements ControlValueAccessor, OnInit {\n @Input() radio_type: 'primary' | 'secondary' = 'primary';\n\n // Required for chip component\n @Input() hide_radio: boolean = false;\n @Input() iconName?: IconNames;\n\n @Input() label?: string;\n @Input() value?: string;\n @Input() name?: string;\n @Input() checked?: boolean;\n\n @Output() didChange: EventEmitter<string> = new EventEmitter();\n\n id: string | number;\n iconSize: string;\n\n selectedValue: string;\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor() {}\n\n selectOption() {\n this.onChange(this.value);\n this.onTouched();\n }\n\n writeValue(value: string): void {\n this.selectedValue = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n onModelChange(event: string) {\n this.value = event;\n this.onChange(event);\n this.didChange.emit(event);\n this.onTouched();\n }\n\n ngOnInit(): void {\n this.id = this.label + Math.random();\n }\n}\n","<ui-stack stack_direction=\"x\" stack_gap=\"near\" stack class=\"ui-radio\">\n <input\n role=\"radio\"\n type=\"radio\"\n [id]=\"id\"\n [value]=\"value\"\n [ngModel]=\"selectedValue\"\n (ngModelChange)=\"onModelChange($event)\"\n [ngClass]=\"radio_type\"\n [name]=\"name\"\n [checked]=\"checked\"\n />\n <label [for]=\"id\" [ngClass]=\"radio_type\">\n <ui-stack stack_gap=\"near\" [stack_align]=\"hide_radio ? 'center' : 'start'\" stack_direction=\"x\">\n <div [ngClass]=\"{ 'icon--hidden': hide_radio, 'icon-container': true }\">\n <div class=\"dot\"></div>\n </div>\n <ui-stack stack_gap=\"tight\">\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_gap=\"near\"\n [ngClass]=\"radio_type === 'primary' ? 'text-body--default' : 'text-body--supporting'\"\n >\n <ui-icon\n *ngIf=\"hide_radio && iconName\"\n [icon_name]=\"iconName\"\n icon_size=\"small\"\n ></ui-icon>\n <span class=\"main-label\" [ngClass]=\"{ 'label--center': hide_radio }\">{{ label }}</span>\n <ng-content select=\"[tertiary-content]\"></ng-content>\n </ui-stack>\n <span\n [attr.aria-details]=\"id\"\n class=\"input-hint text-body--regular text-body--supporting text-color--supporting\"\n ><ng-content></ng-content\n ></span>\n </ui-stack>\n </ui-stack>\n </label>\n</ui-stack>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { RadioComponent } from './radio.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\n\n@NgModule({\n declarations: [RadioComponent],\n imports: [CommonModule, OasysLayoutModule, ReactiveFormsModule, FormsModule, OasysIconModule],\n exports: [RadioComponent],\n providers: [TokenService],\n})\nexport class OasysRadioModule {}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Optional,\n Output,\n Self,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { TokenService } from '../../../services/token.service';\nimport { IconNames } from '../../icon/icon';\n\n@Component({\n selector: 'ui-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent implements ControlValueAccessor, OnInit {\n @Input() checkbox_type: 'primary' | 'secondary' = 'primary';\n\n // Required for chip component\n @Input() hide_checkbox: boolean = false;\n @Input() iconName?: IconNames;\n\n @Input() label?: string;\n @Input() checked: boolean;\n @Input() required: boolean;\n @Output() didChange: EventEmitter<boolean> = new EventEmitter();\n\n id: string | number;\n iconSize: string;\n\n constructor(private tokenService: TokenService) {}\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(checked: boolean): void {\n this.checked = checked;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n onModelChange(event: boolean) {\n this.checked = event;\n this.onChange(event);\n this.didChange.emit(event);\n this.onTouched();\n }\n\n ngOnInit(): void {\n this.id = this.label + Math.random();\n this.iconSize = this.tokenService.getTokenValue(\n `--oasys-component-checkbox-icon-size-${this.checkbox_type}`,\n );\n }\n}\n","<ui-stack stack_direction=\"x\" stack_gap=\"near\" stack class=\"ui-checkbox\">\n <input\n type=\"checkbox\"\n [required]=\"required\"\n [id]=\"id\"\n [ngModel]=\"checked\"\n (ngModelChange)=\"onModelChange($event)\"\n [attr.checked]=\"checked || null\"\n [ngClass]=\"checkbox_type\"\n />\n <label [for]=\"id\" [ngClass]=\"checkbox_type\">\n <ui-stack\n stack_gap=\"near\"\n [stack_align]=\"hide_checkbox ? 'center' : 'start'\"\n stack_direction=\"x\"\n >\n <div\n class=\"icon-container\"\n [ngClass]=\"{\n 'focus-element': checkbox_type === 'secondary',\n 'icon--hidden': hide_checkbox\n }\"\n >\n <ui-icon\n icon_name=\"tick\"\n [icon_size_override]=\"iconSize\"\n icon_class=\"checkboxIcon\"\n ></ui-icon>\n </div>\n <ui-stack stack_gap=\"tight\">\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n [ngClass]=\"checkbox_type === 'primary' ? 'text-body--default' : 'text-body--supporting'\"\n >\n <ui-icon\n *ngIf=\"hide_checkbox && iconName\"\n [icon_name]=\"iconName\"\n icon_size=\"small\"\n ></ui-icon>\n <span class=\"main-label\">{{ label }}</span>\n <ng-content select=\"[tertiary-content]\"></ng-content>\n </ui-stack>\n <span class=\"input-hint text-body--regular text-body--supporting text-color--supporting\"\n ><ng-content></ng-content\n ></span>\n </ui-stack>\n </ui-stack>\n </label>\n</ui-stack>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { CheckboxComponent } from './checkbox.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, OasysLayoutModule, ReactiveFormsModule, FormsModule, OasysIconModule],\n exports: [CheckboxComponent],\n providers: [TokenService],\n})\nexport class OasysCheckboxModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { FormGroupComponent } from './form-group.component';\nimport { OasysRadioModule } from '../radio';\nimport { OasysCheckboxModule } from '../checkbox';\n\n@NgModule({\n declarations: [FormGroupComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysRadioModule,\n OasysCheckboxModule\n ],\n exports: [FormGroupComponent],\n providers: [TokenService]\n})\nexport class OasysFormGroupModule {}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n forwardRef,\n ElementRef,\n Inject,\n AfterViewInit,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AutocompleteType, TextInputType } from './text-input';\nimport { ValidationErrorTypes } from '../forms';\n\n@Component({\n selector: 'ui-text-input',\n templateUrl: './text-input.component.html',\n styleUrls: ['./text-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(\n (): typeof TextInputComponent => TextInputComponent\n ),\n multi: true\n }\n ]\n})\nexport class TextInputComponent\n implements ControlValueAccessor, OnInit, AfterViewInit\n{\n @Input() label!: string;\n @Input() hint?: string;\n @Input() optional: boolean = true;\n @Input() type: TextInputType = 'text';\n @Input() autocomplete: AutocompleteType = 'on';\n @Input() autofocus: boolean = false;\n @Input() minlength: number;\n @Input() maxlength: number = 255;\n @Input() pattern: string;\n @Input() autocorrect: boolean = this.type === 'text'; // do not spell check emails and passwords\n @Input() disabled: boolean = false;\n @Input() aria_label: string | undefined;\n\n @Input() show_password_string: string = 'Show'; // Pass in translated string\n @Input() hide_password_string: string = 'Hide'; // Pass in translated string\n\n @Input() validation_messages: ValidationErrorTypes; // Pass in translated string\n\n @Output() didChange = new EventEmitter<string>();\n\n @ViewChild('textinput', { read: ElementRef })\n textInput: ElementRef<HTMLElement>;\n\n @ViewChild('prefaceContent', { read: ElementRef, static: false })\n prefaceContent: ElementRef<HTMLElement>;\n\n textValue: string = '';\n showPassword: boolean = false;\n inputDidChange: boolean = false; // only show valdiation after a change event (ie. blur)\n textInputType: TextInputType = 'text';\n\n id: string;\n\n safariAutocorrect: 'on' | 'off' = 'on';\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n onChange: any = (): void => {};\n onTouched: any = (): void => {};\n\n writeValue(textValue: string): void {\n this.textValue = textValue;\n }\n\n registerOnChange(fn: unknown): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: unknown): void {\n this.onTouched = fn;\n }\n\n onModelChange(textValue: string): void {\n this.textValue = textValue;\n this.onChange(textValue);\n this.didChange.emit(textValue);\n this.onTouched();\n }\n\n toggleShowPassword(): void {\n this.showPassword = !this.showPassword;\n this.textInputType = this.showPassword ? 'text' : 'password';\n }\n\n handleEvent(): void {\n this.inputDidChange = true;\n\n const inputElement = this.document.getElementById(this.id);\n inputElement?.removeEventListener('change', this);\n }\n\n setupValidationListener(): void {\n const inputElement = this.document.getElementById(this.id);\n inputElement?.addEventListener('change', this);\n }\n\n ngAfterViewInit(): void {\n this.setupValidationListener();\n }\n\n ngOnInit(): void {\n this.id = Math.random().toString();\n this.textInputType = this.type;\n this.safariAutocorrect = this.autocorrect ? 'on' : 'off';\n }\n\n accessibleAriaLabel(): string | undefined {\n let prefaceText = '';\n\n if (this.aria_label || this.textInputType !== 'tel') {\n return this.aria_label;\n }\n\n // Get preface content if available\n if (this.prefaceContent?.nativeElement?.textContent?.trim()) {\n prefaceText = ' ' + this.prefaceContent.nativeElement.textContent.trim();\n }\n\n const textValue = this.textValue?.trim() ?? '';\n const telephoneToText = prefaceText + ' ' + textValue.split('').join(' ');\n\n return this.label + telephoneToText;\n }\n\n getInputMode(): string | undefined {\n // For telephone inputs, use tel input mode\n if (this.textInputType === 'tel') {\n return 'tel';\n }\n\n return undefined;\n }\n\n getAriaDescribedBy(): string | undefined {\n const describedBy = [];\n\n // Add error if it exists\n describedBy.push('error_' + this.id);\n\n // Add hint if it exists\n if (this.hint) {\n describedBy.push('hint_' + this.id);\n }\n\n return describedBy.length > 0 ? describedBy.join(' ') : undefined;\n }\n}\n","<ui-stack class=\"ui-text-input-container\" stack_gap=\"tight\">\n <div class=\"ui-text-input\">\n <ui-stack stack_direction=\"x\">\n <div class=\"input-preface\" [attr.id]=\"'preface_' + id\" #prefaceContent>\n <ng-content select=\"[preface]\"></ng-content>\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"safariAutocorrect\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"autocomplete || null\"\n [minlength]=\"minlength || null\"\n [maxlength]=\"maxlength\"\n [pattern]=\"pattern || null\"\n [required]=\"!optional\"\n [spellcheck]=\"autocorrect\"\n [type]=\"textInputType\"\n [value]=\"textValue\"\n [attr.inputmode]=\"getInputMode()\"\n [attr.aria-describedby]=\"getAriaDescribedBy()\"\n [attr.aria-label]=\"accessibleAriaLabel()\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-stack>\n <ui-stack\n class=\"label-container\"\n stack_direction=\"x\"\n [stack_distribute]=\"type === 'password' ? 'space-between' : 'start'\"\n >\n <label class=\"text-body--supporting text-body--regular\" [for]=\"id\">{{\n label\n }}</label>\n @if (type === \"password\") {\n <a\n (click)=\"toggleShowPassword()\"\n class=\"text-body--supporting text-color--supporting\"\n >\n @if (!showPassword) {\n <span>{{ show_password_string }}</span>\n } @else if (showPassword) {\n <span>{{ hide_password_string }}</span>\n }\n </a>\n }\n </ui-stack>\n </div>\n <ui-stack stack_gap=\"none\">\n <div class=\"input-errors\">\n <div class=\"input-errors-content\" [attr.id]=\"'error_' + id\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n @if (hint) {\n <ui-box\n class=\"hint-container\"\n box_background=\"transparent\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n >\n <div\n class=\"ui-text-input-hint text-body--supporting text-color--supporting\"\n [attr.id]=\"'hint_' + id\"\n >\n {{ hint }}\n </div>\n </ui-box>\n }\n </ui-stack>\n</ui-stack>\n","import { Component, computed, input } from '@angular/core';\nimport { ValidationErrorTypes } from '../forms';\nimport { ValidationErrors } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { OasysLayoutModule } from '../../layout';\n\n@Component({\n selector: 'ui-form-errors',\n templateUrl: './form-errors.component.html',\n standalone: true,\n imports: [CommonModule, OasysLayoutModule]\n})\nexport class FormErrorsComponent {\n errors = input<ValidationErrors | null | undefined>(null);\n error_messages = input<ValidationErrorTypes | undefined>({});\n\n errorMessage = computed((): string => {\n const currentErrors = this.errors();\n const messages = this.error_messages() || {};\n\n if (!currentErrors) {\n return undefined;\n }\n const errorKeys = Object.keys(currentErrors);\n const firstErrorKey = errorKeys.length ? errorKeys[0] : undefined;\n return firstErrorKey ? messages[firstErrorKey] : undefined;\n });\n}\n","@if (errorMessage()) {\n<ui-box\n box_background=\"transparent\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n>\n <div class=\"text-color--error\">{{ errorMessage() }}</div>\n</ui-box>\n}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormErrorsComponent } from './form-errors.component';\n\n@NgModule({\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n FormErrorsComponent\n ],\n exports: [FormErrorsComponent],\n providers: [TokenService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class OasysFormErrorsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { TextInputComponent } from './text-input.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { OasysDirectivesModule } from '../../../directives/directives.module';\nimport { OasysFormErrorsModule } from '../errors';\n\n@NgModule({\n declarations: [TextInputComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysDirectivesModule,\n OasysFormErrorsModule\n ],\n exports: [TextInputComponent],\n providers: [TokenService]\n})\nexport class OasysTextInputModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\nimport { IconNames } from '../../icon/icon';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'ui-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ChipComponent),\n multi: true,\n },\n ],\n})\nexport class ChipComponent implements ControlValueAccessor, OnInit {\n @Input() chip_type: 'radio' | 'checkbox' = 'radio';\n\n @Input() icon_name!: IconNames;\n @Input() label?: string;\n @Input() value?: string | boolean;\n\n // Checkbox only\n @Input() required: boolean;\n\n @Output() didChange: EventEmitter<string | boolean> = new EventEmitter();\n\n id: string;\n selectedValue: string | boolean;\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n constructor() {}\n\n /**\n * On init\n */\n ngOnInit(): void {\n this.id = 'chip' + Math.random();\n }\n\n /**\n * CVA - Write value\n * @param {string | boolean} value\n */\n writeValue(value: string | boolean): void {\n this.selectedValue = value;\n }\n\n /**\n * CVA - Register on change\n * @param {() => void} fn\n */\n registerOnChange(fn: () => void): void {\n this.onChange = fn;\n }\n\n /**\n * CVA - Register on touched\n * @param {() => void} fn\n */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /**\n * On modal interaction and change\n * @param event\n */\n onModalChange(event: string | boolean): void {\n this.value = event;\n this.onChange(event);\n this.didChange.emit(event);\n this.onTouched();\n }\n}\n","<div [id]=\"id\" class=\"ui-chip\">\n <ui-radio\n *ngIf=\"chip_type === 'radio'\"\n [label]=\"label\"\n [value]=\"value?.toString()\"\n radio_type=\"primary\"\n [hide_radio]=\"true\"\n [iconName]=\"icon_name\"\n [ngModel]=\"selectedValue\"\n (didChange)=\"onModalChange($event)\"\n >\n <ng-content ngProjectAs=\"[tertiary-content]\"></ng-content>\n </ui-radio>\n\n <ui-checkbox\n *ngIf=\"chip_type === 'checkbox'\"\n [label]=\"label\"\n [checked]=\"value === true\"\n [required]=\"required\"\n checkbox_type=\"primary\"\n [hide_checkbox]=\"true\"\n [iconName]=\"icon_name\"\n [ngModel]=\"selectedValue\"\n (didChange)=\"onModalChange($event)\"\n >\n <ng-content ngProjectAs=\"[tertiary-content]\"></ng-content>\n </ui-checkbox>\n</div>\n","import { NgModule } from '@angular/core';\nimport { ChipComponent } from './chip.component';\nimport { CommonModule } from '@angular/common';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { OasysRadioModule } from '../radio';\nimport { OasysCheckboxModule } from '../checkbox';\n\n@NgModule({\n declarations: [ChipComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysRadioModule,\n OasysCheckboxModule,\n ],\n exports: [ChipComponent],\n providers: [TokenService],\n})\nexport class OasysChipModule {}\n","import { Component, Input, OnInit, ViewEncapsulation, HostBinding } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { HeadingAlignment, HeadingGap, HeadingLevel, HeadingType, 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 @Input() heading_type: HeadingType = 'primary';\n @Input() heading_on_dark: UIBoolean;\n @Input() heading_title: string;\n @Input() heading_seo_priority: boolean = false;\n @Input() heading_priority?: 1 | 2 | 3 | 4 | 5 | 6;\n @Input() heading_alignment_override?: HeadingAlignment;\n @Input() heading_subtitle?: string = '';\n @Input() heading_surtitle?: string = '';\n @Input() heading_level?: HeadingLevel;\n\n computed_heading_level: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n headingAlignment: HeadingAlignment;\n headingGap: HeadingGap;\n\n constructor(private tokenService: TokenService) { }\n\n @HostBinding('class') get class(): string {\n return `\n ${this.heading_on_dark ? 'text-color--on-dark' : ''}\n ui-heading-alignment-${this.headingAlignment}\n `;\n }\n\n setComputedHeadingLevel(): void {\n if (this.heading_level) {\n this.computed_heading_level = this.heading_level;\n } else if (this.heading_priority) {\n this.computed_heading_level = `h${this.heading_priority}`;\n } else if (this.heading_seo_priority) {\n this.computed_heading_level = 'h1';\n } else {\n this.computed_heading_level = 'h2';\n }\n }\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('--oasys-component-heading-alignment-default') as HeadingAlignment;\n const functionalAlignment = this.tokenService.getTokenValue('--oasys-component-heading-alignment-functional') as HeadingAlignment;\n\n this.headingAlignment = this.headingTypeIsFunctional(headingType) ? functionalAlignment : alignment;\n }\n\n setupHeadingStackGap(headingType: HeadingType): void {\n if (this.headingTypeIsFunctional(headingType)) {\n this.headingGap = this.tokenService.getTokenValue('--oasys-component-heading-gap-functional') as HeadingGap;\n return;\n }\n\n if (this.heading_type === 'secondary') {\n this.headingGap = this.tokenService.getTokenValue('--oasys-component-heading-gap-secondary') as HeadingGap;\n return;\n }\n\n if (this.heading_type === 'primary') {\n this.headingGap = this.tokenService.getTokenValue('--oasys-component-heading-gap-primary') as HeadingGap;\n return;\n }\n\n // Hero gap\n this.headingGap = this.tokenService.getTokenValue('--oasys-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.setComputedHeadingLevel();\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 <!-- Title -->\n <h1 *ngIf=\"computed_heading_level==='h1'\" role=\"heading\" class=\"seo-h1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h1>\n <h2 *ngIf=\"computed_heading_level==='h2'\" role=\"heading\" class=\"seo-h2\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h2>\n <h3 *ngIf=\"computed_heading_level==='h3'\" role=\"heading\" class=\"seo-h3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h3>\n <h4 *ngIf=\"computed_heading_level==='h4'\" role=\"heading\" class=\"seo-h4\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h4>\n <h5 *ngIf=\"computed_heading_level==='h5'\" role=\"heading\" class=\"seo-h5\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h5>\n <h6 *ngIf=\"computed_heading_level==='h6'\" role=\"heading\" class=\"seo-h6\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </h6>\n\n <!-- Subtitle -->\n <h2\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h1'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h2>\n <h3\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h2'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h3>\n <h4\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h3'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h4>\n <h5\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h4'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h5>\n <h6\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h5'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></h6>\n <p\n *ngIf=\"heading_subtitle && heading_subtitle.length && computed_heading_level==='h6'\"\n class=\"heading-subtitle ui-prose\"\n [innerHTML]=\"heading_subtitle\"\n [ngClass]=\"{\n 'text-body--hero': heading_type === 'hero',\n 'text-body--default': heading_type !== 'hero'\n }\"\n ></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, AfterViewInit, ElementRef, ViewChild } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutAlignment, LayoutBackgrounds } from '../layout/Layout';\nimport { HeadingLevel } from '../heading/heading';\n@Component({\n selector: 'ui-hero',\n templateUrl: './hero.component.html',\n styleUrls: ['./hero.component.scss']\n})\nexport class HeroComponent implements OnInit, AfterViewInit {\n @ViewChild('herobox', { read: ElementRef }) herobox: ElementRef;\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 @Input() non_brand_background_colour: string;\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 @Input() text_on_dark_override: string;\n @Input() heading_level: HeadingLevel = 'h1';\n\n // Event input variables\n @Input() href_primary_cta: string = '';\n @Input() href_secondary_cta: string = '';\n\n // Design token variables\n heroCtaAlignment: LayoutAlignment;\n heroInsetSpaceSmall: string;\n heroInsetSpaceLarge: string;\n\n constructor(private tokenService: TokenService\n ) { }\n\n setNonBrandBackgroundColour(): void {\n this.herobox.nativeElement.style.background = this.non_brand_background_colour;\n }\n\n ngAfterViewInit(): void {\n if (this.non_brand_background_colour) {\n this.setNonBrandBackgroundColour();\n }\n }\n\n ngOnInit(): void {\n this.heroCtaAlignment = this.tokenService.getTokenValue('--oasys-component-hero-actions-alignment') as LayoutAlignment;\n this.heroInsetSpaceSmall = this.tokenService.getTokenValue('--oasys-component-hero-inset-spacing-small');\n this.heroInsetSpaceLarge = this.tokenService.getTokenValue('--oasys-component-hero-inset-spacing-large');\n }\n}\n","<ui-box [box_background]=\"background_colour\" box_space=\"none\" #herobox>\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]=\"(herobox.backgroundIsDark || (text_on_dark_override === 'true')) ? true : false\"\n [heading_title]=\"heading_title\"\n [heading_seo_priority]=\"true\"\n [heading_subtitle]=\"heading_subtitle\"\n [heading_surtitle]=\"heading_surtitle\"\n [heading_level]=\"heading_level\">\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]=\"(herobox.backgroundIsDark || (text_on_dark_override === 'true')) ? 'primary-inverse' : 'primary'\"\n [href]=\"href_primary_cta\">\n <span>{{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]=\"(herobox.backgroundIsDark || (text_on_dark_override === 'true')) ? 'secondary-inverse' : 'secondary'\"\n [href]=\"href_secondary_cta\">\n <span>{{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 <picture *ngIf=\"media_type === 'image'\">\n <source [srcset]=\"image + '?w=880&h=880&fm=webp&q=75 1x,' + image + '?w=1760&h=1760&fm=webp&q=40 2x'\" media=\"(min-width: 1440px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=720&h=720&fm=webp&q=75 1x,' + image + '?w=1440&h=1440&fm=webp&q=40 2x'\" media=\"(min-width: 1200px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=580&h=580&fm=webp&q=75 1x,' + image + '?w=1160&h=1160&fm=webp&q=40 2x'\" media=\"(min-width: 992px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=430&h=430&fm=webp&q=75 1x,' + image + '?w=860&h=860&fm=webp&q=40 2x'\" media=\"(min-width: 768px)\" type=\"image/webp\">\n <source [srcset]=\"image + '?w=720&h=720&fm=webp&q=40 2x'\" media=\"(min-width: 454px)\" type=\"image/webp\">\n <img fetchpriority=\"high\" [src]=\"image + '?w=430&h=430&fm=webp&q=75'\" [attr.alt]=\"alt_text\" width=\"100%\" height=\"100%\" style=\"object-fit: cover;\">\n </picture>\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 <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"!expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(true)\"\n class=\"text-link text-link--standalone\">\n {{read_more_content_text}}\n </a>\n <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"expandedContentVisible\" role=\"button\" (click)=\"showMoreContent(false)\"\n class=\"text-link text-link--standalone\">\n {{read_less_content_text}}\n </a>\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 <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"!expandedLinksVisible\" (click)=\"showMoreLinks(true)\" class=\"text-link text-link--standalone\">\n {{show_more_links_text}}\n </a>\n <a tabindex=\"0\" href=\"javascript:;\" *ngIf=\"expandedLinksVisible\" (click)=\"showMoreLinks(false)\" class=\"text-link text-link--standalone\">\n {{show_less_links_text}}\n </a>\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 { Component, Input, OnInit, AfterViewInit } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds } from '../layout/Layout';\nimport { ImageAspectRatio } from '../image/image';\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: ImageAspectRatio;\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 doesn't appear to be used anywhere\n this.backgroundIsDark = this.tokenService.getTokenValue(`--oasys-component-box-on-dark-${this.brand_background_colour}`);\n }\n\n ngOnInit(): void {\n\n this.containerInsetSpaceSmall = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-container-small`);\n this.containerInsetSpaceLarge = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-container-large`);\n\n this.contentInsetSpaceSmall = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-content-small-${this.section_type}`);\n this.contentInsetSpaceLarge = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-content-large-${this.section_type}`);\n\n this.imageAspectRatio = this.tokenService.getTokenValue(`--oasys-component-section-image-aspect-ratio-${this.section_type}`) as ImageAspectRatio;\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' : undefined\"\n[box_space_right]=\"section_type === 'spotlight' && image_on_left ? 'none' : undefined\"\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=\"transparent\"\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 EventEmitter,\n Output\n} from '@angular/core';\nimport Swiper from 'swiper';\nimport { SwiperOptions } from 'swiper/types';\nimport { TokenService } from '../../services/token.service';\nimport { SwiperContainer } from 'swiper/element';\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<SwiperContainer>;\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' | 'tight' | 'near' | 'none' = 'default';\n\n @Input() carousel_pagination: 'scroll-arrows' | 'none' | 'scroll-bar' | 'small-arrows' = 'none';\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 @Input() text_for_left_arrow: string = 'previous slide';\n @Input() text_for_right_arrow: string = 'next slide';\n\n @Input() carousel_rows_per_row_mobile: 1 | 2 = 1; // Required for CATEGORY_CARD experiment. Remove if experiment fails.\n\n @Input() carousel_loading: 'lazy' | 'eager' = 'lazy'; // If we don't have multiple carousels on page and want to prioritise UI loading on time\n @Input() carousel_free_mode: boolean = false; // Enables scrolling with mousewheel / smoother momentum swiping experience\n @Input() center_insufficient_slides: boolean = true; // Centers the slides if there are not enough to fill the space\n @Input() center_active_slide: boolean = false; // Centers the active slide\n @Input() start_slide: number = 0; // Start slide index\n @Input() offset_scrollbar_top: boolean = false; // Offset the scrollbar to the top of the carousel\n\n @Output() activeIndexOnSlideChange = new EventEmitter<number>();\n\n constructor(private tokenService: TokenService, @Inject(DOCUMENT) private document: Document, private element: ElementRef) {}\n\n ngOnInit(): void {\n if (this.carousel_loading === 'lazy') {\n this.setUpIntersectionObserver();\n } else {\n this.initSwiper();\n }\n }\n\n /**\n * Set up the intersection observer with the relevant options\n */\n setUpIntersectionObserver(): void {\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): void {\n entries.forEach((entry): void => {\n if (entry.isIntersecting) {\n // Initialise swiper\n this.initSwiper();\n observer.unobserve(entry.target);\n }\n });\n }\n\n getStyle(element: HTMLElement, style: string): string {\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 === 'none') {\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 if (carouselStack && this.carousel_pagination === 'scroll-arrows') {\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 this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-height', '2px'\n );\n }\n\n if (carouselStack && this.carousel_pagination === 'scroll-bar') {\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-width', '100%'\n );\n\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-offset-top', `${this.offset_scrollbar_top ? parseInt(this.getStyle(carouselStack, 'gap'), 10) + 'px' : '0px'}`\n );\n\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-height', '4px'\n );\n\n this.element?.nativeElement?.style?.setProperty(\n '--ui-carousel-scrollbar-left', '0px'\n );\n }\n }\n\n /**\n * Set the dynamic swiper params and initialise the swiper instance\n */\n // eslint-disable-next-line complexity\n initSwiper(): void {\n // Colour overides\n const scrollbarBackgroundColour = this.tokenService.getTokenValue('--oasys-color-linen-grey-200');\n const scrollbarSliderColour = this.tokenService.getTokenValue('--oasys-color-brand-foreground-primary');\n\n // swiper element\n const swiperEl = this.swiper.nativeElement;\n\n const carouselGap = this.tokenService.getTokenValue(`--oasys-spacing-${this.carousel_gap}`);\n\n // swiper parameters\n const swiperParams: SwiperOptions = {\n rewind: this.rewind,\n grabCursor: true,\n spaceBetween: (parseInt(carouselGap.replace('.', ''), 10)) || 0,\n centeredSlides: this.center_active_slide,\n initialSlide: this.start_slide,\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n centerInsufficientSlides: this.center_insufficient_slides,\n freeMode: this.carousel_free_mode\n ? {\n enabled: true,\n sticky: true,\n momentumVelocityRatio: 0.75,\n momentumRatio: 0.75\n }\n : false,\n mousewheel: this.carousel_free_mode\n ? {\n forceToAxis: true\n }\n : false,\n injectStyles: [\n `\n .swiper {\n overflow: ${this.carousel_overflow ? 'visible' : 'hidden'} !important;\n }\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: var(--ui-carousel-scrollbar-height);\n left: ${this.carousel_pagination === 'scroll-bar' ? 'var(--ui-carousel-scrollbar-left)' : '1%'};\n background: ${scrollbarBackgroundColour}\n }\n\n .swiper-scrollbar-drag {\n background: ${scrollbarSliderColour}\n }`\n ],\n breakpoints: {\n 0: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_mobile,\n grid: {\n rows: this.carousel_rows_per_row_mobile,\n fill: 'row'\n }\n },\n 767: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_tablet\n },\n 1080: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_laptop\n },\n 1440: {\n scrollbar: {\n enabled: this.carousel_pagination === 'scroll-arrows' || this.carousel_pagination === 'scroll-bar',\n draggable: true\n },\n slidesPerView: this.carousel_slides_per_view_desktop\n }\n },\n on: {\n slideChange: this.onSlideChange.bind(this)\n }\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', (): void => {\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 /**\n * Emit event when the slide changes\n * @param swiper\n */\n onSlideChange(swiper: Swiper): void {\n this.activeIndexOnSlideChange.emit(swiper.activeIndex);\n }\n}\n","<ui-box\nclass=\"ui-carousel\"\n[ngClass]=\"{'ui-carousel-overflow': carousel_overflow}\"\nbox_align_y=\"center\"\nbox_space=\"none\"\n[box_content_fill_width]=\"true\"\nbox_background=\"transparent\">\n\n <ui-stack #carouselctastack>\n <!-- Custom navigation buttons -->\n <ui-stack *ngIf=\"carousel_pagination === 'small-arrows'\" stack_direction=\"x\" stack_align=\"center\" stack_distribute=\"end\">\n <ui-box\n box_space=\"none\"\n box_fill_mode=\"fit\"\n box_space_bottom=\"near\"\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=\"small\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-left\"\n button_type=\"tertiary\"\n [aria_label]=\"text_for_left_arrow\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"small\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"tertiary\"\n [aria_label]=\"text_for_right_arrow\"\n (clicked)=\"nextSlide()\"> Next slide\n </ui-button>\n </ui-stack>\n </ui-box>\n </ui-stack>\n\n <!-- Swiper WebComponent-->\n <swiper-container\n #swiper\n init=\"false\"\n touch-start-prevent-default=\"false\"\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' || carousel_pagination === 'scroll-bar'\">\n <div class=\"ui-carousel-scrollbar-placeholder\" #carouselscrollbarplaceholder></div>\n <ui-box\n *ngIf=\"carousel_pagination === 'scroll-arrows'\"\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 [aria_label]=\"text_for_left_arrow\"\n (clicked)=\"previousSlide()\"> Prevous slide\n </ui-button>\n <!-- Next button-->\n <ui-button\n class=\"ui-carousel__next\"\n button_size=\"large\"\n button_icon_placement=\"iconOnly\"\n button_icon=\"arrow-right\"\n button_type=\"secondary\"\n [aria_label]=\"text_for_right_arrow\"\n (clicked)=\"nextSlide()\"> Next slide\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 { 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, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutBackgrounds, LayoutBackgroundsDeprecated } 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 // Design token variables;\n public mobilePadding: string\n\n @Input() background_colour: LayoutBackgrounds | LayoutBackgroundsDeprecated = '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 constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n this.mobilePadding = this.tokenService.getTokenValue('--oasys-component-banner-spacing-mobile');\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 #bannerbox\n >\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-box [box_space]='{mobile: mobilePadding, tablet: \"none\"}' box_space_top=\"none\" box_space_bottom=\"none\" box_background=\"transparent\">\n <ui-stack\n class=\"content__stack\"\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_gap=\"near\"\n stack_collapse_below=\"tablet\">\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]=\"bannerbox.backgroundIsDark ? 'primary-inverse' : 'primary'\"\n [href]=\"cta_link\"\n (clicked)=\"onCtaClicked()\">\n <span>{{cta_text}}</span>\n </ui-button>\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 { 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 {}","import { DOCUMENT } from '@angular/common';\nimport { Component, ElementRef, HostBinding, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'ui-price',\n templateUrl: './price.component.html',\n styleUrls: ['./price.component.scss']\n})\nexport class OasysPriceComponent {\n\n @HostBinding('class') get class() {\n return `\n ${this.price_type === 'hero' ? 'text-body--hero' : ''}\n ${this.price_type === 'primary' ? 'text-body--default' : ''}\n ${this.price_type === 'supporting' ? 'text-body--supporting' : ''}\n `\n }\n\n @Input() price: string;\n @Input() price_before_discount?: string;\n\n @Input() price_type: 'hero' | 'primary' | 'supporting' = 'primary';\n\n}\n","<div class=\"ui-price\" [ngClass]=\"price_type\">\n <ui-stack stack_direction=\"x\" stack_gap=\"near\" stack_align=\"center\" [ngClass]=\"{'oasys-price-has-discount': price_before_discount}\">\n <div [attr.aria-hidden]=\"true\" *ngIf=\"price_before_discount\" class=\"text-body--line-through\">{{price_before_discount}}</div>\n <div itemprop=\"price\" class=\"price-to-pay\">{{price}}</div>\n </ui-stack>\n</div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysPriceComponent } from './price.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n\n@NgModule({\n declarations: [OasysPriceComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [OasysPriceComponent]\n})\nexport class OasysPriceModule {}\n","import { Component, HostBinding, Input } from '@angular/core';\nimport { PillTone } from './pill';\n\n@Component({\n selector: 'ui-pill',\n templateUrl: './pill.component.html',\n styleUrls: ['./pill.component.scss']\n})\nexport class OasysPillComponent {\n\n prefix = 'ui-pill';\n\n @HostBinding('class') get class() {\n return `${this.prefix}-${this.tone}`\n }\n\n @Input() tone: PillTone = 'neutral';\n\n}\n","<div role=\"status\" class=\"text-body--supporting text-body--emphasis\"><ng-content></ng-content></div>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysPillComponent } from './pill.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n\n@NgModule({\n declarations: [OasysPillComponent],\n imports: [CommonModule, OasysLayoutModule, OasysDirectivesModule],\n exports: [OasysPillComponent]\n})\nexport class OasysPillModule {}\n","import { Component, Input, OnInit, ViewEncapsulation, HostBinding } from '@angular/core';\nimport { Breakpoint, BreakpointService } from '../../services/breakpoint.service';\n\n\n@Component({\n selector:'ui-pill-group',\n templateUrl: './pill-group.component.html',\n styleUrls: ['./pill-group.component.scss'],\n encapsulation: ViewEncapsulation.None, // to hide non ui-pills via css\n})\nexport class OasysPillGroupComponent implements OnInit {\n\n prefix: 'ui-pill-group';\n\n @Input() pill_group_align: 'start' | 'center' | 'end' = 'start';\n @Input() pill_group_collapse_below: 'tablet' | 'laptop' | 'desktop' | 'none' = 'tablet';\n\n constructor(private breakpointService: BreakpointService){}\n\n\n ngOnInit(): void {\n }\n\n get shouldCollapse(): boolean {\n switch (this.pill_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]=\"pill_group_collapse_below\"\n [stack_distribute]=\"pill_group_align\"\n [stack_wrap]=\"true\"\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 { OasysPillGroupComponent } from './pill-group.component';\nimport { OasysLayoutModule } from '../layout';\nimport { OasysPillComponent } from '../pill/pill.component';\nimport { OasysPillModule } from '../pill/pill.module';\n\n@NgModule({\n declarations: [OasysPillGroupComponent],\n imports: [OasysLayoutModule, CommonModule, RouterModule, OasysPillModule],\n exports: [OasysPillGroupComponent],\n})\nexport class OasysPillGroupModule {}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\nimport { LayoutAlignment, LayoutGapSizes } from '../layout';\nimport { ImageAspectRatio } from '../image/image';\n\nexport type PromoCardLayout = 'default' | 'compact';\n\nconst PROMO_CARD_LAYOUTS: Record<PromoCardLayout, {\n headingType: string;\n bodyType: string;\n spacing: LayoutGapSizes;\n}> = {\n default: {\n headingType: 'secondary',\n bodyType: 'body-default',\n spacing: 'default'\n },\n compact: {\n headingType: 'body-expressive',\n bodyType: 'body-supporting',\n spacing: 'near'\n }\n};\n\n@Component({\n selector: 'ui-promo-card',\n templateUrl: './promo-card.component.html',\n styleUrls: ['./promo-card.component.scss']\n})\nexport class PromoCardComponent implements OnInit {\n\n // Image\n @Input() image: string;\n @Input() alt_text: string;\n\n // Content\n @Input() title: string;\n @Input() subtitle: string;\n\n // CTAs\n @Input() primary_cta_text: string;\n @Input() href_primary_cta: string = '';\n\n // Style\n @Input() background_colour: string;\n @Input() font_colour: string;\n\n // Layout\n @Input() layout: PromoCardLayout = 'default';\n\n @Output() cta_clicked: EventEmitter<void> = new EventEmitter();\n\n aspectRatio: ImageAspectRatio;\n alignment: LayoutAlignment;\n layoutConfig = PROMO_CARD_LAYOUTS['default'];\n\n constructor(private tokenService: TokenService) {}\n\n ngOnInit(): void {\n this.layoutConfig = PROMO_CARD_LAYOUTS[this.layout] ?? PROMO_CARD_LAYOUTS['default'];\n this.aspectRatio = this.tokenService.getTokenValue('--oasys-component-promo-card-image-aspect-ratio') as ImageAspectRatio;\n this.alignment = this.tokenService.getTokenValue('--oasys-component-promo-card-heading-alignment') as LayoutAlignment;\n }\n\n ctaClicked(): void {\n this.cta_clicked.emit();\n }\n}\n","<ui-box box_space=\"none\" [ngStyle]=\"{'background-color': background_colour, 'color': font_colour}\">\n <ui-stack [stack_gap]=\"layoutConfig.spacing\" stack_align=\"center\">\n <ui-box box_space=\"none\">\n <ui-image [image_fill]=\"true\" [image_src]=\"image\" [image_alt_text]=\"alt_text\" [preload_aspect_ratio]=\"aspectRatio\"></ui-image>\n </ui-box>\n <ui-box [box_align_y]=\"alignment\" box_space_top=\"none\" [box_space]=\"layoutConfig.spacing\" [ngStyle]=\"{'background-color': background_colour}\">\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <h3 [ngClass]=\"{\n 'text-heading--body--expressive': layoutConfig.headingType === 'body-expressive',\n 'text-heading--secondary': layoutConfig.headingType === 'secondary'\n }\" role=\"heading\" class=\"seo-h2\">\n <span class=\"heading-title text-heading\">{{title}}</span>\n </h3>\n <p [ngClass]=\"{\n 'text-body--default': layoutConfig.bodyType === 'body-default',\n 'text-body--supporting': layoutConfig.bodyType === 'body-supporting'\n }\">{{subtitle}}</p>\n <a class=\"text-link text-link--standalone\" bwtrackas=\"component.modular-content-card.cta\" href=\"{{ href_primary_cta }}\" (click)=\"ctaClicked()\">{{primary_cta_text}}</a>\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n\n","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 { OasysDirectivesModule } from '../../directives/directives.module';\nimport { PromoCardComponent } from './promo-card.component';\nimport { OasysHeadingModule } from '../heading';\nimport { OasysButtonModule } from '../button';\nimport { OasysButtonGroupModule } from '../button-group';\n\n@NgModule({\n declarations: [PromoCardComponent],\n imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule],\n exports: [PromoCardComponent],\n providers: [TokenService],\n})\nexport class OasysPromoCardModule {}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { TokenService } from '../../services/token.service';\n\nexport type ISelectCardType = 'product-card' | 'gift-card';\n\n\n@Component({\n selector: 'ui-select-card',\n templateUrl: './select-card.component.html',\n styleUrls: ['./select-card.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class SelectCardComponent implements OnInit {\n // Image\n @Input() image?: string;\n @Input() alt_text: string;\n @Input() image_format: string;\n\n // Content\n @Input() title: string;\n @Input() primary_copy: string;\n @Input() secondary_copy: string;\n @Input() price: string;\n @Input() price_before_discount: string;\n @Input() selected: boolean = false;\n @Input() select_card_type: ISelectCardType = 'gift-card';\n\n @Output() clicked: EventEmitter<void> = new EventEmitter();\n\n aspectRatio: string;\n alignment: string;\n\n constructor(private tokenService: TokenService) { }\n\n ngOnInit(): void {\n if(!this.image){\n return;\n }\n\n this.aspectRatio = this.setImageAspectRatio(this.image_format);\n }\n\n onClick(): void {\n this.clicked.emit();\n }\n\n\n /**\n * \n * @param format \n * @returns \n */\n setImageAspectRatio(format: string): string {\n switch(format) {\n case 'square':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-square');\n case 'portrait':\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');\n default:\n return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');\n }\n }\n\n}\n","<button role=\"button\" class=\"ui-select-card--{{select_card_type}}\" tabindex=\"0\" [ngClass]=\"{'selected': selected}\" [attr.aria-pressed]=\"selected ? 'true' : 'false'\" (click)=\"onClick()\">\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <ui-stack stack_gap=\"none\" stack_align=\"center\">\n <ui-box class=\"ui-select-card__image\" [ngStyle]=\"{'aspect-ratio': aspectRatio}\" box_background=\"transparent\"\n box_align_x=\"center\" box_space=\"none\">\n <ui-image *ngIf=\"image\" [image_src]=\"image\" [image_alt_text]=\"alt_text\" [image_fill]=\"true\"></ui-image>\n <ng-content></ng-content>\n </ui-box>\n <ng-template *ngIf=\"select_card_type === 'gift-card'\" [ngTemplateOutlet]=\"giftcard\"></ng-template>\n <ng-template *ngIf=\"select_card_type === 'product-card'\" [ngTemplateOutlet]=\"productcard\"></ng-template>\n </ui-stack>\n </ui-box>\n</button>\n\n\n<!--- GIFT CARD TEMPLATE -->\n<ng-template #giftcard>\n <ui-box box_space=\"tight\" box_background=\"transparent\">\n <ui-stack class=\"ui-select-card__text-stack\" stack_direction=\"y\" stack_gap=\"tight\">\n <span class=\"ui-select-card__text-body text-label--primary\">{{title}}</span>\n\n <ui-price [price]=\"price\" [price_before_discount]=\"price_before_discount\"\n price_type=\"primary\"></ui-price>\n </ui-stack>\n </ui-box>\n</ng-template>\n\n<!--- PRODUCT CARD TEMPLATE -->\n<ng-template #productcard>\n <ui-box box_fill_mode=\"fit\" box_space=\"near\" box_background=\"transparent\">\n <ui-stack stack_direction=\"y\" stack_gap=\"near\">\n <ui-stack class=\"ui-select-card__text-stack\" stack_direction=\"y\" stack_gap=\"none\">\n <h5>{{title}}</h5>\n <ui-stack stack_direction=\"x\" stack_gap=\"near\" stack_align=\"center\">\n <ui-price [price]=\"price\" [price_before_discount]=\"price_before_discount\"\n price_type=\"hero\"></ui-price>\n <ui-icon *ngIf=\"price_before_discount\" class=\"ui-select-card--product-card__discount-icon\" icon_name=\"tag\" icon_size_override=\"1.5\"></ui-icon>\n </ui-stack>\n\n </ui-stack>\n <ui-stack stack_gap=\"near\">\n <p class=\"text-body--supporting\">{{secondary_copy}}</p>\n <p class=\"text-body--default\">{{primary_copy}}</p>\n </ui-stack>\n </ui-stack>\n </ui-box>\n</ng-template>","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 { OasysDirectivesModule } from '../../directives/directives.module';\nimport { SelectCardComponent } from './select-card.component';\nimport { OasysHeadingModule } from '../heading';\nimport { OasysButtonModule } from '../button';\nimport { OasysButtonGroupModule } from '../button-group';\nimport { OasysPriceModule } from '../price';\nimport { OasysIconModule } from '../icon';\n\n@NgModule({\n declarations: [SelectCardComponent],\n imports: [CommonModule, OasysLayoutModule, RouterModule, OasysImageModule, OasysDirectivesModule, OasysHeadingModule, OasysButtonModule, OasysButtonGroupModule, OasysPriceModule, OasysIconModule],\n exports: [SelectCardComponent],\n providers: [TokenService],\n})\nexport class OasysSelectCardModule {}\n","import { Directive, ElementRef, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n selector: '[ui-emphasis]',\n standalone: true\n})\nexport class EmphasisDirective implements OnChanges {\n @Input() searchText: string = '';\n @Input() displayParagraph: string = '';\n\n constructor(private element: ElementRef) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['searchText'] || changes['displayParagraph']) {\n this.boldsearchText();\n }\n }\n\n private boldsearchText() {\n if (!this.searchText || !this.displayParagraph) {\n this.element.nativeElement.innerHTML = this.displayParagraph;\n return;\n }\n\n const regex = new RegExp(`${this.searchText}`, 'gi');\n const emphasisText = this.displayParagraph.replace(regex, match => `<span class=\"text-body--emphasis\">${match}</span>`);\n this.element.nativeElement.innerHTML = emphasisText;\n\n }\n\n}","import { DOCUMENT } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n forwardRef,\n ElementRef,\n Inject,\n AfterViewInit,\n ViewChild,\n QueryList,\n ViewChildren,\n OnChanges,\n SimpleChanges,\n HostListener,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ComboboxOption, ComboboxType } from './combobox';\n\n@Component({\n selector: 'ui-combobox',\n templateUrl: './combobox.component.html',\n styleUrls: ['./combobox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComboboxComponent),\n multi: true,\n },\n ],\n})\nexport class ComboboxComponent\n implements ControlValueAccessor, OnInit, AfterViewInit, OnChanges\n{\n @Input() label!: string;\n @Input() type: ComboboxType = 'options';\n @Input() options: ComboboxOption[] = [];\n @Input() optional: boolean = true;\n\n @Input({ required: false }) hint?: string;\n @Input({ required: false }) header?: string;\n @Input({ required: false }) footer?: string;\n @Input({ required: false }) autofocus?: boolean = false;\n @Input({ required: false }) disabled?: boolean = false;\n @Input({ required: false }) selected?: ComboboxOption | unknown;\n // Key value from options to be displayed as option label\n @Input({ required: false }) displayKey?: string;\n // Key value from options to be used as icon in option label\n @Input({ required: false }) iconNameKey?: string;\n // Key value from options be be value\n @Input({ required: false }) valueKey?: string;\n // Available for Autocomplete\n @Input({ required: false }) subtextKey?: string;\n @Input({ required: false }) placeholder?: string;\n // Will open the list of options on init\n @Input({ required: false }) showOptions = false;\n\n @Output() didChange: EventEmitter<unknown> = new EventEmitter();\n @Output() didSearch: EventEmitter<unknown> = new EventEmitter();\n @Output() didEdit: EventEmitter<unknown> = new EventEmitter();\n\n textValue: string = '';\n inputDidChange: boolean = false; // only show valdiation after a change event (ie. blur)\n displayOptions: ComboboxOption[] = [];\n private _panelOpen: boolean = false;\n private _selectedOption: ComboboxOption | unknown;\n private _focusedOption: ComboboxOption | unknown;\n private _focusedOptionId: number;\n\n id: string;\n\n /** Whether or not the overlay panel is open. */\n get panelOpen(): boolean {\n return this._panelOpen;\n }\n\n /**\n * Selected option\n */\n get selectedOption(): ComboboxOption | unknown {\n return this._selectedOption || null;\n }\n\n /**\n * Focused Option\n */\n get focusedOption(): ComboboxOption | unknown {\n return this._focusedOption || null;\n }\n\n /**\n * Return the id of the focused option\n */\n get focusedId(): number {\n return this._focusedOptionId;\n }\n\n get valueOptionKey(): string {\n return this.valueKey ? this.valueKey : 'value';\n }\n\n get displayOptionKey(): string {\n return this.displayKey ? this.displayKey : 'label';\n }\n\n get subtextOptionKey(): string {\n return this.subtextKey ? this.subtextKey : 'subtext';\n }\n\n @ViewChild('textinput', { read: ElementRef })\n textInput: ElementRef<HTMLElement>;\n\n @ViewChild('combobox', { read: ElementRef })\n combobox: ElementRef<HTMLElement>;\n\n @ViewChildren('option') optionsList: QueryList<ElementRef<HTMLElement>>;\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n @HostListener('document:click', ['$event.target'])\n\n /**\n * Click outside combobox close the panel\n */\n public onClick(targetElement: Node): void {\n if (this.panelOpen) {\n const clickedInside = this.combobox.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.closePanel();\n }\n }\n }\n\n /**\n * On Change\n * @param changes\n */\n ngOnChanges(changes: SimpleChanges): void {\n // Detects if the autocomplete options list is chnaged after a selection of an option.\n // Example: Address search can have options assigned to a group of options. One postcode to have x number of addreses\n // If Options list is Changed as part of group option we let the options panel open to let user select a single option. This is considered as change input value(similar with type value)\n if (this.type === 'autocomplete' && changes['options']) {\n const optionchanges = changes['options'];\n if (!this.options) {\n this.closePanel();\n }\n if (\n optionchanges['currentValue'] !== optionchanges['previousValue'] &&\n this.options?.length !== 0 &&\n !optionchanges['firstChange']\n ) {\n this.resetOptionsList();\n this.openPanel();\n }\n }\n }\n\n /**\n * On Init\n */\n ngOnInit(): void {\n this.id = this.label + Math.random();\n this.resetSelection();\n this.resetOptionsList();\n\n if (this.selected) {\n const selectedIndex = this.options.findIndex(\n (option: ComboboxOption | unknown) =>\n option[this.valueOptionKey] === this.selected[this.valueOptionKey],\n );\n this.selectOption(this.options[selectedIndex], selectedIndex);\n }\n if (this.showOptions) {\n this.openPanel();\n }\n }\n\n /**\n * After View Init\n */\n ngAfterViewInit(): void {\n this.setupValidationListener();\n }\n\n /**\n * Select Option\n * @param option\n */\n public selectOption(option: ComboboxOption | unknown, index?: number) {\n this._selectedOption = option;\n this._focusedOptionId = index;\n this._focusedOption = option;\n this.textValue = this._selectedOption[this.displayOptionKey];\n\n this.onChange(this.textValue);\n this.didChange.emit(this.selectedOption);\n this.onTouched();\n this.closePanel();\n }\n\n /**\n * On Key Navigation\n * @param event\n */\n public onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'Enter':\n this.pressEnter();\n break;\n case 'Tab':\n if (this.panelOpen) {\n this.closePanel();\n }\n break;\n case 'Escape':\n if (this.panelOpen) {\n this.closePanel();\n }\n break;\n }\n\n // Logic for open panel\n if (this.panelOpen) {\n this.pressArrows(event);\n this.optionsList.get(this._focusedOptionId)?.nativeElement.focus();\n }\n }\n\n /**\n * Toggle Options Panel\n */\n togglePanel(): void {\n this._panelOpen = this.panelOpen ? false : true;\n this.initSelectedFocus();\n }\n\n /**\n * Clase Options Panel\n */\n openPanel(event?: Event): void {\n event?.preventDefault();\n if (!this._panelOpen) {\n this._panelOpen = true;\n this.initSelectedFocus();\n }\n }\n\n /**\n * Close Options Panel\n */\n closePanel(): void {\n if (this._panelOpen) {\n this._panelOpen = false;\n }\n }\n\n /**\n * Get Input display value\n * @param textValue\n */\n writeValue(textValue: string): void {\n if ((this.selected && typeof textValue !== 'string') || textValue === '') {\n this.textValue = this._selectedOption[this.displayOptionKey];\n } else {\n this.textValue = textValue;\n }\n }\n\n /**\n * Register Form input chnage\n * @param fn\n */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /**\n * Register form input touch\n * @param fn\n */\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n /**\n * On Model Change\n * @param textValue\n */\n onModelChange(textValue: string) {\n this.textValue = textValue;\n this.inputDidChange = true;\n this.onChange(textValue);\n this.onTouched();\n this.didChange.emit(this.selectedOption);\n }\n\n /**\n * On Model Change\n * @param textValue\n */\n onModelChangeAutocomplete(textValue: string) {\n this.textValue = textValue;\n this.inputDidChange = true;\n this.onChange(textValue);\n this.onTouched();\n this.didChange.emit(this.selectedOption);\n\n this.onAutocompleteListSearch(textValue);\n }\n\n /**\n * Event handling for Input value\n */\n handleEvent(): void {\n this.inputDidChange = true;\n\n const inputElement = this.document.getElementById(this.id.toString());\n inputElement?.removeEventListener('change', this);\n }\n\n /**\n * Clean Input\n */\n cleanInput(): void {\n this.textValue = '';\n this.resetSelection();\n this.resetOptionsList();\n this.closePanel();\n this.didSearch.emit(this.textValue);\n }\n\n /**\n * On footer action\n */\n onFooterAction(): void {\n this.didEdit.emit();\n }\n\n /**\n * On Focus Input\n */\n onFocusInput(): void {\n this.textInput.nativeElement.focus();\n }\n\n /**\n * Search in Autocomplete\n * @param textValue\n */\n private onAutocompleteListSearch(textValue: string) {\n if (!textValue) {\n this.closePanel();\n this.resetSelection();\n } else {\n this.openPanel();\n this.displayOptions = this.options.filter(\n (option: ComboboxOption<unknown>) => {\n return (\n this.checkIncludesSubstring(option, this.displayOptionKey) ||\n this.checkIncludesSubstring(option, this.subtextOptionKey)\n );\n },\n );\n if (this.displayOptions.length === 0) {\n this.closePanel();\n }\n }\n this.textInput.nativeElement.focus();\n this.didSearch.emit(this.textValue);\n }\n\n /**\n * Check a susbcring is included in option value\n * @param option\n * @returns\n */\n private checkIncludesSubstring(\n option: ComboboxOption<unknown>,\n key: string,\n ): unknown {\n return option[key]\n ?.toString()\n .toLowerCase()\n .includes(this.textValue.toLowerCase());\n }\n\n /**\n * Set Input Validators\n */\n private setupValidationListener(): void {\n const inputElement = this.document.getElementById(this.id.toString());\n inputElement?.addEventListener('change', this);\n }\n\n /**\n * Init focus mode or set the selected option as focused\n */\n private initSelectedFocus(): void {\n if (this._panelOpen) {\n if (this._selectedOption) {\n this._focusedOption = this._selectedOption;\n } else {\n this._focusedOptionId = 0;\n this._focusedOption = this.options[this._focusedOptionId];\n }\n }\n }\n\n /**\n * Arrows Up/Down navigation inside Options Panel\n */\n private pressArrows(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n this._focusedOptionId = Math.min(\n this._focusedOptionId + 1,\n this.displayOptions.length - 1,\n );\n this._focusedOption = this.displayOptions[this._focusedOptionId];\n this.autocompleteOptionTextPreview();\n break;\n case 'ArrowUp':\n this._focusedOptionId = Math.max(this._focusedOptionId - 1, 0);\n this._focusedOption = this.displayOptions[this._focusedOptionId];\n\n this.autocompleteOptionTextPreview();\n break;\n }\n }\n\n /**\n * Change textValue to preview the option in autocomplete\n */\n private autocompleteOptionTextPreview() {\n if (this.type === 'autocomplete') {\n this.textValue = this._focusedOption[this.displayOptionKey];\n }\n }\n\n /**\n * Press Enter inside Options Panel\n */\n private pressEnter(): void {\n if (\n this.panelOpen &&\n this._focusedOptionId < this.options.length &&\n this._focusedOptionId >= 0\n ) {\n this.selectOption(this._focusedOption, this._focusedOptionId);\n }\n }\n\n /**\n * Reset selected option\n */\n private resetSelection(): void {\n this._selectedOption = null;\n this._focusedOption = null;\n this._focusedOptionId = 0;\n }\n\n /**\n * Reset to original or unfiltered option list\n */\n private resetOptionsList(): void {\n this.displayOptions = this.options;\n }\n}\n","<ui-stack class=\"ui-combobox-container\" stack_gap=\"tight\">\n <div class=\"ui-combobox text-body--default text-body--regular\">\n <!-- Compbobox Options Input -->\n <div\n *ngIf=\"type === 'options'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (mousedown)=\"togglePanel()\"\n (focus)=\"openPanel($event)\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"onModelChange(textValue)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'on'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"selectedOption\"\n [placeholder]=\"placeholder || ''\"\n readonly=\"readonly\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n <!-- Select Icon Chevron Area -->\n <div class=\"icon-container\" [ngClass]=\"{ expand: panelOpen }\">\n <ui-icon icon_name=\"chevron-down\"></ui-icon>\n <!-- <ui-icon *ngIf=\"panelOpen\" icon_name=\"chevron-up\"></ui-icon> -->\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Autocomplete Input -->\n <div\n *ngIf=\"type === 'autocomplete'\"\n #combobox\n name=\"combobox\"\n tabindex=\"0\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"onFocusInput()\"\n role=\"combobox\"\n id=\"activedescendent-edit\"\n [attr.aria-label]=\"label\"\n [attr.aria-activedescendant]=\"'activedescendent-opt-' + focusedId\"\n aria-readonly=\"true\"\n aria-owns=\"activedescendent-list\"\n aria-autocomplete=\"list\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <!-- Select Label Area -->\n <div class=\"label-container\" stack_direction=\"x\">\n <label\n class=\"text-body--supporting text-body--regular\"\n role=\"combobox-label\"\n [for]=\"id\"\n >{{ label }}</label\n >\n </div>\n <input\n #textinput\n [id]=\"id\"\n [name]=\"id\"\n [ngModel]=\"textValue\"\n (ngModelChange)=\"onModelChangeAutocomplete($event)\"\n [ngClass]=\"\n inputDidChange ? 'ng-input-did-change' : 'ng-input-did-not-change'\n \"\n [attr.autocorrect]=\"'on'\"\n [attr.disabled]=\"disabled || null\"\n [autofocus]=\"autofocus\"\n [autocomplete]=\"'list'\"\n [required]=\"!optional\"\n [spellcheck]=\"'on'\"\n [type]=\"'text'\"\n [value]=\"textValue\"\n [placeholder]=\"placeholder || ''\"\n role=\"combobox\"\n class=\"text-body--default text-body--regular\"\n />\n </ui-box>\n\n <!-- Combobox Icon Clear Area -->\n <div\n class=\"icon-container\"\n [aria-label]=\"'clean'\"\n (click)=\"cleanInput()\"\n >\n <ui-icon *ngIf=\"textValue\" icon_name=\"close\"></ui-icon>\n </div>\n </ui-stack>\n </div>\n\n <!-- Combobox Options Panel -->\n <div\n *ngIf=\"panelOpen\"\n class=\"ui-combobox-options\"\n [ngClass]=\"{ expand: panelOpen }\"\n [attr.aria-expanded]=\"panelOpen\"\n role=\"listbox\"\n id=\"activedescendent-list\"\n >\n <!-- Autocomplete Options Panel Header -->\n <div\n *ngIf=\"header && type === 'autocomplete'\"\n class=\"ui-combobox-header text-body--supporting\"\n >\n <span>{{ header }}</span>\n </div>\n\n <!-- Options list -->\n <div\n #option\n *ngFor=\"let option of displayOptions; index as i\"\n class=\"ui-combobox-option\"\n [ngClass]=\"{\n selected: selectedOption === option,\n focus: focusedOption === option\n }\"\n (click)=\"selectOption(option, i)\"\n (keydown)=\"onKeyDown($event)\"\n [id]=\"'activedescendent-opt-' + i\"\n [attr.aria-label]=\"\n selectedOption === option\n ? option[displayOptionKey] + ' is selected'\n : option[displayOptionKey]\n \"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_distribute=\"space-between\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <!-- Option display -->\n <div\n [value]=\"valueKey ? option[valueKey] : option.value\"\n [ngValue]=\"displayKey ? option[displayKey] : option.label\"\n >\n <ui-stack\n stack_direction=\"x\"\n stack_align=\"center\"\n stack_gap=\"tight\"\n >\n <ui-icon\n *ngIf=\"option.icon_name || (iconNameKey && option[iconNameKey])\"\n [icon_name]=\"\n iconNameKey ? option[iconNameKey] : option.icon_name\n \"\n ></ui-icon>\n\n <!-- Display options label -->\n <span *ngIf=\"type === 'options'\">{{\n option[displayOptionKey]\n }}</span>\n\n <!-- Display autocomplete option information and emphasis-->\n <ui-stack stack_gap=\"tiny\" *ngIf=\"type === 'autocomplete'\">\n <span\n ui-emphasis\n [searchText]=\"textValue\"\n [displayParagraph]=\"option[displayOptionKey]\"\n >\n </span>\n <p\n class=\"foreground-secondary-text\"\n *ngIf=\"type === 'autocomplete'\"\n >\n {{ option[subtextOptionKey] }}\n </p>\n </ui-stack>\n </ui-stack>\n </div>\n\n <!-- Selected icon -->\n <ui-icon *ngIf=\"selectedOption === option\" icon_name=\"tick\"></ui-icon>\n </ui-stack>\n </div>\n\n <!-- Autocomplete Options Panel Footer -->\n <div *ngIf=\"footer && type === 'autocomplete'\" class=\"ui-combobox-footer\">\n <ui-button button_type=\"tertiary\" (click)=\"onFooterAction()\">\n {{ footer }}\n </ui-button>\n </div>\n </div>\n </div>\n <ui-stack stack_gap=\"none\">\n <div class=\"input-errors\">\n <div class=\"input-errors-content\">\n <ng-content select=\"ui-form-errors\"></ng-content>\n </div>\n </div>\n <ui-box\n class=\"hint-container\"\n *ngIf=\"hint\"\n box_background=\"transparent\"\n box_space=\"none\"\n box_space_left=\"near\"\n box_space_right=\"near\"\n box_space_bottom=\"near\"\n >\n <div\n class=\"ui-text-input-hint text-body--supporting text-color--supporting\"\n >\n {{ hint }}\n </div>\n </ui-box>\n </ui-stack>\n</ui-stack>\n","import { CommonModule } from '@angular/common';\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { TokenService } from '../../../services/token.service';\nimport { OasysLayoutModule } from '../../layout/layout.module';\nimport { ComboboxComponent } from './combobox.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OasysIconModule } from '../../icon';\nimport { OasysDirectivesModule } from '../../../directives/directives.module';\nimport { OasysFormErrorsModule } from '../errors';\nimport { OasysTextInputModule } from '../text-input';\nimport { EmphasisDirective } from '../../../directives/emphasis/emphasis.directive';\n\n@NgModule({\n declarations: [ComboboxComponent],\n imports: [\n CommonModule,\n OasysLayoutModule,\n ReactiveFormsModule,\n FormsModule,\n OasysIconModule,\n OasysDirectivesModule,\n OasysTextInputModule,\n OasysFormErrorsModule,\n EmphasisDirective,\n ],\n exports: [ComboboxComponent],\n providers: [TokenService],\n schemas: [NO_ERRORS_SCHEMA],\n})\n/**\n * @ngModule OasysComboboxModule\n * @description\n *\n * A combo box is a text box with a list box attached.\n * This type of control enables users to select a predefined value in a list or type their own value in the text box portion of the control.\n *\n * @usageNotes\n *\n * @example of a Combobox Options type\n * <ui-combobox\n * formControlName=\"select\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\"\n * ></ui-combobox>\n *\n * Pug:\n * ui-combobox(\n * formControlName=\"select\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\")\n *\n *\n * @example of a Combobox Autocomplete type\n * <ui-combobox\n * formControlName=\"select\"\n * type=\"autocomplete\"\n * footer=\"Add manual an option\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\"\n * ></ui-combobox>\n *\n * Pug:\n * ui-combobox(\n * formControlName=\"select\"\n * type=\"autocomplete\"\n * footer=\"Add manual an option\"\n * label=\"Label\"\n * [options]=\"[\n * {value:'option 1', label: '1 week'},\n * {value:'option 2', label: '2 weeks' },\n * {value:'option 3', label: '3 weeks'},\n * {value:'option 4', label: '4 weeks'} ]\"\n * hint=\"Hint!! Please select frequency\"\n * [selected]=\"{value:'option 3', label: '3 weeks' }\")\n *\n * @OasysLib\n */\nexport class OasysComboboxModule {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { LayoutBackgrounds } from '../layout/Layout';\nimport { IconNames } from '../icon/icon';\n\ninterface LabelType {\n type: 'free-delivery' | 'featured' | 'limited-edition' | 'rewards-bonus-points' | '';\n}\n\ntype TextStyle = 'bodySupporting' | 'bodyMicro' | '';\n\n@Component({\n selector: 'ui-label',\n templateUrl: './label.component.html',\n styleUrls: ['./label.component.scss']\n})\nexport class LabelComponent implements OnInit {\n @Input() type: LabelType['type'] = '';\n @Input() text: string = '';\n @Input() textStyle: TextStyle = '';\n @Input() showIcon = true;\n @Input() iconOverride: IconNames;\n @Input() backgroundColorOverride: LayoutBackgrounds;\n\n backgroundColour: LayoutBackgrounds = 'tint-highlight';\n iconName: IconNames;\n labelStyle: LayoutBackgrounds;\n\n private readonly textStyleToFontSizeMap: Record<TextStyle, string> = {\n bodySupporting: 'text-body--supporting',\n bodyMicro: 'text-body--micro',\n '': 'text-body--supporting'\n };\n\n get fontSize(): string {\n return (\n this.textStyleToFontSizeMap[this.textStyle as TextStyle] || 'text-body--supporting'\n );\n }\n\n ngOnInit(): void {\n if (this.showIcon && this.iconOverride) {\n this.iconName = this.iconOverride;\n }\n\n switch (this.type) {\n case 'free-delivery':\n this.setLabelProperties('delivery');\n break;\n case 'featured':\n this.setLabelProperties('featured');\n break;\n case 'limited-edition':\n this.setLabelProperties('logomark');\n break;\n case 'rewards-bonus-points':\n this.setLabelProperties('rewards');\n break;\n default:\n this.backgroundColour = 'tint-highlight';\n }\n }\n\n private setLabelProperties(defaultIconName: string): void {\n this.labelStyle =\n this.backgroundColorOverride || (this.type as LayoutBackgrounds);\n this.iconName = this.iconName || (defaultIconName as IconNames);\n }\n}\n","<ui-box class=\"ui-label oasys-label-style-{{labelStyle}}\" box_space=\"tiny\" box_space_left=\"tight\" box_space_right=\"tight\" box_fill_mode=\"fit\" [box_background]=\"backgroundColour\">\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_gap=\"tiny\">\n <ui-icon *ngIf=\"showIcon\" [icon_name]=\"iconName\" icon_size=\"small\"></ui-icon>\n <span [class]=\"fontSize\">{{text}}</span>\n </ui-stack>\n</ui-box>","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OasysIconModule } from '../icon/icon.module';\nimport { OasysLayoutModule } from '../layout/layout.module';\nimport { LabelComponent } from './label.component';\nimport { OasysDirectivesModule } from '../../directives/directives.module';\n\n@NgModule({\n declarations: [LabelComponent],\n imports: [\n CommonModule,\n OasysIconModule,\n OasysLayoutModule,\n OasysDirectivesModule,\n ],\n exports: [LabelComponent],\n})\nexport class OasysLabelModule {}\n","import {\n AfterContentInit,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'ui-tab',\n template: '<ng-template #tabContent><ng-content></ng-content></ng-template>'\n})\nexport class OasysTabComponent implements AfterContentInit {\n @Input() tab_label = undefined;\n @Input() tab_active: boolean = false;\n @Output() clicked = new EventEmitter<void>();\n\n @ViewChild('tabContent', { static: true }) template!: TemplateRef<void>;\n\n ngAfterContentInit(): void {\n if (!this.template) {\n throw new Error(this.tab_label + ': <ui-tab> can`t be empty');\n }\n }\n}\n","import { Component, input, Input, TemplateRef } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'ui-tab-active',\n template:\n '<div role=\"tabpanel\"> <ng-template [ngTemplateOutlet]=\"templateRef()\"></ng-template></div>'\n})\nexport class OasysTabActiveComponent {\n templateRef = input<TemplateRef<void>>();\n}\n","import {\n Component,\n Input,\n QueryList,\n Output,\n EventEmitter,\n input\n} from '@angular/core';\nimport { NgClass, NgFor } from '@angular/common';\n\nimport { OasysLayoutModule } from '../../../layout';\nimport { OasysTabComponent } from '../tab/tab.component';\n\n@Component({\n standalone: true,\n imports: [OasysLayoutModule, NgClass, NgFor],\n selector: 'ui-tab-header',\n templateUrl: './tab-header.component.html',\n styleUrl: './tab-header.component.scss'\n})\nexport class OasysTabHeaderComponent {\n @Input() tab_size: 'small' | 'large' = 'small';\n @Input() tabs: QueryList<OasysTabComponent>;\n @Output() tab_clicked = new EventEmitter<OasysTabComponent>();\n tab_active = input<OasysTabComponent>();\n\n activeComponent: OasysTabComponent;\n length: 0;\n domEles;\n /**\n * Get class for the active indicator based os size\n * @returns\n */\n getIndicatorClass(): string {\n return this.tab_size === 'small'\n ? 'ui-tab-header_item-indicator'\n : 'ui-tab-header_item-indicator large';\n }\n\n /**\n * Set active tab\n * @param item\n */\n activateTab(item: OasysTabComponent): void {\n this.tab_clicked.emit(item);\n }\n\n /**\n * Handles keyboard events on the header.\n * @param event\n * @param index\n * @returns\n */\n handleKeydown(event: KeyboardEvent, index: number): void {\n const items = Array.from(\n document.querySelectorAll('.ui-tab-header_item-label')\n ) as HTMLElement[];\n\n if (!items.length) return;\n\n let newIndex = index;\n\n switch (event.code) {\n case 'Enter':\n this.activateTab(this.tabs.get(index));\n break;\n\n case 'ArrowRight': {\n newIndex = (index + 1) % items.length;\n items[newIndex]?.focus();\n break;\n }\n case 'ArrowLeft': {\n newIndex = (index - 1 + items.length) % items.length;\n items[newIndex]?.focus();\n break;\n }\n }\n }\n}\n","<div role=\"tablist\" aria-orientation=\"horizontal\">\n <ui-stack\n class=\"ui-tab-header\"\n stack_direction=\"x\"\n [stack_wrap]=\"true\"\n stack_gap=\"none\"\n stack_distribute=\"fit\"\n >\n <div class=\"ui-tab-header_item\" *ngFor=\"let tab of tabs; index as i\">\n <div\n class=\"ui-tab-header_item-label\"\n tabindex=\"0\"\n (click)=\"activateTab(tab)\"\n (keydown)=\"handleKeydown($event, i)\"\n role=\"tab\"\n [attr.aria-selected]=\"tab === tab_active()\"\n [attr.aria-label]=\"tab.tab_label\"\n >\n <span\n class=\"text-body--default\"\n [ngClass]=\"{ 'text-body--emphasis': tab === tab_active() }\"\n >{{ tab.tab_label }}</span\n >\n </div>\n <div\n [class]=\"getIndicatorClass()\"\n [ngClass]=\"{ active: tab === tab_active() }\"\n ></div>\n </div>\n </ui-stack>\n</div>\n","import {\n Component,\n Input,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ContentChildren,\n QueryList,\n AfterContentInit\n} from '@angular/core';\n\nimport { OasysLayoutModule } from '../../../layout';\nimport { OasysTabComponent } from '../tab/tab.component';\nimport { NgIf } from '@angular/common';\nimport { OasysTabActiveComponent } from '../tab-active/tab-active.component';\nimport { OasysTabHeaderComponent } from '../tab-header/tab-header.component';\n\n@Component({\n standalone: true,\n imports: [\n OasysLayoutModule,\n OasysTabActiveComponent,\n OasysTabHeaderComponent,\n NgIf\n ],\n selector: 'ui-tab-group',\n templateUrl: './tab-group.component.html',\n encapsulation: ViewEncapsulation.None, // to hide non ui-buttons via css\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OasysTabGroupComponent implements AfterContentInit {\n @Input() tab_size: 'small' | 'large' = 'small';\n\n @ContentChildren(OasysTabComponent) tabs!: QueryList<OasysTabComponent>;\n activeComponent!: OasysTabComponent;\n\n getIndicatorClass(): string {\n return this.tab_size === 'small'\n ? 'nav-item_indicator line'\n : 'nav-item_indicator large line';\n }\n\n ngAfterContentInit(): void {\n if (this.tabs.length === 0) {\n throw new Error('<ui-tab-group> requires at least one <ui-tab>');\n }\n const selectedTab = this.tabs?.find((tab): boolean => !!tab.tab_active);\n this.activeComponent = selectedTab ?? this.tabs?.first;\n }\n\n activateTab(tab: OasysTabComponent): void {\n this.activeComponent = tab;\n this.activeComponent.clicked.emit();\n }\n}\n","<div class=\"ui-tab-group\">\n <ui-tab-header\n *ngIf=\"tabs || activeComponent\"\n [tab_size]=\"tab_size\"\n [tabs]=\"tabs\"\n [tab_active]=\"activeComponent\"\n (tab_clicked)=\"activateTab($event)\"\n ></ui-tab-header>\n\n <ui-tab-active [templateRef]=\"activeComponent?.template\"></ui-tab-active>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { OasysTabGroupComponent } from './tab-group.component';\nimport { OasysTabComponent } from '../tab/tab.component';\nimport { OasysTabActiveComponent } from '../tab-active/tab-active.component';\nimport { OasysTabHeaderComponent } from '../tab-header/tab-header.component';\n\n@NgModule({\n imports: [\n OasysTabGroupComponent,\n OasysTabComponent,\n OasysTabActiveComponent,\n OasysTabHeaderComponent\n ]\n})\nexport class OasysTabsModule {}\n/**\n * @ngModule OasysTabsModule\n * @description\n *\n * Tabs provide a structured way to organize and navigate through different areas of an application.\n *\n * @usageNotes\n *\n * @example\n * <ui-tab-group tab_size=${args['tab_size']} >\n * <!-- Tab -->\n * <ui-tab tab_label=\"${args['tab_label']}\">\n * <!-- Tab content -->\n * </ui-tab>\n *\n * <!-- Tab -->\n * <ui-tab tab_label=\"Tab 2\">\n * <!-- Tab content -->\n * </ui-tab>\n *\n * <!-- Tab -->\n * <ui-tab tab_label=\"Tab 3\" [tab_active]=${args['tab_active']}>\n * <!-- Tab content -->\n * </ui-tab>\n * </ui-tab-group>\n *\n * Pug:\n * ui-tab-group(tab_size=\"${args['tab_size']}\")\n * ui-tab(tab_label=\"${args['tab_label']}\")\n * <!-- Tab content body -->\n *\n * ui-tab(tab_label=\"Tab 2\" tab_active=\"${args['tab_active']}\")\n * <!-- Tab content body -->\n * @OasysLib\n */\n","/*\n * Public API Surface of oasys-lib\n */\nexport * from './lib/components/alert';\nexport * from './lib/components/navigation/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/form/form-group';\nexport * from './lib/components/form/checkbox';\nexport * from './lib/components/form/radio';\nexport * from './lib/components/form/text-input';\nexport * from './lib/components/form/chip';\nexport * from './lib/components/form/errors';\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/section';\nexport * from './lib/components/carousel';\nexport * from './lib/components/card';\nexport * from './lib/components/text';\nexport * from './lib/components/banner';\nexport * from './lib/components/price';\nexport * from './lib/components/pill';\nexport * from './lib/components/pill-group';\nexport * from './lib/injection-tokens/frontend-app-injection.tokens';\nexport * from './lib/components/promo-card';\nexport * from './lib/components/select-card';\nexport * from './lib/components/form/combobox';\nexport * from './lib/components/label';\nexport * from './lib/components/navigation/tabs/tab-group';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TokenService","i1","i2.IconComponent","i3.OasysHrefDirective","i1.BreakpointService","i3.LayoutBoxComponent","i4.LayoutStackComponent","i5.OasysButtonComponent","i6.IconComponent","i2.LayoutStackComponent","i2.OasysButtonComponent","i3.IconComponent","i4.LayoutBoxComponent","i5.LayoutStackComponent","i5.ImageComponent","i2.LayoutBoxComponent","i3","i4.IconComponent","i3.LayoutStackComponent","i5.IconComponent","i5.OasysHrefDirective","i6.OasysAutofocusDirective","i1.LayoutBoxComponent","i2","i3.RadioComponent","i4.CheckboxComponent","i3.OasysButtonComponent","i4.OasysHeadingComponent","i5.LayoutBoxComponent","i6.LayoutGridColumnComponent","i7.LayoutGridComponent","i8.LayoutStackComponent","i2.OasysHeadingComponent","i4.LayoutGridColumnComponent","i5.LayoutGridComponent","i6.LayoutStackComponent","i7.OasysHrefDirective","i3.OasysHeadingComponent","i4.ImageComponent","i9.OasysHrefDirective","i6.OasysHrefDirective","i6.OasysPriceComponent","i7.IconComponent","i7.EmphasisDirective","i1.LayoutStackComponent"],"mappings":"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"}
|