valtech-components 2.0.408 → 2.0.412

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 (109) hide show
  1. package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +82 -0
  2. package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +2 -0
  3. package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +82 -0
  4. package/esm2022/lib/components/atoms/rights-footer/types.mjs +2 -0
  5. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +55 -11
  6. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +13 -4
  7. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +27 -23
  8. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +277 -0
  9. package/esm2022/lib/components/molecules/footer-links/types.mjs +2 -0
  10. package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +157 -0
  11. package/esm2022/lib/components/molecules/links-accordion/types.mjs +2 -0
  12. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +12 -2
  13. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +39 -9
  14. package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
  15. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +13 -4
  16. package/esm2022/lib/components/molecules/recap-card/recap-card.component.mjs +78 -0
  17. package/esm2022/lib/components/molecules/recap-card/types.mjs +2 -0
  18. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +31 -14
  19. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +206 -0
  20. package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +2 -0
  21. package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +138 -0
  22. package/esm2022/lib/components/molecules/testimonial-card/types.mjs +2 -0
  23. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +14 -4
  24. package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +61 -0
  25. package/esm2022/lib/components/organisms/cards-carousel/types.mjs +2 -0
  26. package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +72 -0
  27. package/esm2022/lib/components/organisms/company-footer/types.mjs +2 -0
  28. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +184 -6
  29. package/esm2022/lib/components/organisms/data-table/types.mjs +1 -1
  30. package/esm2022/lib/components/organisms/form/form.component.mjs +2 -2
  31. package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +225 -0
  32. package/esm2022/lib/components/organisms/fun-header/types.mjs +2 -0
  33. package/esm2022/lib/components/organisms/menu/menu.component.mjs +197 -0
  34. package/esm2022/lib/components/organisms/menu/types.mjs +2 -0
  35. package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +72 -0
  36. package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +2 -0
  37. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +156 -0
  38. package/esm2022/lib/components/templates/page-content/types.mjs +2 -0
  39. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +181 -0
  40. package/esm2022/lib/components/templates/page-template/types.mjs +2 -0
  41. package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +195 -0
  42. package/esm2022/lib/components/templates/page-wrapper/types.mjs +2 -0
  43. package/esm2022/lib/components/types.mjs +1 -1
  44. package/esm2022/lib/services/firebase/config.mjs +103 -0
  45. package/esm2022/lib/services/firebase/firebase.service.mjs +285 -0
  46. package/esm2022/lib/services/firebase/firestore-collection.mjs +266 -0
  47. package/esm2022/lib/services/firebase/firestore.service.mjs +508 -0
  48. package/esm2022/lib/services/firebase/index.mjs +46 -0
  49. package/esm2022/lib/services/firebase/messaging.service.mjs +503 -0
  50. package/esm2022/lib/services/firebase/storage.service.mjs +421 -0
  51. package/esm2022/lib/services/firebase/types.mjs +8 -0
  52. package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
  53. package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
  54. package/esm2022/public-api.mjs +33 -1
  55. package/fesm2022/valtech-components.mjs +5839 -862
  56. package/fesm2022/valtech-components.mjs.map +1 -1
  57. package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +41 -0
  58. package/lib/components/atoms/horizontal-scroll/types.d.ts +13 -0
  59. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +39 -0
  60. package/lib/components/atoms/rights-footer/types.d.ts +13 -0
  61. package/lib/components/molecules/check-input/check-input.component.d.ts +17 -2
  62. package/lib/components/molecules/email-input/email-input.component.d.ts +1 -2
  63. package/lib/components/molecules/footer-links/footer-links.component.d.ts +47 -0
  64. package/lib/components/molecules/footer-links/types.d.ts +37 -0
  65. package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +48 -0
  66. package/lib/components/molecules/links-accordion/types.d.ts +33 -0
  67. package/lib/components/molecules/password-input/password-input.component.d.ts +1 -1
  68. package/lib/components/molecules/prompter/prompter.component.d.ts +9 -10
  69. package/lib/components/molecules/prompter/types.d.ts +7 -1
  70. package/lib/components/molecules/radio-input/radio-input.component.d.ts +1 -2
  71. package/lib/components/molecules/recap-card/recap-card.component.d.ts +36 -0
  72. package/lib/components/molecules/recap-card/types.d.ts +30 -0
  73. package/lib/components/molecules/select-input/select-input.component.d.ts +6 -1
  74. package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +66 -0
  75. package/lib/components/molecules/swipe-carousel/types.d.ts +35 -0
  76. package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +41 -0
  77. package/lib/components/molecules/testimonial-card/types.d.ts +25 -0
  78. package/lib/components/molecules/text-input/text-input.component.d.ts +13 -4
  79. package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +30 -0
  80. package/lib/components/organisms/cards-carousel/types.d.ts +11 -0
  81. package/lib/components/organisms/company-footer/company-footer.component.d.ts +32 -0
  82. package/lib/components/organisms/company-footer/types.d.ts +15 -0
  83. package/lib/components/organisms/data-table/data-table.component.d.ts +4 -1
  84. package/lib/components/organisms/data-table/types.d.ts +6 -0
  85. package/lib/components/organisms/fun-header/fun-header.component.d.ts +72 -0
  86. package/lib/components/organisms/fun-header/types.d.ts +28 -0
  87. package/lib/components/organisms/menu/menu.component.d.ts +39 -0
  88. package/lib/components/organisms/menu/types.d.ts +23 -0
  89. package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +33 -0
  90. package/lib/components/organisms/testimonial-carousel/types.d.ts +8 -0
  91. package/lib/components/templates/page-content/page-content.component.d.ts +55 -0
  92. package/lib/components/templates/page-content/types.d.ts +14 -0
  93. package/lib/components/templates/page-template/page-template.component.d.ts +49 -0
  94. package/lib/components/templates/page-template/types.d.ts +17 -0
  95. package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +61 -0
  96. package/lib/components/templates/page-wrapper/types.d.ts +19 -0
  97. package/lib/components/types.d.ts +14 -0
  98. package/lib/services/firebase/config.d.ts +49 -0
  99. package/lib/services/firebase/firebase.service.d.ts +140 -0
  100. package/lib/services/firebase/firestore-collection.d.ts +195 -0
  101. package/lib/services/firebase/firestore.service.d.ts +303 -0
  102. package/lib/services/firebase/index.d.ts +38 -0
  103. package/lib/services/firebase/messaging.service.d.ts +254 -0
  104. package/lib/services/firebase/storage.service.d.ts +204 -0
  105. package/lib/services/firebase/types.d.ts +279 -0
  106. package/lib/services/firebase/utils/path-builder.d.ts +132 -0
  107. package/lib/services/firebase/utils/query-builder.d.ts +210 -0
  108. package/package.json +3 -1
  109. package/public-api.d.ts +31 -0
