valtech-components 2.0.408 → 2.0.410
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +82 -0
- package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +2 -0
- package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +82 -0
- package/esm2022/lib/components/atoms/rights-footer/types.mjs +2 -0
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +55 -11
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +13 -4
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +27 -23
- package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +277 -0
- package/esm2022/lib/components/molecules/footer-links/types.mjs +2 -0
- package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +157 -0
- package/esm2022/lib/components/molecules/links-accordion/types.mjs +2 -0
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +12 -2
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +21 -9
- package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +13 -4
- package/esm2022/lib/components/molecules/recap-card/recap-card.component.mjs +78 -0
- package/esm2022/lib/components/molecules/recap-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +31 -14
- package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +206 -0
- package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +2 -0
- package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +138 -0
- package/esm2022/lib/components/molecules/testimonial-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +14 -4
- package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +61 -0
- package/esm2022/lib/components/organisms/cards-carousel/types.mjs +2 -0
- package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +72 -0
- package/esm2022/lib/components/organisms/company-footer/types.mjs +2 -0
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +175 -3
- package/esm2022/lib/components/organisms/data-table/types.mjs +1 -1
- package/esm2022/lib/components/organisms/form/form.component.mjs +2 -2
- package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +225 -0
- package/esm2022/lib/components/organisms/fun-header/types.mjs +2 -0
- package/esm2022/lib/components/organisms/menu/menu.component.mjs +197 -0
- package/esm2022/lib/components/organisms/menu/types.mjs +2 -0
- package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +72 -0
- package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +2 -0
- package/esm2022/lib/components/templates/page-content/page-content.component.mjs +156 -0
- package/esm2022/lib/components/templates/page-content/types.mjs +2 -0
- package/esm2022/lib/components/templates/page-template/page-template.component.mjs +181 -0
- package/esm2022/lib/components/templates/page-template/types.mjs +2 -0
- package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +195 -0
- package/esm2022/lib/components/templates/page-wrapper/types.mjs +2 -0
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/services/firebase/config.mjs +103 -0
- package/esm2022/lib/services/firebase/firebase.service.mjs +285 -0
- package/esm2022/lib/services/firebase/firestore-collection.mjs +266 -0
- package/esm2022/lib/services/firebase/firestore.service.mjs +508 -0
- package/esm2022/lib/services/firebase/index.mjs +46 -0
- package/esm2022/lib/services/firebase/messaging.service.mjs +503 -0
- package/esm2022/lib/services/firebase/storage.service.mjs +421 -0
- package/esm2022/lib/services/firebase/types.mjs +8 -0
- package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
- package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
- package/esm2022/public-api.mjs +33 -1
- package/fesm2022/valtech-components.mjs +5821 -868
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +41 -0
- package/lib/components/atoms/horizontal-scroll/types.d.ts +13 -0
- package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +39 -0
- package/lib/components/atoms/rights-footer/types.d.ts +13 -0
- package/lib/components/molecules/check-input/check-input.component.d.ts +17 -2
- package/lib/components/molecules/email-input/email-input.component.d.ts +1 -2
- package/lib/components/molecules/footer-links/footer-links.component.d.ts +47 -0
- package/lib/components/molecules/footer-links/types.d.ts +37 -0
- package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +48 -0
- package/lib/components/molecules/links-accordion/types.d.ts +33 -0
- package/lib/components/molecules/password-input/password-input.component.d.ts +1 -1
- package/lib/components/molecules/prompter/prompter.component.d.ts +8 -1
- package/lib/components/molecules/prompter/types.d.ts +7 -1
- package/lib/components/molecules/radio-input/radio-input.component.d.ts +1 -2
- package/lib/components/molecules/recap-card/recap-card.component.d.ts +36 -0
- package/lib/components/molecules/recap-card/types.d.ts +30 -0
- package/lib/components/molecules/select-input/select-input.component.d.ts +6 -1
- package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +66 -0
- package/lib/components/molecules/swipe-carousel/types.d.ts +35 -0
- package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +41 -0
- package/lib/components/molecules/testimonial-card/types.d.ts +25 -0
- package/lib/components/molecules/text-input/text-input.component.d.ts +13 -4
- package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +30 -0
- package/lib/components/organisms/cards-carousel/types.d.ts +11 -0
- package/lib/components/organisms/company-footer/company-footer.component.d.ts +32 -0
- package/lib/components/organisms/company-footer/types.d.ts +15 -0
- package/lib/components/organisms/data-table/data-table.component.d.ts +1 -1
- package/lib/components/organisms/data-table/types.d.ts +6 -0
- package/lib/components/organisms/fun-header/fun-header.component.d.ts +72 -0
- package/lib/components/organisms/fun-header/types.d.ts +28 -0
- package/lib/components/organisms/menu/menu.component.d.ts +39 -0
- package/lib/components/organisms/menu/types.d.ts +23 -0
- package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +33 -0
- package/lib/components/organisms/testimonial-carousel/types.d.ts +8 -0
- package/lib/components/templates/page-content/page-content.component.d.ts +55 -0
- package/lib/components/templates/page-content/types.d.ts +14 -0
- package/lib/components/templates/page-template/page-template.component.d.ts +49 -0
- package/lib/components/templates/page-template/types.d.ts +17 -0
- package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +61 -0
- package/lib/components/templates/page-wrapper/types.d.ts +19 -0
- package/lib/components/types.d.ts +14 -0
- package/lib/services/firebase/config.d.ts +49 -0
- package/lib/services/firebase/firebase.service.d.ts +140 -0
- package/lib/services/firebase/firestore-collection.d.ts +195 -0
- package/lib/services/firebase/firestore.service.d.ts +303 -0
- package/lib/services/firebase/index.d.ts +38 -0
- package/lib/services/firebase/messaging.service.d.ts +254 -0
- package/lib/services/firebase/storage.service.d.ts +204 -0
- package/lib/services/firebase/types.d.ts +279 -0
- package/lib/services/firebase/utils/path-builder.d.ts +132 -0
- package/lib/services/firebase/utils/query-builder.d.ts +210 -0
- package/package.json +3 -1
- 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
|
|
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
|
-
|
|
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",
|
|
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: `
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
}],
|
|
35
|
+
}], propDecorators: { props: [{
|
|
27
36
|
type: Input
|
|
28
37
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
-
<
|
|
42
|
-
<
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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;
|
|
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
|
-
<
|
|
59
|
-
<
|
|
60
|
-
<
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
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;
|
|
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,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kYWJsZS10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQThENUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLHVCQUF1QjtJQXJFcEM7UUErRUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUVqQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQXNCM0M7SUFwQkMsSUFBSSxhQUFhO1FBQ2YsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUMsdUJBQXVCO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQ3RILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0FsQ1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkdBakV4Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsZ21CQWhCUyxPQUFPOzs0RkFrRU4sdUJBQXVCO2tCQXJFbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7Ozs7Ozs7OztHQWVUOzhCQTJEUSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IExhbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbGFuZy1wcm92aWRlci9sYW5nLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVzb2x2ZUNvbG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5pbXBvcnQgeyBFeHBhbmRhYmxlVGV4dElucHV0IH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1leHBhbmRhYmxlLXRleHQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLWNvbnRhaW5lclwiIFtjbGFzcy5leHBhbmRlZF09XCJleHBhbmRlZFwiIFtjbGFzcy5oYXMtZ3JhZGllbnRdPVwiIWV4cGFuZGVkICYmIGlzVHJ1bmNhdGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgIDxpb24tdGV4dD5cbiAgICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnRcIj57eyBleHBhbmRlZCA/IHByb3BzLmNvbnRlbnQgOiB0cnVuY2F0ZWRUZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9pb24tdGV4dD5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmICghZXhwYW5kZWQgJiYgaXNUcnVuY2F0ZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZWUtbW9yZVwiIFtzdHlsZS5jb2xvcl09XCJ0aGlzLmNvbG9yKClcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kKClcIj5cbiAgICAgICAgICB7eyBnZXRFeHBhbmRUZXh0KCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuZGVzY3JpcHRpb24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICB9XG5cbiAgICAgIC5kZXNjcmlwdGlvbi1jb250YWluZXI6bm90KC5leHBhbmRlZCkge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMHJlbTsgLyogQWx0dXJhIHBhcmEgdGV4dG8gdHJ1bmNhZG8gKi9cbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uLWNvbnRhaW5lci5leHBhbmRlZCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7IC8qIFNpbiBsw61taXRlIGRlIGFsdHVyYSBhbCBleHBhbmRpciAqL1xuICAgICAgfVxuXG4gICAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLyogTWFzayBncmFkaWVudCAtIGZ1bmNpb25hIGVuIGN1YWxxdWllciBjb2xvciBkZSBmb25kbyAqL1xuICAgICAgLmRlc2NyaXB0aW9uLWNvbnRhaW5lcjpub3QoLmV4cGFuZGVkKS5oYXMtZ3JhZGllbnQgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgIC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgYmxhY2sgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgYmxhY2sgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICAgIH1cblxuICAgICAgLmRlc2NyaXB0aW9uIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgfVxuXG4gICAgICAuc2VlLW1vcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbi8qKlxuICogdmFsLWV4cGFuZGFibGUtdGV4dFxuICpcbiAqIEEgdGV4dCBjb21wb25lbnQgdGhhdCBjYW4gYmUgZXhwYW5kZWQvY29sbGFwc2VkIHRvIHNob3cgbW9yZSBvciBsZXNzIGNvbnRlbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIDx2YWwtZXhwYW5kYWJsZS10ZXh0IFtwcm9wc109XCJ7IGNvbnRlbnQ6ICcuLi4nLCBsaW1pdDogMTgwLCBjb2xvcjogJ3ByaW1hcnknLCBleHBhbmRUZXh0OiAnbcOhcycgfVwiPjwvdmFsLWV4cGFuZGFibGUtdGV4dD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IEV4cGFuZGFibGVUZXh0SW5wdXQgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgZXhwYW5kYWJsZSB0ZXh0IChjb250ZW50LCBsaW1pdCwgY29sb3IsIGV4cGFuZFRleHQpXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBhbmRhYmxlVGV4dENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBFeHBhbmRhYmxlIHRleHQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtFeHBhbmRhYmxlVGV4dElucHV0fVxuICAgKiBAcHJvcGVydHkgY29udGVudCAtIFRoZSB0ZXh0IGNvbnRlbnQgdG8gZGlzcGxheS5cbiAgICogQHByb3BlcnR5IGxpbWl0IC0gVGhlIGNoYXJhY3RlciBsaW1pdCBiZWZvcmUgdHJ1bmNhdGlvbi5cbiAgICogQHByb3BlcnR5IGNvbG9yIC0gVGhlIGNvbG9yIGZvciB0aGUgXCJzZWUgbW9yZVwiIGxpbmsuXG4gICAqIEBwcm9wZXJ0eSBleHBhbmRUZXh0IC0gVGhlIHRleHQgZm9yIHRoZSBleHBhbmQgbGluayAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IEV4cGFuZGFibGVUZXh0SW5wdXQ7XG4gIGV4cGFuZGVkID0gZmFsc2U7XG4gIGRlZmF1bHRDb2xvciA9ICdwcmltYXJ5JztcblxuICBwcml2YXRlIGxhbmdTZXJ2aWNlID0gaW5qZWN0KExhbmdTZXJ2aWNlKTtcblxuICBnZXQgdHJ1bmNhdGVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMucHJvcHMubGltaXQgfHwgMTAwOyAvLyBMb25naXR1ZCBwb3IgZGVmZWN0b1xuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRlbnQ/Lmxlbmd0aCA+IG1heExlbmd0aCA/IHRoaXMucHJvcHMuY29udGVudC5zbGljZSgwLCBtYXhMZW5ndGgpICsgJy4uLicgOiB0aGlzLnByb3BzLmNvbnRlbnQ7XG4gIH1cblxuICBnZXQgaXNUcnVuY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGVudD8ubGVuZ3RoID4gKHRoaXMucHJvcHMubGltaXQgfHwgMTAwKTtcbiAgfVxuXG4gIGdldEV4cGFuZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5leHBhbmRUZXh0IHx8IHRoaXMubGFuZ1NlcnZpY2UuZ2V0VGV4dCgnX2dsb2JhbCcsICdzZWVNb3JlJywgJ3ZlciBtw6FzJyk7XG4gIH1cblxuICB0b2dnbGVFeHBhbmQoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9ICF0aGlzLmV4cGFuZGVkO1xuICB9XG5cbiAgY29sb3IoKSB7XG4gICAgcmV0dXJuIHJlc29sdmVDb2xvcih0aGlzLnByb3BzLmNvbG9yIHx8IHRoaXMuZGVmYXVsdENvbG9yKTtcbiAgfVxufVxuIl19
|