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,154 @@
1
+ import { Component, ElementRef, EventEmitter, HostBinding, inject, Input, Output, signal, } from '@angular/core';
2
+ import { ImageService } from '../../services/image.service';
3
+ import { NgStyle } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * ImageComponent is a reusable component. Necessary accessibility attributes are set by default for a decorative image.
7
+ * alt text and airia described by text can be set to make the image non-decorative.
8
+ *
9
+ * TODO - migrate inputs to InputSignals when Angular supports it within angular 19.
10
+ * Issue - https://github.com/angular/angular/issues/53981
11
+ */
12
+ export class ImageComponent {
13
+ image_src;
14
+ image_alt_text = ''; // Default set here so images are set as decorative by default
15
+ image_aria_describedby = null;
16
+ image_fill = false;
17
+ fetchpriority = 'auto';
18
+ loading = 'lazy';
19
+ preload_aspect_ratio = '1:1';
20
+ image_width = null; // source when defining sizes either relates on viewport width or a specificed width in pixels
21
+ image_loaded = new EventEmitter();
22
+ imageService = inject(ImageService);
23
+ el = inject((ElementRef));
24
+ image = signal(null);
25
+ imageSizes = this.imageService.getImageSizes();
26
+ intersectionObserver = null;
27
+ get class() {
28
+ return `${this.image_fill ? 'imageFill' : ''}`;
29
+ }
30
+ /**
31
+ * On init lifecycle hook to create the image.
32
+ */
33
+ ngOnInit() {
34
+ this.createImage();
35
+ void this.setupLazyLoading();
36
+ }
37
+ /**
38
+ * On changes, handle any changes in input properties.
39
+ */
40
+ ngOnChanges(changes) {
41
+ if (changes['image_src'] || changes['image_width'] || changes['preload_aspect_ratio']) {
42
+ this.createImage();
43
+ this.cleanupObserver();
44
+ this.setupLazyLoading();
45
+ }
46
+ }
47
+ /**
48
+ * Clean up the observer when the component is destroyed.
49
+ */
50
+ ngOnDestroy() {
51
+ this.cleanupObserver();
52
+ }
53
+ /**
54
+ * Creates the image object with the provided properties.
55
+ */
56
+ createImage() {
57
+ const ratios = this.preload_aspect_ratio.split(':');
58
+ const imageUrlResponse = this.imageService.generateImageUrl(this.image_src);
59
+ const newImage = {
60
+ ...imageUrlResponse,
61
+ ratioWidth: parseInt(ratios[0], 10),
62
+ ratioHeight: parseInt(ratios[1], 10),
63
+ loading: this.loading,
64
+ fill: this.image_fill,
65
+ fetchpriority: this.fetchpriority,
66
+ preloadAspectRatio: this.preload_aspect_ratio,
67
+ width: this.image_width ? `${this.image_width}px` : null,
68
+ altText: this.image_alt_text,
69
+ ariaDescribedby: this.image_aria_describedby ?? null,
70
+ };
71
+ this.image.set(newImage);
72
+ }
73
+ /**
74
+ * Sets up lazy loading for the image using IntersectionObserver.
75
+ * This method observes the image element and loads the image when it comes into view.
76
+ * It sets the `src` attribute for the image and the `srcset` attribute for the source element.
77
+ * The observer is configured to remove the image after it has been observed to save memory.
78
+ */
79
+ setupLazyLoading() {
80
+ return Promise.resolve().then(() => {
81
+ // Defer setup until after the view is initialized to ensure the <img> element exists.
82
+ const imageElement = this.el.nativeElement.querySelector('img');
83
+ if (!imageElement) {
84
+ return;
85
+ }
86
+ this.intersectionObserver = new IntersectionObserver((entries) => {
87
+ entries.forEach((entry) => {
88
+ if (entry.isIntersecting) {
89
+ const img = entry.target;
90
+ const source = img.parentElement?.querySelector('source');
91
+ // Move the URL from data-src to src
92
+ const dataSrc = img.getAttribute('data-src');
93
+ if (dataSrc) {
94
+ img.setAttribute('src', dataSrc);
95
+ }
96
+ // Move the URLs from data-srcset to srcset
97
+ if (source) {
98
+ const dataSrcset = source.getAttribute('data-srcset');
99
+ if (dataSrcset) {
100
+ source.setAttribute('srcset', dataSrcset);
101
+ }
102
+ }
103
+ // Stop observing this image once it's loaded.
104
+ this.intersectionObserver?.unobserve(img);
105
+ }
106
+ });
107
+ }, {
108
+ root: null,
109
+ rootMargin: '100px',
110
+ threshold: 0.01,
111
+ });
112
+ this.intersectionObserver.observe(imageElement);
113
+ });
114
+ }
115
+ /**
116
+ * Cleans up the IntersectionObserver to prevent memory leaks.
117
+ * This method disconnects the observer and sets it to null.
118
+ */
119
+ cleanupObserver() {
120
+ if (this.intersectionObserver) {
121
+ this.intersectionObserver.disconnect();
122
+ this.intersectionObserver = null;
123
+ }
124
+ }
125
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "ui-image", inputs: { image_src: "image_src", image_alt_text: "image_alt_text", image_aria_describedby: "image_aria_describedby", image_fill: "image_fill", fetchpriority: "fetchpriority", loading: "loading", preload_aspect_ratio: "preload_aspect_ratio", image_width: "image_width" }, outputs: { image_loaded: "image_loaded" }, host: { properties: { "class": "this.class" } }, usesOnChanges: true, ngImport: i0, template: "@if (image()) {\n <picture>\n <source\n [attr.sizes]=\"image().width ?? imageSizes\"\n [attr.srcset]=\"null\"\n [attr.data-srcset]=\"image().srcSetUrls\"\n type=\"image/webp\"\n />\n\n <img\n [class.imageFill]=\"image().fill\"\n [attr.width]=\"image().ratioWidth\"\n [attr.height]=\"image().ratioHeight\"\n [attr.src]=\"null\"\n [attr.data-src]=\"image().fallbackUrl\"\n [attr.loading]=\"image().loading\"\n [attr.fetchpriority]=\"image().fetchpriority\"\n [attr.alt]=\"image().altText\"\n [attr.aria-describedby]=\"image().ariaDescribedby\"\n [ngStyle]=\"{ 'aspect-ratio': image().preloadAspectRatio }\"\n (load)=\"image_loaded.emit()\"\n />\n </picture>\n}\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
127
+ }
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, decorators: [{
129
+ type: Component,
130
+ args: [{ standalone: true, imports: [NgStyle], selector: 'ui-image', template: "@if (image()) {\n <picture>\n <source\n [attr.sizes]=\"image().width ?? imageSizes\"\n [attr.srcset]=\"null\"\n [attr.data-srcset]=\"image().srcSetUrls\"\n type=\"image/webp\"\n />\n\n <img\n [class.imageFill]=\"image().fill\"\n [attr.width]=\"image().ratioWidth\"\n [attr.height]=\"image().ratioHeight\"\n [attr.src]=\"null\"\n [attr.data-src]=\"image().fallbackUrl\"\n [attr.loading]=\"image().loading\"\n [attr.fetchpriority]=\"image().fetchpriority\"\n [attr.alt]=\"image().altText\"\n [attr.aria-describedby]=\"image().ariaDescribedby\"\n [ngStyle]=\"{ 'aspect-ratio': image().preloadAspectRatio }\"\n (load)=\"image_loaded.emit()\"\n />\n </picture>\n}\n", styles: [":host.imageFill,:host.imageFill picture,:host.imageFill img{display:block;height:100%}:host.imageFill img{object-fit:cover}img{display:block;width:100%;height:auto}\n"] }]
131
+ }], propDecorators: { image_src: [{
132
+ type: Input,
133
+ args: [{ required: true }]
134
+ }], image_alt_text: [{
135
+ type: Input
136
+ }], image_aria_describedby: [{
137
+ type: Input
138
+ }], image_fill: [{
139
+ type: Input
140
+ }], fetchpriority: [{
141
+ type: Input
142
+ }], loading: [{
143
+ type: Input
144
+ }], preload_aspect_ratio: [{
145
+ type: Input
146
+ }], image_width: [{
147
+ type: Input
148
+ }], image_loaded: [{
149
+ type: Output
150
+ }], class: [{
151
+ type: HostBinding,
152
+ args: ['class']
153
+ }] } });
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTFDOzs7Ozs7R0FNRztBQVFILE1BQU0sT0FBTyxjQUFjO0lBQ0UsU0FBUyxDQUFTO0lBQ3BDLGNBQWMsR0FBRyxFQUFFLENBQUMsQ0FBQyw4REFBOEQ7SUFDbkYsc0JBQXNCLEdBQWtCLElBQUksQ0FBQztJQUM3QyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGFBQWEsR0FBdUIsTUFBTSxDQUFDO0lBQzNDLE9BQU8sR0FBaUIsTUFBTSxDQUFDO0lBQy9CLG9CQUFvQixHQUFxQixLQUFLLENBQUM7SUFDL0MsV0FBVyxHQUFrQixJQUFJLENBQUMsQ0FBQyw4RkFBOEY7SUFFdkgsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFMUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxFQUFFLEdBQUcsTUFBTSxDQUEwQixDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBRXRFLEtBQUssR0FBRyxNQUFNLENBQWlCLElBQUksQ0FBQyxDQUFDO0lBQ3JD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QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRWEsWUFBWTtzQkFBOUIsTUFBTTtnQkFVbUIsS0FBSztzQkFBOUIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEltYWdlQXNwZWN0UmF0aW8sIEltYWdlRmV0Y2hQcmlvcml0eSwgSW1hZ2VMb2FkaW5nLCBVSUltYWdlIH0gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgeyBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBJbWFnZUNvbXBvbmVudCBpcyBhIHJldXNhYmxlIGNvbXBvbmVudC4gTmVjZXNzYXJ5IGFjY2Vzc2liaWxpdHkgYXR0cmlidXRlcyBhcmUgc2V0IGJ5IGRlZmF1bHQgZm9yIGEgZGVjb3JhdGl2ZSBpbWFnZS5cbiAqIGFsdCB0ZXh0IGFuZCBhaXJpYSBkZXNjcmliZWQgYnkgdGV4dCBjYW4gYmUgc2V0IHRvIG1ha2UgdGhlIGltYWdlIG5vbi1kZWNvcmF0aXZlLlxuICpcbiAqIFRPRE8gLSBtaWdyYXRlIGlucHV0cyB0byBJbnB1dFNpZ25hbHMgd2hlbiBBbmd1bGFyIHN1cHBvcnRzIGl0IHdpdGhpbiBhbmd1bGFyIDE5LlxuICogSXNzdWUgLSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81Mzk4MVxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nU3R5bGVdLFxuICBzZWxlY3RvcjogJ3VpLWltYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgaW1hZ2Vfc3JjOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGltYWdlX2FsdF90ZXh0ID0gJyc7IC8vIERlZmF1bHQgc2V0IGhlcmUgc28gaW1hZ2VzIGFyZSBzZXQgYXMgZGVjb3JhdGl2ZSBieSBkZWZhdWx0XG4gIEBJbnB1dCgpIGltYWdlX2FyaWFfZGVzY3JpYmVkYnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbWFnZV9maWxsID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZldGNocHJpb3JpdHk6IEltYWdlRmV0Y2hQcmlvcml0eSA9ICdhdXRvJztcbiAgQElucHV0KCkgbG9hZGluZzogSW1hZ2VMb2FkaW5nID0gJ2xhenknO1xuICBASW5wdXQoKSBwcmVsb2FkX2FzcGVjdF9yYXRpbzogSW1hZ2VBc3BlY3RSYXRpbyA9ICcxOjEnO1xuICBASW5wdXQoKSBpbWFnZV93aWR0aDogbnVtYmVyIHwgbnVsbCA9IG51bGw7IC8vIHNvdXJjZSB3aGVuIGRlZmluaW5nIHNpemVzIGVpdGhlciByZWxhdGVzIG9uIHZpZXdwb3J0IHdpZHRoIG9yIGEgc3BlY2lmaWNlZCB3aWR0aCBpbiBwaXhlbHNcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaW1hZ2VfbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW1hZ2VTZXJ2aWNlID0gaW5qZWN0KEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICByZWFkb25seSBpbWFnZSA9IHNpZ25hbDxVSUltYWdlIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGltYWdlU2l6ZXMgPSB0aGlzLmltYWdlU2VydmljZS5nZXRJbWFnZVNpemVzKCk7XG5cbiAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmltYWdlX2ZpbGwgPyAnaW1hZ2VGaWxsJyA6ICcnfWA7XG4gIH1cblxuICAvKipcbiAgICogT24gaW5pdCBsaWZlY3ljbGUgaG9vayB0byBjcmVhdGUgdGhlIGltYWdlLlxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVJbWFnZSgpO1xuICAgIHZvaWQgdGhpcy5zZXR1cExhenlMb2FkaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogT24gY2hhbmdlcywgaGFuZGxlIGFueSBjaGFuZ2VzIGluIGlucHV0IHByb3BlcnRpZXMuXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2ltYWdlX3NyYyddIHx8IGNoYW5nZXNbJ2ltYWdlX3dpZHRoJ10gfHwgY2hhbmdlc1sncHJlbG9hZF9hc3BlY3RfcmF0aW8nXSkge1xuICAgICAgdGhpcy5jcmVhdGVJbWFnZSgpO1xuICAgICAgdGhpcy5jbGVhbnVwT2JzZXJ2ZXIoKTtcbiAgICAgIHRoaXMuc2V0dXBMYXp5TG9hZGluZygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbiB1cCB0aGUgb2JzZXJ2ZXIgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cE9ic2VydmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgaW1hZ2Ugb2JqZWN0IHdpdGggdGhlIHByb3ZpZGVkIHByb3BlcnRpZXMuXG4gICAqL1xuICBjcmVhdGVJbWFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCByYXRpb3MgPSB0aGlzLnByZWxvYWRfYXNwZWN0X3JhdGlvLnNwbGl0KCc6Jyk7XG4gICAgY29uc3QgaW1hZ2VVcmxSZXNwb25zZSA9IHRoaXMuaW1hZ2VTZXJ2aWNlLmdlbmVyYXRlSW1hZ2VVcmwodGhpcy5pbWFnZV9zcmMpO1xuXG4gICAgY29uc3QgbmV3SW1hZ2U6IFVJSW1hZ2UgPSB7XG4gICAgICAuLi5pbWFnZVVybFJlc3BvbnNlLFxuICAgICAgcmF0aW9XaWR0aDogcGFyc2VJbnQocmF0aW9zWzBdLCAxMCksXG4gICAgICByYXRpb0hlaWdodDogcGFyc2VJbnQocmF0aW9zWzFdLCAxMCksXG4gICAgICBsb2FkaW5nOiB0aGlzLmxvYWRpbmcsXG4gICAgICBmaWxsOiB0aGlzLmltYWdlX2ZpbGwsXG4gICAgICBmZXRjaHByaW9yaXR5OiB0aGlzLmZldGNocHJpb3JpdHksXG4gICAgICBwcmVsb2FkQXNwZWN0UmF0aW86IHRoaXMucHJlbG9hZF9hc3BlY3RfcmF0aW8sXG4gICAgICB3aWR0aDogdGhpcy5pbWFnZV93aWR0aCA/IGAke3RoaXMuaW1hZ2Vfd2lkdGh9cHhgIDogbnVsbCxcbiAgICAgIGFsdFRleHQ6IHRoaXMuaW1hZ2VfYWx0X3RleHQsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6IHRoaXMuaW1hZ2VfYXJpYV9kZXNjcmliZWRieSA/PyBudWxsLFxuICAgIH07XG4gICAgdGhpcy5pbWFnZS5zZXQobmV3SW1hZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgbGF6eSBsb2FkaW5nIGZvciB0aGUgaW1hZ2UgdXNpbmcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIuXG4gICAqIFRoaXMgbWV0aG9kIG9ic2VydmVzIHRoZSBpbWFnZSBlbGVtZW50IGFuZCBsb2FkcyB0aGUgaW1hZ2Ugd2hlbiBpdCBjb21lcyBpbnRvIHZpZXcuXG4gICAqIEl0IHNldHMgdGhlIGBzcmNgIGF0dHJpYnV0ZSBmb3IgdGhlIGltYWdlIGFuZCB0aGUgYHNyY3NldGAgYXR0cmlidXRlIGZvciB0aGUgc291cmNlIGVsZW1lbnQuXG4gICAqIFRoZSBvYnNlcnZlciBpcyBjb25maWd1cmVkIHRvIHJlbW92ZSB0aGUgaW1hZ2UgYWZ0ZXIgaXQgaGFzIGJlZW4gb2JzZXJ2ZWQgdG8gc2F2ZSBtZW1vcnkuXG4gICAqL1xuICBwcml2YXRlIHNldHVwTGF6eUxvYWRpbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk6IHZvaWQgPT4ge1xuICAgICAgLy8gRGVmZXIgc2V0dXAgdW50aWwgYWZ0ZXIgdGhlIHZpZXcgaXMgaW5pdGlhbGl6ZWQgdG8gZW5zdXJlIHRoZSA8aW1nPiBlbGVtZW50IGV4aXN0cy5cbiAgICAgIGNvbnN0IGltYWdlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICAgIGlmICghaW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICBlbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgICAgY29uc3QgaW1nID0gZW50cnkudGFyZ2V0IGFzIEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGltZy5wYXJlbnRFbGVtZW50Py5xdWVyeVNlbGVjdG9yKCdzb3VyY2UnKTtcblxuICAgICAgICAgICAgICAvLyBNb3ZlIHRoZSBVUkwgZnJvbSBkYXRhLXNyYyB0byBzcmNcbiAgICAgICAgICAgICAgY29uc3QgZGF0YVNyYyA9IGltZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3JjJyk7XG4gICAgICAgICAgICAgIGlmIChkYXRhU3JjKSB7XG4gICAgICAgICAgICAgICAgaW1nLnNldEF0dHJpYnV0ZSgnc3JjJywgZGF0YVNyYyk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBNb3ZlIHRoZSBVUkxzIGZyb20gZGF0YS1zcmNzZXQgdG8gc3Jjc2V0XG4gICAgICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhU3Jjc2V0ID0gc291cmNlLmdldEF0dHJpYnV0ZSgnZGF0YS1zcmNzZXQnKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0YVNyY3NldCkge1xuICAgICAgICAgICAgICAgICAgc291cmNlLnNldEF0dHJpYnV0ZSgnc3Jjc2V0JywgZGF0YVNyY3NldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gU3RvcCBvYnNlcnZpbmcgdGhpcyBpbWFnZSBvbmNlIGl0J3MgbG9hZGVkLlxuICAgICAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyPy51bm9ic2VydmUoaW1nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHJvb3Q6IG51bGwsXG4gICAgICAgICAgcm9vdE1hcmdpbjogJzEwMHB4JyxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDAuMDEsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKGltYWdlRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW5zIHVwIHRoZSBJbnRlcnNlY3Rpb25PYnNlcnZlciB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcy5cbiAgICogVGhpcyBtZXRob2QgZGlzY29ubmVjdHMgdGhlIG9ic2VydmVyIGFuZCBzZXRzIGl0IHRvIG51bGwuXG4gICAqL1xuICBwcml2YXRlIGNsZWFudXBPYnNlcnZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlcikge1xuICAgICAgdGhpcy5pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLmludGVyc2VjdGlvbk9ic2VydmVyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIkBpZiAoaW1hZ2UoKSkge1xuICA8cGljdHVyZT5cbiAgICA8c291cmNlXG4gICAgICBbYXR0ci5zaXplc109XCJpbWFnZSgpLndpZHRoID8/IGltYWdlU2l6ZXNcIlxuICAgICAgW2F0dHIuc3Jjc2V0XT1cIm51bGxcIlxuICAgICAgW2F0dHIuZGF0YS1zcmNzZXRdPVwiaW1hZ2UoKS5zcmNTZXRVcmxzXCJcbiAgICAgIHR5cGU9XCJpbWFnZS93ZWJwXCJcbiAgICAvPlxuXG4gICAgPGltZ1xuICAgICAgW2NsYXNzLmltYWdlRmlsbF09XCJpbWFnZSgpLmZpbGxcIlxuICAgICAgW2F0dHIud2lkdGhdPVwiaW1hZ2UoKS5yYXRpb1dpZHRoXCJcbiAgICAgIFthdHRyLmhlaWdodF09XCJpbWFnZSgpLnJhdGlvSGVpZ2h0XCJcbiAgICAgIFthdHRyLnNyY109XCJudWxsXCJcbiAgICAgIFthdHRyLmRhdGEtc3JjXT1cImltYWdlKCkuZmFsbGJhY2tVcmxcIlxuICAgICAgW2F0dHIubG9hZGluZ109XCJpbWFnZSgpLmxvYWRpbmdcIlxuICAgICAgW2F0dHIuZmV0Y2hwcmlvcml0eV09XCJpbWFnZSgpLmZldGNocHJpb3JpdHlcIlxuICAgICAgW2F0dHIuYWx0XT1cImltYWdlKCkuYWx0VGV4dFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImltYWdlKCkuYXJpYURlc2NyaWJlZGJ5XCJcbiAgICAgIFtuZ1N0eWxlXT1cInsgJ2FzcGVjdC1yYXRpbyc6IGltYWdlKCkucHJlbG9hZEFzcGVjdFJhdGlvIH1cIlxuICAgICAgKGxvYWQpPVwiaW1hZ2VfbG9hZGVkLmVtaXQoKVwiXG4gICAgLz5cbiAgPC9waWN0dXJlPlxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW1hZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEltYWdlTG9hZGluZyA9ICdsYXp5JyB8ICdlYWdlcicgfCAnYXV0byc7XG5cbmV4cG9ydCB0eXBlIEltYWdlQXNwZWN0UmF0aW8gPSAnMToxJyB8ICczOjQnIHwgJzM6NScgfCAnNDozJyB8ICc1OjMnIHwgJzU6NCcgfCAnMTM6MTUnO1xuXG5leHBvcnQgdHlwZSBJbWFnZUZldGNoUHJpb3JpdHkgPSAnbG93JyB8ICdoaWdoJyB8ICdhdXRvJztcblxuZXhwb3J0IGludGVyZmFjZSBVSUltYWdlIGV4dGVuZHMgSW1hZ2VSZXNwb25zZSB7XG4gIHJhdGlvV2lkdGg6IG51bWJlcjtcbiAgcmF0aW9IZWlnaHQ6IG51bWJlcjtcbiAgbG9hZGluZzogSW1hZ2VMb2FkaW5nO1xuICBmaWxsOiBib29sZWFuO1xuICBmZXRjaHByaW9yaXR5OiBJbWFnZUZldGNoUHJpb3JpdHk7XG4gIHByZWxvYWRBc3BlY3RSYXRpbzogSW1hZ2VBc3BlY3RSYXRpbztcbiAgd2lkdGg6IHN0cmluZyB8IG51bGw7XG4gIGFsdFRleHQ6IHN0cmluZztcbiAgYXJpYURlc2NyaWJlZGJ5Pzogc3RyaW5nIHwgbnVsbDtcbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ImageComponent } from './image.component';
3
+ import * as i0 from "@angular/core";
4
+ export class OasysImageModule {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: OasysImageModule, imports: [ImageComponent], exports: [ImageComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysImageModule });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysImageModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [ImageComponent],
13
+ exports: [ImageComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxnQkFBZ0I7d0dBQWhCLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLFlBSGpCLGNBQWMsYUFDZCxjQUFjO3lHQUViLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtJbWFnZUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtJbWFnZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE9hc3lzSW1hZ2VNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './image.component';
2
+ export * from './image.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './label.component';
2
+ export * from './label.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xhYmVsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGFiZWwubW9kdWxlJztcbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { LayoutBoxComponent } from '../layout/box/box.component';
3
+ import { LayoutStackComponent } from '../layout/stack/stack.component';
4
+ import { NgIf } from '@angular/common';
5
+ import { IconComponent } from '../icon/icon.component';
6
+ import * as i0 from "@angular/core";
7
+ export class LabelComponent {
8
+ type = '';
9
+ text = '';
10
+ textStyle = '';
11
+ showIcon = true;
12
+ iconOverride;
13
+ backgroundColorOverride;
14
+ backgroundColour = 'tint-highlight';
15
+ iconName;
16
+ labelStyle;
17
+ textStyleToFontSizeMap = {
18
+ bodySupporting: 'text-body--supporting',
19
+ bodyMicro: 'text-body--micro',
20
+ '': 'text-body--supporting',
21
+ };
22
+ get fontSize() {
23
+ return this.textStyleToFontSizeMap[this.textStyle] || 'text-body--supporting';
24
+ }
25
+ ngOnInit() {
26
+ if (this.showIcon && this.iconOverride) {
27
+ this.iconName = this.iconOverride;
28
+ }
29
+ switch (this.type) {
30
+ case 'free-delivery':
31
+ this.setLabelProperties('delivery');
32
+ break;
33
+ case 'featured':
34
+ this.setLabelProperties('featured');
35
+ break;
36
+ case 'limited-edition':
37
+ this.setLabelProperties('logomark');
38
+ break;
39
+ case 'rewards-bonus-points':
40
+ this.setLabelProperties('rewards');
41
+ break;
42
+ default:
43
+ this.backgroundColour = 'tint-highlight';
44
+ }
45
+ }
46
+ setLabelProperties(defaultIconName) {
47
+ this.labelStyle = this.backgroundColorOverride || this.type;
48
+ this.iconName = this.iconName || defaultIconName;
49
+ }
50
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LabelComponent, isStandalone: true, selector: "ui-label", inputs: { type: "type", text: "text", textStyle: "textStyle", showIcon: "showIcon", iconOverride: "iconOverride", backgroundColorOverride: "backgroundColorOverride" }, ngImport: i0, template: "<ui-box\n class=\"ui-label oasys-label-style-{{ labelStyle }}\"\n box_space=\"tiny\"\n box_space_left=\"tight\"\n box_space_right=\"tight\"\n box_fill_mode=\"fit\"\n [box_background]=\"backgroundColour\"\n>\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_gap=\"tiny\">\n <ui-icon *ngIf=\"showIcon\" [icon_name]=\"iconName\" icon_size=\"small\"></ui-icon>\n <span [class]=\"fontSize\">{{ text }}</span>\n </ui-stack>\n</ui-box>\n", styles: [".ui-label{border-radius:var(--oasys-component-button-border-radius)}.oasys-label-style-free-delivery{background-color:var(--oasys-component-label-type-free-delivery-background);color:var(--oasys-component-label-type-free-delivery-foreground)}.oasys-label-style-featured{background-color:var(--oasys-component-label-type-featured-background);color:var(--oasys-component-label-type-featured-foreground)}.oasys-label-style-limited-edition{background-color:var(--oasys-component-label-type-limited-edition-background);color:var(--oasys-component-label-type-limited-edition-foreground)}.oasys-label-style-rewards-bonus-points{background-color:var(--oasys-component-label-type-rewards-bonus-points-background);color:var(--oasys-component-label-type-rewards-bonus-points-foreground)}\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: 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"] }, { kind: "component", type: IconComponent, selector: "ui-icon", inputs: ["icon_size", "icon_size_override", "icon_name", "icon_context", "alt_text", "icon_class"] }] });
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LabelComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'ui-label', standalone: true, imports: [LayoutBoxComponent, LayoutStackComponent, NgIf, IconComponent], template: "<ui-box\n class=\"ui-label oasys-label-style-{{ labelStyle }}\"\n box_space=\"tiny\"\n box_space_left=\"tight\"\n box_space_right=\"tight\"\n box_fill_mode=\"fit\"\n [box_background]=\"backgroundColour\"\n>\n <ui-stack stack_direction=\"x\" stack_align=\"center\" stack_gap=\"tiny\">\n <ui-icon *ngIf=\"showIcon\" [icon_name]=\"iconName\" icon_size=\"small\"></ui-icon>\n <span [class]=\"fontSize\">{{ text }}</span>\n </ui-stack>\n</ui-box>\n", styles: [".ui-label{border-radius:var(--oasys-component-button-border-radius)}.oasys-label-style-free-delivery{background-color:var(--oasys-component-label-type-free-delivery-background);color:var(--oasys-component-label-type-free-delivery-foreground)}.oasys-label-style-featured{background-color:var(--oasys-component-label-type-featured-background);color:var(--oasys-component-label-type-featured-foreground)}.oasys-label-style-limited-edition{background-color:var(--oasys-component-label-type-limited-edition-background);color:var(--oasys-component-label-type-limited-edition-foreground)}.oasys-label-style-rewards-bonus-points{background-color:var(--oasys-component-label-type-rewards-bonus-points-background);color:var(--oasys-component-label-type-rewards-bonus-points-foreground)}\n"] }]
56
+ }], propDecorators: { type: [{
57
+ type: Input
58
+ }], text: [{
59
+ type: Input
60
+ }], textStyle: [{
61
+ type: Input
62
+ }], showIcon: [{
63
+ type: Input
64
+ }], iconOverride: [{
65
+ type: Input
66
+ }], backgroundColorOverride: [{
67
+ type: Input
68
+ }] } });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYXN5cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xhYmVsL2xhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBZXZELE1BQU0sT0FBTyxjQUFjO0lBQ2hCLElBQUksR0FBc0IsRUFBRSxDQUFDO0lBQzdCLElBQUksR0FBVyxFQUFFLENBQUM7SUFDbEIsU0FBUyxHQUFjLEVBQUUsQ0FBQztJQUMxQixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLFlBQVksQ0FBWTtJQUN4Qix1QkFBdUIsQ0FBb0I7SUFFcEQsZ0JBQWdCLEdBQXNCLGdCQUFnQixDQUFDO0lBQ3ZELFFBQVEsQ0FBWTtJQUNwQixVQUFVLENBQW9CO0lBRWIsc0JBQXNCLEdBQThCO1FBQ25FLGNBQWMsRUFBRSx1QkFBdUI7UUFDdkMsU0FBUyxFQUFFLGtCQUFrQjtRQUM3QixFQUFFLEVBQUUsdUJBQXVCO0tBQzVCLENBQUM7SUFFRixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBc0IsQ0FBQyxJQUFJLHVCQUF1QixDQUFDO0lBQzdGLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDcEMsQ0FBQztRQUVELFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssZUFBZTtnQkFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwQyxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtZQUNSLEtBQUssaUJBQWlCO2dCQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07WUFDUixLQUFLLHNCQUFzQjtnQkFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsZUFBdUI7UUFDaEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLElBQUssSUFBSSxDQUFDLElBQTBCLENBQUM7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFLLGVBQTZCLENBQUM7SUFDbEUsQ0FBQzt3R0FoRFUsY0FBYzs0RkFBZCxjQUFjLDRPQ3JCM0IsMmNBYUEsbzBCRE1ZLGtCQUFrQixnVUFBRSxvQkFBb0Isd0tBQUUsSUFBSSw2RkFBRSxhQUFhOzs0RkFFNUQsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxVQUFVLGNBR1IsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQzs4QkFHL0QsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExheW91dEJhY2tncm91bmRzIH0gZnJvbSAnLi4vbGF5b3V0L0xheW91dCc7XG5pbXBvcnQgeyBJY29uTmFtZXMgfSBmcm9tICcuLi9pY29uL2ljb24nO1xuaW1wb3J0IHsgTGF5b3V0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0L2JveC9ib3guY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dFN0YWNrQ29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0L3N0YWNrL3N0YWNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcblxuaW50ZXJmYWNlIExhYmVsVHlwZSB7XG4gIHR5cGU6ICdmcmVlLWRlbGl2ZXJ5JyB8ICdmZWF0dXJlZCcgfCAnbGltaXRlZC1lZGl0aW9uJyB8ICdyZXdhcmRzLWJvbnVzLXBvaW50cycgfCAnJztcbn1cblxudHlwZSBUZXh0U3R5bGUgPSAnYm9keVN1cHBvcnRpbmcnIHwgJ2JvZHlNaWNybycgfCAnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sYWJlbC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTGF5b3V0Qm94Q29tcG9uZW50LCBMYXlvdXRTdGFja0NvbXBvbmVudCwgTmdJZiwgSWNvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIExhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgdHlwZTogTGFiZWxUeXBlWyd0eXBlJ10gPSAnJztcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRleHRTdHlsZTogVGV4dFN0eWxlID0gJyc7XG4gIEBJbnB1dCgpIHNob3dJY29uID0gdHJ1ZTtcbiAgQElucHV0KCkgaWNvbk92ZXJyaWRlOiBJY29uTmFtZXM7XG4gIEBJbnB1dCgpIGJhY2tncm91bmRDb2xvck92ZXJyaWRlOiBMYXlvdXRCYWNrZ3JvdW5kcztcblxuICBiYWNrZ3JvdW5kQ29sb3VyOiBMYXlvdXRCYWNrZ3JvdW5kcyA9ICd0aW50LWhpZ2hsaWdodCc7XG4gIGljb25OYW1lOiBJY29uTmFtZXM7XG4gIGxhYmVsU3R5bGU6IExheW91dEJhY2tncm91bmRzO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dFN0eWxlVG9Gb250U2l6ZU1hcDogUmVjb3JkPFRleHRTdHlsZSwgc3RyaW5nPiA9IHtcbiAgICBib2R5U3VwcG9ydGluZzogJ3RleHQtYm9keS0tc3VwcG9ydGluZycsXG4gICAgYm9keU1pY3JvOiAndGV4dC1ib2R5LS1taWNybycsXG4gICAgJyc6ICd0ZXh0LWJvZHktLXN1cHBvcnRpbmcnLFxuICB9O1xuXG4gIGdldCBmb250U2l6ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRleHRTdHlsZVRvRm9udFNpemVNYXBbdGhpcy50ZXh0U3R5bGUgYXMgVGV4dFN0eWxlXSB8fCAndGV4dC1ib2R5LS1zdXBwb3J0aW5nJztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dJY29uICYmIHRoaXMuaWNvbk92ZXJyaWRlKSB7XG4gICAgICB0aGlzLmljb25OYW1lID0gdGhpcy5pY29uT3ZlcnJpZGU7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgIGNhc2UgJ2ZyZWUtZGVsaXZlcnknOlxuICAgICAgICB0aGlzLnNldExhYmVsUHJvcGVydGllcygnZGVsaXZlcnknKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmZWF0dXJlZCc6XG4gICAgICAgIHRoaXMuc2V0TGFiZWxQcm9wZXJ0aWVzKCdmZWF0dXJlZCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xpbWl0ZWQtZWRpdGlvbic6XG4gICAgICAgIHRoaXMuc2V0TGFiZWxQcm9wZXJ0aWVzKCdsb2dvbWFyaycpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Jld2FyZHMtYm9udXMtcG9pbnRzJzpcbiAgICAgICAgdGhpcy5zZXRMYWJlbFByb3BlcnRpZXMoJ3Jld2FyZHMnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvdXIgPSAndGludC1oaWdobGlnaHQnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0TGFiZWxQcm9wZXJ0aWVzKGRlZmF1bHRJY29uTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sYWJlbFN0eWxlID0gdGhpcy5iYWNrZ3JvdW5kQ29sb3JPdmVycmlkZSB8fCAodGhpcy50eXBlIGFzIExheW91dEJhY2tncm91bmRzKTtcbiAgICB0aGlzLmljb25OYW1lID0gdGhpcy5pY29uTmFtZSB8fCAoZGVmYXVsdEljb25OYW1lIGFzIEljb25OYW1lcyk7XG4gIH1cbn1cbiIsIjx1aS1ib3hcbiAgY2xhc3M9XCJ1aS1sYWJlbCBvYXN5cy1sYWJlbC1zdHlsZS17eyBsYWJlbFN0eWxlIH19XCJcbiAgYm94X3NwYWNlPVwidGlueVwiXG4gIGJveF9zcGFjZV9sZWZ0PVwidGlnaHRcIlxuICBib3hfc3BhY2VfcmlnaHQ9XCJ0aWdodFwiXG4gIGJveF9maWxsX21vZGU9XCJmaXRcIlxuICBbYm94X2JhY2tncm91bmRdPVwiYmFja2dyb3VuZENvbG91clwiXG4+XG4gIDx1aS1zdGFjayBzdGFja19kaXJlY3Rpb249XCJ4XCIgc3RhY2tfYWxpZ249XCJjZW50ZXJcIiBzdGFja19nYXA9XCJ0aW55XCI+XG4gICAgPHVpLWljb24gKm5nSWY9XCJzaG93SWNvblwiIFtpY29uX25hbWVdPVwiaWNvbk5hbWVcIiBpY29uX3NpemU9XCJzbWFsbFwiPjwvdWktaWNvbj5cbiAgICA8c3BhbiBbY2xhc3NdPVwiZm9udFNpemVcIj57eyB0ZXh0IH19PC9zcGFuPlxuICA8L3VpLXN0YWNrPlxuPC91aS1ib3g+XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LabelComponent } from './label.component';
3
+ import * as i0 from "@angular/core";
4
+ export class OasysLabelModule {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: OasysLabelModule, imports: [LabelComponent], exports: [LabelComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysLabelModule });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OasysLabelModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ imports: [LabelComponent],
13
+ exports: [LabelComponent],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbC9sYWJlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxnQkFBZ0I7d0dBQWhCLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLFlBSGpCLGNBQWMsYUFDZCxjQUFjO3lHQUViLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFKNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL2xhYmVsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtMYWJlbENvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtMYWJlbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE9hc3lzTGFiZWxNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2FzeXMtbGliL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvTGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBNb3N0IGNvbW1vbiBzaXplIG9wdGlvbnNcbnR5cGUgTGF5b3V0QmFzZVNpemVzID0gJ25vbmUnIHwgJ3RpbnknIHwgJ3RpZ2h0JyB8ICduZWFyJyB8ICdkZWZhdWx0JyB8ICdleHBhbmRlZCcgfCB1bmRlZmluZWQ7XG5cbmludGVyZmFjZSBMYXlvdXREZXZpY2VUeXBlcyB7XG4gIG1vYmlsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdGFibGV0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBsYXB0b3A/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGRlc2t0b3A/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmludGVyZmFjZSBMYXlvdXREZXZpY2VDb2x1bW5zIHtcbiAgbW9iaWxlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB0YWJsZXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGxhcHRvcD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgZGVza3RvcD86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgUmVzcG9uc2l2ZUxheW91dEJhc2VTaXplcyA9IExheW91dEJhc2VTaXplcyB8IExheW91dERldmljZVR5cGVzO1xuZXhwb3J0IHR5cGUgUmVzcG9uc2l2ZUdyaWRDb2x1bW5zID0gbnVtYmVyIHwgTGF5b3V0RGV2aWNlQ29sdW1ucztcbmV4cG9ydCB0eXBlIExheW91dEJveFNpemVzID0gUmVzcG9uc2l2ZUxheW91dEJhc2VTaXplcztcbmV4cG9ydCB0eXBlIExheW91dEdhcFNpemVzID0gTGF5b3V0QmFzZVNpemVzO1xuXG5leHBvcnQgdHlwZSBMYXlvdXRGaWxsTW9kZXMgPSAnZml0JyB8ICdmaWxsJyB8ICdjb3Zlcic7XG5cbmV4cG9ydCB0eXBlIExheW91dEFsaWdubWVudCA9ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBMYXlvdXREaXN0cmlidXRlID1cbiAgfCBMYXlvdXRGaWxsTW9kZXNcbiAgfCBMYXlvdXRBbGlnbm1lbnRcbiAgfCAnc3BhY2UtYmV0d2VlbidcbiAgfCAnc3BhY2UtYXJvdW5kJ1xuICB8ICdzcGFjZS1ldmVubHknXG4gIHwgdW5kZWZpbmVkO1xuXG4vLyBCYWNrZ3JvdW5kcyB3aXRoICdjb3JlJyBhbmQgJ3RpbnQnIGFyZSBkZXByZWNhdGVkLFxuLy8gdXNlIHRoZSBzaW1wbGVyIG9wdGlvbnMgaW4gTGF5b3V0QmFja2dyb3VuZHNOZXdcbmV4cG9ydCB0eXBlIExheW91dEJhY2tncm91bmRzRGVwcmVjYXRlZCA9XG4gIHwgJ3RyYW5zcGFyZW50J1xuICB8ICdjb3JlLXByaW1hcnknXG4gIHwgJ2NvcmUtc2Vjb25kYXJ5J1xuICB8ICdjb3JlLXRlcnRpYXJ5J1xuICB8ICdjb3JlLXF1YXRlcm5hcnknXG4gIHwgJ3RpbnQtaGlnaGxpZ2h0J1xuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgTGF5b3V0QmFja2dyb3VuZHNOZXcgPVxuICB8ICd0cmFuc3BhcmVudCdcbiAgfCAncHJpbWFyeSdcbiAgfCAnc2Vjb25kYXJ5J1xuICB8ICd0ZXJ0aWFyeSdcbiAgfCAncXVhdGVybmFyeSdcbiAgfCAnaGlnaGxpZ2h0J1xuICB8ICdyZXdhcmRzLXByaW1hcnknXG4gIHwgJ3Jld2FyZHMtc2Vjb25kYXJ5J1xuICB8ICdyZXdhcmRzLXRlcnRpYXJ5J1xuICB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgTGF5b3V0QmFja2dyb3VuZHMgPSBMYXlvdXRCYWNrZ3JvdW5kc05ldyB8IExheW91dEJhY2tncm91bmRzRGVwcmVjYXRlZDtcblxuZXhwb3J0IHR5cGUgTGF5b3V0RGlyZWN0aW9ucyA9ICd4JyB8ICd5JyB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRDb250YWluZXJTaXplcyB7XG4gIG1vYmlsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdGFibGV0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBkZXNrdG9wPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSBMYXlvdXREZXZpY2VDb2xsYXBzZSA9ICd0YWJsZXQnIHwgJ2xhcHRvcCcgfCAnZGVza3RvcCcgfCAnbm9uZSc7XG4iXX0=