tecnualng 21.0.11 → 21.0.16
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 +167 -30
- package/fesm2022/tecnualng.mjs +955 -76
- package/fesm2022/tecnualng.mjs.map +1 -1
- package/package.json +1 -1
- package/types/tecnualng.d.ts +222 -7
package/types/tecnualng.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { ElementRef, TemplateRef, OnDestroy, ApplicationRef, EnvironmentInjector, AfterContentInit, QueryList } from '@angular/core';
|
|
3
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
+
import { ElementRef, TemplateRef, AfterViewInit, OnDestroy, NgZone, ApplicationRef, EnvironmentInjector, AfterContentInit, QueryList } from '@angular/core';
|
|
3
|
+
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
4
4
|
|
|
5
5
|
type TngButtonAppearance = 'text' | 'filled' | 'elevated' | 'outlined' | 'tonal';
|
|
6
6
|
declare class TngButton {
|
|
@@ -51,6 +51,43 @@ declare class TecnualInputComponent implements ControlValueAccessor {
|
|
|
51
51
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TecnualInputComponent, "tng-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; }, never, never, true, never>;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
declare class TngInputDirective {
|
|
55
|
+
private el;
|
|
56
|
+
private renderer;
|
|
57
|
+
ngControl: NgControl | null;
|
|
58
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
59
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
60
|
+
focused: _angular_core.WritableSignal<boolean>;
|
|
61
|
+
checked: _angular_core.WritableSignal<boolean>;
|
|
62
|
+
private _value;
|
|
63
|
+
private _inputType;
|
|
64
|
+
hasValue: _angular_core.Signal<boolean>;
|
|
65
|
+
computedPlaceholder: _angular_core.Signal<string>;
|
|
66
|
+
isCheckbox: _angular_core.Signal<boolean>;
|
|
67
|
+
isRadio: _angular_core.Signal<boolean>;
|
|
68
|
+
isTextField: _angular_core.Signal<boolean>;
|
|
69
|
+
constructor();
|
|
70
|
+
onFocus(): void;
|
|
71
|
+
onBlur(): void;
|
|
72
|
+
onInput(): void;
|
|
73
|
+
onChange(): void;
|
|
74
|
+
ngAfterViewInit(): void;
|
|
75
|
+
private detectInputType;
|
|
76
|
+
private updateValue;
|
|
77
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngInputDirective, never>;
|
|
78
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TngInputDirective, "input[tngInput], textarea[tngInput]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
declare class TngFormFieldComponent {
|
|
82
|
+
label: _angular_core.InputSignal<string>;
|
|
83
|
+
inputDirective: _angular_core.Signal<TngInputDirective | undefined>;
|
|
84
|
+
isFocused: _angular_core.Signal<boolean>;
|
|
85
|
+
hasValue: _angular_core.Signal<boolean>;
|
|
86
|
+
isDisabled: _angular_core.Signal<boolean>;
|
|
87
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngFormFieldComponent, never>;
|
|
88
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngFormFieldComponent, "tng-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, ["inputDirective"], ["*"], true, never>;
|
|
89
|
+
}
|
|
90
|
+
|
|
54
91
|
interface DateRange {
|
|
55
92
|
start: Date | null;
|
|
56
93
|
end: Date | null;
|
|
@@ -124,8 +161,8 @@ declare class TecnualTableComponent {
|
|
|
124
161
|
}
|
|
125
162
|
|
|
126
163
|
type TngToolbarPosition = 'top' | 'bottom' | 'static';
|
|
127
|
-
type TngToolbarPositionType = 'static' | 'relative' | 'absolute' | 'fixed';
|
|
128
|
-
type TngToolbarColor = 'default' | 'primary' | 'secondary';
|
|
164
|
+
type TngToolbarPositionType = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
|
|
165
|
+
type TngToolbarColor = 'default' | 'primary' | 'secondary' | 'transparent';
|
|
129
166
|
declare class TngToolbarComponent {
|
|
130
167
|
position: _angular_core.InputSignal<TngToolbarPosition>;
|
|
131
168
|
positionType: _angular_core.InputSignal<TngToolbarPositionType>;
|
|
@@ -135,7 +172,41 @@ declare class TngToolbarComponent {
|
|
|
135
172
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngToolbarComponent, "tng-toolbar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "positionType": { "alias": "positionType"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "elevation": { "alias": "elevation"; "required": false; "isSignal": true; }; }, {}, never, ["[toolbar-left]", "[toolbar-center]", "*", "[toolbar-right]"], true, never>;
|
|
136
173
|
}
|
|
137
174
|
|
|
138
|
-
|
|
175
|
+
declare class TngTabComponent {
|
|
176
|
+
label: _angular_core.InputSignal<string>;
|
|
177
|
+
content: _angular_core.Signal<TemplateRef<any>>;
|
|
178
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngTabComponent, never>;
|
|
179
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngTabComponent, "tng-tab", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
declare class TngTabsComponent implements AfterViewInit, OnDestroy {
|
|
183
|
+
private ngZone;
|
|
184
|
+
tabs: _angular_core.Signal<readonly TngTabComponent[]>;
|
|
185
|
+
activeIndex: _angular_core.WritableSignal<number>;
|
|
186
|
+
inkBarLeft: _angular_core.WritableSignal<number>;
|
|
187
|
+
inkBarWidth: _angular_core.WritableSignal<number>;
|
|
188
|
+
scrollLeft: _angular_core.WritableSignal<number>;
|
|
189
|
+
showPagination: _angular_core.WritableSignal<boolean>;
|
|
190
|
+
isScrolledToEnd: _angular_core.WritableSignal<boolean>;
|
|
191
|
+
listContainer: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
192
|
+
tabList: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
193
|
+
tabLabels: _angular_core.Signal<ElementRef<HTMLElement>[]>;
|
|
194
|
+
private resizeObserver;
|
|
195
|
+
constructor(ngZone: NgZone);
|
|
196
|
+
ngAfterViewInit(): void;
|
|
197
|
+
ngOnDestroy(): void;
|
|
198
|
+
selectTab(index: number): void;
|
|
199
|
+
updateInkBar(): void;
|
|
200
|
+
checkPagination(): void;
|
|
201
|
+
scrollHeader(direction: number): void;
|
|
202
|
+
private getMaxScroll;
|
|
203
|
+
private updateScrollState;
|
|
204
|
+
private scrollToTab;
|
|
205
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngTabsComponent, never>;
|
|
206
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngTabsComponent, "tng-tabs", never, {}, {}, ["tabs"], never, true, never>;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
type ThemeName = 'light' | 'dark' | 'ocean' | 'forest' | 'sunset' | 'royal' | 'monochrome' | 'aurora' | 'aurora-dark' | 'futuristic';
|
|
139
210
|
interface Theme {
|
|
140
211
|
name: ThemeName;
|
|
141
212
|
displayName: string;
|
|
@@ -229,5 +300,149 @@ declare class TngMenuGroupComponent {
|
|
|
229
300
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngMenuGroupComponent, "tng-menu-group", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
230
301
|
}
|
|
231
302
|
|
|
232
|
-
|
|
233
|
-
|
|
303
|
+
/**
|
|
304
|
+
* TngSidebar - Componente moderno de barra lateral
|
|
305
|
+
*
|
|
306
|
+
* Características:
|
|
307
|
+
* - Totalmente basado en Signals
|
|
308
|
+
* - Animaciones CSS puras
|
|
309
|
+
* - Posicionamiento configurable (izquierda/derecha)
|
|
310
|
+
* - Proyección de contenido
|
|
311
|
+
* - Responsive y accesible
|
|
312
|
+
*/
|
|
313
|
+
declare class TngSidebarComponent {
|
|
314
|
+
/**
|
|
315
|
+
* Controla si el sidebar está abierto o cerrado
|
|
316
|
+
*/
|
|
317
|
+
isOpen: _angular_core.WritableSignal<boolean>;
|
|
318
|
+
/**
|
|
319
|
+
* Posición del sidebar: 'left' o 'right'
|
|
320
|
+
*/
|
|
321
|
+
position: _angular_core.InputSignal<"left" | "right">;
|
|
322
|
+
/**
|
|
323
|
+
* Ancho del sidebar en píxeles
|
|
324
|
+
*/
|
|
325
|
+
width: _angular_core.InputSignal<number>;
|
|
326
|
+
/**
|
|
327
|
+
* Muestra un overlay de fondo cuando está abierto
|
|
328
|
+
*/
|
|
329
|
+
showOverlay: _angular_core.InputSignal<boolean>;
|
|
330
|
+
/**
|
|
331
|
+
* Evento emitido cuando el sidebar se cierra
|
|
332
|
+
*/
|
|
333
|
+
closed: _angular_core.OutputEmitterRef<void>;
|
|
334
|
+
/**
|
|
335
|
+
* Evento emitido cuando el sidebar se abre
|
|
336
|
+
*/
|
|
337
|
+
opened: _angular_core.OutputEmitterRef<void>;
|
|
338
|
+
/**
|
|
339
|
+
* Alterna el estado del sidebar
|
|
340
|
+
*/
|
|
341
|
+
toggle(): void;
|
|
342
|
+
/**
|
|
343
|
+
* Abre el sidebar
|
|
344
|
+
*/
|
|
345
|
+
open(): void;
|
|
346
|
+
/**
|
|
347
|
+
* Cierra el sidebar
|
|
348
|
+
*/
|
|
349
|
+
close(): void;
|
|
350
|
+
/**
|
|
351
|
+
* Maneja el clic en el overlay para cerrar el sidebar
|
|
352
|
+
*/
|
|
353
|
+
handleOverlayClick(): void;
|
|
354
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngSidebarComponent, never>;
|
|
355
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngSidebarComponent, "tng-sidebar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "showOverlay": { "alias": "showOverlay"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "opened": "opened"; }, never, ["*"], true, never>;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
interface SelectOption {
|
|
359
|
+
value: any;
|
|
360
|
+
label: string;
|
|
361
|
+
disabled?: boolean;
|
|
362
|
+
}
|
|
363
|
+
declare class TngSelectDirective implements AfterViewInit, OnDestroy {
|
|
364
|
+
private el;
|
|
365
|
+
private viewContainerRef;
|
|
366
|
+
ngControl: NgControl | null;
|
|
367
|
+
enableMulti: _angular_core.InputSignal<boolean>;
|
|
368
|
+
multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
369
|
+
enableSearch: _angular_core.InputSignal<boolean>;
|
|
370
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
371
|
+
customTrigger: _angular_core.InputSignal<boolean>;
|
|
372
|
+
triggerRef: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
373
|
+
selectedValues: _angular_core.ModelSignal<any[]>;
|
|
374
|
+
isOpen: _angular_core.WritableSignal<boolean>;
|
|
375
|
+
searchQuery: _angular_core.WritableSignal<string>;
|
|
376
|
+
private _options;
|
|
377
|
+
private _selectedIndices;
|
|
378
|
+
private panelRef;
|
|
379
|
+
private triggerEl;
|
|
380
|
+
isMulti: _angular_core.Signal<boolean>;
|
|
381
|
+
options: _angular_core.Signal<SelectOption[]>;
|
|
382
|
+
filteredOptions: _angular_core.Signal<SelectOption[]>;
|
|
383
|
+
selectedOptions: _angular_core.Signal<SelectOption[]>;
|
|
384
|
+
displayText: _angular_core.Signal<string>;
|
|
385
|
+
constructor();
|
|
386
|
+
ngAfterViewInit(): void;
|
|
387
|
+
ngOnDestroy(): void;
|
|
388
|
+
onClick(event: Event): void;
|
|
389
|
+
onKeyDown(event: KeyboardEvent): void;
|
|
390
|
+
private createTrigger;
|
|
391
|
+
private loadOptionsFromSelect;
|
|
392
|
+
private loadInitialSelection;
|
|
393
|
+
togglePanel(): void;
|
|
394
|
+
private openPanel;
|
|
395
|
+
private closePanel;
|
|
396
|
+
private positionPanel;
|
|
397
|
+
private onOptionSelected;
|
|
398
|
+
private updateNativeSelect;
|
|
399
|
+
private onDocumentClick;
|
|
400
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngSelectDirective, never>;
|
|
401
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TngSelectDirective, "select[tngSelect]", never, { "enableMulti": { "alias": "enableMulti"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "customTrigger": { "alias": "customTrigger"; "required": false; "isSignal": true; }; "triggerRef": { "alias": "triggerRef"; "required": false; "isSignal": true; }; "selectedValues": { "alias": "selectedValues"; "required": false; "isSignal": true; }; }, { "selectedValues": "selectedValuesChange"; }, never, never, true, never>;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
declare class TngSelectPanelComponent {
|
|
405
|
+
options: _angular_core.WritableSignal<SelectOption[]>;
|
|
406
|
+
selectedIndices: _angular_core.WritableSignal<number[]>;
|
|
407
|
+
enableMulti: _angular_core.WritableSignal<boolean>;
|
|
408
|
+
enableSearch: _angular_core.WritableSignal<boolean>;
|
|
409
|
+
searchQuery: _angular_core.WritableSignal<string>;
|
|
410
|
+
optionSelected: _angular_core.OutputEmitterRef<number>;
|
|
411
|
+
searchQueryChanged: _angular_core.OutputEmitterRef<string>;
|
|
412
|
+
closeRequested: _angular_core.OutputEmitterRef<void>;
|
|
413
|
+
onSearchInput(event: Event): void;
|
|
414
|
+
isSelected(index: number): boolean;
|
|
415
|
+
onOptionClick(index: number, option: SelectOption): void;
|
|
416
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngSelectPanelComponent, never>;
|
|
417
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngSelectPanelComponent, "tng-select-panel", never, {}, { "optionSelected": "optionSelected"; "searchQueryChanged": "searchQueryChanged"; "closeRequested": "closeRequested"; }, never, never, true, never>;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
declare class TngSelectComponent implements ControlValueAccessor {
|
|
421
|
+
label: _angular_core.InputSignal<string>;
|
|
422
|
+
options: _angular_core.InputSignal<SelectOption[]>;
|
|
423
|
+
enableMulti: _angular_core.InputSignal<boolean>;
|
|
424
|
+
enableSearch: _angular_core.InputSignal<boolean>;
|
|
425
|
+
placeholder: _angular_core.InputSignal<string>;
|
|
426
|
+
disabled: _angular_core.InputSignal<boolean>;
|
|
427
|
+
hint: _angular_core.InputSignal<string>;
|
|
428
|
+
ariaLabel: _angular_core.InputSignal<string>;
|
|
429
|
+
value: _angular_core.ModelSignal<any[]>;
|
|
430
|
+
private cvaDisabled;
|
|
431
|
+
selectDirective: _angular_core.Signal<TngSelectDirective | undefined>;
|
|
432
|
+
selectId: _angular_core.Signal<string>;
|
|
433
|
+
effectiveDisabled: _angular_core.Signal<boolean>;
|
|
434
|
+
displayText: _angular_core.Signal<string>;
|
|
435
|
+
private onChange;
|
|
436
|
+
private onTouched;
|
|
437
|
+
constructor();
|
|
438
|
+
onDisplayClick(event: Event): void;
|
|
439
|
+
writeValue(obj: any): void;
|
|
440
|
+
registerOnChange(fn: any): void;
|
|
441
|
+
registerOnTouched(fn: any): void;
|
|
442
|
+
setDisabledState(isDisabled: boolean): void;
|
|
443
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TngSelectComponent, never>;
|
|
444
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TngSelectComponent, "tng-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "enableMulti": { "alias": "enableMulti"; "required": false; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
export { TecnualDatepickerComponent, TecnualInputComponent, TecnualTableComponent, ThemeService, TngButton, TngCardComponent, TngExpansionPanelComponent, TngFormFieldComponent, TngInputDirective, TngMenuComponent, TngMenuGroupComponent, TngMenuItemComponent, TngSelectComponent, TngSelectDirective, TngSelectPanelComponent, TngSidebarComponent, TngTabComponent, TngTabsComponent, TngToolbarComponent, TngTooltipComponent, TngTooltipDirective };
|
|
448
|
+
export type { DateRange, SelectOption, TableColumn, Theme, ThemeName, TngButtonAppearance, TngCardVariant, TngToolbarColor, TngToolbarPosition, TngToolbarPositionType };
|