@@ -0,0 +1,82 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ /**
6
+ * val-horizontal-scroll
7
+ *
8
+ * A generic horizontal scroll container that renders items using a provided template.
9
+ * Useful for carousels, galleries, or any horizontally scrollable content.
10
+ *
11
+ * @example
12
+ * <val-horizontal-scroll
13
+ * [items]="cards"
14
+ * [itemTemplate]="cardTemplate"
15
+ * [props]="{ gap: '16px', snapAlign: 'start' }"
16
+ * ></val-horizontal-scroll>
17
+ *
18
+ * <ng-template #cardTemplate let-item let-index="index">
19
+ * <div class="card">{{ item.title }}</div>
20
+ * </ng-template>
21
+ *
22
+ * @input items - Array of items to render
23
+ * @input itemTemplate - Template reference for rendering each item
24
+ * @input props - Optional configuration (gap, padding, showScrollbar, snapAlign)
25
+ */
26
+ export class HorizontalScrollComponent {
27
+ constructor() {
28
+ /**
29
+ * Array of items to render in the horizontal scroll.
30
+ */
31
+ this.items = [];
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HorizontalScrollComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HorizontalScrollComponent, isStandalone: true, selector: "val-horizontal-scroll", inputs: { items: "items", itemTemplate: "itemTemplate", props: "props" }, ngImport: i0, template: `
35
+ <div
36
+ class="horizontal-scroll-container"
37
+ [class.hide-scrollbar]="!props?.showScrollbar"
38
+ [class.snap-start]="props?.snapAlign === 'start'"
39
+ [class.snap-center]="props?.snapAlign === 'center'"
40
+ [style.padding]="props?.padding || '0px'"
41
+ >
42
+ <div class="items-wrapper" [style.gap]="props?.gap || '0px'">
43
+ @for (item of items; track $index) {
44
+ <div class="scroll-item">
45
+ <ng-container
46
+ *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: $index }"
47
+ ></ng-container>
48
+ </div>
49
+ }
50
+ </div>
51
+ </div>
52
+ `, isInline: true, styles: [".horizontal-scroll-container{overflow-x:scroll;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.horizontal-scroll-container.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.horizontal-scroll-container.hide-scrollbar::-webkit-scrollbar{display:none}.horizontal-scroll-container.snap-start{scroll-snap-type:x mandatory}.horizontal-scroll-container.snap-start .scroll-item{scroll-snap-align:start}.horizontal-scroll-container.snap-center{scroll-snap-type:x mandatory}.horizontal-scroll-container.snap-center .scroll-item{scroll-snap-align:center}.horizontal-scroll-container .items-wrapper{display:flex;flex-wrap:nowrap}.horizontal-scroll-container .items-wrapper .scroll-item{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HorizontalScrollComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'val-horizontal-scroll', standalone: true, imports: [CommonModule], template: `
57
+ <div
58
+ class="horizontal-scroll-container"
59
+ [class.hide-scrollbar]="!props?.showScrollbar"
60
+ [class.snap-start]="props?.snapAlign === 'start'"
61
+ [class.snap-center]="props?.snapAlign === 'center'"
62
+ [style.padding]="props?.padding || '0px'"
63
+ >
64
+ <div class="items-wrapper" [style.gap]="props?.gap || '0px'">
65
+ @for (item of items; track $index) {
66
+ <div class="scroll-item">
67
+ <ng-container
68
+ *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: $index }"
69
+ ></ng-container>
70
+ </div>
71
+ }
72
+ </div>
73
+ </div>
74
+ `, styles: [".horizontal-scroll-container{overflow-x:scroll;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.horizontal-scroll-container.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.horizontal-scroll-container.hide-scrollbar::-webkit-scrollbar{display:none}.horizontal-scroll-container.snap-start{scroll-snap-type:x mandatory}.horizontal-scroll-container.snap-start .scroll-item{scroll-snap-align:start}.horizontal-scroll-container.snap-center{scroll-snap-type:x mandatory}.horizontal-scroll-container.snap-center .scroll-item{scroll-snap-align:center}.horizontal-scroll-container .items-wrapper{display:flex;flex-wrap:nowrap}.horizontal-scroll-container .items-wrapper .scroll-item{flex-shrink:0}\n"] }]
75
+ }], propDecorators: { items: [{
76
+ type: Input
77
+ }], itemTemplate: [{
78
+ type: Input
79
+ }], props: [{
80
+ type: Input
81
+ }] } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1zY3JvbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL2hvcml6b250YWwtc2Nyb2xsL2hvcml6b250YWwtc2Nyb2xsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7OztBQUc5RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUEwQkgsTUFBTSxPQUFPLHlCQUF5QjtJQXpCdEM7UUEwQkU7O1dBRUc7UUFDTSxVQUFLLEdBQVEsRUFBRSxDQUFDO0tBWTFCOytHQWhCWSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwySkFyQjFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQsK3dCQW5CUyxZQUFZOzs0RkFzQlgseUJBQXlCO2tCQXpCckMsU0FBUzsrQkFDRSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDs4QkFPUSxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhvcml6b250YWxTY3JvbGxNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIHZhbC1ob3Jpem9udGFsLXNjcm9sbFxuICpcbiAqIEEgZ2VuZXJpYyBob3Jpem9udGFsIHNjcm9sbCBjb250YWluZXIgdGhhdCByZW5kZXJzIGl0ZW1zIHVzaW5nIGEgcHJvdmlkZWQgdGVtcGxhdGUuXG4gKiBVc2VmdWwgZm9yIGNhcm91c2VscywgZ2FsbGVyaWVzLCBvciBhbnkgaG9yaXpvbnRhbGx5IHNjcm9sbGFibGUgY29udGVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1ob3Jpem9udGFsLXNjcm9sbFxuICogICBbaXRlbXNdPVwiY2FyZHNcIlxuICogICBbaXRlbVRlbXBsYXRlXT1cImNhcmRUZW1wbGF0ZVwiXG4gKiAgIFtwcm9wc109XCJ7IGdhcDogJzE2cHgnLCBzbmFwQWxpZ246ICdzdGFydCcgfVwiXG4gKiA+PC92YWwtaG9yaXpvbnRhbC1zY3JvbGw+XG4gKlxuICogPG5nLXRlbXBsYXRlICNjYXJkVGVtcGxhdGUgbGV0LWl0ZW0gbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAqICAgPGRpdiBjbGFzcz1cImNhcmRcIj57eyBpdGVtLnRpdGxlIH19PC9kaXY+XG4gKiA8L25nLXRlbXBsYXRlPlxuICpcbiAqIEBpbnB1dCBpdGVtcyAtIEFycmF5IG9mIGl0ZW1zIHRvIHJlbmRlclxuICogQGlucHV0IGl0ZW1UZW1wbGF0ZSAtIFRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgcmVuZGVyaW5nIGVhY2ggaXRlbVxuICogQGlucHV0IHByb3BzIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiAoZ2FwLCBwYWRkaW5nLCBzaG93U2Nyb2xsYmFyLCBzbmFwQWxpZ24pXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1ob3Jpem9udGFsLXNjcm9sbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiaG9yaXpvbnRhbC1zY3JvbGwtY29udGFpbmVyXCJcbiAgICAgIFtjbGFzcy5oaWRlLXNjcm9sbGJhcl09XCIhcHJvcHM/LnNob3dTY3JvbGxiYXJcIlxuICAgICAgW2NsYXNzLnNuYXAtc3RhcnRdPVwicHJvcHM/LnNuYXBBbGlnbiA9PT0gJ3N0YXJ0J1wiXG4gICAgICBbY2xhc3Muc25hcC1jZW50ZXJdPVwicHJvcHM/LnNuYXBBbGlnbiA9PT0gJ2NlbnRlcidcIlxuICAgICAgW3N0eWxlLnBhZGRpbmddPVwicHJvcHM/LnBhZGRpbmcgfHwgJzBweCdcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJpdGVtcy13cmFwcGVyXCIgW3N0eWxlLmdhcF09XCJwcm9wcz8uZ2FwIHx8ICcwcHgnXCI+XG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtaXRlbVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGluZGV4OiAkaW5kZXggfVwiXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9ob3Jpem9udGFsLXNjcm9sbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBIb3Jpem9udGFsU2Nyb2xsQ29tcG9uZW50PFQgPSBhbnk+IHtcbiAgLyoqXG4gICAqIEFycmF5IG9mIGl0ZW1zIHRvIHJlbmRlciBpbiB0aGUgaG9yaXpvbnRhbCBzY3JvbGwuXG4gICAqL1xuICBASW5wdXQoKSBpdGVtczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgcmVuZGVyaW5nIGVhY2ggaXRlbS5cbiAgICogVGhlIHRlbXBsYXRlIHJlY2VpdmVzIHRoZSBpdGVtIGFzIGltcGxpY2l0IGNvbnRleHQgYW5kIGluZGV4IGFzICdpbmRleCcuXG4gICAqL1xuICBASW5wdXQoKSBpdGVtVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgaG9yaXpvbnRhbCBzY3JvbGwgY29udGFpbmVyLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM/OiBIb3Jpem9udGFsU2Nyb2xsTWV0YWRhdGE7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvaG9yaXpvbnRhbC1zY3JvbGwvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGhvcml6b250YWwgc2Nyb2xsIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Jpem9udGFsU2Nyb2xsTWV0YWRhdGEge1xuICAvKiogT3B0aW9uYWwgZ2FwIGJldHdlZW4gaXRlbXMgaW4gcGl4ZWxzIG9yIENTUyB1bml0cy4gRGVmYXVsdDogJzBweCcgKi9cbiAgZ2FwPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcGFkZGluZyBmb3IgdGhlIHNjcm9sbCBjb250YWluZXIuIERlZmF1bHQ6ICcwcHgnICovXG4gIHBhZGRpbmc/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIHNjcm9sbGJhci4gRGVmYXVsdDogZmFsc2UgKi9cbiAgc2hvd1Njcm9sbGJhcj86IGJvb2xlYW47XG4gIC8qKiBTbmFwIGJlaGF2aW9yIGZvciBzY3JvbGwgaXRlbXM6ICdub25lJyB8ICdzdGFydCcgfCAnY2VudGVyJy4gRGVmYXVsdDogJ25vbmUnICovXG4gIHNuYXBBbGlnbj86ICdub25lJyB8ICdzdGFydCcgfCAnY2VudGVyJztcbn1cbiJdfQ==
@@ -0,0 +1,82 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input } from '@angular/core';
3
+ import { TextComponent } from '../text/text.component';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * val-rights-footer
7
+ *
8
+ * A simple component that displays copyright text with dynamic year.
9
+ * Useful for footers where you need to show "© 2024 Company. All rights reserved."
10
+ *
11
+ * @example
12
+ * <val-rights-footer></val-rights-footer>
13
+ *
14
+ * @example
15
+ * <val-rights-footer
16
+ * [props]="{
17
+ * companyName: 'My Company',
18
+ * rightsText: 'All rights reserved.',
19
+ * color: 'medium',
20
+ * align: 'left'
21
+ * }"
22
+ * ></val-rights-footer>
23
+ *
24
+ * @input props - Optional configuration (companyName, rightsText, color, align)
25
+ */
26
+ export class RightsFooterComponent {
27
+ constructor() {
28
+ /**
29
+ * Current year for copyright.
30
+ */
31
+ this.currentYear = new Date().getFullYear();
32
+ }
33
+ /**
34
+ * Computed copyright text.
35
+ */
36
+ get copyrightText() {
37
+ const company = this.props?.companyName || 'Valtech';
38
+ const rights = this.props?.rightsText || 'Todos los derechos reservados.';
39
+ return `© ${this.currentYear} ${company}. ${rights}`;
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RightsFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RightsFooterComponent, isStandalone: true, selector: "val-rights-footer", inputs: { props: "props" }, ngImport: i0, template: `
43
+ <div
44
+ class="rights-footer"
45
+ [class.rights-footer--left]="props?.align === 'left'"
46
+ [class.rights-footer--center]="props?.align === 'center' || !props?.align"
47
+ [class.rights-footer--right]="props?.align === 'right'"
48
+ >
49
+ <val-text
50
+ [props]="{
51
+ content: copyrightText,
52
+ color: props?.color || 'dark',
53
+ bold: false,
54
+ size: 'small'
55
+ }"
56
+ />
57
+ </div>
58
+ `, isInline: true, styles: [".rights-footer{display:block;margin-top:24px}.rights-footer--left{text-align:left}.rights-footer--center{text-align:center}.rights-footer--right{text-align:right}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RightsFooterComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: 'val-rights-footer', standalone: true, imports: [CommonModule, TextComponent], template: `
63
+ <div
64
+ class="rights-footer"
65
+ [class.rights-footer--left]="props?.align === 'left'"
66
+ [class.rights-footer--center]="props?.align === 'center' || !props?.align"
67
+ [class.rights-footer--right]="props?.align === 'right'"
68
+ >
69
+ <val-text
70
+ [props]="{
71
+ content: copyrightText,
72
+ color: props?.color || 'dark',
73
+ bold: false,
74
+ size: 'small'
75
+ }"
76
+ />
77
+ </div>
78
+ `, styles: [".rights-footer{display:block;margin-top:24px}.rights-footer--left{text-align:left}.rights-footer--center{text-align:center}.rights-footer--right{text-align:right}\n"] }]
79
+ }], propDecorators: { props: [{
80
+ type: Input
81
+ }] } });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlnaHRzLWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcmlnaHRzLWZvb3Rlci9yaWdodHMtZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUd2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUF3QkgsTUFBTSxPQUFPLHFCQUFxQjtJQXZCbEM7UUE2QkU7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7S0FVeEM7SUFSQzs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLFNBQVMsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxnQ0FBZ0MsQ0FBQztRQUMxRSxPQUFPLEtBQUssSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7SUFDdkQsQ0FBQzsrR0FsQlUscUJBQXFCO21HQUFyQixxQkFBcUIseUdBbkJ0Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVCw2T0FqQlMsWUFBWSwrQkFBRSxhQUFhOzs0RkFvQjFCLHFCQUFxQjtrQkF2QmpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsWUFDNUI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7OEJBT1EsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFJpZ2h0c0Zvb3Rlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogdmFsLXJpZ2h0cy1mb290ZXJcbiAqXG4gKiBBIHNpbXBsZSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBjb3B5cmlnaHQgdGV4dCB3aXRoIGR5bmFtaWMgeWVhci5cbiAqIFVzZWZ1bCBmb3IgZm9vdGVycyB3aGVyZSB5b3UgbmVlZCB0byBzaG93IFwiwqkgMjAyNCBDb21wYW55LiBBbGwgcmlnaHRzIHJlc2VydmVkLlwiXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtcmlnaHRzLWZvb3Rlcj48L3ZhbC1yaWdodHMtZm9vdGVyPlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLXJpZ2h0cy1mb290ZXJcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjb21wYW55TmFtZTogJ015IENvbXBhbnknLFxuICogICAgIHJpZ2h0c1RleHQ6ICdBbGwgcmlnaHRzIHJlc2VydmVkLicsXG4gKiAgICAgY29sb3I6ICdtZWRpdW0nLFxuICogICAgIGFsaWduOiAnbGVmdCdcbiAqICAgfVwiXG4gKiA+PC92YWwtcmlnaHRzLWZvb3Rlcj5cbiAqXG4gKiBAaW5wdXQgcHJvcHMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIChjb21wYW55TmFtZSwgcmlnaHRzVGV4dCwgY29sb3IsIGFsaWduKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcmlnaHRzLWZvb3RlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRleHRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmlnaHRzLWZvb3RlclwiXG4gICAgICBbY2xhc3MucmlnaHRzLWZvb3Rlci0tbGVmdF09XCJwcm9wcz8uYWxpZ24gPT09ICdsZWZ0J1wiXG4gICAgICBbY2xhc3MucmlnaHRzLWZvb3Rlci0tY2VudGVyXT1cInByb3BzPy5hbGlnbiA9PT0gJ2NlbnRlcicgfHwgIXByb3BzPy5hbGlnblwiXG4gICAgICBbY2xhc3MucmlnaHRzLWZvb3Rlci0tcmlnaHRdPVwicHJvcHM/LmFsaWduID09PSAncmlnaHQnXCJcbiAgICA+XG4gICAgICA8dmFsLXRleHRcbiAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICBjb250ZW50OiBjb3B5cmlnaHRUZXh0LFxuICAgICAgICAgIGNvbG9yOiBwcm9wcz8uY29sb3IgfHwgJ2RhcmsnLFxuICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgIHNpemU6ICdzbWFsbCdcbiAgICAgICAgfVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9yaWdodHMtZm9vdGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFJpZ2h0c0Zvb3RlckNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9uIGZvciB0aGUgcmlnaHRzIGZvb3Rlci5cbiAgICovXG4gIEBJbnB1dCgpIHByb3BzPzogUmlnaHRzRm9vdGVyTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgeWVhciBmb3IgY29weXJpZ2h0LlxuICAgKi9cbiAgY3VycmVudFllYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XG5cbiAgLyoqXG4gICAqIENvbXB1dGVkIGNvcHlyaWdodCB0ZXh0LlxuICAgKi9cbiAgZ2V0IGNvcHlyaWdodFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb21wYW55ID0gdGhpcy5wcm9wcz8uY29tcGFueU5hbWUgfHwgJ1ZhbHRlY2gnO1xuICAgIGNvbnN0IHJpZ2h0cyA9IHRoaXMucHJvcHM/LnJpZ2h0c1RleHQgfHwgJ1RvZG9zIGxvcyBkZXJlY2hvcyByZXNlcnZhZG9zLic7XG4gICAgcmV0dXJuIGDCqSAke3RoaXMuY3VycmVudFllYXJ9ICR7Y29tcGFueX0uICR7cmlnaHRzfWA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcmlnaHRzLWZvb3Rlci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgcmlnaHRzIGZvb3RlciBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlnaHRzRm9vdGVyTWV0YWRhdGEge1xuICAvKiogQ29tcGFueSBuYW1lIHRvIGRpc3BsYXkuIERlZmF1bHQ6ICdWYWx0ZWNoJyAqL1xuICBjb21wYW55TmFtZT86IHN0cmluZztcbiAgLyoqIFJpZ2h0cyB0ZXh0LiBEZWZhdWx0OiAnVG9kb3MgbG9zIGRlcmVjaG9zIHJlc2VydmFkb3MuJyAqL1xuICByaWdodHNUZXh0Pzogc3RyaW5nO1xuICAvKiogVGV4dCBjb2xvci4gRGVmYXVsdDogJ2RhcmsnICovXG4gIGNvbG9yPzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndGVydGlhcnknIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2RhbmdlcicgfCAnZGFyaycgfCAnbGlnaHQnIHwgJ21lZGl1bSc7XG4gIC8qKiBUZXh0IGFsaWdubWVudC4gRGVmYXVsdDogJ2NlbnRlcicgKi9cbiAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc7XG59XG4iXX0=
@@ -1,23 +1,67 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component } from '@angular/core';
1
+ import { CommonModule, AsyncPipe } from '@angular/common';
2
+ import { Component, inject, Input } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
3
4
  import { IonCheckbox } from '@ionic/angular/standalone';
5
+ import { of } from 'rxjs';
6
+ import { LangService } from '../../../services/lang-provider/lang-provider.service';
4
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
5
10
  /**
6
11
  * val-check-input
7
12
  *
8
- * A simple checkbox input for boolean values or agreements.
13
+ * A checkbox input for boolean values, integrated with Angular forms.
14
+ * Supports i18n for label text via static or reactive content.
9
15
  *
10
- * @example
11
- * <val-check-input></val-check-input>
16
+ * @example Static label:
17
+ * <val-check-input [props]="{ control: myControl, label: 'I agree' }"></val-check-input>
18
+ *
19
+ * @example Reactive i18n label:
20
+ * <val-check-input [props]="{
21
+ * control: myControl,
22
+ * contentKey: 'termsAgreement',
23
+ * contentClass: 'MyComponent',
24
+ * contentFallback: 'I agree to the terms'
25
+ * }"></val-check-input>
26
+ *
27
+ * @input props: InputMetadata - Configuration for the checkbox (form control, label, content config, etc.)
12
28
  */
13
29
  export class CheckInputComponent {
14
- constructor() { }
15
- ngOnInit() { }
30
+ constructor() {
31
+ this.langService = inject(LangService);
32
+ }
33
+ ngOnInit() {
34
+ this.setupDisplayLabel();
35
+ }
36
+ setupDisplayLabel() {
37
+ if (this.props.label) {
38
+ // Static label
39
+ this.displayLabel$ = of(this.props.label);
40
+ }
41
+ else if (this.props.contentKey && this.props.contentClass) {
42
+ // Reactive content from language service
43
+ this.displayLabel$ = this.langService.getContent(this.props.contentClass, this.props.contentKey, this.props.contentFallback);
44
+ }
45
+ else {
46
+ // Fallback
47
+ this.displayLabel$ = of(this.props.contentFallback || '');
48
+ }
49
+ }
16
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CheckInputComponent, isStandalone: true, selector: "val-check-input", ngImport: i0, template: ` <ion-checkbox>I agree to the terms and conditions</ion-checkbox> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CheckInputComponent, isStandalone: true, selector: "val-check-input", inputs: { props: "props" }, ngImport: i0, template: `
52
+ <ion-checkbox [formControl]="props.control" [labelPlacement]="props.labelPlacement || 'end'">
53
+ {{ displayLabel$ | async }}
54
+ </ion-checkbox>
55
+ `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "errorText", "helperText", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
18
56
  }
