oasys-lib 2.6.0-rc.0 → 2.7.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/esm2022/lib/components/alert/alert-cancel.directive.mjs +22 -0
  2. package/esm2022/lib/components/alert/alert-confirm.directive.mjs +22 -0
  3. package/esm2022/lib/components/alert/alert-content.directive.mjs +14 -0
  4. package/esm2022/lib/components/alert/alert-title.directive.mjs +14 -0
  5. package/esm2022/lib/components/alert/alert.component.mjs +78 -0
  6. package/esm2022/lib/components/alert/alert.module.mjs +40 -0
  7. package/esm2022/lib/components/alert/index.mjs +7 -0
  8. package/esm2022/lib/components/banner/banner.component.mjs +62 -0
  9. package/esm2022/lib/components/banner/banner.module.mjs +16 -0
  10. package/esm2022/lib/components/banner/index.mjs +3 -0
  11. package/esm2022/lib/components/button/button.component.mjs +120 -0
  12. package/esm2022/lib/components/button/button.mjs +2 -0
  13. package/esm2022/lib/components/button/button.module.mjs +16 -0
  14. package/esm2022/lib/components/button/index.mjs +4 -0
  15. package/esm2022/lib/components/button-group/button-group.component.mjs +55 -0
  16. package/esm2022/lib/components/button-group/button-group.module.mjs +16 -0
  17. package/esm2022/lib/components/button-group/index.mjs +3 -0
  18. package/esm2022/lib/components/card/card.component.mjs +87 -0
  19. package/esm2022/lib/components/card/card.mjs +2 -0
  20. package/esm2022/lib/components/card/card.module.mjs +16 -0
  21. package/esm2022/lib/components/card/index.mjs +3 -0
  22. package/esm2022/lib/components/carousel/carousel.component.mjs +289 -0
  23. package/esm2022/lib/components/carousel/carousel.module.mjs +16 -0
  24. package/esm2022/lib/components/carousel/index.mjs +3 -0
  25. package/esm2022/lib/components/divider/divider.component.mjs +22 -0
  26. package/esm2022/lib/components/divider/divider.mjs +2 -0
  27. package/esm2022/lib/components/divider/divider.module.mjs +16 -0
  28. package/esm2022/lib/components/divider/index.mjs +3 -0
  29. package/esm2022/lib/components/form/checkbox/checkbox.component.mjs +81 -0
  30. package/esm2022/lib/components/form/checkbox/checkbox.module.mjs +16 -0
  31. package/esm2022/lib/components/form/checkbox/index.mjs +3 -0
  32. package/esm2022/lib/components/form/chip/chip.component.mjs +88 -0
  33. package/esm2022/lib/components/form/chip/chip.module.mjs +16 -0
  34. package/esm2022/lib/components/form/chip/index.mjs +3 -0
  35. package/esm2022/lib/components/form/combobox/combobox.component.mjs +478 -0
  36. package/esm2022/lib/components/form/combobox/combobox.mjs +2 -0
  37. package/esm2022/lib/components/form/combobox/combobox.module.mjs +82 -0
  38. package/esm2022/lib/components/form/combobox/index.mjs +3 -0
  39. package/esm2022/lib/components/form/errors/form-errors.component.mjs +26 -0
  40. package/esm2022/lib/components/form/errors/form-errors.module.mjs +16 -0
  41. package/esm2022/lib/components/form/errors/index.mjs +3 -0
  42. package/esm2022/lib/components/form/errors-summary/errors-summary-item/form-errors-summary-item.component.mjs +47 -0
  43. package/esm2022/lib/components/form/errors-summary/errors-summary-title/form-errors-summary-title.component.mjs +21 -0
  44. package/esm2022/lib/components/form/errors-summary/form-errors-summary.component.mjs +30 -0
  45. package/esm2022/lib/components/form/errors-summary/index.mjs +4 -0
  46. package/esm2022/lib/components/form/form-group/form-group.component.mjs +38 -0
  47. package/esm2022/lib/components/form/form-group/form-group.module.mjs +16 -0
  48. package/esm2022/lib/components/form/form-group/index.mjs +3 -0
  49. package/esm2022/lib/components/form/forms.mjs +2 -0
  50. package/esm2022/lib/components/form/radio/index.mjs +3 -0
  51. package/esm2022/lib/components/form/radio/radio.component.mjs +82 -0
  52. package/esm2022/lib/components/form/radio/radio.module.mjs +16 -0
  53. package/esm2022/lib/components/form/text-input/index.mjs +3 -0
  54. package/esm2022/lib/components/form/text-input/text-input.component.mjs +185 -0
  55. package/esm2022/lib/components/form/text-input/text-input.mjs +2 -0
  56. package/esm2022/lib/components/form/text-input/text-input.module.mjs +16 -0
  57. package/esm2022/lib/components/heading/heading.component.mjs +107 -0
  58. package/esm2022/lib/components/heading/heading.mjs +2 -0
  59. package/esm2022/lib/components/heading/heading.module.mjs +16 -0
  60. package/esm2022/lib/components/heading/index.mjs +3 -0
  61. package/esm2022/lib/components/hero/hero.component.mjs +109 -0
  62. package/esm2022/lib/components/hero/hero.module.mjs +16 -0
  63. package/esm2022/lib/components/hero/index.mjs +3 -0
  64. package/esm2022/lib/components/icon/icon.component.mjs +61 -0
  65. package/esm2022/lib/components/icon/icon.mjs +2 -0
  66. package/esm2022/lib/components/icon/icon.module.mjs +16 -0
  67. package/esm2022/lib/components/icon/index.mjs +4 -0
  68. package/esm2022/lib/components/image/image.component.mjs +154 -0
  69. package/esm2022/lib/components/image/image.mjs +2 -0
  70. package/esm2022/lib/components/image/image.module.mjs +16 -0
  71. package/esm2022/lib/components/image/index.mjs +3 -0
  72. package/esm2022/lib/components/label/index.mjs +3 -0
  73. package/esm2022/lib/components/label/label.component.mjs +69 -0
  74. package/esm2022/lib/components/label/label.module.mjs +16 -0
  75. package/esm2022/lib/components/layout/Layout.mjs +2 -0
  76. package/esm2022/lib/components/layout/box/box.component.mjs +183 -0
  77. package/esm2022/lib/components/layout/box/box.mjs +3 -0
  78. package/esm2022/lib/components/layout/container/container.component.mjs +44 -0
  79. package/esm2022/lib/components/layout/grid/grid-column.component.mjs +55 -0
  80. package/esm2022/lib/components/layout/grid/grid.component.mjs +53 -0
  81. package/esm2022/lib/components/layout/index.mjs +8 -0
  82. package/esm2022/lib/components/layout/layout.module.mjs +40 -0
  83. package/esm2022/lib/components/layout/stack/stack.component.mjs +64 -0
  84. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.component.mjs +37 -0
  85. package/esm2022/lib/components/navigation/breadcrumbs/breadcrumbs.module.mjs +16 -0
  86. package/esm2022/lib/components/navigation/breadcrumbs/index.mjs +3 -0
  87. package/esm2022/lib/components/navigation/tabs/tab/tab.component.mjs +33 -0
  88. package/esm2022/lib/components/navigation/tabs/tab-active/tab-active.component.mjs +19 -0
  89. package/esm2022/lib/components/navigation/tabs/tab-group/index.mjs +4 -0
  90. package/esm2022/lib/components/navigation/tabs/tab-group/tab-group.component.mjs +38 -0
  91. package/esm2022/lib/components/navigation/tabs/tab-group/tab-group.module.mjs +27 -0
  92. package/esm2022/lib/components/navigation/tabs/tab-header/tab-header.component.mjs +70 -0
  93. package/esm2022/lib/components/pill/index.mjs +3 -0
  94. package/esm2022/lib/components/pill/pill.component.mjs +21 -0
  95. package/esm2022/lib/components/pill/pill.mjs +2 -0
  96. package/esm2022/lib/components/pill/pill.module.mjs +16 -0
  97. package/esm2022/lib/components/pill-group/index.mjs +3 -0
  98. package/esm2022/lib/components/pill-group/pill-group.component.mjs +41 -0
  99. package/esm2022/lib/components/pill-group/pill-group.module.mjs +16 -0
  100. package/esm2022/lib/components/price/index.mjs +3 -0
  101. package/esm2022/lib/components/price/price.component.mjs +32 -0
  102. package/esm2022/lib/components/price/price.module.mjs +16 -0
  103. package/esm2022/lib/components/progress-bar/index.mjs +2 -0
  104. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +23 -0
  105. package/esm2022/lib/components/promo-card/index.mjs +3 -0
  106. package/esm2022/lib/components/promo-card/promo-card.component.mjs +87 -0
  107. package/esm2022/lib/components/promo-card/promo-card.module.mjs +16 -0
  108. package/esm2022/lib/components/section/index.mjs +3 -0
  109. package/esm2022/lib/components/section/section.component.mjs +119 -0
  110. package/esm2022/lib/components/section/section.module.mjs +16 -0
  111. package/esm2022/lib/components/select-card/index.mjs +3 -0
  112. package/esm2022/lib/components/select-card/select-card.component.mjs +94 -0
  113. package/esm2022/lib/components/select-card/select-card.module.mjs +16 -0
  114. package/esm2022/lib/components/seo-block/index.mjs +3 -0
  115. package/esm2022/lib/components/seo-block/seo-block.component.mjs +84 -0
  116. package/esm2022/lib/components/seo-block/seo-block.module.mjs +16 -0
  117. package/esm2022/lib/components/text/index.mjs +3 -0
  118. package/esm2022/lib/components/text/text.component.mjs +29 -0
  119. package/esm2022/lib/components/text/text.mjs +2 -0
  120. package/esm2022/lib/components/text/text.module.mjs +16 -0
  121. package/esm2022/lib/directives/autofocus/autofocus.directive.mjs +31 -0
  122. package/esm2022/lib/directives/emphasis/emphasis.directive.mjs +38 -0
  123. package/esm2022/lib/directives/href/href.directive.mjs +26 -0
  124. package/esm2022/lib/services/breakpoint.service.mjs +49 -0
  125. package/esm2022/lib/services/image.service.mjs +68 -0
  126. package/esm2022/lib/services/index.mjs +4 -0
  127. package/esm2022/lib/services/media-base-url.provider.mjs +3 -0
  128. package/esm2022/lib/services/routing-handler.provider.mjs +3 -0
  129. package/esm2022/lib/services/swiper.provider.mjs +13 -0
  130. package/esm2022/lib/services/token.service.mjs +71 -0
  131. package/esm2022/oasys-lib.mjs +5 -0
  132. package/esm2022/public-api.mjs +38 -0
  133. package/fesm2022/oasys-lib.mjs +307 -298
  134. package/fesm2022/oasys-lib.mjs.map +1 -1
  135. package/lib/components/form/form-group/form-group.component.d.ts +5 -1
  136. package/lib/components/form/form-group/form-group.component.d.ts.map +1 -1
  137. package/lib/components/form/radio/radio.component.d.ts +11 -13
  138. package/lib/components/form/radio/radio.component.d.ts.map +1 -1
  139. package/package.json +5 -3
  140. package/src/assets/bloomandwild/variables.css +1 -1
  141. package/src/assets/bloomon/variables.css +1 -1
  142. package/src/assets/global/scss-breakpoints.scss +1 -1
