@kaufmann-lab/ui 0.1.17 → 0.1.18
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 +1 -1
- package/fesm2022/kaufmann-lab-ui-auth.mjs +322 -0
- package/fesm2022/kaufmann-lab-ui-auth.mjs.map +1 -0
- package/fesm2022/kaufmann-lab-ui-business.mjs +453 -0
- package/fesm2022/kaufmann-lab-ui-business.mjs.map +1 -0
- package/fesm2022/kaufmann-lab-ui-core.mjs +5906 -0
- package/fesm2022/kaufmann-lab-ui-core.mjs.map +1 -0
- package/fesm2022/kaufmann-lab-ui-map.mjs +1637 -0
- package/fesm2022/kaufmann-lab-ui-map.mjs.map +1 -0
- package/fesm2022/kaufmann-lab-ui-mobile.mjs +92 -0
- package/fesm2022/kaufmann-lab-ui-mobile.mjs.map +1 -0
- package/fesm2022/kaufmann-lab-ui-shared.mjs +269 -0
- package/fesm2022/kaufmann-lab-ui-shared.mjs.map +1 -0
- package/fesm2022/kaufmann-lab-ui.mjs +23 -8472
- package/fesm2022/kaufmann-lab-ui.mjs.map +1 -1
- package/kaufmann-lab-ui-0.1.18.tgz +0 -0
- package/package.json +25 -1
- package/types/kaufmann-lab-ui-auth.d.ts +240 -0
- package/types/kaufmann-lab-ui-business.d.ts +298 -0
- package/types/kaufmann-lab-ui-core.d.ts +3288 -0
- package/types/kaufmann-lab-ui-map.d.ts +631 -0
- package/types/kaufmann-lab-ui-mobile.d.ts +53 -0
- package/types/kaufmann-lab-ui-shared.d.ts +154 -0
- package/types/kaufmann-lab-ui.d.ts +5 -4631
- package/fesm2022/mapbox-gl-csp.worker.js +0 -6
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Franja fija en la base de una pantalla completa para apps mobile del
|
|
5
|
+
* ecosistema: encapsula el padding con `safe-area-inset-bottom` (para no
|
|
6
|
+
* invadir la zona del home indicator), el borde superior y el fondo —
|
|
7
|
+
* cualquier acción, chip de estado o hint que necesite vivir pegado al
|
|
8
|
+
* borde inferior del dispositivo se proyecta acá vía `<ng-content>`.
|
|
9
|
+
*
|
|
10
|
+
* <kf-mobile-footer>
|
|
11
|
+
* <kf-button>Cerrar orden</kf-button>
|
|
12
|
+
* </kf-mobile-footer>
|
|
13
|
+
*/
|
|
14
|
+
declare class MobileFooter {
|
|
15
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileFooter, never>;
|
|
16
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileFooter, "kf-mobile-footer", never, {}, {}, never, ["*"], true, never>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Encabezado de pantalla completa (fondo navy) para apps mobile del
|
|
21
|
+
* ecosistema — cubre tanto la raíz de un tab (sin volver) como el detalle
|
|
22
|
+
* de un flujo (con volver).
|
|
23
|
+
*
|
|
24
|
+
* <kf-mobile-header title="Mis asignaciones" />
|
|
25
|
+
*
|
|
26
|
+
* <kf-mobile-header title="STAR-20841" subtitle="Cerrado hoy · 15:18" [showBack]="true" (back)="onBack()" />
|
|
27
|
+
*
|
|
28
|
+
* Sin `kf-text` para `eyebrow`/`title`/`subtitle`: su `tone` es un set
|
|
29
|
+
* cerrado sin blanco/inverso, y sus variantes fijan `color` explícito sobre
|
|
30
|
+
* el elemento interno — un `color: white` heredado desde afuera nunca le
|
|
31
|
+
* gana a esa declaración directa. Markup propio con los tokens reales.
|
|
32
|
+
*
|
|
33
|
+
* El botón "volver" tampoco es `kf-button`: su `variant="ghost"` fija el
|
|
34
|
+
* mismo token de color que este fondo navy (el ícono quedaría invisible).
|
|
35
|
+
*/
|
|
36
|
+
declare class MobileHeader {
|
|
37
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
38
|
+
/** Línea chica y translúcida ARRIBA del título — ej. un folio o un saludo. */
|
|
39
|
+
readonly eyebrow: _angular_core.InputSignal<string | undefined>;
|
|
40
|
+
/** `true` cuando `eyebrow` es un código (folio) — usa tipografía monoespaciada. */
|
|
41
|
+
readonly eyebrowMono: _angular_core.InputSignal<boolean>;
|
|
42
|
+
/** Línea chica y translúcida DEBAJO del título — ej. "Cerrado hoy · 15:18". */
|
|
43
|
+
readonly subtitle: _angular_core.InputSignal<string | undefined>;
|
|
44
|
+
readonly showBack: _angular_core.InputSignal<boolean>;
|
|
45
|
+
/** El componente no navega por sí solo: cada pantalla decide qué significa
|
|
46
|
+
* "volver" (`Location.back()`, retroceder un paso del flujo, etc.). */
|
|
47
|
+
readonly back: _angular_core.OutputEmitterRef<void>;
|
|
48
|
+
protected onBackClick(): void;
|
|
49
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileHeader, never>;
|
|
50
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileHeader, "kf-mobile-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "eyebrow": { "alias": "eyebrow"; "required": false; "isSignal": true; }; "eyebrowMono": { "alias": "eyebrowMono"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "showBack": { "alias": "showBack"; "required": false; "isSignal": true; }; }, { "back": "back"; }, never, ["[kf-mobile-header-trailing]"], true, never>;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { MobileFooter, MobileHeader };
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/** Opciones de `formatNumber` — todas opcionales. */
|
|
4
|
+
interface FormatNumberOptions {
|
|
5
|
+
/** Cantidad de decimales a mostrar. Default `0`. */
|
|
6
|
+
decimals?: number;
|
|
7
|
+
/** Locale de `Intl`/`toLocaleString` — decide separador de miles y de
|
|
8
|
+
* decimales. Default `'es'` (punto de miles, coma decimal). */
|
|
9
|
+
locale?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Separador de miles genérico — sin signo, sin asumir que el valor es
|
|
13
|
+
* dinero. Cubre casos como kilometraje/horómetro (`formatNumber(45231,
|
|
14
|
+
* { locale: 'en-US' })` → `'45,231'`), no solo moneda.
|
|
15
|
+
*
|
|
16
|
+
* formatNumber(16800); // '16.800'
|
|
17
|
+
* formatNumber(16800.5, { decimals: 2 }); // '16.800,50'
|
|
18
|
+
* formatNumber(45231, { locale: 'en-US' }); // '45,231'
|
|
19
|
+
*/
|
|
20
|
+
declare function formatNumber(value: number, options?: FormatNumberOptions): string;
|
|
21
|
+
/** Opciones de `formatCurrency` — extiende `FormatNumberOptions` con el
|
|
22
|
+
* signo/prefijo de moneda. */
|
|
23
|
+
interface FormatCurrencyOptions extends FormatNumberOptions {
|
|
24
|
+
/** Símbolo o prefijo antepuesto al monto. Default `'$'`. */
|
|
25
|
+
sign?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Formatea un monto de dinero — compone sobre `formatNumber` agregando el
|
|
29
|
+
* signo. Mismos defaults que la convención de OTD (punto de miles, sin
|
|
30
|
+
* decimales, prefijo `$`), overrideables para otra moneda/país/formato:
|
|
31
|
+
*
|
|
32
|
+
* formatCurrency(16800); // '$16.800'
|
|
33
|
+
* formatCurrency(16800.5, { decimals: 2 }); // '$16.800,50'
|
|
34
|
+
* formatCurrency(16800, { sign: '' }); // '16.800'
|
|
35
|
+
* formatCurrency(16800, { sign: 'US$', locale: 'en-US' }); // 'US$16,800'
|
|
36
|
+
*/
|
|
37
|
+
declare function formatCurrency(amount: number, options?: FormatCurrencyOptions): string;
|
|
38
|
+
/**
|
|
39
|
+
* Inverso de `formatNumber` — recupera el número crudo de un valor ya
|
|
40
|
+
* formateado con el mismo `locale`. Solo soporta `locale` cuyo separador de
|
|
41
|
+
* miles y decimal sean `'.'`/`','` (`es`) o `','`/`'.'` (`en-US`) — son los
|
|
42
|
+
* 2 casos reales del ecosistema hoy; si aparece un tercer locale con otros
|
|
43
|
+
* separadores, extender acá antes de usarlo.
|
|
44
|
+
*/
|
|
45
|
+
declare function parseNumber(formatted: string, locale?: string): number;
|
|
46
|
+
/**
|
|
47
|
+
* Inverso de `formatCurrency` — recupera el número crudo de un monto ya
|
|
48
|
+
* formateado, descartando cualquier signo/prefijo de moneda.
|
|
49
|
+
*
|
|
50
|
+
* parseCurrency('$16.800'); // 16800
|
|
51
|
+
*/
|
|
52
|
+
declare function parseCurrency(formatted: string, locale?: string): number;
|
|
53
|
+
/** "12:40" — hora en formato de 24 horas. */
|
|
54
|
+
declare function formatClockTime(date: Date): string;
|
|
55
|
+
/**
|
|
56
|
+
* Quita espacios (incluido cualquier espacio en blanco intermedio, no solo
|
|
57
|
+
* al principio/final) y puntos de un identificador de documento — un
|
|
58
|
+
* espacio invisible (ej. pegado por accidente desde otra fuente) es un
|
|
59
|
+
* motivo de rechazo silencioso real que un usuario no sabe explicarse.
|
|
60
|
+
* Genérico: sirve tanto para RUT (`formatChileanRut` ya lo usa por
|
|
61
|
+
* dentro) como para cualquier otro identificador con el mismo problema.
|
|
62
|
+
*
|
|
63
|
+
* sanitizeDocumentId(' 51 00004-8 '); // '5100004-8'
|
|
64
|
+
* sanitizeDocumentId('12.345.678-9'); // '12345678-9'
|
|
65
|
+
*/
|
|
66
|
+
declare function sanitizeDocumentId(raw: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Formatea un RUT chileno insertando el guion automáticamente a medida
|
|
69
|
+
* que se escribe — igual que un input de tarjeta de crédito, el usuario
|
|
70
|
+
* solo tipea dígitos (y opcionalmente `k`/`K` como dígito verificador) y
|
|
71
|
+
* el guion aparece solo antes del último carácter. Solo da forma al
|
|
72
|
+
* string — no valida si el dígito verificador es matemáticamente
|
|
73
|
+
* correcto (ver `isValidChileanRut` para eso) ni si la cuenta existe
|
|
74
|
+
* (eso lo confirma GAM del lado servidor al autenticar).
|
|
75
|
+
*
|
|
76
|
+
* formatChileanRut('123456789'); // '12345678-9'
|
|
77
|
+
* formatChileanRut('5100004-8'); // '5100004-8' (ya formateado, idempotente)
|
|
78
|
+
* formatChileanRut('5100004k'); // '5100004-k'
|
|
79
|
+
* formatChileanRut('510000 4-8 '); // '5100004-8' (espacios ignorados)
|
|
80
|
+
*/
|
|
81
|
+
declare function formatChileanRut(raw: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Valida un RUT chileno YA formateado (`cuerpo-DV`, ej. `'12345678-9'`)
|
|
84
|
+
* contra el algoritmo módulo 11 real — a diferencia del `pattern` de
|
|
85
|
+
* `document-id.config.ts` en cada portal consumidor (que solo exige la
|
|
86
|
+
* FORMA: dígitos + guion + dígito verificador), esta función confirma
|
|
87
|
+
* que el dígito verificador sea matemáticamente correcto para ese
|
|
88
|
+
* cuerpo. Sigue sin confirmar que la cuenta exista — eso solo lo sabe
|
|
89
|
+
* GAM al autenticar — pero atrapa el error tipográfico más común
|
|
90
|
+
* (invertir/cambiar un dígito) antes de intentar el login.
|
|
91
|
+
*
|
|
92
|
+
* isValidChileanRut('20236276-1'); // true (DV real de ese cuerpo)
|
|
93
|
+
* isValidChileanRut('20236276-8'); // false (DV real es '1', no '8')
|
|
94
|
+
* isValidChileanRut('no-es-rut'); // false (ni siquiera tiene la forma)
|
|
95
|
+
*/
|
|
96
|
+
declare function isValidChileanRut(rut: string): boolean;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Signal reactivo con el estado actual de un media query — para cuando un
|
|
100
|
+
* componente necesita SABER en qué lado de un breakpoint está (no solo
|
|
101
|
+
* mostrar/ocultar con CSS). Un `@media` en `styles` no alcanza cuando la
|
|
102
|
+
* decisión no es puramente visual: por ejemplo, un componente hijo que
|
|
103
|
+
* recibe un input booleano (`[collapsed]`) no puede "leer" un breakpoint
|
|
104
|
+
* CSS del padre — necesita que alguien en TypeScript se lo diga.
|
|
105
|
+
*
|
|
106
|
+
* Encontrado al construir `SidebarShell`: el estado `collapsed` (colapso
|
|
107
|
+
* del rail en desktop) se pasaba tal cual a cada `kf-sidebar-nav-item`, sin
|
|
108
|
+
* importar el viewport. En mobile, donde el rail deslizado siempre muestra
|
|
109
|
+
* etiquetas completas (ver estilos de `SidebarShell`), los ítems seguían
|
|
110
|
+
* ocultando su label si el usuario había dejado el rail colapsado en
|
|
111
|
+
* desktop antes de achicar la ventana — un CSS que dice "en mobile se ve
|
|
112
|
+
* ancho" no cambia el valor del input que ya llegó al hijo.
|
|
113
|
+
*
|
|
114
|
+
* Debe llamarse dentro de un contexto de inyección (el `constructor` de un
|
|
115
|
+
* componente, o un campo de clase inicializado ahí — mismo requisito que
|
|
116
|
+
* cualquier función que use `inject()`).
|
|
117
|
+
*
|
|
118
|
+
* protected readonly isMobile = matchMediaSignal('(max-width: 900px)');
|
|
119
|
+
* // ...
|
|
120
|
+
* [collapsed]="collapsed() && !isMobile()"
|
|
121
|
+
*/
|
|
122
|
+
declare function matchMediaSignal(query: string): Signal<boolean>;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Navegación estándar de ARIA tabs/listbox/radiogroup: flechas mueven el
|
|
126
|
+
* foco entre opciones y activan la seleccionada. Usado por `kf-tabs`,
|
|
127
|
+
* `kf-folder-tabs` (orientación horizontal) y `kf-selectable-card-group`
|
|
128
|
+
* (vertical) — todos comparten la misma forma (lista de opciones con
|
|
129
|
+
* `value`, botones identificados por `idPrefix + value`).
|
|
130
|
+
*
|
|
131
|
+
* `orientation` decide qué par de flechas avanza/retrocede — mismo patrón
|
|
132
|
+
* que exige el WAI-ARIA Authoring Practices para radiogroup vertical
|
|
133
|
+
* (ArrowDown/ArrowUp) vs. tablist horizontal (ArrowRight/ArrowLeft). Home/End
|
|
134
|
+
* funcionan igual en ambas orientaciones.
|
|
135
|
+
*
|
|
136
|
+
* `select` es responsabilidad del consumidor: esta función solo calcula
|
|
137
|
+
* cuál es la siguiente opción y mueve el foco al botón correspondiente.
|
|
138
|
+
*/
|
|
139
|
+
declare function handleArrowKeyNavigation<T extends {
|
|
140
|
+
value: string;
|
|
141
|
+
}>(event: KeyboardEvent, options: T[], currentValue: string, idPrefix: string, select: (value: string) => void, orientation?: 'horizontal' | 'vertical'): void;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Normaliza texto para comparación de búsqueda insensible a mayúsculas y
|
|
145
|
+
* diacríticos — así "cor" encuentre "Córdoba" sin necesidad de tildes.
|
|
146
|
+
*
|
|
147
|
+
* Compartida entre `Select` y `MultiSelect` (`/core`, los dos componentes con
|
|
148
|
+
* buscador interno auto-activado por `searchThreshold`) y `QuotePicker`
|
|
149
|
+
* (`/business`).
|
|
150
|
+
*/
|
|
151
|
+
declare function normalizeForSearch(text: string): string;
|
|
152
|
+
|
|
153
|
+
export { formatChileanRut, formatClockTime, formatCurrency, formatNumber, handleArrowKeyNavigation, isValidChileanRut, matchMediaSignal, normalizeForSearch, parseCurrency, parseNumber, sanitizeDocumentId };
|
|
154
|
+
export type { FormatCurrencyOptions, FormatNumberOptions };
|