19
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckInputComponent, decorators: [{
20
58
  type: Component,
21
- args: [{ selector: 'val-check-input', standalone: true, imports: [CommonModule, IonCheckbox], template: ` <ion-checkbox>I agree to the terms and conditions</ion-checkbox> ` }]
22
- }], ctorParameters: () => [] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2staW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQVN4RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOytHQUhGLG1CQUFtQjttR0FBbkIsbUJBQW1CLDJFQVhwQixvRUFBb0UseUVBRHBFLFlBQVksK0JBQUUsV0FBVzs7NEZBWXhCLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLFlBQzFCLG9FQUFvRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQ2hlY2tib3ggfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoZWNrLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQ2hlY2tib3hdLFxuICB0ZW1wbGF0ZTogYCA8aW9uLWNoZWNrYm94PkkgYWdyZWUgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zPC9pb24tY2hlY2tib3g+IGAsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY2hlY2staW5wdXRcbiAqXG4gKiBBIHNpbXBsZSBjaGVja2JveCBpbnB1dCBmb3IgYm9vbGVhbiB2YWx1ZXMgb3IgYWdyZWVtZW50cy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1jaGVjay1pbnB1dD48L3ZhbC1jaGVjay1pbnB1dD5cbiAqL1xuZXhwb3J0IGNsYXNzIENoZWNrSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIl19
59
+ args: [{ selector: 'val-check-input', standalone: true, imports: [CommonModule, AsyncPipe, ReactiveFormsModule, IonCheckbox], template: `
60
+ <ion-checkbox [formControl]="props.control" [labelPlacement]="props.labelPlacement || 'end'">
61
+ {{ displayLabel$ | async }}
62
+ </ion-checkbox>
63
+ ` }]
64
+ }], propDecorators: { props: [{
65
+ type: Input
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2staW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jaGVjay1pbnB1dC9jaGVjay1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOzs7O0FBY3BGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBOUJoQztRQStCVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQW9DM0M7SUFwQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLGVBQWU7WUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUQseUNBQXlDO1lBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQzNCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLFdBQVc7WUFDWCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQzsrR0FwQ1UsbUJBQW1CO21HQUFuQixtQkFBbUIsdUdBMUJwQjs7OztHQUlULHlFQUxTLFlBQVksbUZBQWEsbUJBQW1CLDBUQUFFLFdBQVc7OzRGQTJCeEQsbUJBQW1CO2tCQTlCL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxZQUMxRDs7OztHQUlUOzhCQW1DUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkNoZWNrYm94IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGFuZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYW5nLXByb3ZpZGVyL2xhbmctcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hlY2staW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBc3luY1BpcGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIElvbkNoZWNrYm94XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWNoZWNrYm94IFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCIgW2xhYmVsUGxhY2VtZW50XT1cInByb3BzLmxhYmVsUGxhY2VtZW50IHx8ICdlbmQnXCI+XG4gICAgICB7eyBkaXNwbGF5TGFiZWwkIHwgYXN5bmMgfX1cbiAgICA8L2lvbi1jaGVja2JveD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2staW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1jaGVjay1pbnB1dFxuICpcbiAqIEEgY2hlY2tib3ggaW5wdXQgZm9yIGJvb2xlYW4gdmFsdWVzLCBpbnRlZ3JhdGVkIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqIFN1cHBvcnRzIGkxOG4gZm9yIGxhYmVsIHRleHQgdmlhIHN0YXRpYyBvciByZWFjdGl2ZSBjb250ZW50LlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyBsYWJlbDpcbiAqIDx2YWwtY2hlY2staW5wdXQgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBsYWJlbDogJ0kgYWdyZWUnIH1cIj48L3ZhbC1jaGVjay1pbnB1dD5cbiAqXG4gKiBAZXhhbXBsZSBSZWFjdGl2ZSBpMThuIGxhYmVsOlxuICogPHZhbC1jaGVjay1pbnB1dCBbcHJvcHNdPVwie1xuICogICBjb250cm9sOiBteUNvbnRyb2wsXG4gKiAgIGNvbnRlbnRLZXk6ICd0ZXJtc0FncmVlbWVudCcsXG4gKiAgIGNvbnRlbnRDbGFzczogJ015Q29tcG9uZW50JyxcbiAqICAgY29udGVudEZhbGxiYWNrOiAnSSBhZ3JlZSB0byB0aGUgdGVybXMnXG4gKiB9XCI+PC92YWwtY2hlY2staW5wdXQ+XG4gKlxuICogQGlucHV0IHByb3BzOiBJbnB1dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNoZWNrYm94IChmb3JtIGNvbnRyb2wsIGxhYmVsLCBjb250ZW50IGNvbmZpZywgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIENoZWNrSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICAvKipcbiAgICogSW5wdXQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtJbnB1dE1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgY29udHJvbCAtIFRoZSBBbmd1bGFyIEZvcm1Db250cm9sIGZvciB0aGUgY2hlY2tib3guXG4gICAqIEBwcm9wZXJ0eSBsYWJlbCAtIFN0YXRpYyBsYWJlbCB0ZXh0LlxuICAgKiBAcHJvcGVydHkgY29udGVudEtleSAtIEtleSBmb3IgcmVhY3RpdmUgY29udGVudCBmcm9tIExhbmdTZXJ2aWNlLlxuICAgKiBAcHJvcGVydHkgY29udGVudENsYXNzIC0gQ2xhc3MgbmFtZSBmb3IgcmVhY3RpdmUgY29udGVudCBsb29rdXAuXG4gICAqIEBwcm9wZXJ0eSBjb250ZW50RmFsbGJhY2sgLSBGYWxsYmFjayB0ZXh0IGlmIGNvbnRlbnQgbm90IGZvdW5kLlxuICAgKiBAcHJvcGVydHkgbGFiZWxQbGFjZW1lbnQgLSBQb3NpdGlvbiBvZiBsYWJlbCAoJ3N0YXJ0JyB8ICdlbmQnKS4gRGVmYXVsdDogJ2VuZCcuXG4gICAqL1xuICBASW5wdXQoKSBwcm9wczogSW5wdXRNZXRhZGF0YTtcblxuICBkaXNwbGF5TGFiZWwkOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlMYWJlbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cERpc3BsYXlMYWJlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5sYWJlbCkge1xuICAgICAgLy8gU3RhdGljIGxhYmVsXG4gICAgICB0aGlzLmRpc3BsYXlMYWJlbCQgPSBvZih0aGlzLnByb3BzLmxhYmVsKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMuY29udGVudEtleSAmJiB0aGlzLnByb3BzLmNvbnRlbnRDbGFzcykge1xuICAgICAgLy8gUmVhY3RpdmUgY29udGVudCBmcm9tIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIHRoaXMuZGlzcGxheUxhYmVsJCA9IHRoaXMubGFuZ1NlcnZpY2UuZ2V0Q29udGVudChcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50Q2xhc3MsXG4gICAgICAgIHRoaXMucHJvcHMuY29udGVudEtleSxcbiAgICAgICAgdGhpcy5wcm9wcy5jb250ZW50RmFsbGJhY2tcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZhbGxiYWNrXG4gICAgICB0aGlzLmRpc3BsYXlMYWJlbCQgPSBvZih0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -8,14 +8,23 @@ import * as i1 from "@angular/forms";
8
8
  * val-email-input
9
9
  *
10
10
  * An email input field integrated with Angular forms.
11
+ * For i18n support, pass the translated placeholder text via props.
11
12
  *
12
- * @example
13
+ * @example Static placeholder:
13
14
  * <val-email-input [props]="{ control: myControl, placeholder: 'Enter your email' }"></val-email-input>
14
15
  *
16
+ * @example With i18n:
17
+ * ```typescript
18
+ * // In component
19
+ * emailProps = {
20
+ * control: this.emailControl,
21
+ * placeholder: this.langService.getText('Login', 'emailPlaceholder')
22
+ * };
23
+ * ```
24
+ *
15
25
  * @input props: InputMetadata - Configuration for the input (form control, placeholder, etc.)
16
26
  */
17
27
  export class EmailInputComponent {
18
- constructor() { }
19
28
  ngOnInit() { }
20
29
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmailInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
21
30
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EmailInputComponent, isStandalone: true, selector: "val-email-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="email" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
@@ -23,7 +32,7 @@ export class EmailInputComponent {
23
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmailInputComponent, decorators: [{
24
33
  type: Component,
25
34
  args: [{ selector: 'val-email-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="props.control" type="email" [placeholder]="props.placeholder"></ion-input> ` }]
26
- }], ctorParameters: () => [], propDecorators: { props: [{
35
+ }], propDecorators: { props: [{
27
36
  type: Input
28
37
  }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBVXJEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFTOUIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQzsrR0FYRixtQkFBbUI7bUdBQW5CLG1CQUFtQix1R0FicEIsd0dBQXdHLHlFQUR4RyxZQUFZLDhCQUFFLG1CQUFtQiwwVEFBRSxRQUFROzs0RkFjMUMsbUJBQW1CO2tCQWpCL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLFlBQzVDLHdHQUF3Rzt3REFvQnpHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25JbnB1dCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWVtYWlsLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uSW5wdXRdLFxuICB0ZW1wbGF0ZTogYCA8aW9uLWlucHV0IFtmb3JtQ29udHJvbF09XCJwcm9wcy5jb250cm9sXCIgdHlwZT1cImVtYWlsXCIgW3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyXCI+PC9pb24taW5wdXQ+IGAsXG4gIHN0eWxlVXJsczogWycuL2VtYWlsLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtZW1haWwtaW5wdXRcbiAqXG4gKiBBbiBlbWFpbCBpbnB1dCBmaWVsZCBpbnRlZ3JhdGVkIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1lbWFpbC1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiBteUNvbnRyb2wsIHBsYWNlaG9sZGVyOiAnRW50ZXIgeW91ciBlbWFpbCcgfVwiPjwvdmFsLWVtYWlsLWlucHV0PlxuICpcbiAqIEBpbnB1dCBwcm9wczogSW5wdXRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBpbnB1dCAoZm9ybSBjb250cm9sLCBwbGFjZWhvbGRlciwgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYWlsSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogSW5wdXQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtJbnB1dE1ldGFkYXRhfVxuICAgKiBAcHJvcGVydHkgY29udHJvbCAtIFRoZSBBbmd1bGFyIEZvcm1Db250cm9sIGZvciB0aGUgaW5wdXQuXG4gICAqIEBwcm9wZXJ0eSBwbGFjZWhvbGRlciAtIFRoZSBwbGFjZWhvbGRlciB0ZXh0LlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IElucHV0TWV0YWRhdGE7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBVXJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixRQUFRLEtBQUksQ0FBQzsrR0FURixtQkFBbUI7bUdBQW5CLG1CQUFtQix1R0F2QnBCLHdHQUF3Ryx5RUFEeEcsWUFBWSw4QkFBRSxtQkFBbUIsMFRBQUUsUUFBUTs7NEZBd0IxQyxtQkFBbUI7a0JBM0IvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMsWUFDNUMsd0dBQXdHOzhCQThCekcsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbklucHV0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZW1haWwtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBJb25JbnB1dF0sXG4gIHRlbXBsYXRlOiBgIDxpb24taW5wdXQgW2Zvcm1Db250cm9sXT1cInByb3BzLmNvbnRyb2xcIiB0eXBlPVwiZW1haWxcIiBbcGxhY2Vob2xkZXJdPVwicHJvcHMucGxhY2Vob2xkZXJcIj48L2lvbi1pbnB1dD4gYCxcbiAgc3R5bGVVcmxzOiBbJy4vZW1haWwtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1lbWFpbC1pbnB1dFxuICpcbiAqIEFuIGVtYWlsIGlucHV0IGZpZWxkIGludGVncmF0ZWQgd2l0aCBBbmd1bGFyIGZvcm1zLlxuICogRm9yIGkxOG4gc3VwcG9ydCwgcGFzcyB0aGUgdHJhbnNsYXRlZCBwbGFjZWhvbGRlciB0ZXh0IHZpYSBwcm9wcy5cbiAqXG4gKiBAZXhhbXBsZSBTdGF0aWMgcGxhY2Vob2xkZXI6XG4gKiA8dmFsLWVtYWlsLWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IG15Q29udHJvbCwgcGxhY2Vob2xkZXI6ICdFbnRlciB5b3VyIGVtYWlsJyB9XCI+PC92YWwtZW1haWwtaW5wdXQ+XG4gKlxuICogQGV4YW1wbGUgV2l0aCBpMThuOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gY29tcG9uZW50XG4gKiBlbWFpbFByb3BzID0ge1xuICogICBjb250cm9sOiB0aGlzLmVtYWlsQ29udHJvbCxcbiAqICAgcGxhY2Vob2xkZXI6IHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dCgnTG9naW4nLCAnZW1haWxQbGFjZWhvbGRlcicpXG4gKiB9O1xuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBJbnB1dE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGlucHV0IChmb3JtIGNvbnRyb2wsIHBsYWNlaG9sZGVyLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgRW1haWxJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBJbnB1dCBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0lucHV0TWV0YWRhdGF9XG4gICAqIEBwcm9wZXJ0eSBjb250cm9sIC0gVGhlIEFuZ3VsYXIgRm9ybUNvbnRyb2wgZm9yIHRoZSBpbnB1dC5cbiAgICogQHByb3BlcnR5IHBsYWNlaG9sZGVyIC0gVGhlIHBsYWNlaG9sZGVyIHRleHQuIEZvciBpMThuLCB1c2UgbGFuZ1NlcnZpY2UuZ2V0VGV4dCgpIHRvIGdldCB0cmFuc2xhdGVkIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IElucHV0TWV0YWRhdGE7XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIl19
@@ -38,36 +38,40 @@ export class ExpandableTextComponent {
38
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExpandableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
39
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ExpandableTextComponent, isStandalone: true, selector: "val-expandable-text", inputs: { props: "props" }, ngImport: i0, template: `
40
40
  <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
41
- <ion-text>
42
- <p class="description">
43
- <span class="content">{{ expanded ? props.content : truncatedText }}</span>
44
- @if (!expanded && isTruncated) {
45
- <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
46
- {{ getExpandText() }}
47
- </span>
48
- }
49
- </p>
50
- </ion-text>
41
+ <div class="content-wrapper">
42
+ <ion-text>
43
+ <p class="description">
44
+ <span class="content">{{ expanded ? props.content : truncatedText }}</span>
45
+ </p>
46
+ </ion-text>
47
+ </div>
48
+ @if (!expanded && isTruncated) {
49
+ <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
50
+ {{ getExpandText() }}
51
+ </span>
52
+ }
51
53
  </div>
52
- `, isInline: true, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
54
+ `, isInline: true, styles: [".description-container{position:relative;overflow:hidden;transition:max-height .3s ease-in-out}.description-container:not(.expanded){max-height:10rem}.description-container.expanded{max-height:none}.content-wrapper{overflow:hidden}.description-container:not(.expanded).has-gradient .content-wrapper{-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.description{margin:0}.see-more{display:block;font-weight:700;cursor:pointer;margin-top:.25rem}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
53
55
  }
54
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ExpandableTextComponent, decorators: [{
55
57
  type: Component,
56
58
  args: [{ selector: 'val-expandable-text', standalone: true, imports: [IonText], template: `
57
59
  <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
58
- <ion-text>
59
- <p class="description">
60
- <span class="content">{{ expanded ? props.content : truncatedText }}</span>
61
- @if (!expanded && isTruncated) {
62
- <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
63
- {{ getExpandText() }}
64
- </span>
65
- }
66
- </p>
67
- </ion-text>
60
+ <div class="content-wrapper">
61
+ <ion-text>
62
+ <p class="description">
63
+ <span class="content">{{ expanded ? props.content : truncatedText }}</span>
64
+ </p>
65
+ </ion-text>
66
+ </div>
67
+ @if (!expanded && isTruncated) {
68
+ <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
69
+ {{ getExpandText() }}
70
+ </span>
71
+ }
68
72
  </div>
69
- `, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"] }]
73
+ `, styles: [".description-container{position:relative;overflow:hidden;transition:max-height .3s ease-in-out}.description-container:not(.expanded){max-height:10rem}.description-container.expanded{max-height:none}.content-wrapper{overflow:hidden}.description-container:not(.expanded).has-gradient .content-wrapper{-webkit-mask-image:linear-gradient(to bottom,black 50%,transparent 100%);mask-image:linear-gradient(to bottom,black 50%,transparent 100%)}.description{margin:0}.see-more{display:block;font-weight:700;cursor:pointer;margin-top:.25rem}\n"] }]
70
74
  }], propDecorators: { props: [{
71
75
  type: Input
72
76
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQWlFNUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQXhFcEM7UUFrRkUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUVqQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQXNCM0M7SUFwQkMsSUFBSSxhQUFhO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsdUJBQXVCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0FsQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkdBcEV4Qjs7Ozs7Ozs7Ozs7OztHQWFULGtzQkFkUyxPQUFPOzs0RkFxRU4sdUJBQXVCO2tCQXhFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7Ozs7Ozs7R0FhVDs4QkFnRVEsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBMYW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xhbmctcHJvdmlkZXIvbGFuZy1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IHJlc29sdmVDb2xvciB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuaW1wb3J0IHsgRXhwYW5kYWJsZVRleHRJbnB1dCB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZXhwYW5kYWJsZS10ZXh0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvblRleHRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi1jb250YWluZXJcIiBbY2xhc3MuZXhwYW5kZWRdPVwiZXhwYW5kZWRcIiBbY2xhc3MuaGFzLWdyYWRpZW50XT1cIiFleHBhbmRlZCAmJiBpc1RydW5jYXRlZFwiPlxuICAgICAgPGlvbi10ZXh0PlxuICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250ZW50XCI+e3sgZXhwYW5kZWQgPyBwcm9wcy5jb250ZW50IDogdHJ1bmNhdGVkVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKCFleHBhbmRlZCAmJiBpc1RydW5jYXRlZCkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWUtbW9yZVwiIFtzdHlsZS5jb2xvcl09XCJ0aGlzLmNvbG9yKClcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kKClcIj5cbiAgICAgICAgICAgICAge3sgZ2V0RXhwYW5kVGV4dCgpIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L3A+XG4gICAgICA8L2lvbi10ZXh0PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMHJlbTsgLyogQWx0dXJhIHBhcmEgdGV4dG8gdHJ1bmNhZG8gKi9cbiAgICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyLmV4cGFuZGVkIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTsgLyogU2luIGzDrW1pdGUgZGUgYWx0dXJhIGFsIGV4cGFuZGlyICovXG4gICAgICB9XG5cbiAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXI6bm90KC5leHBhbmRlZCkgLmRlc2NyaXB0aW9uOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMy41cmVtOyAvKiBBbHR1cmEgZGVsIGdyYWRpZW50ZSAqL1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogSWdub3JhciBpbnRlcmFjY2lvbmVzIGVuIGVsIGdyYWRpZW50ZSAqL1xuICAgICAgfVxuXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyOm5vdCguaGFzLWdyYWRpZW50KSAuZGVzY3JpcHRpb246OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IC8qIEZvbmRvIHRyYW5zcGFyZW50ZSBzaSBubyBoYXkgZ3JhZGllbnRlICovXG4gICAgICB9XG5cbiAgICAgIC5zZWUtbW9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbi8qKlxuICogdmFsLWV4cGFuZGFibGUtdGV4dFxuICpcbiAqIEEgdGV4dCBjb21wb25lbnQgdGhhdCBjYW4gYmUgZXhwYW5kZWQvY29sbGFwc2VkIHRvIHNob3cgbW9yZSBvciBsZXNzIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZXhwYW5kYWJsZS10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6ICcuLi4nLCBsaW1pdDogMTgwLCBjb2xvcjogJ3ByaW1hcnknLCBleHBhbmRUZXh0OiAnbcOhcycgfVwiPjwvdmFsLWV4cGFuZGFibGUtdGV4dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEV4cGFuZGFibGVUZXh0SW5wdXQgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZXhwYW5kYWJsZSB0ZXh0IChjb250ZW50LCBsaW1pdCwgY29sb3IsIGV4cGFuZFRleHQpXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBhbmRhYmxlVGV4dENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBFeHBhbmRhYmxlIHRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtFeHBhbmRhYmxlVGV4dElucHV0fVxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFRoZSB0ZXh0IGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogQHByb3BlcnR5IGxpbWl0IC0gVGhlIGNoYXJhY3RlciBsaW1pdCBiZWZvcmUgdHJ1bmNhdGlvbi5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIGNvbG9yIGZvciB0aGUgXCJzZWUgbW9yZVwiIGxpbmsuXG4gICAqIEBwcm9wZXJ0eSBleHBhbmRUZXh0IC0gVGhlIHRleHQgZm9yIHRoZSBleHBhbmQgbGluayAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IEV4cGFuZGFibGVUZXh0SW5wdXQ7XG4gIGV4cGFuZGVkID0gZmFsc2U7XG4gIGRlZmF1bHRDb2xvciA9ICdwcmltYXJ5JztcblxuICBwcml2YXRlIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICBnZXQgdHJ1bmNhdGVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMucHJvcHMubGltaXQgfHwgMTAwOyAvLyBMb25naXR1ZCBwb3IgZGVmZWN0b1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRlbnQ/Lmxlbmd0aCA+IG1heExlbmd0aCA/IHRoaXMucHJvcHMuY29udGVudC5zbGljZSgwLCBtYXhMZW5ndGgpICsgJy4uLicgOiB0aGlzLnByb3BzLmNvbnRlbnQ7XG4gIH1cblxuICBnZXQgaXNUcnVuY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudD8ubGVuZ3RoID4gKHRoaXMucHJvcHMubGltaXQgfHwgMTAwKTtcbiAgfVxuXG4gIGdldEV4cGFuZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5leHBhbmRUZXh0IHx8IHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dCgnX2dsb2JhbCcsICdzZWVNb3JlJywgJ3ZlciBtw6FzJyk7XG4gIH1cblxuICB0b2dnbGVFeHBhbmQoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgY29sb3IoKSB7XG4gICAgcmV0dXJuIHJlc29sdmVDb2xvcih0aGlzLnByb3BzLmNvbG9yIHx8IHRoaXMuZGVmYXVsdENvbG9yKTtcbiAgfVxufVxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQThENUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQXJFcEM7UUErRUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUVqQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQXNCM0M7SUFwQkMsSUFBSSxhQUFhO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsdUJBQXVCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0FsQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkdBakV4Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsZ21CQWhCUyxPQUFPOzs0RkFrRU4sdUJBQXVCO2tCQXJFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzhCQTJEUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlVGV4dElucHV0IH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1leHBhbmRhYmxlLXRleHQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLWNvbnRhaW5lclwiIFtjbGFzcy5leHBhbmRlZF09XCJleHBhbmRlZFwiIFtjbGFzcy5oYXMtZ3JhZGllbnRdPVwiIWV4cGFuZGVkICYmIGlzVHJ1bmNhdGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgIDxpb24tdGV4dD5cbiAgICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnRcIj57eyBleHBhbmRlZCA/IHByb3BzLmNvbnRlbnQgOiB0cnVuY2F0ZWRUZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmICghZXhwYW5kZWQgJiYgaXNUcnVuY2F0ZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWUtbW9yZVwiIFtzdHlsZS5jb2xvcl09XCJ0aGlzLmNvbG9yKClcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kKClcIj5cbiAgICAgICAgICB7eyBnZXRFeHBhbmRUZXh0KCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXI6bm90KC5leHBhbmRlZCkge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMHJlbTsgLyogQWx0dXJhIHBhcmEgdGV4dG8gdHJ1bmNhZG8gKi9cbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uLWNvbnRhaW5lci5leHBhbmRlZCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7IC8qIFNpbiBsw61taXRlIGRlIGFsdHVyYSBhbCBleHBhbmRpciAqL1xuICAgICAgfVxuXG4gICAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLyogTWFzayBncmFkaWVudCAtIGZ1bmNpb25hIGVuIGN1YWxxdWllciBjb2xvciBkZSBmb25kbyAqL1xuICAgICAgLmRlc2NyaXB0aW9uLWNvbnRhaW5lcjpub3QoLmV4cGFuZGVkKS5oYXMtZ3JhZGllbnQgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgYmxhY2sgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgYmxhY2sgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuc2VlLW1vcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbi8qKlxuICogdmFsLWV4cGFuZGFibGUtdGV4dFxuICpcbiAqIEEgdGV4dCBjb21wb25lbnQgdGhhdCBjYW4gYmUgZXhwYW5kZWQvY29sbGFwc2VkIHRvIHNob3cgbW9yZSBvciBsZXNzIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZXhwYW5kYWJsZS10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6ICcuLi4nLCBsaW1pdDogMTgwLCBjb2xvcjogJ3ByaW1hcnknLCBleHBhbmRUZXh0OiAnbcOhcycgfVwiPjwvdmFsLWV4cGFuZGFibGUtdGV4dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEV4cGFuZGFibGVUZXh0SW5wdXQgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZXhwYW5kYWJsZSB0ZXh0IChjb250ZW50LCBsaW1pdCwgY29sb3IsIGV4cGFuZFRleHQpXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBhbmRhYmxlVGV4dENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBFeHBhbmRhYmxlIHRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtFeHBhbmRhYmxlVGV4dElucHV0fVxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFRoZSB0ZXh0IGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogQHByb3BlcnR5IGxpbWl0IC0gVGhlIGNoYXJhY3RlciBsaW1pdCBiZWZvcmUgdHJ1bmNhdGlvbi5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIGNvbG9yIGZvciB0aGUgXCJzZWUgbW9yZVwiIGxpbmsuXG4gICAqIEBwcm9wZXJ0eSBleHBhbmRUZXh0IC0gVGhlIHRleHQgZm9yIHRoZSBleHBhbmQgbGluayAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IEV4cGFuZGFibGVUZXh0SW5wdXQ7XG4gIGV4cGFuZGVkID0gZmFsc2U7XG4gIGRlZmF1bHRDb2xvciA9ICdwcmltYXJ5JztcblxuICBwcml2YXRlIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICBnZXQgdHJ1bmNhdGVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMucHJvcHMubGltaXQgfHwgMTAwOyAvLyBMb25naXR1ZCBwb3IgZGVmZWN0b1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRlbnQ/Lmxlbmd0aCA+IG1heExlbmd0aCA/IHRoaXMucHJvcHMuY29udGVudC5zbGljZSgwLCBtYXhMZW5ndGgpICsgJy4uLicgOiB0aGlzLnByb3BzLmNvbnRlbnQ7XG4gIH1cblxuICBnZXQgaXNUcnVuY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudD8ubGVuZ3RoID4gKHRoaXMucHJvcHMubGltaXQgfHwgMTAwKTtcbiAgfVxuXG4gIGdldEV4cGFuZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5leHBhbmRUZXh0IHx8IHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dCgnX2dsb2JhbCcsICdzZWVNb3JlJywgJ3ZlciBtw6FzJyk7XG4gIH1cblxuICB0b2dnbGVFeHBhbmQoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgY29sb3IoKSB7XG4gICAgcmV0dXJuIHJlc29sdmVDb2xvcih0aGlzLnByb3BzLmNvbG9yIHx8IHRoaXMuZGVmYXVsdENvbG9yKTtcbiAgfVxufVxuIl19