valtech-components 2.0.427 → 2.0.429
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +49 -20
- package/esm2022/lib/components/molecules/glow-card/types.mjs +1 -1
- package/esm2022/lib/components/organisms/article/article.component.mjs +28 -3
- package/esm2022/lib/services/firebase/config.mjs +108 -0
- package/esm2022/lib/services/firebase/firebase.service.mjs +285 -0
- package/esm2022/lib/services/firebase/firestore-collection.mjs +266 -0
- package/esm2022/lib/services/firebase/firestore.service.mjs +508 -0
- package/esm2022/lib/services/firebase/index.mjs +46 -0
- package/esm2022/lib/services/firebase/messaging.service.mjs +503 -0
- package/esm2022/lib/services/firebase/storage.service.mjs +421 -0
- package/esm2022/lib/services/firebase/types.mjs +8 -0
- package/esm2022/lib/services/firebase/utils/path-builder.mjs +195 -0
- package/esm2022/lib/services/firebase/utils/query-builder.mjs +302 -0
- package/esm2022/public-api.mjs +3 -4
- package/fesm2022/valtech-components.mjs +2886 -230
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/glow-card/glow-card.component.d.ts +1 -0
- package/lib/components/molecules/glow-card/types.d.ts +7 -5
- package/lib/components/organisms/article/article.component.d.ts +6 -1
- package/lib/services/firebase/config.d.ts +49 -0
- package/lib/services/firebase/firebase.service.d.ts +140 -0
- package/lib/services/firebase/firestore-collection.d.ts +195 -0
- package/lib/services/firebase/firestore.service.d.ts +303 -0
- package/lib/services/firebase/index.d.ts +38 -0
- package/lib/services/firebase/messaging.service.d.ts +254 -0
- package/lib/services/firebase/storage.service.d.ts +204 -0
- package/lib/services/firebase/types.d.ts +281 -0
- package/lib/services/firebase/utils/path-builder.d.ts +132 -0
- package/lib/services/firebase/utils/query-builder.d.ts +210 -0
- package/package.json +3 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Builder
|
|
3
|
+
*
|
|
4
|
+
* Builder fluido para construir queries de Firestore de manera legible.
|
|
5
|
+
* Alternativa más expresiva a pasar objetos QueryOptions directamente.
|
|
6
|
+
*/
|
|
7
|
+
import { OrderDirection, QueryOptions, WhereOperator } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* Builder fluido para queries de Firestore.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* // Construir query con builder
|
|
14
|
+
* const options = new QueryBuilder()
|
|
15
|
+
* .where('status', '==', 'active')
|
|
16
|
+
* .where('age', '>=', 18)
|
|
17
|
+
* .orderBy('createdAt', 'desc')
|
|
18
|
+
* .limit(10)
|
|
19
|
+
* .build();
|
|
20
|
+
*
|
|
21
|
+
* // Usar con FirestoreService
|
|
22
|
+
* const users = await firestoreService.getDocs<User>('users', options);
|
|
23
|
+
*
|
|
24
|
+
* // O con método estático
|
|
25
|
+
* const options2 = QueryBuilder.create()
|
|
26
|
+
* .where('category', '==', 'electronics')
|
|
27
|
+
* .orderBy('price', 'asc')
|
|
28
|
+
* .build();
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class QueryBuilder {
|
|
32
|
+
private whereConditions;
|
|
33
|
+
private orderByConditions;
|
|
34
|
+
private limitValue?;
|
|
35
|
+
private startAfterValue?;
|
|
36
|
+
private startAtValue?;
|
|
37
|
+
private endBeforeValue?;
|
|
38
|
+
private endAtValue?;
|
|
39
|
+
/**
|
|
40
|
+
* Crea una nueva instancia del builder (método estático alternativo).
|
|
41
|
+
*/
|
|
42
|
+
static create(): QueryBuilder;
|
|
43
|
+
/**
|
|
44
|
+
* Agrega una condición where.
|
|
45
|
+
*
|
|
46
|
+
* @param field - Campo a filtrar
|
|
47
|
+
* @param operator - Operador de comparación
|
|
48
|
+
* @param value - Valor a comparar
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* builder.where('status', '==', 'active')
|
|
53
|
+
* builder.where('price', '>=', 100)
|
|
54
|
+
* builder.where('tags', 'array-contains', 'featured')
|
|
55
|
+
* builder.where('category', 'in', ['electronics', 'books'])
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
where(field: string, operator: WhereOperator, value: unknown): QueryBuilder;
|
|
59
|
+
/**
|
|
60
|
+
* Shortcut para where con operador '=='.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* builder.whereEquals('status', 'active')
|
|
65
|
+
* // equivalente a: builder.where('status', '==', 'active')
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
whereEquals(field: string, value: unknown): QueryBuilder;
|
|
69
|
+
/**
|
|
70
|
+
* Shortcut para where con operador '!='.
|
|
71
|
+
*/
|
|
72
|
+
whereNotEquals(field: string, value: unknown): QueryBuilder;
|
|
73
|
+
/**
|
|
74
|
+
* Shortcut para where con operador '>'.
|
|
75
|
+
*/
|
|
76
|
+
whereGreaterThan(field: string, value: unknown): QueryBuilder;
|
|
77
|
+
/**
|
|
78
|
+
* Shortcut para where con operador '>='.
|
|
79
|
+
*/
|
|
80
|
+
whereGreaterOrEqual(field: string, value: unknown): QueryBuilder;
|
|
81
|
+
/**
|
|
82
|
+
* Shortcut para where con operador '<'.
|
|
83
|
+
*/
|
|
84
|
+
whereLessThan(field: string, value: unknown): QueryBuilder;
|
|
85
|
+
/**
|
|
86
|
+
* Shortcut para where con operador '<='.
|
|
87
|
+
*/
|
|
88
|
+
whereLessOrEqual(field: string, value: unknown): QueryBuilder;
|
|
89
|
+
/**
|
|
90
|
+
* Shortcut para where con operador 'array-contains'.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* builder.whereArrayContains('tags', 'featured')
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
whereArrayContains(field: string, value: unknown): QueryBuilder;
|
|
98
|
+
/**
|
|
99
|
+
* Shortcut para where con operador 'array-contains-any'.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* builder.whereArrayContainsAny('tags', ['featured', 'new'])
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
whereArrayContainsAny(field: string, values: unknown[]): QueryBuilder;
|
|
107
|
+
/**
|
|
108
|
+
* Shortcut para where con operador 'in'.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* builder.whereIn('status', ['active', 'pending'])
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
whereIn(field: string, values: unknown[]): QueryBuilder;
|
|
116
|
+
/**
|
|
117
|
+
* Shortcut para where con operador 'not-in'.
|
|
118
|
+
*/
|
|
119
|
+
whereNotIn(field: string, values: unknown[]): QueryBuilder;
|
|
120
|
+
/**
|
|
121
|
+
* Agrega ordenamiento por un campo.
|
|
122
|
+
*
|
|
123
|
+
* @param field - Campo por el cual ordenar
|
|
124
|
+
* @param direction - Dirección: 'asc' o 'desc' (default: 'asc')
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* builder.orderBy('createdAt', 'desc')
|
|
129
|
+
* builder.orderBy('name') // asc por defecto
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
orderBy(field: string, direction?: OrderDirection): QueryBuilder;
|
|
133
|
+
/**
|
|
134
|
+
* Shortcut para orderBy descendente.
|
|
135
|
+
*/
|
|
136
|
+
orderByDesc(field: string): QueryBuilder;
|
|
137
|
+
/**
|
|
138
|
+
* Shortcut para orderBy ascendente.
|
|
139
|
+
*/
|
|
140
|
+
orderByAsc(field: string): QueryBuilder;
|
|
141
|
+
/**
|
|
142
|
+
* Limita el número de resultados.
|
|
143
|
+
*
|
|
144
|
+
* @param count - Número máximo de documentos
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* builder.limit(10)
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
limit(count: number): QueryBuilder;
|
|
152
|
+
/**
|
|
153
|
+
* Cursor para paginación: empezar después de un documento.
|
|
154
|
+
*
|
|
155
|
+
* @param cursor - Documento o snapshot desde donde continuar
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* // Primera página
|
|
160
|
+
* const page1 = await service.getPaginated('users', builder.limit(10).build());
|
|
161
|
+
*
|
|
162
|
+
* // Siguiente página
|
|
163
|
+
* const page2 = await service.getPaginated('users',
|
|
164
|
+
* builder.startAfter(page1.lastDoc).limit(10).build()
|
|
165
|
+
* );
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
startAfter(cursor: unknown): QueryBuilder;
|
|
169
|
+
/**
|
|
170
|
+
* Cursor para paginación: empezar en un documento.
|
|
171
|
+
*/
|
|
172
|
+
startAt(cursor: unknown): QueryBuilder;
|
|
173
|
+
/**
|
|
174
|
+
* Cursor para paginación: terminar antes de un documento.
|
|
175
|
+
*/
|
|
176
|
+
endBefore(cursor: unknown): QueryBuilder;
|
|
177
|
+
/**
|
|
178
|
+
* Cursor para paginación: terminar en un documento.
|
|
179
|
+
*/
|
|
180
|
+
endAt(cursor: unknown): QueryBuilder;
|
|
181
|
+
/**
|
|
182
|
+
* Construye el objeto QueryOptions.
|
|
183
|
+
*
|
|
184
|
+
* @returns QueryOptions para usar con FirestoreService
|
|
185
|
+
*/
|
|
186
|
+
build(): QueryOptions;
|
|
187
|
+
/**
|
|
188
|
+
* Resetea el builder para reutilización.
|
|
189
|
+
*/
|
|
190
|
+
reset(): QueryBuilder;
|
|
191
|
+
/**
|
|
192
|
+
* Clona el builder actual.
|
|
193
|
+
*/
|
|
194
|
+
clone(): QueryBuilder;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Función helper para crear un QueryBuilder.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* import { query } from 'valtech-components';
|
|
202
|
+
*
|
|
203
|
+
* const options = query()
|
|
204
|
+
* .where('status', '==', 'active')
|
|
205
|
+
* .orderBy('createdAt', 'desc')
|
|
206
|
+
* .limit(10)
|
|
207
|
+
* .build();
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
export declare function query(): QueryBuilder;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valtech-components",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.429",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
"peerDependencies": {
|
|
11
11
|
"@angular/common": "^18.0.0",
|
|
12
12
|
"@angular/core": "^18.0.0",
|
|
13
|
+
"@angular/fire": "^18.0.1",
|
|
13
14
|
"@capacitor/clipboard": "^6.0.1",
|
|
14
15
|
"@ionic/angular": "^8.0.0",
|
|
16
|
+
"firebase": "^10.0.0",
|
|
15
17
|
"ionicons": "^7.2.1",
|
|
16
18
|
"prismjs": "^1.30.0",
|
|
17
19
|
"qr-code-styling": "^1.9.0",
|
package/public-api.d.ts
CHANGED
|
@@ -210,6 +210,7 @@ export * from './lib/services/qr-generator/qr-generator.service';
|
|
|
210
210
|
export * from './lib/services/qr-generator/types';
|
|
211
211
|
export * from './lib/services/modal/modal.service';
|
|
212
212
|
export * from './lib/services/modal/types';
|
|
213
|
+
export * from './lib/services/firebase';
|
|
213
214
|
export * from './lib/components/types';
|
|
214
215
|
export * from './lib/shared/pipes/process-links.pipe';
|
|
215
216
|
export * from './lib/shared/utils/dom';
|