valtech-components 2.0.404 → 2.0.406
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/README.md +71 -0
- package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +4 -4
- package/esm2022/lib/components/atoms/avatar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/box/box.component.mjs +4 -4
- package/esm2022/lib/components/atoms/box/types.mjs +1 -1
- package/esm2022/lib/components/atoms/button/button.component.mjs +4 -4
- package/esm2022/lib/components/atoms/button/factory.mjs +1 -1
- package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +343 -0
- package/esm2022/lib/components/atoms/countdown/types.mjs +27 -0
- package/esm2022/lib/components/atoms/display/display.component.mjs +4 -4
- package/esm2022/lib/components/atoms/display/types.mjs +1 -1
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +4 -4
- package/esm2022/lib/components/atoms/divider/types.mjs +1 -1
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +152 -0
- package/esm2022/lib/components/atoms/fab/types.mjs +2 -0
- package/esm2022/lib/components/atoms/href/href.component.mjs +4 -4
- package/esm2022/lib/components/atoms/href/types.mjs +1 -1
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +4 -4
- package/esm2022/lib/components/atoms/icon/types.mjs +1 -1
- package/esm2022/lib/components/atoms/image/image.component.mjs +6 -6
- package/esm2022/lib/components/atoms/image/types.mjs +1 -1
- package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +245 -0
- package/esm2022/lib/components/atoms/price-tag/types.mjs +15 -0
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +4 -4
- package/esm2022/lib/components/atoms/progress-bar/types.mjs +1 -1
- package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +149 -0
- package/esm2022/lib/components/atoms/progress-ring/types.mjs +2 -0
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +417 -0
- package/esm2022/lib/components/atoms/qr-code/types.mjs +2 -0
- package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +193 -0
- package/esm2022/lib/components/atoms/skeleton/types.mjs +13 -0
- package/esm2022/lib/components/atoms/text/text.component.mjs +4 -4
- package/esm2022/lib/components/atoms/text/types.mjs +1 -1
- package/esm2022/lib/components/atoms/title/title.component.mjs +4 -4
- package/esm2022/lib/components/atoms/title/types.mjs +1 -1
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +139 -0
- package/esm2022/lib/components/molecules/accordion/types.mjs +2 -0
- package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +4 -4
- package/esm2022/lib/components/molecules/action-header/types.mjs +1 -1
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/alert-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +137 -0
- package/esm2022/lib/components/molecules/breadcrumb/types.mjs +2 -0
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +4 -4
- package/esm2022/lib/components/molecules/button-group/types.mjs +1 -1
- package/esm2022/lib/components/molecules/card/card.component.mjs +5 -5
- package/esm2022/lib/components/molecules/card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +174 -0
- package/esm2022/lib/components/molecules/chip-group/types.mjs +2 -0
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +4 -4
- package/esm2022/lib/components/molecules/code-display/types.mjs +1 -1
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +4 -4
- package/esm2022/lib/components/molecules/command-display/types.mjs +1 -1
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +634 -0
- package/esm2022/lib/components/molecules/comment/types.mjs +2 -0
- package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +4 -4
- package/esm2022/lib/components/molecules/content-loader/types.mjs +1 -1
- package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +368 -0
- package/esm2022/lib/components/molecules/currency-input/types.mjs +18 -0
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +418 -0
- package/esm2022/lib/components/molecules/date-range-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +4 -4
- package/esm2022/lib/components/molecules/expandable-text/types.mjs +1 -1
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +279 -0
- package/esm2022/lib/components/molecules/glow-card/types.mjs +11 -0
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +4 -4
- package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/info/info.component.mjs +4 -4
- package/esm2022/lib/components/molecules/info/types.mjs +1 -1
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +4 -4
- package/esm2022/lib/components/molecules/language-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +4 -4
- package/esm2022/lib/components/molecules/layered-card/types.mjs +1 -1
- package/esm2022/lib/components/molecules/link/link.component.mjs +4 -4
- package/esm2022/lib/components/molecules/link/types.mjs +1 -1
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +4 -4
- package/esm2022/lib/components/molecules/links-cake/types.mjs +1 -1
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +5 -5
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/notes-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +4 -4
- package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +377 -0
- package/esm2022/lib/components/molecules/number-stepper/types.mjs +2 -0
- package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +253 -0
- package/esm2022/lib/components/molecules/pagination/types.mjs +2 -0
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +486 -0
- package/esm2022/lib/components/molecules/participant-card/types.mjs +21 -0
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +336 -0
- package/esm2022/lib/components/molecules/phone-input/types.mjs +19 -0
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +4 -4
- package/esm2022/lib/components/molecules/pill/types.mjs +1 -1
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +4 -4
- package/esm2022/lib/components/molecules/plain-code-box/types.mjs +1 -1
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +5 -5
- package/esm2022/lib/components/molecules/popover-selector/types.mjs +1 -1
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +4 -4
- package/esm2022/lib/components/molecules/progress-status/types.mjs +1 -1
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +4 -4
- package/esm2022/lib/components/molecules/prompter/types.mjs +1 -1
- package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +155 -0
- package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/raffle-status-card/raffle-status-card.component.mjs +484 -0
- package/esm2022/lib/components/molecules/raffle-status-card/types.mjs +23 -0
- package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +148 -0
- package/esm2022/lib/components/molecules/range-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +149 -0
- package/esm2022/lib/components/molecules/rating/types.mjs +2 -0
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +4 -4
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +145 -0
- package/esm2022/lib/components/molecules/segment-control/types.mjs +2 -0
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +5 -5
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +5 -5
- package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +277 -0
- package/esm2022/lib/components/molecules/share-buttons/types.mjs +88 -0
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +165 -0
- package/esm2022/lib/components/molecules/stats-card/types.mjs +2 -0
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +239 -0
- package/esm2022/lib/components/molecules/stepper/types.mjs +2 -0
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +135 -0
- package/esm2022/lib/components/molecules/tabs/types.mjs +2 -0
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +4 -4
- package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +204 -0
- package/esm2022/lib/components/molecules/textarea-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/ticket-grid/ticket-grid.component.mjs +497 -0
- package/esm2022/lib/components/molecules/ticket-grid/types.mjs +11 -0
- package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +140 -0
- package/esm2022/lib/components/molecules/timeline/types.mjs +2 -0
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +4 -4
- package/esm2022/lib/components/molecules/title-block/types.mjs +1 -1
- package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +89 -0
- package/esm2022/lib/components/molecules/toggle-input/types.mjs +2 -0
- package/esm2022/lib/components/molecules/winner-display/types.mjs +9 -0
- package/esm2022/lib/components/molecules/winner-display/winner-display.component.mjs +370 -0
- package/esm2022/lib/components/organisms/article/article.component.mjs +4 -4
- package/esm2022/lib/components/organisms/article/types.mjs +1 -1
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +4 -4
- package/esm2022/lib/components/organisms/banner/types.mjs +1 -1
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +578 -0
- package/esm2022/lib/components/organisms/comment-section/types.mjs +2 -0
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +853 -0
- package/esm2022/lib/components/organisms/data-table/types.mjs +13 -0
- package/esm2022/lib/components/organisms/footer/footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/footer/types.mjs +1 -1
- package/esm2022/lib/components/organisms/form/factory.mjs +1 -1
- package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/form/form.component.mjs +4 -4
- package/esm2022/lib/components/organisms/header/header.component.mjs +4 -4
- package/esm2022/lib/components/organisms/header/types.mjs +1 -1
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +4 -4
- package/esm2022/lib/components/organisms/item-list/types.mjs +1 -1
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +4 -4
- package/esm2022/lib/components/organisms/no-content/types.mjs +1 -1
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +4 -4
- package/esm2022/lib/components/organisms/toolbar/types.mjs +1 -1
- package/esm2022/lib/components/organisms/wizard/types.mjs +1 -1
- package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +4 -4
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +4 -4
- package/esm2022/lib/components/templates/layout/layout.component.mjs +4 -4
- package/esm2022/lib/components/templates/simple/simple.component.mjs +5 -5
- package/esm2022/lib/components/templates/simple/types.mjs +1 -1
- package/esm2022/lib/components/types.mjs +22 -16
- package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +180 -0
- package/esm2022/lib/services/confirmation-dialog/types.mjs +14 -0
- package/esm2022/lib/services/download.service.mjs +4 -4
- package/esm2022/lib/services/icons.service.mjs +4 -4
- package/esm2022/lib/services/in-app-browser.service.mjs +4 -4
- package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +1 -1
- package/esm2022/lib/services/lang-provider/content.mjs +1 -1
- package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +4 -4
- package/esm2022/lib/services/lang-provider/types.mjs +1 -1
- package/esm2022/lib/services/link-processor.service.mjs +4 -4
- package/esm2022/lib/services/local-storage.service.mjs +1 -1
- package/esm2022/lib/services/modal/modal.service.mjs +213 -0
- package/esm2022/lib/services/modal/simple-modal-content.component.mjs +133 -0
- package/esm2022/lib/services/modal/types.mjs +26 -0
- package/esm2022/lib/services/navigation.service.mjs +4 -4
- package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +341 -0
- package/esm2022/lib/services/qr-generator/types.mjs +46 -0
- package/esm2022/lib/services/theme.service.mjs +4 -4
- package/esm2022/lib/services/toast.service.mjs +4 -4
- package/esm2022/lib/services/types.mjs +1 -1
- package/esm2022/lib/shared/constants/storage.mjs +1 -1
- package/esm2022/lib/shared/pipes/process-links.pipe.mjs +4 -4
- package/esm2022/lib/shared/utils/content.mjs +1 -1
- package/esm2022/lib/shared/utils/dom.mjs +1 -1
- package/esm2022/lib/shared/utils/form-defaults.mjs +1 -1
- package/esm2022/lib/shared/utils/simple-content.mjs +1 -1
- package/esm2022/lib/shared/utils/styles.mjs +1 -1
- package/esm2022/lib/shared/utils/text.mjs +1 -1
- package/esm2022/public-api.mjs +73 -3
- package/esm2022/valtech-components.mjs +1 -1
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs +136 -0
- package/fesm2022/valtech-components-simple-modal-content.component-DQhEgUmS.mjs.map +1 -0
- package/fesm2022/valtech-components.mjs +14847 -4292
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/countdown/countdown.component.d.ts +38 -0
- package/lib/components/atoms/countdown/types.d.ts +108 -0
- package/lib/components/atoms/fab/fab.component.d.ts +16 -0
- package/lib/components/atoms/fab/types.d.ts +45 -0
- package/lib/components/atoms/price-tag/price-tag.component.d.ts +16 -0
- package/lib/components/atoms/price-tag/types.d.ts +59 -0
- package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +20 -0
- package/lib/components/atoms/progress-ring/types.d.ts +24 -0
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +36 -0
- package/lib/components/atoms/qr-code/types.d.ts +124 -0
- package/lib/components/atoms/skeleton/skeleton.component.d.ts +12 -0
- package/lib/components/atoms/skeleton/types.d.ts +29 -0
- package/lib/components/molecules/accordion/accordion.component.d.ts +19 -0
- package/lib/components/molecules/accordion/types.d.ts +47 -0
- package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +22 -0
- package/lib/components/molecules/breadcrumb/types.d.ts +45 -0
- package/lib/components/molecules/chip-group/chip-group.component.d.ts +22 -0
- package/lib/components/molecules/chip-group/types.d.ts +65 -0
- package/lib/components/molecules/comment/comment.component.d.ts +42 -0
- package/lib/components/molecules/comment/types.d.ts +171 -0
- package/lib/components/molecules/currency-input/currency-input.component.d.ts +43 -0
- package/lib/components/molecules/currency-input/types.d.ts +96 -0
- package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +42 -0
- package/lib/components/molecules/date-range-input/types.d.ts +109 -0
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +51 -0
- package/lib/components/molecules/glow-card/types.d.ts +92 -0
- package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +34 -0
- package/lib/components/molecules/number-stepper/types.d.ts +88 -0
- package/lib/components/molecules/pagination/pagination.component.d.ts +15 -0
- package/lib/components/molecules/pagination/types.d.ts +41 -0
- package/lib/components/molecules/participant-card/participant-card.component.d.ts +26 -0
- package/lib/components/molecules/participant-card/types.d.ts +132 -0
- package/lib/components/molecules/phone-input/phone-input.component.d.ts +38 -0
- package/lib/components/molecules/phone-input/types.d.ts +98 -0
- package/lib/components/molecules/quote-box/quote-box.component.d.ts +26 -0
- package/lib/components/molecules/raffle-status-card/raffle-status-card.component.d.ts +22 -0
- package/lib/components/molecules/raffle-status-card/types.d.ts +108 -0
- package/lib/components/molecules/range-input/range-input.component.d.ts +30 -0
- package/lib/components/molecules/range-input/types.d.ts +59 -0
- package/lib/components/molecules/rating/rating.component.d.ts +17 -0
- package/lib/components/molecules/rating/types.d.ts +41 -0
- package/lib/components/molecules/segment-control/segment-control.component.d.ts +30 -0
- package/lib/components/molecules/segment-control/types.d.ts +46 -0
- package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +22 -0
- package/lib/components/molecules/share-buttons/types.d.ts +108 -0
- package/lib/components/molecules/stats-card/stats-card.component.d.ts +14 -0
- package/lib/components/molecules/stats-card/types.d.ts +41 -0
- package/lib/components/molecules/stepper/stepper.component.d.ts +21 -0
- package/lib/components/molecules/stepper/types.d.ts +66 -0
- package/lib/components/molecules/tabs/tabs.component.d.ts +17 -0
- package/lib/components/molecules/tabs/types.d.ts +45 -0
- package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +27 -0
- package/lib/components/molecules/textarea-input/types.d.ts +74 -0
- package/lib/components/molecules/ticket-grid/ticket-grid.component.d.ts +41 -0
- package/lib/components/molecules/ticket-grid/types.d.ts +122 -0
- package/lib/components/molecules/timeline/timeline.component.d.ts +14 -0
- package/lib/components/molecules/timeline/types.d.ts +39 -0
- package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +24 -0
- package/lib/components/molecules/toggle-input/types.d.ts +30 -0
- package/lib/components/molecules/winner-display/types.d.ts +103 -0
- package/lib/components/molecules/winner-display/winner-display.component.d.ts +37 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/organisms/comment-section/comment-section.component.d.ts +52 -0
- package/lib/components/organisms/comment-section/types.d.ts +144 -0
- package/lib/components/organisms/data-table/data-table.component.d.ts +46 -0
- package/lib/components/organisms/data-table/types.d.ts +205 -0
- package/lib/components/types.d.ts +21 -15
- package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +71 -0
- package/lib/services/confirmation-dialog/types.d.ts +61 -0
- package/lib/services/modal/modal.service.d.ts +98 -0
- package/lib/services/modal/simple-modal-content.component.d.ts +19 -0
- package/lib/services/modal/types.d.ts +155 -0
- package/lib/services/qr-generator/qr-generator.service.d.ts +115 -0
- package/lib/services/qr-generator/types.d.ts +141 -0
- package/package.json +9 -2
- package/public-api.d.ts +72 -2
- package/LICENSE +0 -21
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { OnInit, OnDestroy, EventEmitter } from '@angular/core';
|
|
2
|
+
import { ChipGroupMetadata, ChipMetadata, ChipSelectionEvent, ChipRemoveEvent } from './types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class ChipGroupComponent implements OnInit, OnDestroy {
|
|
5
|
+
props: ChipGroupMetadata;
|
|
6
|
+
selectionChange: EventEmitter<ChipSelectionEvent>;
|
|
7
|
+
chipRemove: EventEmitter<ChipRemoveEvent>;
|
|
8
|
+
chipClick: EventEmitter<ChipMetadata>;
|
|
9
|
+
private langService;
|
|
10
|
+
private subscriptions;
|
|
11
|
+
private chipLabels;
|
|
12
|
+
ngOnInit(): void;
|
|
13
|
+
ngOnDestroy(): void;
|
|
14
|
+
getChipColor(chip: ChipMetadata): string;
|
|
15
|
+
getChipLabel(chip: ChipMetadata): string;
|
|
16
|
+
onChipClick(chip: ChipMetadata): void;
|
|
17
|
+
onRemoveChip(event: Event, chip: ChipMetadata): void;
|
|
18
|
+
private emitSelectionChange;
|
|
19
|
+
private setupLabels;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChipGroupComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ChipGroupComponent, "val-chip-group", never, { "props": { "alias": "props"; "required": false; }; }, { "selectionChange": "selectionChange"; "chipRemove": "chipRemove"; "chipClick": "chipClick"; }, never, never, true, never>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Color } from '@ionic/core';
|
|
2
|
+
/**
|
|
3
|
+
* Single chip configuration.
|
|
4
|
+
*/
|
|
5
|
+
export interface ChipMetadata {
|
|
6
|
+
/** Unique chip identifier */
|
|
7
|
+
value: string;
|
|
8
|
+
/** Chip label */
|
|
9
|
+
label?: string;
|
|
10
|
+
/** Chip icon */
|
|
11
|
+
icon?: string;
|
|
12
|
+
/** Chip color */
|
|
13
|
+
color?: Color;
|
|
14
|
+
/** Whether chip is selected */
|
|
15
|
+
selected?: boolean;
|
|
16
|
+
/** Whether chip is disabled */
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/** Reactive content key for label */
|
|
19
|
+
contentKey?: string;
|
|
20
|
+
/** Component class name for content lookup */
|
|
21
|
+
contentClass?: string;
|
|
22
|
+
/** Fallback for label */
|
|
23
|
+
contentFallback?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Metadata for the chip group component.
|
|
27
|
+
*/
|
|
28
|
+
export interface ChipGroupMetadata {
|
|
29
|
+
/** Chip items */
|
|
30
|
+
chips: ChipMetadata[];
|
|
31
|
+
/** Allow selection */
|
|
32
|
+
selectable?: boolean;
|
|
33
|
+
/** Allow multiple selection */
|
|
34
|
+
multiple?: boolean;
|
|
35
|
+
/** Allow removing chips */
|
|
36
|
+
removable?: boolean;
|
|
37
|
+
/** Default color for all chips */
|
|
38
|
+
color?: Color;
|
|
39
|
+
/** Selected color */
|
|
40
|
+
selectedColor?: Color;
|
|
41
|
+
/** Chip outline style */
|
|
42
|
+
outline?: boolean;
|
|
43
|
+
/** Unique token identifier */
|
|
44
|
+
token?: string;
|
|
45
|
+
/** Wrap chips or scroll */
|
|
46
|
+
wrap?: boolean;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Event emitted when chip selection changes.
|
|
50
|
+
*/
|
|
51
|
+
export interface ChipSelectionEvent {
|
|
52
|
+
/** Selected chip(s) */
|
|
53
|
+
selected: ChipMetadata | ChipMetadata[];
|
|
54
|
+
/** Selected value(s) */
|
|
55
|
+
values: string | string[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Event emitted when chip is removed.
|
|
59
|
+
*/
|
|
60
|
+
export interface ChipRemoveEvent {
|
|
61
|
+
/** Removed chip */
|
|
62
|
+
chip: ChipMetadata;
|
|
63
|
+
/** Remaining chips */
|
|
64
|
+
remaining: ChipMetadata[];
|
|
65
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { CommentMetadata, CommentReaction, CommentAction, CommentMenuItem, CommentAuthorClickEvent, CommentReactionClickEvent, CommentActionClickEvent, CommentMenuItemClickEvent, CommentLoadMoreEvent } from './types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CommentComponent implements OnInit, OnDestroy {
|
|
5
|
+
props: CommentMetadata;
|
|
6
|
+
authorClick: EventEmitter<CommentAuthorClickEvent>;
|
|
7
|
+
reactionClick: EventEmitter<CommentReactionClickEvent>;
|
|
8
|
+
actionClick: EventEmitter<CommentActionClickEvent>;
|
|
9
|
+
menuItemClick: EventEmitter<CommentMenuItemClickEvent>;
|
|
10
|
+
loadMoreClick: EventEmitter<CommentLoadMoreEvent>;
|
|
11
|
+
collapseToggle: EventEmitter<{
|
|
12
|
+
token: string;
|
|
13
|
+
collapsed: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
displayContent: string;
|
|
16
|
+
private langSubscription;
|
|
17
|
+
private langService;
|
|
18
|
+
ngOnInit(): void;
|
|
19
|
+
ngOnDestroy(): void;
|
|
20
|
+
private updateDisplayContent;
|
|
21
|
+
getInitials(name: string): string;
|
|
22
|
+
formatTimestamp(timestamp: string | Date): string;
|
|
23
|
+
formatCount(count: number): string;
|
|
24
|
+
processContent(content: string): string;
|
|
25
|
+
private escapeHtml;
|
|
26
|
+
getReactionColor(reaction: CommentReaction): string;
|
|
27
|
+
getActionLabel(action: CommentAction): string;
|
|
28
|
+
getMenuItemLabel(item: CommentMenuItem): string;
|
|
29
|
+
hasChildren(): boolean;
|
|
30
|
+
canShowChildren(): boolean;
|
|
31
|
+
getChildProps(child: CommentMetadata): CommentMetadata;
|
|
32
|
+
hasMoreReplies(): boolean;
|
|
33
|
+
getRemainingCount(): number;
|
|
34
|
+
onAuthorClick(): void;
|
|
35
|
+
onReactionClick(reaction: CommentReaction): void;
|
|
36
|
+
onActionClick(action: CommentAction): void;
|
|
37
|
+
onMenuItemClick(item: CommentMenuItem): void;
|
|
38
|
+
onLoadMoreClick(): void;
|
|
39
|
+
onToggleCollapse(): void;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CommentComponent, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CommentComponent, "val-comment", never, { "props": { "alias": "props"; "required": false; }; }, { "authorClick": "authorClick"; "reactionClick": "reactionClick"; "actionClick": "actionClick"; "menuItemClick": "menuItemClick"; "loadMoreClick": "loadMoreClick"; "collapseToggle": "collapseToggle"; }, never, never, true, never>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { Color } from '@ionic/core';
|
|
2
|
+
import { AvatarMetadata } from '../../atoms/avatar/types';
|
|
3
|
+
/**
|
|
4
|
+
* Author information for a comment.
|
|
5
|
+
*/
|
|
6
|
+
export interface CommentAuthor {
|
|
7
|
+
/** Display name */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Username handle (without @) */
|
|
10
|
+
username?: string;
|
|
11
|
+
/** Author avatar configuration */
|
|
12
|
+
avatar?: AvatarMetadata;
|
|
13
|
+
/** Whether user is verified */
|
|
14
|
+
verified?: boolean;
|
|
15
|
+
/** Optional user ID or reference */
|
|
16
|
+
userId?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Reaction configuration (like, love, laugh, etc.)
|
|
20
|
+
*/
|
|
21
|
+
export interface CommentReaction {
|
|
22
|
+
/** Unique identifier for this reaction type */
|
|
23
|
+
token: string;
|
|
24
|
+
/** Icon name (ionicon) */
|
|
25
|
+
icon: string;
|
|
26
|
+
/** Reaction count */
|
|
27
|
+
count: number;
|
|
28
|
+
/** Whether current user has reacted */
|
|
29
|
+
active?: boolean;
|
|
30
|
+
/** Icon color when active */
|
|
31
|
+
activeColor?: Color;
|
|
32
|
+
/** Icon color when inactive */
|
|
33
|
+
color?: Color;
|
|
34
|
+
/** Label for accessibility */
|
|
35
|
+
label?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Action button configuration (reply, share, etc.)
|
|
39
|
+
*/
|
|
40
|
+
export interface CommentAction {
|
|
41
|
+
/** Unique identifier */
|
|
42
|
+
token: string;
|
|
43
|
+
/** Action label */
|
|
44
|
+
label: string;
|
|
45
|
+
/** Optional icon */
|
|
46
|
+
icon?: string;
|
|
47
|
+
/** Button color */
|
|
48
|
+
color?: Color;
|
|
49
|
+
/** Whether action is disabled */
|
|
50
|
+
disabled?: boolean;
|
|
51
|
+
/** Reactive content key */
|
|
52
|
+
contentKey?: string;
|
|
53
|
+
/** Component class for content lookup */
|
|
54
|
+
contentClass?: string;
|
|
55
|
+
/** Fallback label */
|
|
56
|
+
contentFallback?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Menu item for the "more" dropdown (edit, delete, report, etc.)
|
|
60
|
+
*/
|
|
61
|
+
export interface CommentMenuItem {
|
|
62
|
+
/** Unique identifier */
|
|
63
|
+
token: string;
|
|
64
|
+
/** Menu item label */
|
|
65
|
+
label: string;
|
|
66
|
+
/** Optional icon */
|
|
67
|
+
icon?: string;
|
|
68
|
+
/** Item color (danger for delete, etc.) */
|
|
69
|
+
color?: Color;
|
|
70
|
+
/** Whether item is disabled */
|
|
71
|
+
disabled?: boolean;
|
|
72
|
+
/** Whether to show a divider before this item */
|
|
73
|
+
dividerBefore?: boolean;
|
|
74
|
+
/** Reactive content key */
|
|
75
|
+
contentKey?: string;
|
|
76
|
+
/** Component class for content lookup */
|
|
77
|
+
contentClass?: string;
|
|
78
|
+
/** Fallback label */
|
|
79
|
+
contentFallback?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Main comment metadata interface.
|
|
83
|
+
* Supports recursive nesting via children property.
|
|
84
|
+
*/
|
|
85
|
+
export interface CommentMetadata {
|
|
86
|
+
/** Unique comment identifier */
|
|
87
|
+
token: string;
|
|
88
|
+
/** Comment author */
|
|
89
|
+
author: CommentAuthor;
|
|
90
|
+
/** Comment text content */
|
|
91
|
+
content: string;
|
|
92
|
+
/** Timestamp - can be string ("2 hours ago") or Date object */
|
|
93
|
+
timestamp: string | Date;
|
|
94
|
+
/** Available reactions */
|
|
95
|
+
reactions?: CommentReaction[];
|
|
96
|
+
/** Action buttons (reply, etc.) */
|
|
97
|
+
actions?: CommentAction[];
|
|
98
|
+
/** Menu items for "more" dropdown */
|
|
99
|
+
menuItems?: CommentMenuItem[];
|
|
100
|
+
/** Nested child comments (replies) */
|
|
101
|
+
children?: CommentMetadata[];
|
|
102
|
+
/** Whether comment was edited */
|
|
103
|
+
edited?: boolean;
|
|
104
|
+
/** Whether comment is pinned */
|
|
105
|
+
pinned?: boolean;
|
|
106
|
+
/** Whether comment is highlighted */
|
|
107
|
+
highlighted?: boolean;
|
|
108
|
+
/** Whether comment is collapsed */
|
|
109
|
+
collapsed?: boolean;
|
|
110
|
+
/** Total reply count (may differ from children.length if paginated) */
|
|
111
|
+
replyCount?: number;
|
|
112
|
+
/** Whether to auto-linkify URLs in content */
|
|
113
|
+
autoLinkify?: boolean;
|
|
114
|
+
/** Maximum nesting depth (default: 3) */
|
|
115
|
+
maxDepth?: number;
|
|
116
|
+
/** Current depth level (internal use) */
|
|
117
|
+
depth?: number;
|
|
118
|
+
/** Reactive content key for main content */
|
|
119
|
+
contentKey?: string;
|
|
120
|
+
/** Component class for content lookup */
|
|
121
|
+
contentClass?: string;
|
|
122
|
+
/** Fallback content */
|
|
123
|
+
contentFallback?: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Event emitted when author is clicked.
|
|
127
|
+
*/
|
|
128
|
+
export interface CommentAuthorClickEvent {
|
|
129
|
+
/** The author that was clicked */
|
|
130
|
+
author: CommentAuthor;
|
|
131
|
+
/** Parent comment token */
|
|
132
|
+
commentToken: string;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Event emitted when a reaction is clicked.
|
|
136
|
+
*/
|
|
137
|
+
export interface CommentReactionClickEvent {
|
|
138
|
+
/** The reaction that was clicked */
|
|
139
|
+
reaction: CommentReaction;
|
|
140
|
+
/** Parent comment token */
|
|
141
|
+
commentToken: string;
|
|
142
|
+
/** Whether reaction is now active */
|
|
143
|
+
isActive: boolean;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Event emitted when an action is clicked.
|
|
147
|
+
*/
|
|
148
|
+
export interface CommentActionClickEvent {
|
|
149
|
+
/** The action that was clicked */
|
|
150
|
+
action: CommentAction;
|
|
151
|
+
/** Parent comment token */
|
|
152
|
+
commentToken: string;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Event emitted when a menu item is clicked.
|
|
156
|
+
*/
|
|
157
|
+
export interface CommentMenuItemClickEvent {
|
|
158
|
+
/** The menu item that was clicked */
|
|
159
|
+
menuItem: CommentMenuItem;
|
|
160
|
+
/** Parent comment token */
|
|
161
|
+
commentToken: string;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Event emitted when load more replies is clicked.
|
|
165
|
+
*/
|
|
166
|
+
export interface CommentLoadMoreEvent {
|
|
167
|
+
/** Parent comment token */
|
|
168
|
+
commentToken: string;
|
|
169
|
+
/** Current loaded count */
|
|
170
|
+
currentCount: number;
|
|
171
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { CurrencyInputMetadata, CurrencyInputChangeEvent, CurrencyConfig } from './types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CurrencyInputComponent implements OnInit, OnDestroy {
|
|
6
|
+
props: CurrencyInputMetadata;
|
|
7
|
+
currencyChange: EventEmitter<CurrencyInputChangeEvent>;
|
|
8
|
+
states: {
|
|
9
|
+
ENABLED: "ENABLED";
|
|
10
|
+
DISABLED: "DISABLED";
|
|
11
|
+
WORKING: "WORKING";
|
|
12
|
+
ERROR: "ERROR";
|
|
13
|
+
};
|
|
14
|
+
displayControl: FormControl<string>;
|
|
15
|
+
currencyControl: FormControl<string>;
|
|
16
|
+
private langSubscription;
|
|
17
|
+
private valueSubscription;
|
|
18
|
+
private langService;
|
|
19
|
+
private isFocused;
|
|
20
|
+
ngOnInit(): void;
|
|
21
|
+
ngOnDestroy(): void;
|
|
22
|
+
private hasReactiveContent;
|
|
23
|
+
getLabel(): string;
|
|
24
|
+
getPlaceholder(): string;
|
|
25
|
+
getHint(): string;
|
|
26
|
+
private getDefaultPlaceholder;
|
|
27
|
+
getCurrencyList(): CurrencyConfig[];
|
|
28
|
+
getSelectedCurrency(): CurrencyConfig;
|
|
29
|
+
getCurrencySymbol(): string;
|
|
30
|
+
getSymbolPosition(): 'prefix' | 'suffix';
|
|
31
|
+
getDecimalPlaces(): number;
|
|
32
|
+
get hasError(): boolean;
|
|
33
|
+
getErrorMessage(): string;
|
|
34
|
+
onInput(event: CustomEvent): void;
|
|
35
|
+
onFocus(): void;
|
|
36
|
+
onBlur(): void;
|
|
37
|
+
onCurrencyChange(event: CustomEvent): void;
|
|
38
|
+
private parseValue;
|
|
39
|
+
private formatValue;
|
|
40
|
+
private emitChange;
|
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CurrencyInputComponent, never>;
|
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CurrencyInputComponent, "val-currency-input", never, { "props": { "alias": "props"; "required": false; }; }, { "currencyChange": "currencyChange"; }, never, never, true, never>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { FormControl } from '@angular/forms';
|
|
2
|
+
import { Color } from '@ionic/core';
|
|
3
|
+
import { ComponentState } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Currency configuration.
|
|
6
|
+
*/
|
|
7
|
+
export interface CurrencyConfig {
|
|
8
|
+
/** Currency code (ISO 4217, e.g., 'USD', 'MXN', 'EUR') */
|
|
9
|
+
code: string;
|
|
10
|
+
/** Currency symbol (e.g., '$', '€', '£') */
|
|
11
|
+
symbol: string;
|
|
12
|
+
/** Currency name */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Symbol position */
|
|
15
|
+
symbolPosition?: 'prefix' | 'suffix';
|
|
16
|
+
/** Decimal separator */
|
|
17
|
+
decimalSeparator?: string;
|
|
18
|
+
/** Thousands separator */
|
|
19
|
+
thousandsSeparator?: string;
|
|
20
|
+
/** Number of decimal places */
|
|
21
|
+
decimalPlaces?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Common currency configurations.
|
|
25
|
+
*/
|
|
26
|
+
export declare const COMMON_CURRENCIES: CurrencyConfig[];
|
|
27
|
+
/**
|
|
28
|
+
* Metadata for the currency input component.
|
|
29
|
+
*/
|
|
30
|
+
export interface CurrencyInputMetadata {
|
|
31
|
+
/** Form control for the numeric value (stores raw number) */
|
|
32
|
+
control: FormControl<number | null>;
|
|
33
|
+
/** Unique token for the input */
|
|
34
|
+
token?: string;
|
|
35
|
+
/** Display label */
|
|
36
|
+
label?: string;
|
|
37
|
+
/** Field name */
|
|
38
|
+
name?: string;
|
|
39
|
+
/** Help text */
|
|
40
|
+
hint?: string;
|
|
41
|
+
/** Input placeholder */
|
|
42
|
+
placeholder?: string;
|
|
43
|
+
/** Field state */
|
|
44
|
+
state?: ComponentState;
|
|
45
|
+
/** Currency configuration */
|
|
46
|
+
currency?: CurrencyConfig;
|
|
47
|
+
/** Currency code (shortcut if not providing full config) */
|
|
48
|
+
currencyCode?: string;
|
|
49
|
+
/** Available currencies for selector */
|
|
50
|
+
currencies?: CurrencyConfig[];
|
|
51
|
+
/** Show currency selector */
|
|
52
|
+
showCurrencySelector?: boolean;
|
|
53
|
+
/** Allow negative values */
|
|
54
|
+
allowNegative?: boolean;
|
|
55
|
+
/** Number of decimal places (overrides currency default) */
|
|
56
|
+
decimalPlaces?: number;
|
|
57
|
+
/** Show thousands separator */
|
|
58
|
+
showThousandsSeparator?: boolean;
|
|
59
|
+
/** Show currency symbol */
|
|
60
|
+
showSymbol?: boolean;
|
|
61
|
+
/** Minimum value */
|
|
62
|
+
min?: number;
|
|
63
|
+
/** Maximum value */
|
|
64
|
+
max?: number;
|
|
65
|
+
/** Component color */
|
|
66
|
+
color?: Color;
|
|
67
|
+
/** Fill style */
|
|
68
|
+
fill?: 'outline' | 'solid';
|
|
69
|
+
/** Label placement */
|
|
70
|
+
labelPlacement?: 'fixed' | 'floating' | 'stacked' | 'start' | 'end';
|
|
71
|
+
/** Custom CSS class */
|
|
72
|
+
cssClass?: string;
|
|
73
|
+
/** Content key for reactive label */
|
|
74
|
+
labelContentKey?: string;
|
|
75
|
+
/** Content key for reactive placeholder */
|
|
76
|
+
placeholderContentKey?: string;
|
|
77
|
+
/** Content key for reactive hint */
|
|
78
|
+
hintContentKey?: string;
|
|
79
|
+
/** Component class name for content lookup */
|
|
80
|
+
contentClass?: string;
|
|
81
|
+
/** Custom error messages */
|
|
82
|
+
errors?: Record<string, string>;
|
|
83
|
+
/** Show validation errors */
|
|
84
|
+
showErrors?: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Event emitted when currency input changes.
|
|
88
|
+
*/
|
|
89
|
+
export interface CurrencyInputChangeEvent {
|
|
90
|
+
/** Raw numeric value */
|
|
91
|
+
value: number | null;
|
|
92
|
+
/** Formatted display value */
|
|
93
|
+
formattedValue: string;
|
|
94
|
+
/** Selected currency */
|
|
95
|
+
currency: CurrencyConfig;
|
|
96
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { DateRangeInputMetadata, DateRangeChangeEvent } from './types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class DateRangeInputComponent implements OnInit, OnDestroy {
|
|
6
|
+
props: DateRangeInputMetadata;
|
|
7
|
+
rangeChange: EventEmitter<DateRangeChangeEvent>;
|
|
8
|
+
states: {
|
|
9
|
+
ENABLED: "ENABLED";
|
|
10
|
+
DISABLED: "DISABLED";
|
|
11
|
+
WORKING: "WORKING";
|
|
12
|
+
ERROR: "ERROR";
|
|
13
|
+
};
|
|
14
|
+
internalStartControl: FormControl<string>;
|
|
15
|
+
internalEndControl: FormControl<string>;
|
|
16
|
+
startDatetimeId: string;
|
|
17
|
+
endDatetimeId: string;
|
|
18
|
+
showDayCount: boolean;
|
|
19
|
+
private langSubscription;
|
|
20
|
+
private valueSubscription;
|
|
21
|
+
private langService;
|
|
22
|
+
ngOnInit(): void;
|
|
23
|
+
ngOnDestroy(): void;
|
|
24
|
+
private hasReactiveContent;
|
|
25
|
+
getLabel(): string;
|
|
26
|
+
getStartLabel(): string;
|
|
27
|
+
getEndLabel(): string;
|
|
28
|
+
getHint(): string;
|
|
29
|
+
getMinDate(): string | undefined;
|
|
30
|
+
getMaxDate(): string | undefined;
|
|
31
|
+
getMaxStartDate(): string | undefined;
|
|
32
|
+
getMinEndDate(): string | undefined;
|
|
33
|
+
get hasError(): boolean;
|
|
34
|
+
getErrorMessage(): string;
|
|
35
|
+
get dayCount(): number | null;
|
|
36
|
+
onStartDateChange(event: CustomEvent): void;
|
|
37
|
+
onEndDateChange(event: CustomEvent): void;
|
|
38
|
+
private updateMainControl;
|
|
39
|
+
private validateRange;
|
|
40
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeInputComponent, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DateRangeInputComponent, "val-date-range-input", never, { "props": { "alias": "props"; "required": false; }; }, { "rangeChange": "rangeChange"; }, never, never, true, never>;
|
|
42
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { FormControl } from '@angular/forms';
|
|
2
|
+
import { Color } from '@ionic/core';
|
|
3
|
+
import { ComponentState } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Date range value.
|
|
6
|
+
*/
|
|
7
|
+
export interface DateRangeValue {
|
|
8
|
+
/** Start date (ISO string) */
|
|
9
|
+
start: string | null;
|
|
10
|
+
/** End date (ISO string) */
|
|
11
|
+
end: string | null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Metadata for the date range input component.
|
|
15
|
+
*/
|
|
16
|
+
export interface DateRangeInputMetadata {
|
|
17
|
+
/** Form control for the date range (stores DateRangeValue) */
|
|
18
|
+
control: FormControl<DateRangeValue | null>;
|
|
19
|
+
/** Separate control for start date */
|
|
20
|
+
startControl?: FormControl<string | null>;
|
|
21
|
+
/** Separate control for end date */
|
|
22
|
+
endControl?: FormControl<string | null>;
|
|
23
|
+
/** Unique token for the input */
|
|
24
|
+
token?: string;
|
|
25
|
+
/** Display label */
|
|
26
|
+
label?: string;
|
|
27
|
+
/** Field name */
|
|
28
|
+
name?: string;
|
|
29
|
+
/** Help text */
|
|
30
|
+
hint?: string;
|
|
31
|
+
/** Field state */
|
|
32
|
+
state?: ComponentState;
|
|
33
|
+
/** Minimum selectable date (ISO string) */
|
|
34
|
+
min?: string;
|
|
35
|
+
/** Maximum selectable date (ISO string) */
|
|
36
|
+
max?: string;
|
|
37
|
+
/** Locale for date display */
|
|
38
|
+
locale?: string;
|
|
39
|
+
/** First day of week (0 = Sunday, 1 = Monday) */
|
|
40
|
+
firstDayOfWeek?: number;
|
|
41
|
+
/** Date presentation format */
|
|
42
|
+
presentation?: 'date' | 'date-time' | 'month' | 'month-year' | 'year';
|
|
43
|
+
/** Custom format options */
|
|
44
|
+
formatOptions?: {
|
|
45
|
+
date?: {
|
|
46
|
+
dateStyle?: 'full' | 'long' | 'medium' | 'short';
|
|
47
|
+
};
|
|
48
|
+
time?: {
|
|
49
|
+
timeStyle?: 'full' | 'long' | 'medium' | 'short';
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/** Start date label */
|
|
53
|
+
startLabel?: string;
|
|
54
|
+
/** End date label */
|
|
55
|
+
endLabel?: string;
|
|
56
|
+
/** Start date placeholder */
|
|
57
|
+
startPlaceholder?: string;
|
|
58
|
+
/** End date placeholder */
|
|
59
|
+
endPlaceholder?: string;
|
|
60
|
+
/** Done button text */
|
|
61
|
+
doneText?: string;
|
|
62
|
+
/** Cancel button text */
|
|
63
|
+
cancelText?: string;
|
|
64
|
+
/** Require both dates */
|
|
65
|
+
requireBoth?: boolean;
|
|
66
|
+
/** Minimum range in days */
|
|
67
|
+
minRangeDays?: number;
|
|
68
|
+
/** Maximum range in days */
|
|
69
|
+
maxRangeDays?: number;
|
|
70
|
+
/** Disable past dates */
|
|
71
|
+
disablePastDates?: boolean;
|
|
72
|
+
/** Disable future dates */
|
|
73
|
+
disableFutureDates?: boolean;
|
|
74
|
+
/** Specific dates to disable */
|
|
75
|
+
disabledDates?: string[];
|
|
76
|
+
/** Display mode: 'inline' shows both pickers, 'modal' uses modals */
|
|
77
|
+
displayMode?: 'inline' | 'modal';
|
|
78
|
+
/** Layout direction */
|
|
79
|
+
layout?: 'horizontal' | 'vertical';
|
|
80
|
+
/** Component color */
|
|
81
|
+
color?: Color;
|
|
82
|
+
/** Custom CSS class */
|
|
83
|
+
cssClass?: string;
|
|
84
|
+
/** Content key for reactive label */
|
|
85
|
+
labelContentKey?: string;
|
|
86
|
+
/** Content key for reactive start label */
|
|
87
|
+
startLabelContentKey?: string;
|
|
88
|
+
/** Content key for reactive end label */
|
|
89
|
+
endLabelContentKey?: string;
|
|
90
|
+
/** Content key for reactive hint */
|
|
91
|
+
hintContentKey?: string;
|
|
92
|
+
/** Component class name for content lookup */
|
|
93
|
+
contentClass?: string;
|
|
94
|
+
/** Custom error messages */
|
|
95
|
+
errors?: Record<string, string>;
|
|
96
|
+
/** Show validation errors */
|
|
97
|
+
showErrors?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Event emitted when date range changes.
|
|
101
|
+
*/
|
|
102
|
+
export interface DateRangeChangeEvent {
|
|
103
|
+
/** Date range value */
|
|
104
|
+
value: DateRangeValue;
|
|
105
|
+
/** Whether the range is valid */
|
|
106
|
+
isValid: boolean;
|
|
107
|
+
/** Number of days in the range */
|
|
108
|
+
dayCount: number | null;
|
|
109
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { GlowCardClickEvent, GlowCardMetadata } from './types';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* val-glow-card
|
|
7
|
+
*
|
|
8
|
+
* A card component featuring an image with zoom-on-hover, animated CTA link,
|
|
9
|
+
* and dynamic glow effect that adapts to light/dark mode.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <val-glow-card
|
|
13
|
+
* [props]="{
|
|
14
|
+
* imageSrc: 'https://example.com/image.jpg',
|
|
15
|
+
* imageAlt: 'Example image',
|
|
16
|
+
* title: 'Card Title',
|
|
17
|
+
* description: 'Card description text',
|
|
18
|
+
* cta: { text: 'Learn More', url: '/details', type: 'internal' }
|
|
19
|
+
* }"
|
|
20
|
+
* (onClick)="handleClick($event)"
|
|
21
|
+
* ></val-glow-card>
|
|
22
|
+
*
|
|
23
|
+
* @input props: GlowCardMetadata - Configuration for the card
|
|
24
|
+
* @output onClick - Emits GlowCardClickEvent when card, image, or CTA is clicked
|
|
25
|
+
*/
|
|
26
|
+
export declare class GlowCardComponent implements OnInit {
|
|
27
|
+
props: GlowCardMetadata;
|
|
28
|
+
onClick: EventEmitter<GlowCardClickEvent>;
|
|
29
|
+
private langService;
|
|
30
|
+
private navigationService;
|
|
31
|
+
private themeService;
|
|
32
|
+
title$: Observable<string>;
|
|
33
|
+
description$: Observable<string>;
|
|
34
|
+
ctaText$: Observable<string>;
|
|
35
|
+
private readonly ionicColors;
|
|
36
|
+
private readonly colorRgbMap;
|
|
37
|
+
constructor();
|
|
38
|
+
ngOnInit(): void;
|
|
39
|
+
get isDark(): boolean;
|
|
40
|
+
private initializeContent;
|
|
41
|
+
getGlowColor(): string;
|
|
42
|
+
getGlowColorRgb(): string;
|
|
43
|
+
private hexToRgb;
|
|
44
|
+
getAspectRatioValue(): string;
|
|
45
|
+
getBorderColor(): string;
|
|
46
|
+
onCardClick(event: MouseEvent): void;
|
|
47
|
+
onImageClick(event: MouseEvent): void;
|
|
48
|
+
onCtaClick(event: MouseEvent): void;
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GlowCardComponent, never>;
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GlowCardComponent, "val-glow-card", never, { "props": { "alias": "props"; "required": false; }; }, { "onClick": "onClick"; }, never, never, true, never>;
|
|
51
|
+
}
|