@devjuliovilla/jv-ui 1.10.0 → 1.11.1
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 +262 -0
- package/fesm2022/devjuliovilla-jv-ui.mjs +1052 -176
- package/fesm2022/devjuliovilla-jv-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/devjuliovilla-jv-ui.d.ts +95 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devjuliovilla/jv-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.1",
|
|
4
4
|
"description": "Accessibility-first Angular component library — components, forms, data grids, dialogs, layout, services, and i18n infrastructure built with signals and standalone APIs.",
|
|
5
5
|
"author": "@devjuliovilla",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, InjectionToken, AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { TemplateRef, ElementRef, InjectionToken, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import * as _angular_forms from '@angular/forms';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
5
|
import * as _devjuliovilla_jv_ui from '@devjuliovilla/jv-ui';
|
|
@@ -225,6 +225,7 @@ interface JvUiFormats {
|
|
|
225
225
|
percent: Intl.NumberFormatOptions;
|
|
226
226
|
}
|
|
227
227
|
type JvToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
228
|
+
type JvTabTransition = 'none' | 'fade' | 'slide';
|
|
228
229
|
interface JvUiConfig {
|
|
229
230
|
theme: JvTheme;
|
|
230
231
|
density: JvDensity;
|
|
@@ -234,6 +235,7 @@ interface JvUiConfig {
|
|
|
234
235
|
formatLocale: string;
|
|
235
236
|
formats: JvUiFormats;
|
|
236
237
|
toastPosition: JvToastPosition;
|
|
238
|
+
tabsTransition: JvTabTransition;
|
|
237
239
|
}
|
|
238
240
|
type JvUiConfigInput = Omit<Partial<JvUiConfig>, 'formats'> & {
|
|
239
241
|
formats?: Partial<JvUiFormats>;
|
|
@@ -448,7 +450,7 @@ declare class JvDatePickerComponent implements ControlValueAccessor {
|
|
|
448
450
|
protected readonly visibleMonth: _angular_core.WritableSignal<Date>;
|
|
449
451
|
protected readonly focusedDate: _angular_core.WritableSignal<Date>;
|
|
450
452
|
protected readonly dialogId: string;
|
|
451
|
-
protected value: Date | null
|
|
453
|
+
protected readonly value: _angular_core.WritableSignal<Date | null>;
|
|
452
454
|
protected disabled: boolean;
|
|
453
455
|
protected readonly resolvedDialogTitle: _angular_core.Signal<string>;
|
|
454
456
|
protected readonly currentValue: _angular_core.Signal<Date | null | undefined>;
|
|
@@ -675,6 +677,86 @@ declare class JvTextareaComponent implements ControlValueAccessor {
|
|
|
675
677
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTextareaComponent, "jv-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "cols": { "alias": "cols"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
676
678
|
}
|
|
677
679
|
|
|
680
|
+
interface JvGalleryImage {
|
|
681
|
+
src: string;
|
|
682
|
+
alt: string;
|
|
683
|
+
thumbnail?: string;
|
|
684
|
+
}
|
|
685
|
+
interface JvGalleryAction {
|
|
686
|
+
id: string;
|
|
687
|
+
label: string;
|
|
688
|
+
icon?: string;
|
|
689
|
+
tone?: JvIntent;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
declare class JvImageGalleryComponent {
|
|
693
|
+
private readonly translation;
|
|
694
|
+
readonly images: _angular_core.InputSignal<JvGalleryImage[]>;
|
|
695
|
+
readonly stripHeightVh: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
696
|
+
readonly actions: _angular_core.InputSignal<JvGalleryAction[]>;
|
|
697
|
+
readonly imageClick: _angular_core.OutputEmitterRef<JvGalleryImage>;
|
|
698
|
+
readonly actionClick: _angular_core.OutputEmitterRef<{
|
|
699
|
+
actionId: string;
|
|
700
|
+
image: JvGalleryImage;
|
|
701
|
+
}>;
|
|
702
|
+
protected readonly strip: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
|
|
703
|
+
protected readonly dialogOpen: _angular_core.WritableSignal<boolean>;
|
|
704
|
+
protected readonly currentIndex: _angular_core.WritableSignal<number>;
|
|
705
|
+
protected readonly slideDirection: _angular_core.WritableSignal<"left" | "right" | null>;
|
|
706
|
+
protected readonly hasMultiple: _angular_core.Signal<boolean>;
|
|
707
|
+
protected readonly stripHeightStyle: _angular_core.Signal<string>;
|
|
708
|
+
protected readonly currentImage: _angular_core.Signal<JvGalleryImage>;
|
|
709
|
+
protected readonly dialogTitle: _angular_core.Signal<string>;
|
|
710
|
+
protected readonly translatedLabels: _angular_core.Signal<{
|
|
711
|
+
close: string;
|
|
712
|
+
prev: string;
|
|
713
|
+
next: string;
|
|
714
|
+
}>;
|
|
715
|
+
protected handleKeydown(event: KeyboardEvent): void;
|
|
716
|
+
protected onWheel(event: WheelEvent): void;
|
|
717
|
+
protected openDialog(index: number): void;
|
|
718
|
+
protected closeDialog(): void;
|
|
719
|
+
protected previous(): void;
|
|
720
|
+
protected next(): void;
|
|
721
|
+
protected onAction(action: JvGalleryAction): void;
|
|
722
|
+
private clampStripHeight;
|
|
723
|
+
private showImage;
|
|
724
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvImageGalleryComponent, never>;
|
|
725
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvImageGalleryComponent, "jv-image-gallery", never, { "images": { "alias": "images"; "required": false; "isSignal": true; }; "stripHeightVh": { "alias": "stripHeightVh"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; }, { "imageClick": "imageClick"; "actionClick": "actionClick"; }, never, never, true, never>;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
interface JvSliderImage {
|
|
729
|
+
src: string;
|
|
730
|
+
alt: string;
|
|
731
|
+
description?: string;
|
|
732
|
+
thumbnail?: string;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
declare class JvImageSliderComponent {
|
|
736
|
+
private readonly thumbnailStripRef;
|
|
737
|
+
private readonly translation;
|
|
738
|
+
readonly images: _angular_core.InputSignal<JvSliderImage[]>;
|
|
739
|
+
readonly showThumbnails: _angular_core.InputSignal<boolean>;
|
|
740
|
+
readonly showDescription: _angular_core.InputSignal<boolean>;
|
|
741
|
+
readonly imageChange: _angular_core.OutputEmitterRef<number>;
|
|
742
|
+
protected readonly currentIndex: _angular_core.WritableSignal<number>;
|
|
743
|
+
protected readonly hasMultiple: _angular_core.Signal<boolean>;
|
|
744
|
+
protected readonly currentImage: _angular_core.Signal<JvSliderImage>;
|
|
745
|
+
protected readonly translatedAriaLabels: _angular_core.Signal<{
|
|
746
|
+
prev: string;
|
|
747
|
+
next: string;
|
|
748
|
+
thumbnailList: string;
|
|
749
|
+
}>;
|
|
750
|
+
constructor();
|
|
751
|
+
protected handleKeydown(event: KeyboardEvent): void;
|
|
752
|
+
protected previous(): void;
|
|
753
|
+
protected next(): void;
|
|
754
|
+
protected goTo(index: number): void;
|
|
755
|
+
private scrollThumbnailIntoView;
|
|
756
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvImageSliderComponent, never>;
|
|
757
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvImageSliderComponent, "jv-image-slider", never, { "images": { "alias": "images"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; "showDescription": { "alias": "showDescription"; "required": false; "isSignal": true; }; }, { "imageChange": "imageChange"; }, never, never, true, never>;
|
|
758
|
+
}
|
|
759
|
+
|
|
678
760
|
declare class JvIconComponent {
|
|
679
761
|
private readonly warnedNames;
|
|
680
762
|
readonly name: _angular_core.InputSignal<string>;
|
|
@@ -963,12 +1045,18 @@ declare class JvTabsComponent implements AfterViewInit {
|
|
|
963
1045
|
private readonly instanceId;
|
|
964
1046
|
private readonly panelTemplates;
|
|
965
1047
|
private readonly tabListRef;
|
|
1048
|
+
private readonly config;
|
|
966
1049
|
readonly tabs: _angular_core.InputSignal<JvTabItem[]>;
|
|
967
1050
|
readonly activeTabId: _angular_core.InputSignal<string | null>;
|
|
968
1051
|
readonly keepMounted: _angular_core.InputSignal<boolean>;
|
|
1052
|
+
readonly transition: _angular_core.InputSignal<JvTabTransition | null>;
|
|
969
1053
|
readonly activeTabChange: _angular_core.OutputEmitterRef<string>;
|
|
970
1054
|
protected readonly showScrollLeft: _angular_core.WritableSignal<boolean>;
|
|
971
1055
|
protected readonly showScrollRight: _angular_core.WritableSignal<boolean>;
|
|
1056
|
+
protected readonly slideDirection: _angular_core.WritableSignal<"left" | "right">;
|
|
1057
|
+
protected readonly outgoingPanelId: _angular_core.WritableSignal<string | null>;
|
|
1058
|
+
private readonly previousActiveTabId;
|
|
1059
|
+
protected readonly effectiveTransition: _angular_core.Signal<JvTabTransition>;
|
|
972
1060
|
protected readonly resolvedActiveTabId: _angular_core.Signal<string>;
|
|
973
1061
|
constructor();
|
|
974
1062
|
ngAfterViewInit(): void;
|
|
@@ -976,6 +1064,7 @@ declare class JvTabsComponent implements AfterViewInit {
|
|
|
976
1064
|
protected isActive(tabId: string): boolean;
|
|
977
1065
|
protected getTabIndex(tabId: string, disabled: boolean): 0 | -1;
|
|
978
1066
|
protected activateTab(tabId: string): void;
|
|
1067
|
+
protected handleTransitionEnd(event: TransitionEvent): void;
|
|
979
1068
|
protected handleKeydown(event: KeyboardEvent, currentTabId: string): void;
|
|
980
1069
|
protected scrollTabs(direction: -1 | 1): void;
|
|
981
1070
|
protected updateScrollControls(): void;
|
|
@@ -987,7 +1076,7 @@ declare class JvTabsComponent implements AfterViewInit {
|
|
|
987
1076
|
private focusTabButton;
|
|
988
1077
|
private getTabButton;
|
|
989
1078
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTabsComponent, never>;
|
|
990
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTabsComponent, "jv-tabs", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; }, { "activeTabChange": "activeTabChange"; }, ["panelTemplates"], never, true, never>;
|
|
1079
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTabsComponent, "jv-tabs", never, { "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "activeTabId": { "alias": "activeTabId"; "required": false; "isSignal": true; }; "keepMounted": { "alias": "keepMounted"; "required": false; "isSignal": true; }; "transition": { "alias": "transition"; "required": false; "isSignal": true; }; }, { "activeTabChange": "activeTabChange"; }, ["panelTemplates"], never, true, never>;
|
|
991
1080
|
}
|
|
992
1081
|
|
|
993
1082
|
type JvTooltipPosition = 'top' | 'right' | 'bottom' | 'left';
|
|
@@ -1257,6 +1346,7 @@ declare class JvGridComponent<T = any> {
|
|
|
1257
1346
|
protected onVirtualScroll(target: HTMLElement): void;
|
|
1258
1347
|
protected exportCsv(): void;
|
|
1259
1348
|
protected exportExcel(): void;
|
|
1349
|
+
private buildExportMatrix;
|
|
1260
1350
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvGridComponent<any>, never>;
|
|
1261
1351
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvGridComponent<any>, "jv-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "actionClick": "actionClick"; "selectionChange": "selectionChange"; "pageChange": "pageChange"; "searchChange": "searchChange"; "sortChange": "sortChange"; "columnFilter": "columnFilter"; "columnResize": "columnResize"; "columnReorder": "columnReorder"; "rowEdit": "rowEdit"; }, never, never, true, never>;
|
|
1262
1352
|
}
|
|
@@ -1286,5 +1376,5 @@ declare class JvPaginationComponent {
|
|
|
1286
1376
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvPaginationComponent, "jv-pagination", never, { "totalItems": { "alias": "totalItems"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; "maxVisiblePages": { "alias": "maxVisiblePages"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
|
|
1287
1377
|
}
|
|
1288
1378
|
|
|
1289
|
-
export { EN, ES, JV_DEFAULT_LOCALE, JV_FALLBACK_ICON_NAME, JV_GRID_DEFAULT_OPTIONS, JV_LOCALE_DICTIONARIES, JV_LUCIDE_ICON_REGISTRY, JV_UI_CONFIG, JV_UI_CONFIG_DEFAULTS, JV_UI_DEFAULT_CONFIG, JvAccordionComponent, JvAccordionPanelDirective, JvAlertComponent, JvAnnouncementService, JvBadgeComponent, JvBreadcrumbComponent, JvButtonComponent, JvButtonGroupComponent, JvCardComponent, JvChangePasswordPageComponent, JvCheckboxComponent, JvCodeComponent, JvCollapsiblePanelComponent, JvConfirmDialogComponent, JvDashboardShellComponent, JvDatePickerComponent, JvDialogComponent, JvDialogService, JvDividerComponent, JvFileInputComponent, JvForgotPasswordPageComponent, JvFormContainerComponent, JvFormatService, JvGridComponent, JvIconButtonComponent, JvIconComponent, JvInputComponent, JvListComponent, JvListItemComponent, JvLoaderComponent, JvLoaderService, JvLoginPageComponent, JvModalSelectorComponent, JvPageComponent, JvPaginationComponent, JvRadioComponent, JvSectionComponent, JvSelectComponent, JvSidebarComponent, JvSwitchComponent, JvTabPanelDirective, JvTabsComponent, JvTextareaComponent, JvThemeService, JvToastComponent, JvToastService, JvTooltipDirective, JvTopbarComponent, JvTranslationService, provideJvUi };
|
|
1290
|
-
export type { JvAccordionItem, JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvCodeFont, JvCollapsiblePanelVariant, JvConfirmOptions, JvDensity, JvFileInputRejection, JvForgotPasswordSubmitEvent, JvFormatKind, JvFormatOverrides, JvGridAction, JvGridColumn, JvGridColumnFilter, JvGridColumnFormatOptions, JvGridColumnReorderEvent, JvGridColumnResizeEvent, JvGridColumnType, JvGridColumnWidth, JvGridFilterOperator, JvGridOptions, JvGridPageEvent, JvGridRowEditEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIconDefinition, JvIconElement, JvIntent, JvListItemModel, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvMessagesLocale, JvModalSelectorOption, JvNavItem, JvPaginationEvent, JvSelectOption, JvTabItem, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTooltipPosition, JvTopbarAction, JvUiConfig, JvUiConfigInput, JvUiFormats };
|
|
1379
|
+
export { EN, ES, JV_DEFAULT_LOCALE, JV_FALLBACK_ICON_NAME, JV_GRID_DEFAULT_OPTIONS, JV_LOCALE_DICTIONARIES, JV_LUCIDE_ICON_REGISTRY, JV_UI_CONFIG, JV_UI_CONFIG_DEFAULTS, JV_UI_DEFAULT_CONFIG, JvAccordionComponent, JvAccordionPanelDirective, JvAlertComponent, JvAnnouncementService, JvBadgeComponent, JvBreadcrumbComponent, JvButtonComponent, JvButtonGroupComponent, JvCardComponent, JvChangePasswordPageComponent, JvCheckboxComponent, JvCodeComponent, JvCollapsiblePanelComponent, JvConfirmDialogComponent, JvDashboardShellComponent, JvDatePickerComponent, JvDialogComponent, JvDialogService, JvDividerComponent, JvFileInputComponent, JvForgotPasswordPageComponent, JvFormContainerComponent, JvFormatService, JvGridComponent, JvIconButtonComponent, JvIconComponent, JvImageGalleryComponent, JvImageSliderComponent, JvInputComponent, JvListComponent, JvListItemComponent, JvLoaderComponent, JvLoaderService, JvLoginPageComponent, JvModalSelectorComponent, JvPageComponent, JvPaginationComponent, JvRadioComponent, JvSectionComponent, JvSelectComponent, JvSidebarComponent, JvSwitchComponent, JvTabPanelDirective, JvTabsComponent, JvTextareaComponent, JvThemeService, JvToastComponent, JvToastService, JvTooltipDirective, JvTopbarComponent, JvTranslationService, provideJvUi };
|
|
1380
|
+
export type { JvAccordionItem, JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvCodeFont, JvCollapsiblePanelVariant, JvConfirmOptions, JvDensity, JvFileInputRejection, JvForgotPasswordSubmitEvent, JvFormatKind, JvFormatOverrides, JvGalleryAction, JvGalleryImage, JvGridAction, JvGridColumn, JvGridColumnFilter, JvGridColumnFormatOptions, JvGridColumnReorderEvent, JvGridColumnResizeEvent, JvGridColumnType, JvGridColumnWidth, JvGridFilterOperator, JvGridOptions, JvGridPageEvent, JvGridRowEditEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIconDefinition, JvIconElement, JvIntent, JvListItemModel, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvMessagesLocale, JvModalSelectorOption, JvNavItem, JvPaginationEvent, JvSelectOption, JvSliderImage, JvTabItem, JvTabTransition, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTooltipPosition, JvTopbarAction, JvUiConfig, JvUiConfigInput, JvUiFormats };
|