@endesyc/format 1.0.1 → 1.0.3

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 CHANGED
@@ -1,429 +1,421 @@
1
- # ENDESYC Format Library
2
-
3
- Librería Angular compartida para fechas y montos.
4
-
5
- ## Instalar
6
- ```bash
7
- npm install
8
- npm test
9
- npm run build
10
- npm run pack
11
- ```
12
-
13
- ## Paquete
14
- ```bash
15
- npm install @endesyc/format@1.0.0
16
- ```
17
-
18
- # ENDESYC Format
19
-
20
- Angular library for formatting dates, times and Bolivian currency.
21
-
22
- ---
23
-
24
- ## Características
25
-
26
- Formateo de fechas
27
-
28
- Formateo de horas
29
-
30
- Formateo de fechas y horas
31
-
32
- Formateo de moneda boliviana (BOB)
33
-
34
- ✔ Pipes para Angular
35
-
36
- Utilidades reutilizables
37
-
38
- ✔ Soporte para valores nulos
39
-
40
- ✔ Formatos centralizados mediante DateFormats
41
-
42
- ---
43
-
44
- # Instalación
45
-
46
- ```bash
47
- npm install @endesyc/format
48
- ```
49
-
50
- ---
51
-
52
- # Requisitos
53
-
54
- Angular 18+
55
-
56
- Node.js 20+
57
-
58
- ---
59
-
60
- # Importación
61
-
62
- ## Utilidades
63
-
64
- ```ts
65
- import {
66
- DateUtil,
67
- MoneyUtil,
68
- DateFormats
69
- } from '@endesyc/format';
70
- ```
71
-
72
- ---
73
-
74
- ## Pipes
75
-
76
- ```ts
77
- import {
78
- CompanyDatePipe,
79
- CompanyMoneyPipe
80
- } from '@endesyc/format';
81
- ```
82
-
83
- ---
84
-
85
- # Fechas
86
-
87
- ## Fecha de ejemplo
88
-
89
- ```ts
90
- const createdAt = '2025-09-02 15:55:39.073';
91
- ```
92
-
93
- ---
94
-
95
- ## Solo fecha
96
-
97
- ```ts
98
- DateUtil.format(createdAt, DateFormats.DATE);
99
- ```
100
-
101
- Resultado
102
-
103
- ```
104
- 02/09/2025
105
- ```
106
-
107
- ---
108
-
109
- ## Solo hora
110
-
111
- ```ts
112
- DateUtil.format(createdAt, DateFormats.TIME);
113
- ```
114
-
115
- Resultado
116
-
117
- ```
118
- 15:55
119
- ```
120
-
121
- ---
122
-
123
- ## Fecha y hora
124
-
125
- ```ts
126
- DateUtil.format(createdAt, DateFormats.DATE_TIME);
127
- ```
128
-
129
- Resultado
130
-
131
- ```
132
- 02/09/2025 15:55
133
- ```
134
-
135
- ---
136
-
137
- ## Fecha y hora con segundos
138
-
139
- ```ts
140
- DateUtil.format(createdAt, DateFormats.DATE_TIME_SECONDS);
141
- ```
142
-
143
- Resultado
144
-
145
- ```
146
- 02/09/2025 15:55:39
147
- ```
148
-
149
- ---
150
-
151
- ## Mes y año
152
-
153
- ```ts
154
- DateUtil.format(createdAt, DateFormats.MONTH_YEAR);
155
- ```
156
-
157
- Resultado
158
-
159
- ```
160
- 09/2025
161
- ```
162
-
163
- ---
164
-
165
- ## Año
166
-
167
- ```ts
168
- DateUtil.format(createdAt, DateFormats.YEAR);
169
- ```
170
-
171
- Resultado
172
-
173
- ```
174
- 2025
175
- ```
176
-
177
- ---
178
-
179
- # HTML
180
-
181
- ## Fecha
182
-
183
- ```html
184
- {{ createdAt | companyDate:'date' }}
185
- ```
186
-
187
- Resultado
188
-
189
- ```
190
- 02/09/2025
191
- ```
192
-
193
- ---
194
-
195
- ## Hora
196
-
197
- ```html
198
- {{ createdAt | companyDate:'time' }}
199
- ```
200
-
201
- Resultado
202
-
203
- ```
204
- 15:55
205
- ```
206
-
207
- ---
208
-
209
- ## Fecha y Hora
210
-
211
- ```html
212
- {{ createdAt | companyDate:'dateTime' }}
213
- ```
214
-
215
- Resultado
216
-
217
- ```
218
- 02/09/2025 15:55
219
- ```
220
-
221
- ---
222
-
223
- ## Año
224
-
225
- ```html
226
- {{ createdAt | companyDate:'year' }}
227
- ```
228
-
229
- Resultado
230
-
231
- ```
232
- 2025
233
- ```
234
-
235
- ---
236
-
237
- # Dinero
238
-
239
- Monto de ejemplo
240
-
241
- ```ts
242
- const amount = 1234.56;
243
- ```
244
-
245
- ---
246
-
247
- ## Formato por defecto
248
-
249
- ```ts
250
- MoneyUtil.formatBolivianos(amount);
251
- ```
252
-
253
- Resultado
254
-
255
- ```
256
- Bs 1.234,56
257
- ```
258
-
259
- ---
260
-
261
- ## Sin símbolo
262
-
263
- ```ts
264
- MoneyUtil.formatBolivianos(amount,{
265
- showSymbol:false
266
- });
267
- ```
268
-
269
- Resultado
270
-
271
- ```
272
- 1.234,56
273
- ```
274
-
275
- ---
276
-
277
- ## Símbolo al final
278
-
279
- ```ts
280
- MoneyUtil.formatBolivianos(amount,{
281
- symbolPosition:'suffix'
282
- });
283
- ```
284
-
285
- Resultado
286
-
287
- ```
288
- 1.234,56 Bs
289
- ```
290
-
291
- ---
292
-
293
- ## Cuatro decimales
294
-
295
- ```ts
296
- MoneyUtil.formatBolivianos(amount,{
297
- maximumFractionDigits:4
298
- });
299
- ```
300
-
301
- Resultado
302
-
303
- ```
304
- Bs 1.234,5600
305
- ```
306
-
307
- ---
308
-
309
- # HTML
310
-
311
- ```html
312
- {{ amount | companyMoney }}
313
- ```
314
-
315
- Resultado
316
-
317
- ```
318
- Bs 1.234,56
319
- ```
320
-
321
- ---
322
-
323
- ## Sin símbolo
324
-
325
- ```html
326
- {{ amount | companyMoney:{showSymbol:false} }}
327
- ```
328
-
329
- ---
330
-
331
- ## Símbolo al final
332
-
333
- ```html
334
- {{ amount | companyMoney:{symbolPosition:'suffix'} }}
335
- ```
336
-
337
- ---
338
-
339
- # DateFormats
340
-
341
- La librería centraliza los formatos disponibles mediante la clase DateFormats.
342
-
343
- ```ts
344
- DateFormats.DATE
345
-
346
- DateFormats.TIME
347
-
348
- DateFormats.DATE_TIME
349
-
350
- DateFormats.DATE_TIME_SECONDS
351
-
352
- DateFormats.MONTH_YEAR
353
-
354
- DateFormats.YEAR
355
- ```
356
-
357
- ---
358
-
359
- # Validaciones
360
-
361
- ```ts
362
- DateUtil.isValid(value)
363
-
364
- MoneyUtil.isValid(value)
365
- ```
366
-
367
- ---
368
-
369
- # Conversión
370
-
371
- ```ts
372
- MoneyUtil.toNumber('1.234,56')
373
- ```
374
-
375
- ---
376
-
377
- # Estructura recomendada
378
-
379
- ```
380
- shared
381
-
382
- formatting.service.ts
383
-
384
- formatting.pipe.ts
385
-
386
- formatting.component.ts
387
- ```
388
-
389
- ---
390
-
391
- # Buenas prácticas
392
-
393
- ✔ Utilice DateFormats en lugar de escribir formatos manualmente.
394
-
395
- Reutilice los Pipes cuando sea posible.
396
-
397
- Evite hardcodear patrones de fechas.
398
-
399
- ✔ Mantenga todos los formatos corporativos centralizados.
400
-
401
- ---
402
-
403
- # Versionado
404
-
405
- Esta librería utiliza Semantic Versioning.
406
-
407
- ```
408
- MAJOR.MINOR.PATCH
409
- ```
410
-
411
- Ejemplos
412
-
413
- ```
414
- 1.0.0
415
-
416
- 1.0.1
417
-
418
- 1.1.0
419
-
420
- 2.0.0
421
- ```
422
-
423
- ---
424
-
425
- # Licencia
426
-
427
- Copyright © ENDESYC
428
-
1
+ # ENDESYC Format Library
2
+
3
+ Librería Angular compartida para fechas y montos.
4
+
5
+ ## Paquete
6
+ ```bash
7
+ npm install @endesyc/format@1.0.3
8
+ ```
9
+
10
+ # ENDESYC Format
11
+
12
+ Angular library for formatting dates, times and Bolivian currency.
13
+
14
+ ---
15
+
16
+ ## Características
17
+
18
+ Formateo de fechas
19
+
20
+ Formateo de horas
21
+
22
+ ✔ Formateo de fechas y horas
23
+
24
+ Formateo de moneda boliviana (BOB)
25
+
26
+ Pipes para Angular
27
+
28
+ Utilidades reutilizables
29
+
30
+ Soporte para valores nulos
31
+
32
+ Formatos centralizados mediante DateFormats
33
+
34
+ ---
35
+
36
+ # Instalación
37
+
38
+ ```bash
39
+ npm install @endesyc/format
40
+ ```
41
+
42
+ ---
43
+
44
+ # Requisitos
45
+
46
+ Angular 18+
47
+
48
+ Node.js 20+
49
+
50
+ ---
51
+
52
+ # Importación
53
+
54
+ ## Utilidades
55
+
56
+ ```ts
57
+ import {
58
+ DateUtil,
59
+ MoneyUtil,
60
+ DateFormats
61
+ } from '@endesyc/format';
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Pipes
67
+
68
+ ```ts
69
+ import {
70
+ CompanyDatePipe,
71
+ CompanyMoneyPipe
72
+ } from '@endesyc/format';
73
+ ```
74
+
75
+ ---
76
+
77
+ # Fechas
78
+
79
+ ## Fecha de ejemplo
80
+
81
+ ```ts
82
+ const createdAt = '2025-09-02 15:55:39.073';
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Solo fecha
88
+
89
+ ```ts
90
+ DateUtil.format(createdAt, DateFormats.DATE);
91
+ ```
92
+
93
+ Resultado
94
+
95
+ ```
96
+ 02/09/2025
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Solo hora
102
+
103
+ ```ts
104
+ DateUtil.format(createdAt, DateFormats.TIME);
105
+ ```
106
+
107
+ Resultado
108
+
109
+ ```
110
+ 15:55
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Fecha y hora
116
+
117
+ ```ts
118
+ DateUtil.format(createdAt, DateFormats.DATE_TIME);
119
+ ```
120
+
121
+ Resultado
122
+
123
+ ```
124
+ 02/09/2025 15:55
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Fecha y hora con segundos
130
+
131
+ ```ts
132
+ DateUtil.format(createdAt, DateFormats.DATE_TIME_SECONDS);
133
+ ```
134
+
135
+ Resultado
136
+
137
+ ```
138
+ 02/09/2025 15:55:39
139
+ ```
140
+
141
+ ---
142
+
143
+ ## Mes y año
144
+
145
+ ```ts
146
+ DateUtil.format(createdAt, DateFormats.MONTH_YEAR);
147
+ ```
148
+
149
+ Resultado
150
+
151
+ ```
152
+ 09/2025
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Año
158
+
159
+ ```ts
160
+ DateUtil.format(createdAt, DateFormats.YEAR);
161
+ ```
162
+
163
+ Resultado
164
+
165
+ ```
166
+ 2025
167
+ ```
168
+
169
+ ---
170
+
171
+ # HTML
172
+
173
+ ## Fecha
174
+
175
+ ```html
176
+ {{ createdAt | companyDate:'date' }}
177
+ ```
178
+
179
+ Resultado
180
+
181
+ ```
182
+ 02/09/2025
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Hora
188
+
189
+ ```html
190
+ {{ createdAt | companyDate:'time' }}
191
+ ```
192
+
193
+ Resultado
194
+
195
+ ```
196
+ 15:55
197
+ ```
198
+
199
+ ---
200
+
201
+ ## Fecha y Hora
202
+
203
+ ```html
204
+ {{ createdAt | companyDate:'dateTime' }}
205
+ ```
206
+
207
+ Resultado
208
+
209
+ ```
210
+ 02/09/2025 15:55
211
+ ```
212
+
213
+ ---
214
+
215
+ ## Año
216
+
217
+ ```html
218
+ {{ createdAt | companyDate:'year' }}
219
+ ```
220
+
221
+ Resultado
222
+
223
+ ```
224
+ 2025
225
+ ```
226
+
227
+ ---
228
+
229
+ # Dinero
230
+
231
+ Monto de ejemplo
232
+
233
+ ```ts
234
+ const amount = 1234.56;
235
+ ```
236
+
237
+ ---
238
+
239
+ ## Formato por defecto
240
+
241
+ ```ts
242
+ MoneyUtil.formatBolivianos(amount);
243
+ ```
244
+
245
+ Resultado
246
+
247
+ ```
248
+ Bs 1.234,56
249
+ ```
250
+
251
+ ---
252
+
253
+ ## Sin símbolo
254
+
255
+ ```ts
256
+ MoneyUtil.formatBolivianos(amount,{
257
+ showSymbol:false
258
+ });
259
+ ```
260
+
261
+ Resultado
262
+
263
+ ```
264
+ 1.234,56
265
+ ```
266
+
267
+ ---
268
+
269
+ ## Símbolo al final
270
+
271
+ ```ts
272
+ MoneyUtil.formatBolivianos(amount,{
273
+ symbolPosition:'suffix'
274
+ });
275
+ ```
276
+
277
+ Resultado
278
+
279
+ ```
280
+ 1.234,56 Bs
281
+ ```
282
+
283
+ ---
284
+
285
+ ## Cuatro decimales
286
+
287
+ ```ts
288
+ MoneyUtil.formatBolivianos(amount,{
289
+ maximumFractionDigits:4
290
+ });
291
+ ```
292
+
293
+ Resultado
294
+
295
+ ```
296
+ Bs 1.234,5600
297
+ ```
298
+
299
+ ---
300
+
301
+ # HTML
302
+
303
+ ```html
304
+ {{ amount | companyMoney }}
305
+ ```
306
+
307
+ Resultado
308
+
309
+ ```
310
+ Bs 1.234,56
311
+ ```
312
+
313
+ ---
314
+
315
+ ## Sin símbolo
316
+
317
+ ```html
318
+ {{ amount | companyMoney:{showSymbol:false} }}
319
+ ```
320
+
321
+ ---
322
+
323
+ ## Símbolo al final
324
+
325
+ ```html
326
+ {{ amount | companyMoney:{symbolPosition:'suffix'} }}
327
+ ```
328
+
329
+ ---
330
+
331
+ # DateFormats
332
+
333
+ La librería centraliza los formatos disponibles mediante la clase DateFormats.
334
+
335
+ ```ts
336
+ DateFormats.DATE
337
+
338
+ DateFormats.TIME
339
+
340
+ DateFormats.DATE_TIME
341
+
342
+ DateFormats.DATE_TIME_SECONDS
343
+
344
+ DateFormats.MONTH_YEAR
345
+
346
+ DateFormats.YEAR
347
+ ```
348
+
349
+ ---
350
+
351
+ # Validaciones
352
+
353
+ ```ts
354
+ DateUtil.isValid(value)
355
+
356
+ MoneyUtil.isValid(value)
357
+ ```
358
+
359
+ ---
360
+
361
+ # Conversión
362
+
363
+ ```ts
364
+ MoneyUtil.toNumber('1.234,56')
365
+ ```
366
+
367
+ ---
368
+
369
+ # Estructura recomendada
370
+
371
+ ```
372
+ shared
373
+
374
+ formatting.service.ts
375
+
376
+ formatting.pipe.ts
377
+
378
+ formatting.component.ts
379
+ ```
380
+
381
+ ---
382
+
383
+ # Buenas prácticas
384
+
385
+ ✔ Utilice DateFormats en lugar de escribir formatos manualmente.
386
+
387
+ ✔ Reutilice los Pipes cuando sea posible.
388
+
389
+ ✔ Evite hardcodear patrones de fechas.
390
+
391
+ Mantenga todos los formatos corporativos centralizados.
392
+
393
+ ---
394
+
395
+ # Versionado
396
+
397
+ Esta librería utiliza Semantic Versioning.
398
+
399
+ ```
400
+ MAJOR.MINOR.PATCH
401
+ ```
402
+
403
+ Ejemplos
404
+
405
+ ```
406
+ 1.0.0
407
+
408
+ 1.0.1
409
+
410
+ 1.1.0
411
+
412
+ 2.0.0
413
+ ```
414
+
415
+ ---
416
+
417
+ # Licencia
418
+
419
+ Copyright © ENDESYC
420
+
429
421
  Todos los derechos reservados.
Binary file
@@ -53,11 +53,11 @@ export class DateUtil {
53
53
  if (d.isValid())
54
54
  return d;
55
55
  }
56
- const iso = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;
56
+ const iso = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})?$/;
57
57
  if (!iso.test(s))
58
58
  return null;
59
59
  const d = dayjs(s);
60
60
  return d.isValid() ? d : null;
61
61
  }
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybWF0LWxpYnJhcnkvc3JjL2xpYi9kYXRlcy9kYXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDaEMsTUFBTSxPQUFPLFFBQVE7SUFDbkIsZ0JBQXVCLENBQUM7YUFDQSxZQUFPLEdBQUc7UUFDaEMseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixZQUFZO0tBQ0osQ0FBQztJQUNYLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBWSxFQUFFLENBQUMsR0FBRyxHQUFHO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFZLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQVksRUFBRSxDQUFDLEdBQUcsR0FBRztRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFZLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBWSxFQUFFLENBQUMsR0FBRyxHQUFHO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFZLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQVksRUFBRSxDQUFTLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDNUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBQ08sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFZO1FBQy9CLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0MsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FDUCwwRUFBMEUsQ0FBQztRQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMsIHsgRGF5anMgfSBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gXCJkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXRcIjtcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tIFwiLi9kYXRlLWZvcm1hdHNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4vZGF0ZS1pbnB1dFwiO1xyXG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWwge1xyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEZPUk1BVFMgPSBbXHJcbiAgICBcIllZWVktTU0tREQgSEg6bW06c3MuU1NTXCIsXHJcbiAgICBcIllZWVktTU0tREQgSEg6bW06c3NcIixcclxuICAgIFwiWVlZWS1NTS1ERFwiLFxyXG4gIF0gYXMgY29uc3Q7XHJcbiAgc3RhdGljIGZvcm1hdERhdGUodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5EQVRFLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdFRpbWUodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5USU1FLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdERhdGVUaW1lKHY6IERhdGVJbnB1dCwgZiA9IFwiLVwiKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQodiwgRGF0ZUZvcm1hdHMuREFURV9USU1FLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdERhdGVUaW1lV2l0aFNlY29uZHModjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5EQVRFX1RJTUVfU0VDT05EUywgZik7XHJcbiAgfVxyXG4gIHN0YXRpYyBmb3JtYXRNb250aFllYXIodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5NT05USF9ZRUFSLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdFllYXIodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5ZRUFSLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdCh2OiBEYXRlSW5wdXQsIG86IHN0cmluZywgZiA9IFwiLVwiKSB7XHJcbiAgICBjb25zdCBkID0gdGhpcy5wYXJzZSh2KTtcclxuICAgIHJldHVybiBkID8gZC5mb3JtYXQobykgOiBmO1xyXG4gIH1cclxuICBzdGF0aWMgaXNWYWxpZCh2OiBEYXRlSW5wdXQpIHtcclxuICAgIHJldHVybiB0aGlzLnBhcnNlKHYpICE9PSBudWxsO1xyXG4gIH1cclxuICBwcml2YXRlIHN0YXRpYyBwYXJzZSh2OiBEYXRlSW5wdXQpOiBEYXlqcyB8IG51bGwge1xyXG4gICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IFwiXCIpIHJldHVybiBudWxsO1xyXG4gICAgaWYgKGRheWpzLmlzRGF5anModikpIHJldHVybiB2LmlzVmFsaWQoKSA/IHYuY2xvbmUoKSA6IG51bGw7XHJcbiAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIHYgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgY29uc3QgZCA9IGRheWpzKHYpO1xyXG4gICAgICByZXR1cm4gZC5pc1ZhbGlkKCkgPyBkIDogbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBzID0gdi50cmltKCk7XHJcbiAgICBpZiAoIXMpIHJldHVybiBudWxsO1xyXG4gICAgZm9yIChjb25zdCBmbXQgb2YgdGhpcy5GT1JNQVRTKSB7XHJcbiAgICAgIGNvbnN0IGQgPSBkYXlqcyhzLCBmbXQsIHRydWUpO1xyXG4gICAgICBpZiAoZC5pc1ZhbGlkKCkpIHJldHVybiBkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXNvID1cclxuICAgICAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZHsxLDl9KT8oPzpafFsrLV1cXGR7Mn06XFxkezJ9KSQvO1xyXG4gICAgaWYgKCFpc28udGVzdChzKSkgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBkID0gZGF5anMocyk7XHJcbiAgICByZXR1cm4gZC5pc1ZhbGlkKCkgPyBkIDogbnVsbDtcclxuICB9XHJcbn1cclxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybWF0LWxpYnJhcnkvc3JjL2xpYi9kYXRlcy9kYXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLGlCQUFpQixNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDaEMsTUFBTSxPQUFPLFFBQVE7SUFDbkIsZ0JBQXVCLENBQUM7YUFDQSxZQUFPLEdBQUc7UUFDaEMseUJBQXlCO1FBQ3pCLHFCQUFxQjtRQUNyQixZQUFZO0tBQ0osQ0FBQztJQUNYLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBWSxFQUFFLENBQUMsR0FBRyxHQUFHO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFZLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQVksRUFBRSxDQUFDLEdBQUcsR0FBRztRQUN6QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFZLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBWSxFQUFFLENBQUMsR0FBRyxHQUFHO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFZLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQVksRUFBRSxDQUFTLEVBQUUsQ0FBQyxHQUFHLEdBQUc7UUFDNUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBQ08sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFZO1FBQy9CLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0MsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FDUCwyRUFBMkUsQ0FBQztRQUM5RSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUM5QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGF5anMsIHsgRGF5anMgfSBmcm9tIFwiZGF5anNcIjtcclxuaW1wb3J0IGN1c3RvbVBhcnNlRm9ybWF0IGZyb20gXCJkYXlqcy9wbHVnaW4vY3VzdG9tUGFyc2VGb3JtYXRcIjtcclxuaW1wb3J0IHsgRGF0ZUZvcm1hdHMgfSBmcm9tIFwiLi9kYXRlLWZvcm1hdHNcIjtcclxuaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSBcIi4vZGF0ZS1pbnB1dFwiO1xyXG5kYXlqcy5leHRlbmQoY3VzdG9tUGFyc2VGb3JtYXQpO1xyXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWwge1xyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEZPUk1BVFMgPSBbXHJcbiAgICBcIllZWVktTU0tREQgSEg6bW06c3MuU1NTXCIsXHJcbiAgICBcIllZWVktTU0tREQgSEg6bW06c3NcIixcclxuICAgIFwiWVlZWS1NTS1ERFwiLFxyXG4gIF0gYXMgY29uc3Q7XHJcbiAgc3RhdGljIGZvcm1hdERhdGUodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5EQVRFLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdFRpbWUodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5USU1FLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdERhdGVUaW1lKHY6IERhdGVJbnB1dCwgZiA9IFwiLVwiKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtYXQodiwgRGF0ZUZvcm1hdHMuREFURV9USU1FLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdERhdGVUaW1lV2l0aFNlY29uZHModjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5EQVRFX1RJTUVfU0VDT05EUywgZik7XHJcbiAgfVxyXG4gIHN0YXRpYyBmb3JtYXRNb250aFllYXIodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5NT05USF9ZRUFSLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdFllYXIodjogRGF0ZUlucHV0LCBmID0gXCItXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCh2LCBEYXRlRm9ybWF0cy5ZRUFSLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGZvcm1hdCh2OiBEYXRlSW5wdXQsIG86IHN0cmluZywgZiA9IFwiLVwiKSB7XHJcbiAgICBjb25zdCBkID0gdGhpcy5wYXJzZSh2KTtcclxuICAgIHJldHVybiBkID8gZC5mb3JtYXQobykgOiBmO1xyXG4gIH1cclxuICBzdGF0aWMgaXNWYWxpZCh2OiBEYXRlSW5wdXQpIHtcclxuICAgIHJldHVybiB0aGlzLnBhcnNlKHYpICE9PSBudWxsO1xyXG4gIH1cclxuICBwcml2YXRlIHN0YXRpYyBwYXJzZSh2OiBEYXRlSW5wdXQpOiBEYXlqcyB8IG51bGwge1xyXG4gICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IFwiXCIpIHJldHVybiBudWxsO1xyXG4gICAgaWYgKGRheWpzLmlzRGF5anModikpIHJldHVybiB2LmlzVmFsaWQoKSA/IHYuY2xvbmUoKSA6IG51bGw7XHJcbiAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIHYgPT09IFwibnVtYmVyXCIpIHtcclxuICAgICAgY29uc3QgZCA9IGRheWpzKHYpO1xyXG4gICAgICByZXR1cm4gZC5pc1ZhbGlkKCkgPyBkIDogbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdiAhPT0gXCJzdHJpbmdcIikgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBzID0gdi50cmltKCk7XHJcbiAgICBpZiAoIXMpIHJldHVybiBudWxsO1xyXG4gICAgZm9yIChjb25zdCBmbXQgb2YgdGhpcy5GT1JNQVRTKSB7XHJcbiAgICAgIGNvbnN0IGQgPSBkYXlqcyhzLCBmbXQsIHRydWUpO1xyXG4gICAgICBpZiAoZC5pc1ZhbGlkKCkpIHJldHVybiBkO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXNvID1cclxuICAgICAgL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfSg/OlxcLlxcZHsxLDl9KT8oPzpafFsrLV1cXGR7Mn06XFxkezJ9KT8kLztcclxuICAgIGlmICghaXNvLnRlc3QocykpIHJldHVybiBudWxsO1xyXG4gICAgY29uc3QgZCA9IGRheWpzKHMpO1xyXG4gICAgcmV0dXJuIGQuaXNWYWxpZCgpID8gZCA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -65,7 +65,7 @@ class DateUtil {
65
65
  if (d.isValid())
66
66
  return d;
67
67
  }
68
- const iso = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})$/;
68
+ const iso = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?(?:Z|[+-]\d{2}:\d{2})?$/;
69
69
  if (!iso.test(s))
70
70
  return null;
71
71
  const d = dayjs(s);
@@ -1 +1 @@
1
- {"version":3,"file":"endesyc-format.mjs","sources":["../../../projects/format-library/src/lib/dates/date-formats.ts","../../../projects/format-library/src/lib/dates/date.util.ts","../../../projects/format-library/src/lib/dates/company-date.pipe.ts","../../../projects/format-library/src/lib/money/money-formats.ts","../../../projects/format-library/src/lib/money/money.util.ts","../../../projects/format-library/src/lib/money/company-money.pipe.ts","../../../projects/format-library/src/endesyc-format.ts"],"sourcesContent":["export class DateFormats {\r\n private constructor() {}\r\n static readonly DATE = \"DD/MM/YYYY\";\r\n static readonly TIME = \"HH:mm\";\r\n static readonly DATE_TIME = \"DD/MM/YYYY HH:mm\";\r\n static readonly DATE_TIME_SECONDS = \"DD/MM/YYYY HH:mm:ss\";\r\n static readonly MONTH_YEAR = \"MM/YYYY\";\r\n static readonly YEAR = \"YYYY\";\r\n// static readonly API_DATE = \"YYYY-MM-DD\";\r\n}\r\n","import dayjs, { Dayjs } from \"dayjs\";\r\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\r\nimport { DateFormats } from \"./date-formats\";\r\nimport { DateInput } from \"./date-input\";\r\ndayjs.extend(customParseFormat);\r\nexport class DateUtil {\r\n private constructor() {}\r\n private static readonly FORMATS = [\r\n \"YYYY-MM-DD HH:mm:ss.SSS\",\r\n \"YYYY-MM-DD HH:mm:ss\",\r\n \"YYYY-MM-DD\",\r\n ] as const;\r\n static formatDate(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.DATE, f);\r\n }\r\n static formatTime(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.TIME, f);\r\n }\r\n static formatDateTime(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.DATE_TIME, f);\r\n }\r\n static formatDateTimeWithSeconds(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.DATE_TIME_SECONDS, f);\r\n }\r\n static formatMonthYear(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.MONTH_YEAR, f);\r\n }\r\n static formatYear(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.YEAR, f);\r\n }\r\n static format(v: DateInput, o: string, f = \"-\") {\r\n const d = this.parse(v);\r\n return d ? d.format(o) : f;\r\n }\r\n static isValid(v: DateInput) {\r\n return this.parse(v) !== null;\r\n }\r\n private static parse(v: DateInput): Dayjs | null {\r\n if (v === null || v === undefined || v === \"\") return null;\r\n if (dayjs.isDayjs(v)) return v.isValid() ? v.clone() : null;\r\n if (v instanceof Date || typeof v === \"number\") {\r\n const d = dayjs(v);\r\n return d.isValid() ? d : null;\r\n }\r\n if (typeof v !== \"string\") return null;\r\n const s = v.trim();\r\n if (!s) return null;\r\n for (const fmt of this.FORMATS) {\r\n const d = dayjs(s, fmt, true);\r\n if (d.isValid()) return d;\r\n }\r\n const iso =\r\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$/;\r\n if (!iso.test(s)) return null;\r\n const d = dayjs(s);\r\n return d.isValid() ? d : null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DateDisplayFormat } from \"./date-display-format\";\r\nimport { DateInput } from \"./date-input\";\r\nimport { DateUtil } from \"./date.util\";\r\n@Pipe({ name: \"companyDate\", standalone: true, pure: true })\r\nexport class CompanyDatePipe implements PipeTransform {\r\n transform(v: DateInput, t: DateDisplayFormat = \"dateTime\", f = \"-\"): string {\r\n switch (t) {\r\n case \"date\":\r\n return DateUtil.formatDate(v, f);\r\n case \"time\":\r\n return DateUtil.formatTime(v, f);\r\n case \"dateTimeSeconds\":\r\n return DateUtil.formatDateTimeWithSeconds(v, f);\r\n case \"monthYear\":\r\n return DateUtil.formatMonthYear(v, f);\r\n case \"year\":\r\n return DateUtil.formatYear(v, f);\r\n default:\r\n return DateUtil.formatDateTime(v, f);\r\n }\r\n }\r\n}\r\n","export class MoneyFormats {\r\n private constructor() {}\r\n static readonly DEFAULT_LOCALE = \"es-BO\";\r\n static readonly DEFAULT_CURRENCY = \"BOB\";\r\n static readonly DEFAULT_SYMBOL = \"Bs\";\r\n static readonly DEFAULT_DECIMALS = 2;\r\n}\r\n","import { MoneyFormatOptions } from \"./money-format-options\";\r\nimport { MoneyFormats } from \"./money-formats\";\r\nimport { MoneyInput } from \"./money-input\";\r\nexport class MoneyUtil {\r\n private constructor() {}\r\n static formatBolivianos(v: MoneyInput, o: MoneyFormatOptions = {}): string {\r\n const n = this.parse(v);\r\n if (n === null) return o.fallback ?? \"-\";\r\n const min = o.minimumFractionDigits ?? 2,\r\n max = o.maximumFractionDigits ?? 2;\r\n const amount = new Intl.NumberFormat(MoneyFormats.DEFAULT_LOCALE, {\r\n style: \"decimal\",\r\n useGrouping: true,\r\n minimumFractionDigits: min,\r\n maximumFractionDigits: max,\r\n }).format(n);\r\n if (!(o.showSymbol ?? true)) return amount;\r\n const s = o.symbol ?? MoneyFormats.DEFAULT_SYMBOL;\r\n return o.symbolPosition === \"after\" ? `${amount} ${s}` : `${s} ${amount}`;\r\n }\r\n static formatNumber(v: MoneyInput, min = 2, max = 2, f = \"-\") {\r\n return this.formatBolivianos(v, {\r\n showSymbol: false,\r\n minimumFractionDigits: min,\r\n maximumFractionDigits: max,\r\n fallback: f,\r\n });\r\n }\r\n static isValid(v: MoneyInput) {\r\n return this.parse(v) !== null;\r\n }\r\n static toNumber(v: MoneyInput) {\r\n return this.parse(v);\r\n }\r\n private static parse(v: MoneyInput): number | null {\r\n if (v === null || v === undefined || v === \"\") return null;\r\n if (typeof v === \"number\") return Number.isFinite(v) ? v : null;\r\n const s = v\r\n .trim()\r\n .replace(/\\s/g, \"\")\r\n .replace(/^Bs\\.?/i, \"\");\r\n if (!s) return null;\r\n let n: string;\r\n if (s.includes(\",\") && s.includes(\".\"))\r\n n = s.replace(/\\./g, \"\").replace(\",\", \".\");\r\n else if (s.includes(\",\")) n = s.replace(\",\", \".\");\r\n else n = s;\r\n if (!/^-?\\d+(?:\\.\\d+)?$/.test(n)) return null;\r\n const x = Number(n);\r\n return Number.isFinite(x) ? x : null;\r\n }\r\n}\r\n","import {Pipe,PipeTransform} from '@angular/core'; import {MoneyFormatOptions} from './money-format-options'; import {MoneyInput} from './money-input'; import {MoneyUtil} from './money.util'; @Pipe({name:'companyMoney',standalone:true,pure:true}) export class CompanyMoneyPipe implements PipeTransform { transform(v:MoneyInput,o:MoneyFormatOptions={}):string{return MoneyUtil.formatBolivianos(v,o)} }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endesyc-format.mjs","sources":["../../../projects/format-library/src/lib/dates/date-formats.ts","../../../projects/format-library/src/lib/dates/date.util.ts","../../../projects/format-library/src/lib/dates/company-date.pipe.ts","../../../projects/format-library/src/lib/money/money-formats.ts","../../../projects/format-library/src/lib/money/money.util.ts","../../../projects/format-library/src/lib/money/company-money.pipe.ts","../../../projects/format-library/src/endesyc-format.ts"],"sourcesContent":["export class DateFormats {\r\n private constructor() {}\r\n static readonly DATE = \"DD/MM/YYYY\";\r\n static readonly TIME = \"HH:mm\";\r\n static readonly DATE_TIME = \"DD/MM/YYYY HH:mm\";\r\n static readonly DATE_TIME_SECONDS = \"DD/MM/YYYY HH:mm:ss\";\r\n static readonly MONTH_YEAR = \"MM/YYYY\";\r\n static readonly YEAR = \"YYYY\";\r\n// static readonly API_DATE = \"YYYY-MM-DD\";\r\n}\r\n","import dayjs, { Dayjs } from \"dayjs\";\r\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\r\nimport { DateFormats } from \"./date-formats\";\r\nimport { DateInput } from \"./date-input\";\r\ndayjs.extend(customParseFormat);\r\nexport class DateUtil {\r\n private constructor() {}\r\n private static readonly FORMATS = [\r\n \"YYYY-MM-DD HH:mm:ss.SSS\",\r\n \"YYYY-MM-DD HH:mm:ss\",\r\n \"YYYY-MM-DD\",\r\n ] as const;\r\n static formatDate(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.DATE, f);\r\n }\r\n static formatTime(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.TIME, f);\r\n }\r\n static formatDateTime(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.DATE_TIME, f);\r\n }\r\n static formatDateTimeWithSeconds(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.DATE_TIME_SECONDS, f);\r\n }\r\n static formatMonthYear(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.MONTH_YEAR, f);\r\n }\r\n static formatYear(v: DateInput, f = \"-\") {\r\n return this.format(v, DateFormats.YEAR, f);\r\n }\r\n static format(v: DateInput, o: string, f = \"-\") {\r\n const d = this.parse(v);\r\n return d ? d.format(o) : f;\r\n }\r\n static isValid(v: DateInput) {\r\n return this.parse(v) !== null;\r\n }\r\n private static parse(v: DateInput): Dayjs | null {\r\n if (v === null || v === undefined || v === \"\") return null;\r\n if (dayjs.isDayjs(v)) return v.isValid() ? v.clone() : null;\r\n if (v instanceof Date || typeof v === \"number\") {\r\n const d = dayjs(v);\r\n return d.isValid() ? d : null;\r\n }\r\n if (typeof v !== \"string\") return null;\r\n const s = v.trim();\r\n if (!s) return null;\r\n for (const fmt of this.FORMATS) {\r\n const d = dayjs(s, fmt, true);\r\n if (d.isValid()) return d;\r\n }\r\n const iso =\r\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})?$/;\r\n if (!iso.test(s)) return null;\r\n const d = dayjs(s);\r\n return d.isValid() ? d : null;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DateDisplayFormat } from \"./date-display-format\";\r\nimport { DateInput } from \"./date-input\";\r\nimport { DateUtil } from \"./date.util\";\r\n@Pipe({ name: \"companyDate\", standalone: true, pure: true })\r\nexport class CompanyDatePipe implements PipeTransform {\r\n transform(v: DateInput, t: DateDisplayFormat = \"dateTime\", f = \"-\"): string {\r\n switch (t) {\r\n case \"date\":\r\n return DateUtil.formatDate(v, f);\r\n case \"time\":\r\n return DateUtil.formatTime(v, f);\r\n case \"dateTimeSeconds\":\r\n return DateUtil.formatDateTimeWithSeconds(v, f);\r\n case \"monthYear\":\r\n return DateUtil.formatMonthYear(v, f);\r\n case \"year\":\r\n return DateUtil.formatYear(v, f);\r\n default:\r\n return DateUtil.formatDateTime(v, f);\r\n }\r\n }\r\n}\r\n","export class MoneyFormats {\r\n private constructor() {}\r\n static readonly DEFAULT_LOCALE = \"es-BO\";\r\n static readonly DEFAULT_CURRENCY = \"BOB\";\r\n static readonly DEFAULT_SYMBOL = \"Bs\";\r\n static readonly DEFAULT_DECIMALS = 2;\r\n}\r\n","import { MoneyFormatOptions } from \"./money-format-options\";\r\nimport { MoneyFormats } from \"./money-formats\";\r\nimport { MoneyInput } from \"./money-input\";\r\nexport class MoneyUtil {\r\n private constructor() {}\r\n static formatBolivianos(v: MoneyInput, o: MoneyFormatOptions = {}): string {\r\n const n = this.parse(v);\r\n if (n === null) return o.fallback ?? \"-\";\r\n const min = o.minimumFractionDigits ?? 2,\r\n max = o.maximumFractionDigits ?? 2;\r\n const amount = new Intl.NumberFormat(MoneyFormats.DEFAULT_LOCALE, {\r\n style: \"decimal\",\r\n useGrouping: true,\r\n minimumFractionDigits: min,\r\n maximumFractionDigits: max,\r\n }).format(n);\r\n if (!(o.showSymbol ?? true)) return amount;\r\n const s = o.symbol ?? MoneyFormats.DEFAULT_SYMBOL;\r\n return o.symbolPosition === \"after\" ? `${amount} ${s}` : `${s} ${amount}`;\r\n }\r\n static formatNumber(v: MoneyInput, min = 2, max = 2, f = \"-\") {\r\n return this.formatBolivianos(v, {\r\n showSymbol: false,\r\n minimumFractionDigits: min,\r\n maximumFractionDigits: max,\r\n fallback: f,\r\n });\r\n }\r\n static isValid(v: MoneyInput) {\r\n return this.parse(v) !== null;\r\n }\r\n static toNumber(v: MoneyInput) {\r\n return this.parse(v);\r\n }\r\n private static parse(v: MoneyInput): number | null {\r\n if (v === null || v === undefined || v === \"\") return null;\r\n if (typeof v === \"number\") return Number.isFinite(v) ? v : null;\r\n const s = v\r\n .trim()\r\n .replace(/\\s/g, \"\")\r\n .replace(/^Bs\\.?/i, \"\");\r\n if (!s) return null;\r\n let n: string;\r\n if (s.includes(\",\") && s.includes(\".\"))\r\n n = s.replace(/\\./g, \"\").replace(\",\", \".\");\r\n else if (s.includes(\",\")) n = s.replace(\",\", \".\");\r\n else n = s;\r\n if (!/^-?\\d+(?:\\.\\d+)?$/.test(n)) return null;\r\n const x = Number(n);\r\n return Number.isFinite(x) ? x : null;\r\n }\r\n}\r\n","import {Pipe,PipeTransform} from '@angular/core'; import {MoneyFormatOptions} from './money-format-options'; import {MoneyInput} from './money-input'; import {MoneyUtil} from './money.util'; @Pipe({name:'companyMoney',standalone:true,pure:true}) export class CompanyMoneyPipe implements PipeTransform { transform(v:MoneyInput,o:MoneyFormatOptions={}):string{return MoneyUtil.formatBolivianos(v,o)} }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@endesyc/format",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Librería Angular compartida para formateo de fechas y montos monetarios.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "ENDESYC",
7
7
  "sideEffects": false,
8
8
  "peerDependencies": {
9
- "@angular/common": ">=18 <21",
10
- "@angular/core": ">=18 <21",
9
+ "@angular/common": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
10
+ "@angular/core": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0",
11
11
  "dayjs": "^1.11.13"
12
12
  },
13
13
  "dependencies": {