@@ -0,0 +1,32 @@
1
+ import { NgClass, NgIf } from '@angular/common';
2
+ import { Component, HostBinding, Input } from '@angular/core';
3
+ import { LayoutStackComponent } from '../layout/stack/stack.component';
4
+ import * as i0 from "@angular/core";
5
+ export class OasysPriceComponent {
6
+ get class() {
7
+ return `
8
+ ${this.price_type === 'hero' ? 'text-body--hero' : ''}
9
+ ${this.price_type === 'primary' ? 'text-body--default' : ''}
10
+ ${this.price_type === 'supporting' ? 'text-body--supporting' : ''}
11
+ `;
12
+ }
13
+ price;
14
+ price_before_discount;
15
+ price_type = 'primary';
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPriceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OasysPriceComponent, isStandalone: true, selector: "ui-price", inputs: { price: "price", price_before_discount: "price_before_discount", price_type: "price_type" }, host: { properties: { "class": "this.class" } }, ngImport: i0, template: "<div class=\"ui-price\" [ngClass]=\"price_type\">\n <ui-stack\n stack_direction=\"x\"\n stack_gap=\"near\"\n stack_align=\"center\"\n [ngClass]=\"{ 'oasys-price-has-discount': price_before_discount }\"\n >\n <div [attr.aria-hidden]=\"true\" *ngIf=\"price_before_discount\" class=\"text-body--line-through\">\n {{ price_before_discount }}\n </div>\n <div itemprop=\"price\" class=\"price-to-pay\">{{ price }}</div>\n </ui-stack>\n</div>\n", styles: [".ui-price.hero{font-weight:var(--oasys-component-price-weight-hero)}.ui-price.primary{font-weight:var(--oasys-component-price-weight-primary)}.ui-price.supporting{font-weight:var(--oasys-component-price-weight-supporting)}.ui-price .oasys-price-has-discount .price-to-pay{color:var(--oasys-component-price-color-price-after-discount)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPriceComponent, decorators: [{
20
+ type: Component,
21
+ args: [{ selector: 'ui-price', standalone: true, imports: [NgClass, LayoutStackComponent, NgIf], template: "<div class=\"ui-price\" [ngClass]=\"price_type\">\n <ui-stack\n stack_direction=\"x\"\n stack_gap=\"near\"\n stack_align=\"center\"\n [ngClass]=\"{ 'oasys-price-has-discount': price_before_discount }\"\n >\n <div [attr.aria-hidden]=\"true\" *ngIf=\"price_before_discount\" class=\"text-body--line-through\">\n {{ price_before_discount }}\n </div>\n <div itemprop=\"price\" class=\"price-to-pay\">{{ price }}</div>\n </ui-stack>\n</div>\n", styles: [".ui-price.hero{font-weight:var(--oasys-component-price-weight-hero)}.ui-price.primary{font-weight:var(--oasys-component-price-weight-primary)}.ui-price.supporting{font-weight:var(--oasys-component-price-weight-supporting)}.ui-price .oasys-price-has-discount .price-to-pay{color:var(--oasys-component-price-color-price-after-discount)}\n"] }]
22
+ }], propDecorators: { class: [{
23
+ type: HostBinding,
24
+ args: ['class']
25
+ }], price: [{
26
+ type: Input
27
+ }], price_before_discount: [{
28
+ type: Input
29
+ }], price_type: [{
30
+ type: Input
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcmljZS9wcmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3ByaWNlL3ByaWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQVN2RSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLElBQTBCLEtBQUs7UUFDN0IsT0FBTztRQUNILElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNuRCxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDekQsSUFBSSxDQUFDLFVBQVUsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQ2xFLENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFTO0lBQ2QscUJBQXFCLENBQVU7SUFFL0IsVUFBVSxHQUFzQyxTQUFTLENBQUM7d0dBWnhELG1CQUFtQjs0RkFBbkIsbUJBQW1CLDJOQ1hoQyxvZEFhQSwwWURKWSxPQUFPLG9GQUFFLG9CQUFvQix3S0FBRSxJQUFJOzs0RkFFbEMsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLFVBQVUsY0FHUixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDOzhCQUdwQixLQUFLO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBUVgsS0FBSztzQkFBYixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGF5b3V0U3RhY2tDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvc3RhY2svc3RhY2suY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktcHJpY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJpY2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcmljZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTGF5b3V0U3RhY2tDb21wb25lbnQsIE5nSWZdLFxufSlcbmV4cG9ydCBjbGFzcyBPYXN5c1ByaWNlQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGdldCBjbGFzcygpIHtcbiAgICByZXR1cm4gYFxuICAgICAgJHt0aGlzLnByaWNlX3R5cGUgPT09ICdoZXJvJyA/ICd0ZXh0LWJvZHktLWhlcm8nIDogJyd9XG4gICAgICAke3RoaXMucHJpY2VfdHlwZSA9PT0gJ3ByaW1hcnknID8gJ3RleHQtYm9keS0tZGVmYXVsdCcgOiAnJ31cbiAgICAgICR7dGhpcy5wcmljZV90eXBlID09PSAnc3VwcG9ydGluZycgPyAndGV4dC1ib2R5LS1zdXBwb3J0aW5nJyA6ICcnfVxuICAgIGA7XG4gIH1cblxuICBASW5wdXQoKSBwcmljZTogc3RyaW5nO1xuICBASW5wdXQoKSBwcmljZV9iZWZvcmVfZGlzY291bnQ/OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcHJpY2VfdHlwZTogJ2hlcm8nIHwgJ3ByaW1hcnknIHwgJ3N1cHBvcnRpbmcnID0gJ3ByaW1hcnknO1xufVxuIiwiPGRpdiBjbGFzcz1cInVpLXByaWNlXCIgW25nQ2xhc3NdPVwicHJpY2VfdHlwZVwiPlxuICA8dWktc3RhY2tcbiAgICBzdGFja19kaXJlY3Rpb249XCJ4XCJcbiAgICBzdGFja19nYXA9XCJuZWFyXCJcbiAgICBzdGFja19hbGlnbj1cImNlbnRlclwiXG4gICAgW25nQ2xhc3NdPVwieyAnb2FzeXMtcHJpY2UtaGFzLWRpc2NvdW50JzogcHJpY2VfYmVmb3JlX2Rpc2NvdW50IH1cIlxuICA+XG4gICAgPGRpdiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgKm5nSWY9XCJwcmljZV9iZWZvcmVfZGlzY291bnRcIiBjbGFzcz1cInRleHQtYm9keS0tbGluZS10aHJvdWdoXCI+XG4gICAgICB7eyBwcmljZV9iZWZvcmVfZGlzY291bnQgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGl0ZW1wcm9wPVwicHJpY2VcIiBjbGFzcz1cInByaWNlLXRvLXBheVwiPnt7IHByaWNlIH19PC9kaXY+XG4gIDwvdWktc3RhY2s+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { OasysPriceComponent } from './price.component';
3
+ import * as i0 from "@angular/core";
4
+ export class OasysPriceModule {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPriceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: OasysPriceModule, imports: [OasysPriceComponent], exports: [OasysPriceComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPriceModule });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPriceModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [OasysPriceComponent],
13
+ exports: [OasysPriceComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcmljZS9wcmljZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLGdCQUFnQjt3R0FBaEIsZ0JBQWdCO3lHQUFoQixnQkFBZ0IsWUFIakIsbUJBQW1CLGFBQ25CLG1CQUFtQjt5R0FFbEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUo1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2FzeXNQcmljZUNvbXBvbmVudCB9IGZyb20gJy4vcHJpY2UuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW09hc3lzUHJpY2VDb21wb25lbnRdLFxuICBleHBvcnRzOiBbT2FzeXNQcmljZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE9hc3lzUHJpY2VNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './progress-bar.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { LayoutBoxComponent } from '../layout/box/box.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class ProgressBarComponent {
7
+ percentage = 50;
8
+ style = 'circular';
9
+ text = '0 / 3';
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ProgressBarComponent, isStandalone: true, selector: "ui-progress-bar", inputs: { percentage: "percentage", style: "style", text: "text" }, ngImport: i0, template: "<!-- Circular Progress Bar -->\n<ui-box\n *ngIf=\"style === 'circular'\"\n box_space=\"none\"\n class=\"bw-cicle-progress-bar\"\n [style.--bw-cicle-progress-bar-progress-size]=\"percentage\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"percentage\"\n [attr.aria-label]=\"text\"\n>\n <svg>\n <circle class=\"full-bar\" />\n <circle class=\"progress-bar\" />\n </svg>\n <div class=\"bw-cicle-progress-bar__content text-body--micro\">\n <span class=\"bw-cicle-progress-bar__content-text\">{{ text }}</span>\n </div>\n</ui-box>\n\n<!-- Line Progress Bar -->\n<ui-box\n *ngIf=\"style === 'line'\"\n box_space=\"none\"\n box_fit_mode=\"fit\"\n class=\"bw-line-progress-bar\"\n [style.--bw-line-progress-bar-progress-size]=\"percentage\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"percentage\"\n [attr.aria-label]=\"text\"\n>\n <svg>\n <rect class=\"full-bar\" />\n <rect class=\"progress-bar\" />\n </svg>\n</ui-box>\n", styles: [".bw-cicle-progress-bar{--bw-cicle-progress-bar-progress-size: 0;--bw-cicle-progress-bar-size: 48px;display:block;position:relative;width:var(--bw-cicle-progress-bar-size);height:var(--bw-cicle-progress-bar-size)}.bw-cicle-progress-bar__content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bw-cicle-progress-bar svg{--size: 48px;--half-size: calc(var(--size) / 2);--stroke-width: 4px;--radius: calc((var(--size) - var(--stroke-width)) / 2);--circumference: calc(var(--radius) * pi * 2);--dash: calc((var(--bw-cicle-progress-bar-progress-size) * var(--circumference)) / 100);width:var(--bw-cicle-progress-bar-size);height:var(--bw-cicle-progress-bar-size)}.bw-cicle-progress-bar circle{cx:var(--half-size);cy:var(--half-size);r:var(--radius);stroke-width:var(--stroke-width);fill:none;stroke-linecap:round}.bw-cicle-progress-bar circle.full-bar{stroke:var(--oasys-color-interaction-background-disabled)}.bw-cicle-progress-bar circle.progress-bar{transform:rotate(-90deg);transform-origin:var(--half-size) var(--half-size);stroke-dasharray:var(--dash) calc(var(--circumference) - var(--dash));stroke:var(--oasys-color-brand-background-tertiary)}.bw-line-progress-bar{--bw-line-progress-bar-progress-size: 0;--bw-line-progress-bar-svg-height: 4px;--bw-line-progress-bar-width: 160px;display:block;width:var(--bw-line-progress-bar-width);height:auto}.bw-line-progress-bar svg{width:100%;height:var(--bw-line-progress-bar-svg-height)}.bw-line-progress-bar rect{height:100%;rx:calc(var(--bw-line-progress-bar-svg-height) / 2);ry:calc(var(--bw-line-progress-bar-svg-height) / 2)}.bw-line-progress-bar rect.full-bar{width:100%;fill:var(--oasys-color-interaction-background-disabled)}.bw-line-progress-bar rect.progress-bar{width:calc(var(--bw-line-progress-bar-progress-size) * 1%);fill:var(--oasys-color-brand-foreground-primary);transition:width .3s ease}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ProgressBarComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'ui-progress-bar', standalone: true, imports: [CommonModule, LayoutBoxComponent], template: "<!-- Circular Progress Bar -->\n<ui-box\n *ngIf=\"style === 'circular'\"\n box_space=\"none\"\n class=\"bw-cicle-progress-bar\"\n [style.--bw-cicle-progress-bar-progress-size]=\"percentage\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"percentage\"\n [attr.aria-label]=\"text\"\n>\n <svg>\n <circle class=\"full-bar\" />\n <circle class=\"progress-bar\" />\n </svg>\n <div class=\"bw-cicle-progress-bar__content text-body--micro\">\n <span class=\"bw-cicle-progress-bar__content-text\">{{ text }}</span>\n </div>\n</ui-box>\n\n<!-- Line Progress Bar -->\n<ui-box\n *ngIf=\"style === 'line'\"\n box_space=\"none\"\n box_fit_mode=\"fit\"\n class=\"bw-line-progress-bar\"\n [style.--bw-line-progress-bar-progress-size]=\"percentage\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"percentage\"\n [attr.aria-label]=\"text\"\n>\n <svg>\n <rect class=\"full-bar\" />\n <rect class=\"progress-bar\" />\n </svg>\n</ui-box>\n", styles: [".bw-cicle-progress-bar{--bw-cicle-progress-bar-progress-size: 0;--bw-cicle-progress-bar-size: 48px;display:block;position:relative;width:var(--bw-cicle-progress-bar-size);height:var(--bw-cicle-progress-bar-size)}.bw-cicle-progress-bar__content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.bw-cicle-progress-bar svg{--size: 48px;--half-size: calc(var(--size) / 2);--stroke-width: 4px;--radius: calc((var(--size) - var(--stroke-width)) / 2);--circumference: calc(var(--radius) * pi * 2);--dash: calc((var(--bw-cicle-progress-bar-progress-size) * var(--circumference)) / 100);width:var(--bw-cicle-progress-bar-size);height:var(--bw-cicle-progress-bar-size)}.bw-cicle-progress-bar circle{cx:var(--half-size);cy:var(--half-size);r:var(--radius);stroke-width:var(--stroke-width);fill:none;stroke-linecap:round}.bw-cicle-progress-bar circle.full-bar{stroke:var(--oasys-color-interaction-background-disabled)}.bw-cicle-progress-bar circle.progress-bar{transform:rotate(-90deg);transform-origin:var(--half-size) var(--half-size);stroke-dasharray:var(--dash) calc(var(--circumference) - var(--dash));stroke:var(--oasys-color-brand-background-tertiary)}.bw-line-progress-bar{--bw-line-progress-bar-progress-size: 0;--bw-line-progress-bar-svg-height: 4px;--bw-line-progress-bar-width: 160px;display:block;width:var(--bw-line-progress-bar-width);height:auto}.bw-line-progress-bar svg{width:100%;height:var(--bw-line-progress-bar-svg-height)}.bw-line-progress-bar rect{height:100%;rx:calc(var(--bw-line-progress-bar-svg-height) / 2);ry:calc(var(--bw-line-progress-bar-svg-height) / 2)}.bw-line-progress-bar rect.full-bar{width:100%;fill:var(--oasys-color-interaction-background-disabled)}.bw-line-progress-bar rect.progress-bar{width:calc(var(--bw-line-progress-bar-progress-size) * 1%);fill:var(--oasys-color-brand-foreground-primary);transition:width .3s ease}\n"] }]
16
+ }], propDecorators: { percentage: [{
17
+ type: Input
18
+ }], style: [{
19
+ type: Input
20
+ }], text: [{
21
+ type: Input
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29hc3lzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFTakUsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLEtBQUssR0FBd0IsVUFBVSxDQUFDO0lBQ3hDLElBQUksR0FBVyxPQUFPLENBQUM7d0dBSHJCLG9CQUFvQjs0RkFBcEIsb0JBQW9CLCtJQ1hqQyw4aENBdUNBLHk0REQ5QlksWUFBWSxtSUFBRSxrQkFBa0I7OzRGQUUvQixvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBR2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDOzhCQUdsQyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTGF5b3V0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0L2JveC9ib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMYXlvdXRCb3hDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9ncmVzc0JhckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBlcmNlbnRhZ2UgPSA1MDtcbiAgQElucHV0KCkgc3R5bGU6ICdjaXJjdWxhcicgfCAnbGluZScgPSAnY2lyY3VsYXInO1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnMCAvIDMnO1xufVxuIiwiPCEtLSBDaXJjdWxhciBQcm9ncmVzcyBCYXIgLS0+XG48dWktYm94XG4gICpuZ0lmPVwic3R5bGUgPT09ICdjaXJjdWxhcidcIlxuICBib3hfc3BhY2U9XCJub25lXCJcbiAgY2xhc3M9XCJidy1jaWNsZS1wcm9ncmVzcy1iYXJcIlxuICBbc3R5bGUuLS1idy1jaWNsZS1wcm9ncmVzcy1iYXItcHJvZ3Jlc3Mtc2l6ZV09XCJwZXJjZW50YWdlXCJcbiAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcbiAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJwZXJjZW50YWdlXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0XCJcbj5cbiAgPHN2Zz5cbiAgICA8Y2lyY2xlIGNsYXNzPVwiZnVsbC1iYXJcIiAvPlxuICAgIDxjaXJjbGUgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIiAvPlxuICA8L3N2Zz5cbiAgPGRpdiBjbGFzcz1cImJ3LWNpY2xlLXByb2dyZXNzLWJhcl9fY29udGVudCB0ZXh0LWJvZHktLW1pY3JvXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJidy1jaWNsZS1wcm9ncmVzcy1iYXJfX2NvbnRlbnQtdGV4dFwiPnt7IHRleHQgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC91aS1ib3g+XG5cbjwhLS0gTGluZSBQcm9ncmVzcyBCYXIgLS0+XG48dWktYm94XG4gICpuZ0lmPVwic3R5bGUgPT09ICdsaW5lJ1wiXG4gIGJveF9zcGFjZT1cIm5vbmVcIlxuICBib3hfZml0X21vZGU9XCJmaXRcIlxuICBjbGFzcz1cImJ3LWxpbmUtcHJvZ3Jlc3MtYmFyXCJcbiAgW3N0eWxlLi0tYnctbGluZS1wcm9ncmVzcy1iYXItcHJvZ3Jlc3Mtc2l6ZV09XCJwZXJjZW50YWdlXCJcbiAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcbiAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJwZXJjZW50YWdlXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0ZXh0XCJcbj5cbiAgPHN2Zz5cbiAgICA8cmVjdCBjbGFzcz1cImZ1bGwtYmFyXCIgLz5cbiAgICA8cmVjdCBjbGFzcz1cInByb2dyZXNzLWJhclwiIC8+XG4gIDwvc3ZnPlxuPC91aS1ib3g+XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './promo-card.component';
2
+ export * from './promo-card.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9tby1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb21vLWNhcmQubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,87 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { TokenService } from '../../services/token.service';
3
+ import { LayoutBoxComponent } from '../layout/box/box.component';
4
+ import { NgStyle, NgClass } from '@angular/common';
5
+ import { LayoutStackComponent } from '../layout/stack/stack.component';
6
+ import { ImageComponent } from '../image/image.component';
7
+ import { OasysHrefDirective } from '../../directives/href/href.directive';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/token.service";
10
+ const PROMO_CARD_LAYOUTS = {
11
+ default: {
12
+ headingType: 'secondary',
13
+ bodyType: 'body-default',
14
+ spacing: 'default',
15
+ },
16
+ compact: {
17
+ headingType: 'body-expressive',
18
+ bodyType: 'body-supporting',
19
+ spacing: 'near',
20
+ },
21
+ };
22
+ export class PromoCardComponent {
23
+ tokenService;
24
+ // Image
25
+ image;
26
+ alt_text;
27
+ // Content
28
+ title;
29
+ subtitle;
30
+ // CTAs
31
+ primary_cta_text;
32
+ href_primary_cta = '';
33
+ // Style
34
+ background_colour;
35
+ font_colour;
36
+ // Layout
37
+ layout = 'default';
38
+ cta_clicked = new EventEmitter();
39
+ aspectRatio;
40
+ alignment;
41
+ layoutConfig = PROMO_CARD_LAYOUTS['default'];
42
+ constructor(tokenService) {
43
+ this.tokenService = tokenService;
44
+ }
45
+ ngOnInit() {
46
+ this.layoutConfig = PROMO_CARD_LAYOUTS[this.layout] ?? PROMO_CARD_LAYOUTS['default'];
47
+ this.aspectRatio = this.tokenService.getTokenValue('--oasys-component-promo-card-image-aspect-ratio');
48
+ this.alignment = this.tokenService.getTokenValue('--oasys-component-promo-card-heading-alignment');
49
+ }
50
+ ctaClicked() {
51
+ this.cta_clicked.emit();
52
+ }
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PromoCardComponent, deps: [{ token: i1.TokenService }], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PromoCardComponent, isStandalone: true, selector: "ui-promo-card", inputs: { image: "image", alt_text: "alt_text", title: "title", subtitle: "subtitle", primary_cta_text: "primary_cta_text", href_primary_cta: "href_primary_cta", background_colour: "background_colour", font_colour: "font_colour", layout: "layout" }, outputs: { cta_clicked: "cta_clicked" }, providers: [TokenService], ngImport: i0, template: "<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\n [image_fill]=\"true\"\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n [preload_aspect_ratio]=\"aspectRatio\"\n ></ui-image>\n </ui-box>\n <ui-box\n [box_align_y]=\"alignment\"\n box_space_top=\"none\"\n [box_space]=\"layoutConfig.spacing\"\n [ngStyle]=\"{ 'background-color': background_colour }\"\n >\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <h3\n [ngClass]=\"{\n 'text-heading--body--expressive': layoutConfig.headingType === 'body-expressive',\n 'text-heading--secondary': layoutConfig.headingType === 'secondary',\n }\"\n role=\"heading\"\n class=\"seo-h2\"\n >\n <span class=\"heading-title text-heading\">{{ title }}</span>\n </h3>\n <p\n [ngClass]=\"{\n 'text-body--default': layoutConfig.bodyType === 'body-default',\n 'text-body--supporting': layoutConfig.bodyType === 'body-supporting',\n }\"\n >\n {{ subtitle }}\n </p>\n <a\n class=\"text-link text-link--standalone\"\n bwtrackas=\"component.modular-content-card.cta\"\n href=\"{{ href_primary_cta }}\"\n (click)=\"ctaClicked()\"\n >{{ primary_cta_text }}</a\n >\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n", styles: ["ui-image img{object-fit:cover}p,h3{text-align:var(--oasys-component-promo-card-heading-alignment)}\n"], dependencies: [{ kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "component", type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_aria_describedby", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio", "image_width"], outputs: ["image_loaded"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: OasysHrefDirective, selector: "a, uiHref, [uiHref]" }] });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PromoCardComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'ui-promo-card', standalone: true, imports: [
59
+ LayoutBoxComponent,
60
+ NgStyle,
61
+ LayoutStackComponent,
62
+ ImageComponent,
63
+ NgClass,
64
+ OasysHrefDirective,
65
+ ], providers: [TokenService], template: "<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\n [image_fill]=\"true\"\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n [preload_aspect_ratio]=\"aspectRatio\"\n ></ui-image>\n </ui-box>\n <ui-box\n [box_align_y]=\"alignment\"\n box_space_top=\"none\"\n [box_space]=\"layoutConfig.spacing\"\n [ngStyle]=\"{ 'background-color': background_colour }\"\n >\n <ui-stack stack_gap=\"near\" stack_distribute=\"center\" [stack_align]=\"alignment\">\n <h3\n [ngClass]=\"{\n 'text-heading--body--expressive': layoutConfig.headingType === 'body-expressive',\n 'text-heading--secondary': layoutConfig.headingType === 'secondary',\n }\"\n role=\"heading\"\n class=\"seo-h2\"\n >\n <span class=\"heading-title text-heading\">{{ title }}</span>\n </h3>\n <p\n [ngClass]=\"{\n 'text-body--default': layoutConfig.bodyType === 'body-default',\n 'text-body--supporting': layoutConfig.bodyType === 'body-supporting',\n }\"\n >\n {{ subtitle }}\n </p>\n <a\n class=\"text-link text-link--standalone\"\n bwtrackas=\"component.modular-content-card.cta\"\n href=\"{{ href_primary_cta }}\"\n (click)=\"ctaClicked()\"\n >{{ primary_cta_text }}</a\n >\n </ui-stack>\n </ui-box>\n </ui-stack>\n</ui-box>\n", styles: ["ui-image img{object-fit:cover}p,h3{text-align:var(--oasys-component-promo-card-heading-alignment)}\n"] }]
66
+ }], ctorParameters: () => [{ type: i1.TokenService }], propDecorators: { image: [{
67
+ type: Input
68
+ }], alt_text: [{
69
+ type: Input
70
+ }], title: [{
71
+ type: Input
72
+ }], subtitle: [{
73
+ type: Input
74
+ }], primary_cta_text: [{
75
+ type: Input
76
+ }], href_primary_cta: [{
77
+ type: Input
78
+ }], background_colour: [{
79
+ type: Input
80
+ }], font_colour: [{
81
+ type: Input
82
+ }], layout: [{
83
+ type: Input
84
+ }], cta_clicked: [{
85
+ type: Output
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW8tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvcHJvbW8tY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvcHJvbW8tY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUc1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBSTFFLE1BQU0sa0JBQWtCLEdBT3BCO0lBQ0YsT0FBTyxFQUFFO1FBQ1AsV0FBVyxFQUFFLFdBQVc7UUFDeEIsUUFBUSxFQUFFLGNBQWM7UUFDeEIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxPQUFPLEVBQUU7UUFDUCxXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsT0FBTyxFQUFFLE1BQU07S0FDaEI7Q0FDRixDQUFDO0FBaUJGLE1BQU0sT0FBTyxrQkFBa0I7SUEwQlQ7SUF6QnBCLFFBQVE7SUFDQyxLQUFLLENBQVM7SUFDZCxRQUFRLENBQVM7SUFFMUIsVUFBVTtJQUNELEtBQUssQ0FBUztJQUNkLFFBQVEsQ0FBUztJQUUxQixPQUFPO0lBQ0UsZ0JBQWdCLENBQVM7SUFDekIsZ0JBQWdCLEdBQVcsRUFBRSxDQUFDO0lBRXZDLFFBQVE7SUFDQyxpQkFBaUIsQ0FBUztJQUMxQixXQUFXLENBQVM7SUFFN0IsU0FBUztJQUNBLE1BQU0sR0FBb0IsU0FBUyxDQUFDO0lBRW5DLFdBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUvRCxXQUFXLENBQW1CO0lBQzlCLFNBQVMsQ0FBa0I7SUFDM0IsWUFBWSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTdDLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUcsQ0FBQztJQUVsRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FDaEQsaURBQWlELENBQzlCLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FDOUMsZ0RBQWdELENBQzlCLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBeENVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLCtWQUZsQixDQUFDLFlBQVksQ0FBQywwQkM3QzNCLDZuREE4Q0EsOEpEUkksa0JBQWtCLGdVQUNsQixPQUFPLDJFQUNQLG9CQUFvQix3S0FDcEIsY0FBYyxvT0FDZCxPQUFPLG9GQUNQLGtCQUFrQjs7NEZBSVQsa0JBQWtCO2tCQWY5QixTQUFTOytCQUNFLGVBQWUsY0FHYixJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLGtCQUFrQjtxQkFDbkIsYUFDVSxDQUFDLFlBQVksQ0FBQztpRkFJaEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0QWxpZ25tZW50LCBMYXlvdXRHYXBTaXplcyB9IGZyb20gJy4uL2xheW91dCc7XG5pbXBvcnQgeyBJbWFnZUFzcGVjdFJhdGlvIH0gZnJvbSAnLi4vaW1hZ2UvaW1hZ2UnO1xuaW1wb3J0IHsgTGF5b3V0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0L2JveC9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IE5nU3R5bGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTGF5b3V0U3RhY2tDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvc3RhY2svc3RhY2suY29tcG9uZW50JztcbmltcG9ydCB7IEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IE9hc3lzSHJlZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvaHJlZi9ocmVmLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFByb21vQ2FyZExheW91dCA9ICdkZWZhdWx0JyB8ICdjb21wYWN0JztcblxuY29uc3QgUFJPTU9fQ0FSRF9MQVlPVVRTOiBSZWNvcmQ8XG4gIFByb21vQ2FyZExheW91dCxcbiAge1xuICAgIGhlYWRpbmdUeXBlOiBzdHJpbmc7XG4gICAgYm9keVR5cGU6IHN0cmluZztcbiAgICBzcGFjaW5nOiBMYXlvdXRHYXBTaXplcztcbiAgfVxuPiA9IHtcbiAgZGVmYXVsdDoge1xuICAgIGhlYWRpbmdUeXBlOiAnc2Vjb25kYXJ5JyxcbiAgICBib2R5VHlwZTogJ2JvZHktZGVmYXVsdCcsXG4gICAgc3BhY2luZzogJ2RlZmF1bHQnLFxuICB9LFxuICBjb21wYWN0OiB7XG4gICAgaGVhZGluZ1R5cGU6ICdib2R5LWV4cHJlc3NpdmUnLFxuICAgIGJvZHlUeXBlOiAnYm9keS1zdXBwb3J0aW5nJyxcbiAgICBzcGFjaW5nOiAnbmVhcicsXG4gIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1wcm9tby1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21vLWNhcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9tby1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBMYXlvdXRCb3hDb21wb25lbnQsXG4gICAgTmdTdHlsZSxcbiAgICBMYXlvdXRTdGFja0NvbXBvbmVudCxcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBOZ0NsYXNzLFxuICAgIE9hc3lzSHJlZkRpcmVjdGl2ZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbVG9rZW5TZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJvbW9DYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gSW1hZ2VcbiAgQElucHV0KCkgaW1hZ2U6IHN0cmluZztcbiAgQElucHV0KCkgYWx0X3RleHQ6IHN0cmluZztcblxuICAvLyBDb250ZW50XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1YnRpdGxlOiBzdHJpbmc7XG5cbiAgLy8gQ1RBc1xuICBASW5wdXQoKSBwcmltYXJ5X2N0YV90ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhyZWZfcHJpbWFyeV9jdGE6IHN0cmluZyA9ICcnO1xuXG4gIC8vIFN0eWxlXG4gIEBJbnB1dCgpIGJhY2tncm91bmRfY29sb3VyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZvbnRfY29sb3VyOiBzdHJpbmc7XG5cbiAgLy8gTGF5b3V0XG4gIEBJbnB1dCgpIGxheW91dDogUHJvbW9DYXJkTGF5b3V0ID0gJ2RlZmF1bHQnO1xuXG4gIEBPdXRwdXQoKSBjdGFfY2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGFzcGVjdFJhdGlvOiBJbWFnZUFzcGVjdFJhdGlvO1xuICBhbGlnbm1lbnQ6IExheW91dEFsaWdubWVudDtcbiAgbGF5b3V0Q29uZmlnID0gUFJPTU9fQ0FSRF9MQVlPVVRTWydkZWZhdWx0J107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxheW91dENvbmZpZyA9IFBST01PX0NBUkRfTEFZT1VUU1t0aGlzLmxheW91dF0gPz8gUFJPTU9fQ0FSRF9MQVlPVVRTWydkZWZhdWx0J107XG4gICAgdGhpcy5hc3BlY3RSYXRpbyA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoXG4gICAgICAnLS1vYXN5cy1jb21wb25lbnQtcHJvbW8tY2FyZC1pbWFnZS1hc3BlY3QtcmF0aW8nLFxuICAgICkgYXMgSW1hZ2VBc3BlY3RSYXRpbztcbiAgICB0aGlzLmFsaWdubWVudCA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoXG4gICAgICAnLS1vYXN5cy1jb21wb25lbnQtcHJvbW8tY2FyZC1oZWFkaW5nLWFsaWdubWVudCcsXG4gICAgKSBhcyBMYXlvdXRBbGlnbm1lbnQ7XG4gIH1cblxuICBjdGFDbGlja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY3RhX2NsaWNrZWQuZW1pdCgpO1xuICB9XG59XG4iLCI8dWktYm94IGJveF9zcGFjZT1cIm5vbmVcIiBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogYmFja2dyb3VuZF9jb2xvdXIsIGNvbG9yOiBmb250X2NvbG91ciB9XCI+XG4gIDx1aS1zdGFjayBbc3RhY2tfZ2FwXT1cImxheW91dENvbmZpZy5zcGFjaW5nXCIgc3RhY2tfYWxpZ249XCJjZW50ZXJcIj5cbiAgICA8dWktYm94IGJveF9zcGFjZT1cIm5vbmVcIj5cbiAgICAgIDx1aS1pbWFnZVxuICAgICAgICBbaW1hZ2VfZmlsbF09XCJ0cnVlXCJcbiAgICAgICAgW2ltYWdlX3NyY109XCJpbWFnZVwiXG4gICAgICAgIFtpbWFnZV9hbHRfdGV4dF09XCJhbHRfdGV4dFwiXG4gICAgICAgIFtwcmVsb2FkX2FzcGVjdF9yYXRpb109XCJhc3BlY3RSYXRpb1wiXG4gICAgICA+PC91aS1pbWFnZT5cbiAgICA8L3VpLWJveD5cbiAgICA8dWktYm94XG4gICAgICBbYm94X2FsaWduX3ldPVwiYWxpZ25tZW50XCJcbiAgICAgIGJveF9zcGFjZV90b3A9XCJub25lXCJcbiAgICAgIFtib3hfc3BhY2VdPVwibGF5b3V0Q29uZmlnLnNwYWNpbmdcIlxuICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGJhY2tncm91bmRfY29sb3VyIH1cIlxuICAgID5cbiAgICAgIDx1aS1zdGFjayBzdGFja19nYXA9XCJuZWFyXCIgc3RhY2tfZGlzdHJpYnV0ZT1cImNlbnRlclwiIFtzdGFja19hbGlnbl09XCJhbGlnbm1lbnRcIj5cbiAgICAgICAgPGgzXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3RleHQtaGVhZGluZy0tYm9keS0tZXhwcmVzc2l2ZSc6IGxheW91dENvbmZpZy5oZWFkaW5nVHlwZSA9PT0gJ2JvZHktZXhwcmVzc2l2ZScsXG4gICAgICAgICAgICAndGV4dC1oZWFkaW5nLS1zZWNvbmRhcnknOiBsYXlvdXRDb25maWcuaGVhZGluZ1R5cGUgPT09ICdzZWNvbmRhcnknLFxuICAgICAgICAgIH1cIlxuICAgICAgICAgIHJvbGU9XCJoZWFkaW5nXCJcbiAgICAgICAgICBjbGFzcz1cInNlby1oMlwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmctdGl0bGUgdGV4dC1oZWFkaW5nXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxwXG4gICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3RleHQtYm9keS0tZGVmYXVsdCc6IGxheW91dENvbmZpZy5ib2R5VHlwZSA9PT0gJ2JvZHktZGVmYXVsdCcsXG4gICAgICAgICAgICAndGV4dC1ib2R5LS1zdXBwb3J0aW5nJzogbGF5b3V0Q29uZmlnLmJvZHlUeXBlID09PSAnYm9keS1zdXBwb3J0aW5nJyxcbiAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHN1YnRpdGxlIH19XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGFcbiAgICAgICAgICBjbGFzcz1cInRleHQtbGluayB0ZXh0LWxpbmstLXN0YW5kYWxvbmVcIlxuICAgICAgICAgIGJ3dHJhY2thcz1cImNvbXBvbmVudC5tb2R1bGFyLWNvbnRlbnQtY2FyZC5jdGFcIlxuICAgICAgICAgIGhyZWY9XCJ7eyBocmVmX3ByaW1hcnlfY3RhIH19XCJcbiAgICAgICAgICAoY2xpY2spPVwiY3RhQ2xpY2tlZCgpXCJcbiAgICAgICAgICA+e3sgcHJpbWFyeV9jdGFfdGV4dCB9fTwvYVxuICAgICAgICA+XG4gICAgICA8L3VpLXN0YWNrPlxuICAgIDwvdWktYm94PlxuICA8L3VpLXN0YWNrPlxuPC91aS1ib3g+XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { PromoCardComponent } from './promo-card.component';
3
+ import * as i0 from "@angular/core";
4
+ export class OasysPromoCardModule {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPromoCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: OasysPromoCardModule, imports: [PromoCardComponent], exports: [PromoCardComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPromoCardModule });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysPromoCardModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [PromoCardComponent],
13
+ exports: [PromoCardComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbW8tY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3Byb21vLWNhcmQvcHJvbW8tY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFNNUQsTUFBTSxPQUFPLG9CQUFvQjt3R0FBcEIsb0JBQW9CO3lHQUFwQixvQkFBb0IsWUFIckIsa0JBQWtCLGFBQ2xCLGtCQUFrQjt5R0FFakIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvbW9DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9tby1jYXJkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtQcm9tb0NhcmRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUHJvbW9DYXJkQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgT2FzeXNQcm9tb0NhcmRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './section.component';
2
+ export * from './section.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlY3Rpb24ubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,119 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { TokenService } from '../../services/token.service';
3
+ import { LayoutBoxComponent } from '../layout/box/box.component';
4
+ import { LayoutGridComponent } from '../layout/grid/grid.component';
5
+ import { LayoutGridColumnComponent } from '../layout/grid/grid-column.component';
6
+ import { NgClass, NgIf } from '@angular/common';
7
+ import { ImageComponent } from '../image/image.component';
8
+ import { LayoutStackComponent } from '../layout/stack/stack.component';
9
+ import { OasysHeadingComponent } from '../heading/heading.component';
10
+ import { OasysHrefDirective } from '../../directives/href/href.directive';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../../services/token.service";
13
+ export class SectionComponent {
14
+ tokenService;
15
+ // Style input variables
16
+ brand_background_colour;
17
+ non_brand_background_colour;
18
+ text_on_dark_override = false; // This is for custom/non-brand BG colours
19
+ image_on_left = false;
20
+ section_type = 'inform';
21
+ // Content input variables
22
+ heading_title;
23
+ heading_subtitle;
24
+ primary_cta_text;
25
+ secondary_cta_text;
26
+ image;
27
+ alt_text;
28
+ // Event input variables
29
+ href_primary_cta = '';
30
+ href_secondary_cta = '';
31
+ backgroundIsDark;
32
+ isSpotLight;
33
+ uiBoxId; // To randomise the box id
34
+ outterContainer = {};
35
+ innerContainer = {};
36
+ containerInsetSpaceSmall;
37
+ containerInsetSpaceLarge;
38
+ contentInsetSpaceSmall;
39
+ contentInsetSpaceLarge;
40
+ imageAspectRatio;
41
+ constructor(tokenService) {
42
+ this.tokenService = tokenService;
43
+ }
44
+ ngAfterViewInit() {
45
+ if (this.non_brand_background_colour) {
46
+ this.setNonBrandBackgroundColour();
47
+ }
48
+ // This doesn't appear to be used anywhere
49
+ this.backgroundIsDark = this.tokenService.getTokenValue(`--oasys-component-box-on-dark-${this.brand_background_colour}`);
50
+ }
51
+ ngOnInit() {
52
+ this.containerInsetSpaceSmall = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-container-small`);
53
+ this.containerInsetSpaceLarge = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-container-large`);
54
+ this.contentInsetSpaceSmall = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-content-small-${this.section_type}`);
55
+ this.contentInsetSpaceLarge = this.tokenService.getTokenValue(`--oasys-component-section-inset-spacing-content-large-${this.section_type}`);
56
+ this.imageAspectRatio = this.tokenService.getTokenValue(`--oasys-component-section-image-aspect-ratio-${this.section_type}`);
57
+ // Setting a unique ID, this is important & needed to apply
58
+ // styles to ui-box
59
+ this.uiBoxId = Date.now() + '-' + Math.random();
60
+ }
61
+ /**
62
+ * Users are able to set custom non brand background colours
63
+ * If a non brand background colour is provided we ignore branded colours
64
+ * even if they are provided.
65
+ */
66
+ setNonBrandBackgroundColour() {
67
+ const box = document.getElementById(`ui-box-${this.uiBoxId}`);
68
+ if (box) {
69
+ this.brand_background_colour = undefined;
70
+ box.style.background = this.non_brand_background_colour;
71
+ if (this.text_on_dark_override) {
72
+ box.classList.add('text-color--on-dark');
73
+ }
74
+ }
75
+ }
76
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionComponent, deps: [{ token: i1.TokenService }], target: i0.ɵɵFactoryTarget.Component });
77
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SectionComponent, isStandalone: true, selector: "ui-section", inputs: { brand_background_colour: "brand_background_colour", non_brand_background_colour: "non_brand_background_colour", text_on_dark_override: "text_on_dark_override", image_on_left: "image_on_left", section_type: "section_type", heading_title: "heading_title", heading_subtitle: "heading_subtitle", primary_cta_text: "primary_cta_text", secondary_cta_text: "secondary_cta_text", image: "image", alt_text: "alt_text", href_primary_cta: "href_primary_cta", href_secondary_cta: "href_secondary_cta" }, providers: [TokenService], ngImport: i0, template: "<ui-box\n id=\"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]=\"\n section_type === 'spotlight'\n ? 'none'\n : {\n mobile: containerInsetSpaceSmall,\n tablet: containerInsetSpaceLarge,\n laptop: containerInsetSpaceLarge,\n desktop: containerInsetSpaceLarge,\n }\n \"\n>\n <ui-grid [grid_gap]=\"section_type === 'spotlight' ? 'none' : 'default'\">\n <ui-column\n [columns]=\"6\"\n [ngClass]=\"{ 'image-left': image_on_left, 'image-top-mobile': image_on_left }\"\n >\n <ui-box box_space=\"none\" box_background=\"transparent\" box_align_y=\"center\">\n <ui-image\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n [preload_aspect_ratio]=\"imageAspectRatio\"\n ></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]=\"\n section_type === 'spotlight'\n ? {\n mobile: contentInsetSpaceSmall,\n tablet: contentInsetSpaceLarge,\n laptop: contentInsetSpaceLarge,\n desktop: contentInsetSpaceLarge,\n }\n : {\n mobile: contentInsetSpaceSmall,\n tablet: contentInsetSpaceSmall,\n laptop: contentInsetSpaceLarge,\n desktop: contentInsetSpaceLarge,\n }\n \"\n >\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 >\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\n class=\"text-link text-link--standalone\"\n [href]=\"href_primary_cta\"\n bwtrackas=\"oasys.story-block.primary-cta\"\n >{{ primary_cta_text }}</a\n >\n <a\n *ngIf=\"section_type !== 'spotlight'\"\n class=\"text-link text-link--standalone\"\n [href]=\"href_secondary_cta\"\n bwtrackas=\"oasys.story-block.secondary-cta\"\n >{{ secondary_cta_text }}</a\n >\n </ui-stack>\n </ui-stack>\n </ui-box>\n </ui-column>\n </ui-grid>\n</ui-box>\n", styles: ["ui-grid ui-column img{width:100%;display:block}ui-grid .image-left{order:1}@media only screen and (max-width: 767px){ui-grid .image-top-mobile{order:0}}\n"], dependencies: [{ kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "component", type: LayoutGridComponent, selector: "ui-grid", inputs: ["grid_auto", "grid_collapse_below", "grid_gap", "grid_base"] }, { kind: "component", type: LayoutGridColumnComponent, selector: "ui-column", inputs: ["columns", "column_inset"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_aria_describedby", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio", "image_width"], outputs: ["image_loaded"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "component", type: OasysHeadingComponent, selector: "ui-heading", inputs: ["heading_type", "heading_on_dark", "heading_title", "heading_seo_priority", "heading_priority", "heading_alignment_override", "heading_subtitle", "heading_surtitle", "heading_level"] }, { kind: "directive", type: OasysHrefDirective, selector: "a, uiHref, [uiHref]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionComponent, decorators: [{
80
+ type: Component,
81
+ args: [{ selector: 'ui-section', standalone: true, imports: [
82
+ LayoutBoxComponent,
83
+ LayoutGridComponent,
84
+ LayoutGridColumnComponent,
85
+ NgClass,
86
+ ImageComponent,
87
+ LayoutStackComponent,
88
+ OasysHeadingComponent,
89
+ OasysHrefDirective,
90
+ NgIf,
91
+ ], providers: [TokenService], template: "<ui-box\n id=\"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]=\"\n section_type === 'spotlight'\n ? 'none'\n : {\n mobile: containerInsetSpaceSmall,\n tablet: containerInsetSpaceLarge,\n laptop: containerInsetSpaceLarge,\n desktop: containerInsetSpaceLarge,\n }\n \"\n>\n <ui-grid [grid_gap]=\"section_type === 'spotlight' ? 'none' : 'default'\">\n <ui-column\n [columns]=\"6\"\n [ngClass]=\"{ 'image-left': image_on_left, 'image-top-mobile': image_on_left }\"\n >\n <ui-box box_space=\"none\" box_background=\"transparent\" box_align_y=\"center\">\n <ui-image\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n [preload_aspect_ratio]=\"imageAspectRatio\"\n ></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]=\"\n section_type === 'spotlight'\n ? {\n mobile: contentInsetSpaceSmall,\n tablet: contentInsetSpaceLarge,\n laptop: contentInsetSpaceLarge,\n desktop: contentInsetSpaceLarge,\n }\n : {\n mobile: contentInsetSpaceSmall,\n tablet: contentInsetSpaceSmall,\n laptop: contentInsetSpaceLarge,\n desktop: contentInsetSpaceLarge,\n }\n \"\n >\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 >\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\n class=\"text-link text-link--standalone\"\n [href]=\"href_primary_cta\"\n bwtrackas=\"oasys.story-block.primary-cta\"\n >{{ primary_cta_text }}</a\n >\n <a\n *ngIf=\"section_type !== 'spotlight'\"\n class=\"text-link text-link--standalone\"\n [href]=\"href_secondary_cta\"\n bwtrackas=\"oasys.story-block.secondary-cta\"\n >{{ secondary_cta_text }}</a\n >\n </ui-stack>\n </ui-stack>\n </ui-box>\n </ui-column>\n </ui-grid>\n</ui-box>\n", styles: ["ui-grid ui-column img{width:100%;display:block}ui-grid .image-left{order:1}@media only screen and (max-width: 767px){ui-grid .image-top-mobile{order:0}}\n"] }]
92
+ }], ctorParameters: () => [{ type: i1.TokenService }], propDecorators: { brand_background_colour: [{
93
+ type: Input
94
+ }], non_brand_background_colour: [{
95
+ type: Input
96
+ }], text_on_dark_override: [{
97
+ type: Input
98
+ }], image_on_left: [{
99
+ type: Input
100
+ }], section_type: [{
101
+ type: Input
102
+ }], heading_title: [{
103
+ type: Input
104
+ }], heading_subtitle: [{
105
+ type: Input
106
+ }], primary_cta_text: [{
107
+ type: Input
108
+ }], secondary_cta_text: [{
109
+ type: Input
110
+ }], image: [{
111
+ type: Input
112
+ }], alt_text: [{
113
+ type: Input
114
+ }], href_primary_cta: [{
115
+ type: Input
116
+ }], href_secondary_cta: [{
117
+ type: Input
118
+ }] } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24vc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFvQjFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFrQ1A7SUFqQ3BCLHdCQUF3QjtJQUNmLHVCQUF1QixDQUFvQjtJQUMzQywyQkFBMkIsQ0FBUztJQUNwQyxxQkFBcUIsR0FBWSxLQUFLLENBQUMsQ0FBQywwQ0FBMEM7SUFDbEYsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixZQUFZLEdBQTJCLFFBQVEsQ0FBQztJQUV6RCwwQkFBMEI7SUFDakIsYUFBYSxDQUFTO0lBQ3RCLGdCQUFnQixDQUFTO0lBQ3pCLGdCQUFnQixDQUFTO0lBQ3pCLGtCQUFrQixDQUFTO0lBQzNCLEtBQUssQ0FBUztJQUNkLFFBQVEsQ0FBUztJQUUxQix3QkFBd0I7SUFDZixnQkFBZ0IsR0FBVyxFQUFFLENBQUM7SUFDOUIsa0JBQWtCLEdBQVcsRUFBRSxDQUFDO0lBRXpDLGdCQUFnQixDQUFTO0lBQ3pCLFdBQVcsQ0FBUztJQUNwQixPQUFPLENBQVMsQ0FBQywwQkFBMEI7SUFDM0MsZUFBZSxHQUFRLEVBQUUsQ0FBQztJQUMxQixjQUFjLEdBQVEsRUFBRSxDQUFDO0lBRXpCLHdCQUF3QixDQUFTO0lBQ2pDLHdCQUF3QixDQUFTO0lBRWpDLHNCQUFzQixDQUFTO0lBQy9CLHNCQUFzQixDQUFTO0lBRS9CLGdCQUFnQixDQUFtQjtJQUVuQyxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFHLENBQUM7SUFFbEQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDckMsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQ3JELGlDQUFpQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FDaEUsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUM3RCx5REFBeUQsQ0FDMUQsQ0FBQztRQUNGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FDN0QseURBQXlELENBQzFELENBQUM7UUFFRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQzNELHlEQUF5RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQzdFLENBQUM7UUFDRixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQzNELHlEQUF5RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQzdFLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQ3JELGdEQUFnRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQ2hELENBQUM7UUFFdEIsMkRBQTJEO1FBQzNELG1CQUFtQjtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsMkJBQTJCO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztZQUN6QyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUM7WUFFeEQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDL0IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBdkZVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLCtpQkFGaEIsQ0FBQyxZQUFZLENBQUMsMEJDN0IzQixnL0ZBeUZBLG9ORHRFSSxrQkFBa0IsZ1VBQ2xCLG1CQUFtQiwySEFDbkIseUJBQXlCLDJGQUN6QixPQUFPLG9GQUNQLGNBQWMsb09BQ2Qsb0JBQW9CLHdLQUNwQixxQkFBcUIsd1BBQ3JCLGtCQUFrQixnRUFDbEIsSUFBSTs7NEZBSUssZ0JBQWdCO2tCQWxCNUIsU0FBUzsrQkFDRSxZQUFZLGNBR1YsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQix5QkFBeUI7d0JBQ3pCLE9BQU87d0JBQ1AsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixJQUFJO3FCQUNMLGFBQ1UsQ0FBQyxZQUFZLENBQUM7aUZBSWhCLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGF5b3V0QmFja2dyb3VuZHMgfSBmcm9tICcuLi9sYXlvdXQvTGF5b3V0JztcbmltcG9ydCB7IEltYWdlQXNwZWN0UmF0aW8gfSBmcm9tICcuLi9pbWFnZS9pbWFnZSc7XG5pbXBvcnQgeyBMYXlvdXRCb3hDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvYm94L2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0R3JpZENvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEdyaWRDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQvZ3JpZC9ncmlkLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlL2ltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRTdGFja0NvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC9zdGFjay9zdGFjay5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2FzeXNIZWFkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGluZy9oZWFkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYXN5c0hyZWZEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2hyZWYvaHJlZi5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1zZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBMYXlvdXRCb3hDb21wb25lbnQsXG4gICAgTGF5b3V0R3JpZENvbXBvbmVudCxcbiAgICBMYXlvdXRHcmlkQ29sdW1uQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSW1hZ2VDb21wb25lbnQsXG4gICAgTGF5b3V0U3RhY2tDb21wb25lbnQsXG4gICAgT2FzeXNIZWFkaW5nQ29tcG9uZW50LFxuICAgIE9hc3lzSHJlZkRpcmVjdGl2ZSxcbiAgICBOZ0lmLFxuICBdLFxuICBwcm92aWRlcnM6IFtUb2tlblNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgLy8gU3R5bGUgaW5wdXQgdmFyaWFibGVzXG4gIEBJbnB1dCgpIGJyYW5kX2JhY2tncm91bmRfY29sb3VyOiBMYXlvdXRCYWNrZ3JvdW5kcztcbiAgQElucHV0KCkgbm9uX2JyYW5kX2JhY2tncm91bmRfY29sb3VyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRfb25fZGFya19vdmVycmlkZTogYm9vbGVhbiA9IGZhbHNlOyAvLyBUaGlzIGlzIGZvciBjdXN0b20vbm9uLWJyYW5kIEJHIGNvbG91cnNcbiAgQElucHV0KCkgaW1hZ2Vfb25fbGVmdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWN0aW9uX3R5cGU6ICdzcG90bGlnaHQnIHwgJ2luZm9ybScgPSAnaW5mb3JtJztcblxuICAvLyBDb250ZW50IGlucHV0IHZhcmlhYmxlc1xuICBASW5wdXQoKSBoZWFkaW5nX3RpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhlYWRpbmdfc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgcHJpbWFyeV9jdGFfdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBzZWNvbmRhcnlfY3RhX3RleHQ6IHN0cmluZztcbiAgQElucHV0KCkgaW1hZ2U6IHN0cmluZztcbiAgQElucHV0KCkgYWx0X3RleHQ6IHN0cmluZztcblxuICAvLyBFdmVudCBpbnB1dCB2YXJpYWJsZXNcbiAgQElucHV0KCkgaHJlZl9wcmltYXJ5X2N0YTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGhyZWZfc2Vjb25kYXJ5X2N0YTogc3RyaW5nID0gJyc7XG5cbiAgYmFja2dyb3VuZElzRGFyazogc3RyaW5nO1xuICBpc1Nwb3RMaWdodDogc3RyaW5nO1xuICB1aUJveElkOiBzdHJpbmc7IC8vIFRvIHJhbmRvbWlzZSB0aGUgYm94IGlkXG4gIG91dHRlckNvbnRhaW5lcjogYW55ID0ge307XG4gIGlubmVyQ29udGFpbmVyOiBhbnkgPSB7fTtcblxuICBjb250YWluZXJJbnNldFNwYWNlU21hbGw6IHN0cmluZztcbiAgY29udGFpbmVySW5zZXRTcGFjZUxhcmdlOiBzdHJpbmc7XG5cbiAgY29udGVudEluc2V0U3BhY2VTbWFsbDogc3RyaW5nO1xuICBjb250ZW50SW5zZXRTcGFjZUxhcmdlOiBzdHJpbmc7XG5cbiAgaW1hZ2VBc3BlY3RSYXRpbzogSW1hZ2VBc3BlY3RSYXRpbztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub25fYnJhbmRfYmFja2dyb3VuZF9jb2xvdXIpIHtcbiAgICAgIHRoaXMuc2V0Tm9uQnJhbmRCYWNrZ3JvdW5kQ29sb3VyKCk7XG4gICAgfVxuXG4gICAgLy8gVGhpcyBkb2Vzbid0IGFwcGVhciB0byBiZSB1c2VkIGFueXdoZXJlXG4gICAgdGhpcy5iYWNrZ3JvdW5kSXNEYXJrID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0VG9rZW5WYWx1ZShcbiAgICAgIGAtLW9hc3lzLWNvbXBvbmVudC1ib3gtb24tZGFyay0ke3RoaXMuYnJhbmRfYmFja2dyb3VuZF9jb2xvdXJ9YCxcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJJbnNldFNwYWNlU21hbGwgPSB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKFxuICAgICAgYC0tb2FzeXMtY29tcG9uZW50LXNlY3Rpb24taW5zZXQtc3BhY2luZy1jb250YWluZXItc21hbGxgLFxuICAgICk7XG4gICAgdGhpcy5jb250YWluZXJJbnNldFNwYWNlTGFyZ2UgPSB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKFxuICAgICAgYC0tb2FzeXMtY29tcG9uZW50LXNlY3Rpb24taW5zZXQtc3BhY2luZy1jb250YWluZXItbGFyZ2VgLFxuICAgICk7XG5cbiAgICB0aGlzLmNvbnRlbnRJbnNldFNwYWNlU21hbGwgPSB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKFxuICAgICAgYC0tb2FzeXMtY29tcG9uZW50LXNlY3Rpb24taW5zZXQtc3BhY2luZy1jb250ZW50LXNtYWxsLSR7dGhpcy5zZWN0aW9uX3R5cGV9YCxcbiAgICApO1xuICAgIHRoaXMuY29udGVudEluc2V0U3BhY2VMYXJnZSA9IHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoXG4gICAgICBgLS1vYXN5cy1jb21wb25lbnQtc2VjdGlvbi1pbnNldC1zcGFjaW5nLWNvbnRlbnQtbGFyZ2UtJHt0aGlzLnNlY3Rpb25fdHlwZX1gLFxuICAgICk7XG5cbiAgICB0aGlzLmltYWdlQXNwZWN0UmF0aW8gPSB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKFxuICAgICAgYC0tb2FzeXMtY29tcG9uZW50LXNlY3Rpb24taW1hZ2UtYXNwZWN0LXJhdGlvLSR7dGhpcy5zZWN0aW9uX3R5cGV9YCxcbiAgICApIGFzIEltYWdlQXNwZWN0UmF0aW87XG5cbiAgICAvLyBTZXR0aW5nIGEgdW5pcXVlIElELCB0aGlzIGlzIGltcG9ydGFudCAmIG5lZWRlZCB0byBhcHBseVxuICAgIC8vIHN0eWxlcyB0byB1aS1ib3hcbiAgICB0aGlzLnVpQm94SWQgPSBEYXRlLm5vdygpICsgJy0nICsgTWF0aC5yYW5kb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VycyBhcmUgYWJsZSB0byBzZXQgY3VzdG9tIG5vbiBicmFuZCBiYWNrZ3JvdW5kIGNvbG91cnNcbiAgICogSWYgYSBub24gYnJhbmQgYmFja2dyb3VuZCBjb2xvdXIgaXMgcHJvdmlkZWQgd2UgaWdub3JlIGJyYW5kZWQgY29sb3Vyc1xuICAgKiBldmVuIGlmIHRoZXkgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgc2V0Tm9uQnJhbmRCYWNrZ3JvdW5kQ29sb3VyKCk6IHZvaWQge1xuICAgIGNvbnN0IGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGB1aS1ib3gtJHt0aGlzLnVpQm94SWR9YCk7XG5cbiAgICBpZiAoYm94KSB7XG4gICAgICB0aGlzLmJyYW5kX2JhY2tncm91bmRfY29sb3VyID0gdW5kZWZpbmVkO1xuICAgICAgYm94LnN0eWxlLmJhY2tncm91bmQgPSB0aGlzLm5vbl9icmFuZF9iYWNrZ3JvdW5kX2NvbG91cjtcblxuICAgICAgaWYgKHRoaXMudGV4dF9vbl9kYXJrX292ZXJyaWRlKSB7XG4gICAgICAgIGJveC5jbGFzc0xpc3QuYWRkKCd0ZXh0LWNvbG9yLS1vbi1kYXJrJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8dWktYm94XG4gIGlkPVwidWktYm94LXt7IHVpQm94SWQgfX1cIlxuICBbYm94X2JhY2tncm91bmRdPVwiYnJhbmRfYmFja2dyb3VuZF9jb2xvdXJcIlxuICBbYm94X3NwYWNlX2xlZnRdPVwic2VjdGlvbl90eXBlID09PSAnc3BvdGxpZ2h0JyAmJiAhaW1hZ2Vfb25fbGVmdCA/ICdub25lJyA6IHVuZGVmaW5lZFwiXG4gIFtib3hfc3BhY2VfcmlnaHRdPVwic2VjdGlvbl90eXBlID09PSAnc3BvdGxpZ2h0JyAmJiBpbWFnZV9vbl9sZWZ0ID8gJ25vbmUnIDogdW5kZWZpbmVkXCJcbiAgW2JveF9zcGFjZV09XCJcbiAgICBzZWN0aW9uX3R5cGUgPT09ICdzcG90bGlnaHQnXG4gICAgICA/ICdub25lJ1xuICAgICAgOiB7XG4gICAgICAgICAgbW9iaWxlOiBjb250YWluZXJJbnNldFNwYWNlU21hbGwsXG4gICAgICAgICAgdGFibGV0OiBjb250YWluZXJJbnNldFNwYWNlTGFyZ2UsXG4gICAgICAgICAgbGFwdG9wOiBjb250YWluZXJJbnNldFNwYWNlTGFyZ2UsXG4gICAgICAgICAgZGVza3RvcDogY29udGFpbmVySW5zZXRTcGFjZUxhcmdlLFxuICAgICAgICB9XG4gIFwiXG4+XG4gIDx1aS1ncmlkIFtncmlkX2dhcF09XCJzZWN0aW9uX3R5cGUgPT09ICdzcG90bGlnaHQnID8gJ25vbmUnIDogJ2RlZmF1bHQnXCI+XG4gICAgPHVpLWNvbHVtblxuICAgICAgW2NvbHVtbnNdPVwiNlwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdpbWFnZS1sZWZ0JzogaW1hZ2Vfb25fbGVmdCwgJ2ltYWdlLXRvcC1tb2JpbGUnOiBpbWFnZV9vbl9sZWZ0IH1cIlxuICAgID5cbiAgICAgIDx1aS1ib3ggYm94X3NwYWNlPVwibm9uZVwiIGJveF9iYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIiBib3hfYWxpZ25feT1cImNlbnRlclwiPlxuICAgICAgICA8dWktaW1hZ2VcbiAgICAgICAgICBbaW1hZ2Vfc3JjXT1cImltYWdlXCJcbiAgICAgICAgICBbaW1hZ2VfYWx0X3RleHRdPVwiYWx0X3RleHRcIlxuICAgICAgICAgIFtwcmVsb2FkX2FzcGVjdF9yYXRpb109XCJpbWFnZUFzcGVjdFJhdGlvXCJcbiAgICAgICAgPjwvdWktaW1hZ2U+XG4gICAgICA8L3VpLWJveD5cbiAgICA8L3VpLWNvbHVtbj5cblxuICAgIDx1aS1jb2x1bW4gW2NvbHVtbnNdPVwiNlwiPlxuICAgICAgPHVpLWJveFxuICAgICAgICBbYm94X2JhY2tncm91bmRdPVwiYnJhbmRfYmFja2dyb3VuZF9jb2xvdXJcIlxuICAgICAgICBib3hfYWxpZ25feT1cImNlbnRlclwiXG4gICAgICAgIFtib3hfc3BhY2VdPVwiXG4gICAgICAgICAgc2VjdGlvbl90eXBlID09PSAnc3BvdGxpZ2h0J1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgbW9iaWxlOiBjb250ZW50SW5zZXRTcGFjZVNtYWxsLFxuICAgICAgICAgICAgICAgIHRhYmxldDogY29udGVudEluc2V0U3BhY2VMYXJnZSxcbiAgICAgICAgICAgICAgICBsYXB0b3A6IGNvbnRlbnRJbnNldFNwYWNlTGFyZ2UsXG4gICAgICAgICAgICAgICAgZGVza3RvcDogY29udGVudEluc2V0U3BhY2VMYXJnZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgbW9iaWxlOiBjb250ZW50SW5zZXRTcGFjZVNtYWxsLFxuICAgICAgICAgICAgICAgIHRhYmxldDogY29udGVudEluc2V0U3BhY2VTbWFsbCxcbiAgICAgICAgICAgICAgICBsYXB0b3A6IGNvbnRlbnRJbnNldFNwYWNlTGFyZ2UsXG4gICAgICAgICAgICAgICAgZGVza3RvcDogY29udGVudEluc2V0U3BhY2VMYXJnZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICA8dWktc3RhY2tcbiAgICAgICAgICBzdGFja19kaXJlY3Rpb249XCJ5XCJcbiAgICAgICAgICBzdGFja19hbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgc3RhY2tfZGlzdHJpYnV0ZT1cImNlbnRlclwiXG4gICAgICAgICAgW3N0YWNrX3dyYXBdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8dWktaGVhZGluZ1xuICAgICAgICAgICAgW2hlYWRpbmdfdHlwZV09XCJzZWN0aW9uX3R5cGUgPT09ICdzcG90bGlnaHQnID8gJ3ByaW1hcnknIDogJ2Z1bmN0aW9uYWwtcHJpbWFyeSdcIlxuICAgICAgICAgICAgW2hlYWRpbmdfdGl0bGVdPVwiaGVhZGluZ190aXRsZVwiXG4gICAgICAgICAgICBbaGVhZGluZ19zdWJ0aXRsZV09XCJoZWFkaW5nX3N1YnRpdGxlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC91aS1oZWFkaW5nPlxuXG4gICAgICAgICAgPHVpLXN0YWNrXG4gICAgICAgICAgICBzdGFja19kaXJlY3Rpb249XCJ4XCJcbiAgICAgICAgICAgIHN0YWNrX2FsaWduPVwic3RhcnRcIlxuICAgICAgICAgICAgW3N0YWNrX2Rpc3RyaWJ1dGVdPVwic2VjdGlvbl90eXBlID09PSAnc3BvdGxpZ2h0JyA/ICdjZW50ZXInIDogJ3N0YXJ0J1wiXG4gICAgICAgICAgICBbc3RhY2tfd3JhcF09XCJ0cnVlXCJcbiAgICAgICAgICAgIHN0YWNrX2dhcD1cIm5lYXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1saW5rIHRleHQtbGluay0tc3RhbmRhbG9uZVwiXG4gICAgICAgICAgICAgIFtocmVmXT1cImhyZWZfcHJpbWFyeV9jdGFcIlxuICAgICAgICAgICAgICBid3RyYWNrYXM9XCJvYXN5cy5zdG9yeS1ibG9jay5wcmltYXJ5LWN0YVwiXG4gICAgICAgICAgICAgID57eyBwcmltYXJ5X2N0YV90ZXh0IH19PC9hXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb25fdHlwZSAhPT0gJ3Nwb3RsaWdodCdcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtbGluayB0ZXh0LWxpbmstLXN0YW5kYWxvbmVcIlxuICAgICAgICAgICAgICBbaHJlZl09XCJocmVmX3NlY29uZGFyeV9jdGFcIlxuICAgICAgICAgICAgICBid3RyYWNrYXM9XCJvYXN5cy5zdG9yeS1ibG9jay5zZWNvbmRhcnktY3RhXCJcbiAgICAgICAgICAgICAgPnt7IHNlY29uZGFyeV9jdGFfdGV4dCB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvdWktc3RhY2s+XG4gICAgICAgIDwvdWktc3RhY2s+XG4gICAgICA8L3VpLWJveD5cbiAgICA8L3VpLWNvbHVtbj5cbiAgPC91aS1ncmlkPlxuPC91aS1ib3g+XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SectionComponent } from './section.component';
3
+ import * as i0 from "@angular/core";
4
+ export class SectionModule {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SectionModule, imports: [SectionComponent], exports: [SectionComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionModule });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [SectionComponent],
13
+ exports: [SectionComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24vc2VjdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLGFBQWE7d0dBQWIsYUFBYTt5R0FBYixhQUFhLFlBSGQsZ0JBQWdCLGFBQ2hCLGdCQUFnQjt5R0FFZixhQUFhOzs0RkFBYixhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VjdGlvbi5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbU2VjdGlvbkNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTZWN0aW9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbk1vZHVsZSB7fVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './select-card.component';
2
+ export * from './select-card.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1jYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWNhcmQubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,94 @@
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { TokenService } from '../../services/token.service';
3
+ import { NgClass, NgStyle, NgIf, NgTemplateOutlet } from '@angular/common';
4
+ import { LayoutBoxComponent } from '../layout/box/box.component';
5
+ import { LayoutStackComponent } from '../layout/stack/stack.component';
6
+ import { ImageComponent } from '../image/image.component';
7
+ import { OasysPriceComponent } from '../price/price.component';
8
+ import { IconComponent } from '../icon/icon.component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../../services/token.service";
11
+ export class SelectCardComponent {
12
+ tokenService;
13
+ // Image
14
+ image;
15
+ alt_text;
16
+ image_format;
17
+ // Content
18
+ title;
19
+ primary_copy;
20
+ secondary_copy;
21
+ price;
22
+ price_before_discount;
23
+ selected = false;
24
+ select_card_type = 'gift-card';
25
+ clicked = new EventEmitter();
26
+ aspectRatio;
27
+ alignment;
28
+ constructor(tokenService) {
29
+ this.tokenService = tokenService;
30
+ }
31
+ ngOnInit() {
32
+ if (!this.image) {
33
+ return;
34
+ }
35
+ this.aspectRatio = this.setImageAspectRatio(this.image_format);
36
+ }
37
+ onClick() {
38
+ this.clicked.emit();
39
+ }
40
+ /**
41
+ *
42
+ * @param format
43
+ * @returns
44
+ */
45
+ setImageAspectRatio(format) {
46
+ switch (format) {
47
+ case 'square':
48
+ return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-square');
49
+ case 'portrait':
50
+ return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');
51
+ default:
52
+ return this.tokenService.getTokenValue('--oasys-component-card-aspect-ratio-portrait');
53
+ }
54
+ }
55
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectCardComponent, deps: [{ token: i1.TokenService }], target: i0.ɵɵFactoryTarget.Component });
56
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectCardComponent, isStandalone: true, selector: "ui-select-card", inputs: { image: "image", alt_text: "alt_text", image_format: "image_format", title: "title", primary_copy: "primary_copy", secondary_copy: "secondary_copy", price: "price", price_before_discount: "price_before_discount", selected: "selected", select_card_type: "select_card_type" }, outputs: { clicked: "clicked" }, providers: [TokenService], ngImport: i0, template: "<button\n role=\"button\"\n class=\"ui-select-card--{{ select_card_type }}\"\n tabindex=\"0\"\n [ngClass]=\"{ selected: selected }\"\n [attr.aria-pressed]=\"selected ? 'true' : 'false'\"\n (click)=\"onClick()\"\n>\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <ui-stack stack_gap=\"none\" stack_align=\"center\">\n <ui-box\n class=\"ui-select-card__image\"\n [ngStyle]=\"{ 'aspect-ratio': aspectRatio }\"\n box_background=\"transparent\"\n box_align_x=\"center\"\n box_space=\"none\"\n >\n <ui-image\n *ngIf=\"image\"\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n [image_fill]=\"true\"\n ></ui-image>\n <ng-content></ng-content>\n </ui-box>\n <ng-template\n *ngIf=\"select_card_type === 'gift-card'\"\n [ngTemplateOutlet]=\"giftcard\"\n ></ng-template>\n <ng-template\n *ngIf=\"select_card_type === 'product-card'\"\n [ngTemplateOutlet]=\"productcard\"\n ></ng-template>\n </ui-stack>\n </ui-box>\n</button>\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\n [price]=\"price\"\n [price_before_discount]=\"price_before_discount\"\n price_type=\"primary\"\n ></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\n [price]=\"price\"\n [price_before_discount]=\"price_before_discount\"\n price_type=\"hero\"\n ></ui-price>\n <ui-icon\n *ngIf=\"price_before_discount\"\n class=\"ui-select-card--product-card__discount-icon\"\n icon_name=\"tag\"\n icon_size_override=\"1.5\"\n ></ui-icon>\n </ui-stack>\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>\n", styles: [".ui-select-card--gift-card,.ui-select-card--product-card{background-color:transparent;border:1px solid transparent;width:100%;display:block;padding:0;appearance:none;cursor:pointer;overflow:hidden}.ui-select-card--gift-card .ui-select-card__image .ui-box-content,.ui-select-card--product-card .ui-select-card__image .ui-box-content{height:100%}.ui-select-card--gift-card__text-stack,.ui-select-card--product-card__text-stack{width:100%}.ui-select-card--gift-card{border-radius:var(--oasys-radius-soften)}.ui-select-card--gift-card .ui-select-card__text-body{text-align:left;min-height:calc(var(--oasys-typography-heading-label-primary-line-height) * 2)}.ui-select-card--product-card{border-radius:var(--oasys-radius-layout);border:1px solid var(--oasys-color-brand-border-secondary)}.ui-select-card--product-card .text-body--default{text-align:left}.ui-select-card--product-card__discount-icon{border-radius:var(--oasys-radius-round);border:1px solid transparent;padding:var(--oasys-spacing-tiny);background-color:var(--oasys-color-brand-foreground-highlight)}.ui-select-card--gift-card.selected,.ui-select-card--product-card.selected{--_select-border-width: var(--oasys-border-width-primary);--_select-border-color: var(--oasys-color-interaction-border-selected);--_select-background-color: var(--oasys-color-interaction-background-selected);background-color:var(--_select-background-color);border:var(--_select-border-width) solid var(--_select-border-color)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LayoutBoxComponent, selector: "ui-box", inputs: ["box_space", "box_space_top", "box_space_right", "box_space_bottom", "box_space_left", "box_align_x", "box_align_y", "box_fill_mode", "box_background", "box_content_fill_width", "box_border_color", "box_border_width", "box_border_style", "box_border_radius"] }, { kind: "component", type: LayoutStackComponent, selector: "ui-stack", inputs: ["stack_gap", "stack_align", "stack_direction", "stack_distribute", "stack_wrap", "stack_collapse_below"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ImageComponent, selector: "ui-image", inputs: ["image_src", "image_alt_text", "image_aria_describedby", "image_fill", "fetchpriority", "loading", "preload_aspect_ratio", "image_width"], outputs: ["image_loaded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OasysPriceComponent, selector: "ui-price", inputs: ["price", "price_before_discount", "price_type"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["icon_size", "icon_size_override", "icon_name", "icon_context", "alt_text", "icon_class"] }], encapsulation: i0.ViewEncapsulation.None });
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectCardComponent, decorators: [{
59
+ type: Component,
60
+ args: [{ selector: 'ui-select-card', encapsulation: ViewEncapsulation.None, standalone: true, imports: [
61
+ NgClass,
62
+ LayoutBoxComponent,
63
+ LayoutStackComponent,
64
+ NgStyle,
65
+ NgIf,
66
+ ImageComponent,
67
+ NgTemplateOutlet,
68
+ OasysPriceComponent,
69
+ IconComponent,
70
+ ], providers: [TokenService], template: "<button\n role=\"button\"\n class=\"ui-select-card--{{ select_card_type }}\"\n tabindex=\"0\"\n [ngClass]=\"{ selected: selected }\"\n [attr.aria-pressed]=\"selected ? 'true' : 'false'\"\n (click)=\"onClick()\"\n>\n <ui-box box_space=\"none\" box_background=\"transparent\">\n <ui-stack stack_gap=\"none\" stack_align=\"center\">\n <ui-box\n class=\"ui-select-card__image\"\n [ngStyle]=\"{ 'aspect-ratio': aspectRatio }\"\n box_background=\"transparent\"\n box_align_x=\"center\"\n box_space=\"none\"\n >\n <ui-image\n *ngIf=\"image\"\n [image_src]=\"image\"\n [image_alt_text]=\"alt_text\"\n [image_fill]=\"true\"\n ></ui-image>\n <ng-content></ng-content>\n </ui-box>\n <ng-template\n *ngIf=\"select_card_type === 'gift-card'\"\n [ngTemplateOutlet]=\"giftcard\"\n ></ng-template>\n <ng-template\n *ngIf=\"select_card_type === 'product-card'\"\n [ngTemplateOutlet]=\"productcard\"\n ></ng-template>\n </ui-stack>\n </ui-box>\n</button>\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\n [price]=\"price\"\n [price_before_discount]=\"price_before_discount\"\n price_type=\"primary\"\n ></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\n [price]=\"price\"\n [price_before_discount]=\"price_before_discount\"\n price_type=\"hero\"\n ></ui-price>\n <ui-icon\n *ngIf=\"price_before_discount\"\n class=\"ui-select-card--product-card__discount-icon\"\n icon_name=\"tag\"\n icon_size_override=\"1.5\"\n ></ui-icon>\n </ui-stack>\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>\n", styles: [".ui-select-card--gift-card,.ui-select-card--product-card{background-color:transparent;border:1px solid transparent;width:100%;display:block;padding:0;appearance:none;cursor:pointer;overflow:hidden}.ui-select-card--gift-card .ui-select-card__image .ui-box-content,.ui-select-card--product-card .ui-select-card__image .ui-box-content{height:100%}.ui-select-card--gift-card__text-stack,.ui-select-card--product-card__text-stack{width:100%}.ui-select-card--gift-card{border-radius:var(--oasys-radius-soften)}.ui-select-card--gift-card .ui-select-card__text-body{text-align:left;min-height:calc(var(--oasys-typography-heading-label-primary-line-height) * 2)}.ui-select-card--product-card{border-radius:var(--oasys-radius-layout);border:1px solid var(--oasys-color-brand-border-secondary)}.ui-select-card--product-card .text-body--default{text-align:left}.ui-select-card--product-card__discount-icon{border-radius:var(--oasys-radius-round);border:1px solid transparent;padding:var(--oasys-spacing-tiny);background-color:var(--oasys-color-brand-foreground-highlight)}.ui-select-card--gift-card.selected,.ui-select-card--product-card.selected{--_select-border-width: var(--oasys-border-width-primary);--_select-border-color: var(--oasys-color-interaction-border-selected);--_select-background-color: var(--oasys-color-interaction-background-selected);background-color:var(--_select-background-color);border:var(--_select-border-width) solid var(--_select-border-color)}\n"] }]
71
+ }], ctorParameters: () => [{ type: i1.TokenService }], propDecorators: { image: [{
72
+ type: Input
73
+ }], alt_text: [{
74
+ type: Input
75
+ }], image_format: [{
76
+ type: Input
77
+ }], title: [{
78
+ type: Input
79
+ }], primary_copy: [{
80
+ type: Input
81
+ }], secondary_copy: [{
82
+ type: Input
83
+ }], price: [{
84
+ type: Input
85
+ }], price_before_discount: [{
86
+ type: Input
87
+ }], selected: [{
88
+ type: Input
89
+ }], select_card_type: [{
90
+ type: Input
91
+ }], clicked: [{
92
+ type: Output
93
+ }] } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QtY2FyZC9zZWxlY3QtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1jYXJkL3NlbGVjdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQXVCdkQsTUFBTSxPQUFPLG1CQUFtQjtJQW9CVjtJQW5CcEIsUUFBUTtJQUNDLEtBQUssQ0FBVTtJQUNmLFFBQVEsQ0FBUztJQUNqQixZQUFZLENBQVM7SUFFOUIsVUFBVTtJQUNELEtBQUssQ0FBUztJQUNkLFlBQVksQ0FBUztJQUNyQixjQUFjLENBQVM7SUFDdkIsS0FBSyxDQUFTO0lBQ2QscUJBQXFCLENBQVM7SUFDOUIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixnQkFBZ0IsR0FBb0IsV0FBVyxDQUFDO0lBRS9DLE9BQU8sR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUzRCxXQUFXLENBQVM7SUFDcEIsU0FBUyxDQUFTO0lBRWxCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUcsQ0FBQztJQUVsRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFjO1FBQ2hDLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQ3ZGLEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLDhDQUE4QyxDQUFDLENBQUM7WUFDekY7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzNGLENBQUM7SUFDSCxDQUFDO3dHQWhEVSxtQkFBbUI7NEZBQW5CLG1CQUFtQiwwWEFGbkIsQ0FBQyxZQUFZLENBQUMsMEJDNUIzQiw4b0ZBK0VBLGkvQ0Q3REksT0FBTyxvRkFDUCxrQkFBa0IsZ1VBQ2xCLG9CQUFvQix3S0FDcEIsT0FBTywyRUFDUCxJQUFJLDZGQUNKLGNBQWMsb09BQ2QsZ0JBQWdCLG9KQUNoQixtQkFBbUIsK0dBQ25CLGFBQWE7OzRGQUlKLG1CQUFtQjtrQkFuQi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUdYLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1Asa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLE9BQU87d0JBQ1AsSUFBSTt3QkFDSixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3FCQUNkLGFBQ1UsQ0FBQyxZQUFZLENBQUM7aUZBSWhCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExheW91dEJveENvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC9ib3gvYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMYXlvdXRTdGFja0NvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC9zdGFjay9zdGFjay5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2FzeXNQcmljZUNvbXBvbmVudCB9IGZyb20gJy4uL3ByaWNlL3ByaWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIElTZWxlY3RDYXJkVHlwZSA9ICdwcm9kdWN0LWNhcmQnIHwgJ2dpZnQtY2FyZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLXNlbGVjdC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nQ2xhc3MsXG4gICAgTGF5b3V0Qm94Q29tcG9uZW50LFxuICAgIExheW91dFN0YWNrQ29tcG9uZW50LFxuICAgIE5nU3R5bGUsXG4gICAgTmdJZixcbiAgICBJbWFnZUNvbXBvbmVudCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE9hc3lzUHJpY2VDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbVG9rZW5TZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8vIEltYWdlXG4gIEBJbnB1dCgpIGltYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHRfdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBpbWFnZV9mb3JtYXQ6IHN0cmluZztcblxuICAvLyBDb250ZW50XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByaW1hcnlfY29weTogc3RyaW5nO1xuICBASW5wdXQoKSBzZWNvbmRhcnlfY29weTogc3RyaW5nO1xuICBASW5wdXQoKSBwcmljZTogc3RyaW5nO1xuICBASW5wdXQoKSBwcmljZV9iZWZvcmVfZGlzY291bnQ6IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VsZWN0X2NhcmRfdHlwZTogSVNlbGVjdENhcmRUeXBlID0gJ2dpZnQtY2FyZCc7XG5cbiAgQE91dHB1dCgpIGNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBhc3BlY3RSYXRpbzogc3RyaW5nO1xuICBhbGlnbm1lbnQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRva2VuU2VydmljZTogVG9rZW5TZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbWFnZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXNwZWN0UmF0aW8gPSB0aGlzLnNldEltYWdlQXNwZWN0UmF0aW8odGhpcy5pbWFnZV9mb3JtYXQpO1xuICB9XG5cbiAgb25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtYXRcbiAgICogQHJldHVybnNcbiAgICovXG4gIHNldEltYWdlQXNwZWN0UmF0aW8oZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICdzcXVhcmUnOlxuICAgICAgICByZXR1cm4gdGhpcy50b2tlblNlcnZpY2UuZ2V0VG9rZW5WYWx1ZSgnLS1vYXN5cy1jb21wb25lbnQtY2FyZC1hc3BlY3QtcmF0aW8tc3F1YXJlJyk7XG4gICAgICBjYXNlICdwb3J0cmFpdCc6XG4gICAgICAgIHJldHVybiB0aGlzLnRva2VuU2VydmljZS5nZXRUb2tlblZhbHVlKCctLW9hc3lzLWNvbXBvbmVudC1jYXJkLWFzcGVjdC1yYXRpby1wb3J0cmFpdCcpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5TZXJ2aWNlLmdldFRva2VuVmFsdWUoJy0tb2FzeXMtY29tcG9uZW50LWNhcmQtYXNwZWN0LXJhdGlvLXBvcnRyYWl0Jyk7XG4gICAgfVxuICB9XG59XG4iLCI8YnV0dG9uXG4gIHJvbGU9XCJidXR0b25cIlxuICBjbGFzcz1cInVpLXNlbGVjdC1jYXJkLS17eyBzZWxlY3RfY2FyZF90eXBlIH19XCJcbiAgdGFiaW5kZXg9XCIwXCJcbiAgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWQgfVwiXG4gIFthdHRyLmFyaWEtcHJlc3NlZF09XCJzZWxlY3RlZCA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAoY2xpY2spPVwib25DbGljaygpXCJcbj5cbiAgPHVpLWJveCBib3hfc3BhY2U9XCJub25lXCIgYm94X2JhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiPlxuICAgIDx1aS1zdGFjayBzdGFja19nYXA9XCJub25lXCIgc3RhY2tfYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgIDx1aS1ib3hcbiAgICAgICAgY2xhc3M9XCJ1aS1zZWxlY3QtY2FyZF9faW1hZ2VcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7ICdhc3BlY3QtcmF0aW8nOiBhc3BlY3RSYXRpbyB9XCJcbiAgICAgICAgYm94X2JhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgIGJveF9hbGlnbl94PVwiY2VudGVyXCJcbiAgICAgICAgYm94X3NwYWNlPVwibm9uZVwiXG4gICAgICA+XG4gICAgICAgIDx1aS1pbWFnZVxuICAgICAgICAgICpuZ0lmPVwiaW1hZ2VcIlxuICAgICAgICAgIFtpbWFnZV9zcmNdPVwiaW1hZ2VcIlxuICAgICAgICAgIFtpbWFnZV9hbHRfdGV4dF09XCJhbHRfdGV4dFwiXG4gICAgICAgICAgW2ltYWdlX2ZpbGxdPVwidHJ1ZVwiXG4gICAgICAgID48L3VpLWltYWdlPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3VpLWJveD5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdJZj1cInNlbGVjdF9jYXJkX3R5cGUgPT09ICdnaWZ0LWNhcmQnXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZ2lmdGNhcmRcIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RfY2FyZF90eXBlID09PSAncHJvZHVjdC1jYXJkJ1wiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2R1Y3RjYXJkXCJcbiAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvdWktc3RhY2s+XG4gIDwvdWktYm94PlxuPC9idXR0b24+XG5cbjwhLS0tIEdJRlQgQ0FSRCBURU1QTEFURSAtLT5cbjxuZy10ZW1wbGF0ZSAjZ2lmdGNhcmQ+XG4gIDx1aS1ib3ggYm94X3NwYWNlPVwidGlnaHRcIiBib3hfYmFja2dyb3VuZD1cInRyYW5zcGFyZW50XCI+XG4gICAgPHVpLXN0YWNrIGNsYXNzPVwidWktc2VsZWN0LWNhcmRfX3RleHQtc3RhY2tcIiBzdGFja19kaXJlY3Rpb249XCJ5XCIgc3RhY2tfZ2FwPVwidGlnaHRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidWktc2VsZWN0LWNhcmRfX3RleHQtYm9keSB0ZXh0LWxhYmVsLS1wcmltYXJ5XCI+e3sgdGl0bGUgfX08L3NwYW4+XG5cbiAgICAgIDx1aS1wcmljZVxuICAgICAgICBbcHJpY2VdPVwicHJpY2VcIlxuICAgICAgICBbcHJpY2VfYmVmb3JlX2Rpc2NvdW50XT1cInByaWNlX2JlZm9yZV9kaXNjb3VudFwiXG4gICAgICAgIHByaWNlX3R5cGU9XCJwcmltYXJ5XCJcbiAgICAgID48L3VpLXByaWNlPlxuICAgIDwvdWktc3RhY2s+XG4gIDwvdWktYm94PlxuPC9uZy10ZW1wbGF0ZT5cblxuPCEtLS0gUFJPRFVDVCBDQVJEIFRFTVBMQVRFIC0tPlxuPG5nLXRlbXBsYXRlICNwcm9kdWN0Y2FyZD5cbiAgPHVpLWJveCBib3hfZmlsbF9tb2RlPVwiZml0XCIgYm94X3NwYWNlPVwibmVhclwiIGJveF9iYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIj5cbiAgICA8dWktc3RhY2sgc3RhY2tfZGlyZWN0aW9uPVwieVwiIHN0YWNrX2dhcD1cIm5lYXJcIj5cbiAgICAgIDx1aS1zdGFjayBjbGFzcz1cInVpLXNlbGVjdC1jYXJkX190ZXh0LXN0YWNrXCIgc3RhY2tfZGlyZWN0aW9uPVwieVwiIHN0YWNrX2dhcD1cIm5vbmVcIj5cbiAgICAgICAgPGg1Pnt7IHRpdGxlIH19PC9oNT5cbiAgICAgICAgPHVpLXN0YWNrIHN0YWNrX2RpcmVjdGlvbj1cInhcIiBzdGFja19nYXA9XCJuZWFyXCIgc3RhY2tfYWxpZ249XCJjZW50ZXJcIj5cbiAgICAgICAgICA8dWktcHJpY2VcbiAgICAgICAgICAgIFtwcmljZV09XCJwcmljZVwiXG4gICAgICAgICAgICBbcHJpY2VfYmVmb3JlX2Rpc2NvdW50XT1cInByaWNlX2JlZm9yZV9kaXNjb3VudFwiXG4gICAgICAgICAgICBwcmljZV90eXBlPVwiaGVyb1wiXG4gICAgICAgICAgPjwvdWktcHJpY2U+XG4gICAgICAgICAgPHVpLWljb25cbiAgICAgICAgICAgICpuZ0lmPVwicHJpY2VfYmVmb3JlX2Rpc2NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidWktc2VsZWN0LWNhcmQtLXByb2R1Y3QtY2FyZF9fZGlzY291bnQtaWNvblwiXG4gICAgICAgICAgICBpY29uX25hbWU9XCJ0YWdcIlxuICAgICAgICAgICAgaWNvbl9zaXplX292ZXJyaWRlPVwiMS41XCJcbiAgICAgICAgICA+PC91aS1pY29uPlxuICAgICAgICA8L3VpLXN0YWNrPlxuICAgICAgPC91aS1zdGFjaz5cbiAgICAgIDx1aS1zdGFjayBzdGFja19nYXA9XCJuZWFyXCI+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1ib2R5LS1zdXBwb3J0aW5nXCI+e3sgc2Vjb25kYXJ5X2NvcHkgfX08L3A+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1ib2R5LS1kZWZhdWx0XCI+e3sgcHJpbWFyeV9jb3B5IH19PC9wPlxuICAgICAgPC91aS1zdGFjaz5cbiAgICA8L3VpLXN0YWNrPlxuICA8L3VpLWJveD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=