@hmcts/opal-frontend-common 0.0.87 → 0.0.89

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.
@@ -1,16 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { Location } from '@angular/common';
4
- import { Router } from '@angular/router';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
5
 
6
6
  class InternalServerErrorComponent {
7
+ activatedRoute = inject(ActivatedRoute);
7
8
  router = inject(Router);
8
9
  location = inject(Location);
9
10
  operationIdDisplay = computed(() => {
11
+ const queryParamOperationId = this.activatedRoute.snapshot.queryParamMap.get('operationId');
10
12
  const navigationState = this.router.currentNavigation()?.extras?.state;
11
13
  const persistedState = this.location.getState();
12
- const operationId = navigationState?.operationId ?? persistedState?.operationId;
13
- return operationId && operationId.trim().length > 0 ? operationId : 'Unavailable';
14
+ const operationId = [queryParamOperationId, navigationState?.operationId, persistedState?.operationId].find((id) => id?.trim());
15
+ return operationId?.trim() ?? 'Unavailable';
14
16
  }, ...(ngDevMode ? [{ debugName: "operationIdDisplay" }] : /* istanbul ignore next */ []));
15
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: InternalServerErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
18
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: InternalServerErrorComponent, isStandalone: true, selector: "opal-lib-internal-server-error", ngImport: i0, template: "<div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -21,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
21
23
  }] });
22
24
 
23
25
  export { InternalServerErrorComponent };
24
- //# sourceMappingURL=hmcts-opal-frontend-common-internal-server-error.component-BiZRHHHQ.mjs.map
26
+ //# sourceMappingURL=hmcts-opal-frontend-common-internal-server-error.component-Cj-ueGWj.mjs.map
@@ -1,16 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import { Location } from '@angular/common';
4
- import { Router } from '@angular/router';
4
+ import { ActivatedRoute, Router } from '@angular/router';
5
5
 
6
6
  class InternalServerErrorComponent {
7
+ activatedRoute = inject(ActivatedRoute);
7
8
  router = inject(Router);
8
9
  location = inject(Location);
9
10
  operationIdDisplay = computed(() => {
11
+ const queryParamOperationId = this.activatedRoute.snapshot.queryParamMap.get('operationId');
10
12
  const navigationState = this.router.currentNavigation()?.extras?.state;
11
13
  const persistedState = this.location.getState();
12
- const operationId = navigationState?.operationId ?? persistedState?.operationId;
13
- return operationId && operationId.trim().length > 0 ? operationId : 'Unavailable';
14
+ const operationId = [queryParamOperationId, navigationState?.operationId, persistedState?.operationId].find((id) => id?.trim());
15
+ return operationId?.trim() ?? 'Unavailable';
14
16
  }, ...(ngDevMode ? [{ debugName: "operationIdDisplay" }] : /* istanbul ignore next */ []));
15
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: InternalServerErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
18
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: InternalServerErrorComponent, isStandalone: true, selector: "opal-lib-internal-server-error", ngImport: i0, template: "<div class=\"govuk-grid-column-two-thirds\">\n <h1 class=\"govuk-heading-l\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\" data-testid=\"error-code\">Error code: {{ operationIdDisplay() }}.</p>\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
@@ -21,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
21
23
  }] });
22
24
 
23
25
  export { InternalServerErrorComponent };
24
- //# sourceMappingURL=hmcts-opal-frontend-common-pages-internal-server-error.component-BiZRHHHQ.mjs.map
26
+ //# sourceMappingURL=hmcts-opal-frontend-common-pages-internal-server-error.component-Cj-ueGWj.mjs.map
@@ -27,7 +27,7 @@ const routing = [
27
27
  },
28
28
  {
29
29
  path: PAGES_ROUTING_PATHS.children.internalServerError,
30
- loadComponent: () => import('./hmcts-opal-frontend-common-pages-internal-server-error.component-BiZRHHHQ.mjs').then((c) => c.InternalServerErrorComponent),
30
+ loadComponent: () => import('./hmcts-opal-frontend-common-pages-internal-server-error.component-Cj-ueGWj.mjs').then((c) => c.InternalServerErrorComponent),
31
31
  data: { title: PAGES_ROUTING_TITLES.children.internalServerError },
32
32
  resolve: { title: TitleResolver },
33
33
  },
@@ -321,9 +321,205 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
321
321
  }]
322
322
  }] });
323
323
 
324
+ const HISTORY_MAPPING_DATE_SERVICE = new DateService();
325
+ const HISTORY_MAPPING_DEFAULT_FIELD_PATH_SEPARATOR = '.';
326
+ const HISTORY_MAPPING_DEFAULT_NUMBER_OPTIONS = {
327
+ fieldPathSeparator: null,
328
+ numberSanitisePattern: null,
329
+ };
330
+ /**
331
+ * Checks whether a value can be mapped as a raw history item.
332
+ *
333
+ * @param value - The value to check.
334
+ * @returns True when the value is an object record.
335
+ */
336
+ function isHistoryMappingItem(value) {
337
+ return typeof value === 'object' && value !== null;
338
+ }
339
+ /**
340
+ * Finds the first supported history item collection and filters it to mappable object items.
341
+ *
342
+ * @param source - The source object containing a history item collection.
343
+ * @param keys - Candidate history item collection keys in priority order.
344
+ * @returns The matched collection entry, or null when no array is present.
345
+ */
346
+ function getHistoryMappingItemsEntry(source, keys) {
347
+ for (const key of keys) {
348
+ const historyItems = source[key];
349
+ if (Array.isArray(historyItems)) {
350
+ return {
351
+ key,
352
+ items: historyItems.filter(isHistoryMappingItem),
353
+ };
354
+ }
355
+ }
356
+ return null;
357
+ }
358
+ /**
359
+ * Maps the first supported history item collection into consumer-owned row objects.
360
+ *
361
+ * @param source - The source object containing a history item collection.
362
+ * @param keys - Candidate history item collection keys in priority order.
363
+ * @param mapItemToRow - Row mapper owned by the consuming flow.
364
+ * @returns Mapped rows.
365
+ */
366
+ function getHistoryMappingRows(source, keys, mapItemToRow) {
367
+ return (getHistoryMappingItemsEntry(source, keys)?.items ?? []).map((item, index) => mapItemToRow(item, index));
368
+ }
369
+ /**
370
+ * Gets a value from a history item using a field path.
371
+ *
372
+ * @param source - The source history item.
373
+ * @param path - The field path.
374
+ * @param fieldPathSeparator - The path segment separator.
375
+ * @returns The matched field value.
376
+ */
377
+ function getHistoryMappingValue(source, path, fieldPathSeparator = HISTORY_MAPPING_DEFAULT_FIELD_PATH_SEPARATOR) {
378
+ return path.split(fieldPathSeparator).reduce((current, key) => {
379
+ if (typeof current !== 'object' || current === null) {
380
+ return undefined;
381
+ }
382
+ return current[key];
383
+ }, source);
384
+ }
385
+ /**
386
+ * Gets the first present string or number from the supplied history item paths.
387
+ *
388
+ * @param item - The source history item.
389
+ * @param paths - The field paths to inspect.
390
+ * @param fieldPathSeparator - The path segment separator.
391
+ * @returns The first present string value.
392
+ */
393
+ function getHistoryMappingString(item, paths, fieldPathSeparator = HISTORY_MAPPING_DEFAULT_FIELD_PATH_SEPARATOR) {
394
+ for (const path of paths) {
395
+ const value = getHistoryMappingValue(item, path, fieldPathSeparator);
396
+ if (typeof value === 'string' && value.trim()) {
397
+ return value;
398
+ }
399
+ if (typeof value === 'number') {
400
+ return String(value);
401
+ }
402
+ }
403
+ return null;
404
+ }
405
+ /**
406
+ * Gets the first finite number from the supplied history item paths.
407
+ *
408
+ * @param item - The source history item.
409
+ * @param paths - The field paths to inspect.
410
+ * @param options - Number mapping options.
411
+ * @returns The first finite number value.
412
+ */
413
+ function getHistoryMappingNumber(item, paths, options = HISTORY_MAPPING_DEFAULT_NUMBER_OPTIONS) {
414
+ const fieldPathSeparator = options.fieldPathSeparator ?? HISTORY_MAPPING_DEFAULT_FIELD_PATH_SEPARATOR;
415
+ for (const path of paths) {
416
+ const value = getHistoryMappingValue(item, path, fieldPathSeparator);
417
+ if (typeof value === 'number' && Number.isFinite(value)) {
418
+ return value;
419
+ }
420
+ if (typeof value === 'string') {
421
+ const sanitisedValue = options.numberSanitisePattern ? value.replace(options.numberSanitisePattern, '') : value;
422
+ const trimmedValue = sanitisedValue.trim();
423
+ if (!trimmedValue) {
424
+ continue;
425
+ }
426
+ const parsed = Number(trimmedValue);
427
+ if (Number.isFinite(parsed)) {
428
+ return parsed;
429
+ }
430
+ }
431
+ }
432
+ return null;
433
+ }
434
+ /**
435
+ * Parses supported history date values to sortable UTC timestamps.
436
+ *
437
+ * @param value - The raw date value.
438
+ * @param dateFormat - The configured input date format.
439
+ * @returns The UTC timestamp in milliseconds, or null when parsing fails.
440
+ */
441
+ function parseHistoryDateTimestamp(value, dateFormat) {
442
+ if (typeof value === 'number' && Number.isFinite(value)) {
443
+ return value;
444
+ }
445
+ if (typeof value !== 'string' || !value.trim()) {
446
+ return null;
447
+ }
448
+ const trimmedValue = value.trim();
449
+ const parsedFormattedDate = HISTORY_MAPPING_DATE_SERVICE.getFromFormat(trimmedValue, dateFormat.input);
450
+ if (HISTORY_MAPPING_DATE_SERVICE.isValidDate(parsedFormattedDate)) {
451
+ return Date.UTC(parsedFormattedDate.year, parsedFormattedDate.month - 1, parsedFormattedDate.day);
452
+ }
453
+ const isoDate = HISTORY_MAPPING_DATE_SERVICE.getFromIso(trimmedValue);
454
+ if (!HISTORY_MAPPING_DATE_SERVICE.isValidDate(isoDate)) {
455
+ return null;
456
+ }
457
+ return trimmedValue.length === 10 ? Date.UTC(isoDate.year, isoDate.month - 1, isoDate.day) : isoDate.toMillis();
458
+ }
459
+ /**
460
+ * Gets the first parseable date timestamp from the supplied history item paths.
461
+ *
462
+ * @param item - The source history item.
463
+ * @param paths - The field paths to inspect.
464
+ * @param dateFormat - The configured input date format.
465
+ * @param fieldPathSeparator - The path segment separator.
466
+ * @returns The first parseable UTC timestamp in milliseconds.
467
+ */
468
+ function getHistoryMappingDateTimestamp(item, paths, dateFormat, fieldPathSeparator = HISTORY_MAPPING_DEFAULT_FIELD_PATH_SEPARATOR) {
469
+ for (const path of paths) {
470
+ const timestamp = parseHistoryDateTimestamp(getHistoryMappingValue(item, path, fieldPathSeparator), dateFormat);
471
+ if (timestamp !== null) {
472
+ return timestamp;
473
+ }
474
+ }
475
+ return null;
476
+ }
477
+ /**
478
+ * Gets the rendered prefix for a history details fragment.
479
+ *
480
+ * @param fragment - The details fragment.
481
+ * @param index - The fragment index in its part.
482
+ * @param options - Prefix display options.
483
+ * @returns The rendered prefix.
484
+ */
485
+ function getHistoryMappingFragmentPrefix(fragment, index, options) {
486
+ if (fragment.hyphen) {
487
+ return options.hyphenPrefix;
488
+ }
489
+ return index > 0 ? options.fragmentSpacePrefix : (options.fragmentEmptyPrefix ?? '');
490
+ }
491
+ /**
492
+ * Converts transformed history details into plain text for table sorting.
493
+ *
494
+ * @param details - The transformed details model.
495
+ * @param options - Details text display options.
496
+ * @returns Details text.
497
+ */
498
+ function getHistoryMappingDetailsText(details, options) {
499
+ return [getHistoryMappingPartsText(details.line1, options), getHistoryMappingPartsText(details.line2 ?? [], options)]
500
+ .filter(Boolean)
501
+ .join(options.detailsLineSeparator);
502
+ }
503
+ /**
504
+ * Converts transformed history details parts into plain text for table sorting.
505
+ *
506
+ * @param parts - The transformed details parts.
507
+ * @param options - Details text display options.
508
+ * @returns Details parts text.
509
+ */
510
+ function getHistoryMappingPartsText(parts, options) {
511
+ return parts
512
+ .map((part) => part.fragments
513
+ .map((fragment, index) => `${getHistoryMappingFragmentPrefix(fragment, index, options)}${fragment.text}`)
514
+ .join(options.fragmentJoiner ?? '')
515
+ .trim())
516
+ .filter(Boolean)
517
+ .join(options.partSeparator);
518
+ }
519
+
324
520
  /**
325
521
  * Generated bundle index. Do not edit.
326
522
  */
327
523
 
328
- export { HISTORY_DETAILS_PATTERNS, HistoryTransformationService, createHistoryDetails, createHistoryDetailsPart, createHistoryFragment, createHistoryLabelValuePart, createHistoryLink, createHistoryTextPart, formatHistoryDate, formatHistoryMoney, getHistoryAliasPaths, getHistoryString, getHistoryValue, getHistoryValueByPath, isHistoryEmptyValue, isHistoryPresentString, isHistoryRecord, normaliseHistoryKey, normaliseHistoryTransactionType, toHistorySnakeCase, transformHistoryDetails, transformHistoryFallbackDetails, transformHistoryItems };
524
+ export { HISTORY_DETAILS_PATTERNS, HistoryTransformationService, createHistoryDetails, createHistoryDetailsPart, createHistoryFragment, createHistoryLabelValuePart, createHistoryLink, createHistoryTextPart, formatHistoryDate, formatHistoryMoney, getHistoryAliasPaths, getHistoryMappingDateTimestamp, getHistoryMappingDetailsText, getHistoryMappingFragmentPrefix, getHistoryMappingItemsEntry, getHistoryMappingNumber, getHistoryMappingPartsText, getHistoryMappingRows, getHistoryMappingString, getHistoryMappingValue, getHistoryString, getHistoryValue, getHistoryValueByPath, isHistoryEmptyValue, isHistoryMappingItem, isHistoryPresentString, isHistoryRecord, normaliseHistoryKey, normaliseHistoryTransactionType, parseHistoryDateTimestamp, toHistorySnakeCase, transformHistoryDetails, transformHistoryFallbackDetails, transformHistoryItems };
329
525
  //# sourceMappingURL=hmcts-opal-frontend-common-services-history-transformation-service.mjs.map
@@ -54,7 +54,7 @@ const routing = [
54
54
  },
55
55
  {
56
56
  path: PAGES_ROUTING_PATHS.children.internalServerError,
57
- loadComponent: () => import('./hmcts-opal-frontend-common-internal-server-error.component-BiZRHHHQ.mjs').then((c) => c.InternalServerErrorComponent),
57
+ loadComponent: () => import('./hmcts-opal-frontend-common-internal-server-error.component-Cj-ueGWj.mjs').then((c) => c.InternalServerErrorComponent),
58
58
  data: { title: PAGES_ROUTING_TITLES.children.internalServerError },
59
59
  resolve: { title: TitleResolver },
60
60
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hmcts/opal-frontend-common",
3
- "version": "0.0.87",
3
+ "version": "0.0.89",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -71,7 +71,7 @@ declare class DateService {
71
71
  * @param format - The format string to apply to the DateTime value.
72
72
  * @returns The formatted string representation of the DateTime value.
73
73
  */
74
- toFormat(value: DateTime<true> | DateTime<false>, format: string): string;
74
+ toFormat(value: DateTime, format: string): string;
75
75
  /**
76
76
  * Converts a given Date object to a formatted string based on the specified format.
77
77
  *
@@ -77,6 +77,123 @@ interface IHistoryFragmentOptions {
77
77
  link?: IHistoryDetailsLink | null;
78
78
  }
79
79
 
80
+ interface IHistoryMappingFragmentPrefixOptions {
81
+ fragmentEmptyPrefix: string | null;
82
+ fragmentSpacePrefix: string;
83
+ hyphenPrefix: string;
84
+ }
85
+
86
+ interface IHistoryMappingDetailsTextOptions extends IHistoryMappingFragmentPrefixOptions {
87
+ detailsLineSeparator: string;
88
+ fragmentJoiner: string | null;
89
+ partSeparator: string;
90
+ }
91
+
92
+ interface IHistoryMappingItemsEntry {
93
+ key: string;
94
+ items: THistoryDetailsRawItem[];
95
+ }
96
+
97
+ interface IHistoryMappingNumberOptions {
98
+ fieldPathSeparator: string | null;
99
+ numberSanitisePattern: RegExp | null;
100
+ }
101
+
102
+ /**
103
+ * Checks whether a value can be mapped as a raw history item.
104
+ *
105
+ * @param value - The value to check.
106
+ * @returns True when the value is an object record.
107
+ */
108
+ declare function isHistoryMappingItem(value: unknown): value is THistoryDetailsRawItem;
109
+ /**
110
+ * Finds the first supported history item collection and filters it to mappable object items.
111
+ *
112
+ * @param source - The source object containing a history item collection.
113
+ * @param keys - Candidate history item collection keys in priority order.
114
+ * @returns The matched collection entry, or null when no array is present.
115
+ */
116
+ declare function getHistoryMappingItemsEntry(source: Record<string, unknown>, keys: readonly string[]): IHistoryMappingItemsEntry | null;
117
+ /**
118
+ * Maps the first supported history item collection into consumer-owned row objects.
119
+ *
120
+ * @param source - The source object containing a history item collection.
121
+ * @param keys - Candidate history item collection keys in priority order.
122
+ * @param mapItemToRow - Row mapper owned by the consuming flow.
123
+ * @returns Mapped rows.
124
+ */
125
+ declare function getHistoryMappingRows<TRow>(source: Record<string, unknown>, keys: readonly string[], mapItemToRow: (item: THistoryDetailsRawItem, index: number) => TRow): TRow[];
126
+ /**
127
+ * Gets a value from a history item using a field path.
128
+ *
129
+ * @param source - The source history item.
130
+ * @param path - The field path.
131
+ * @param fieldPathSeparator - The path segment separator.
132
+ * @returns The matched field value.
133
+ */
134
+ declare function getHistoryMappingValue(source: THistoryDetailsRawItem, path: string, fieldPathSeparator?: string): unknown;
135
+ /**
136
+ * Gets the first present string or number from the supplied history item paths.
137
+ *
138
+ * @param item - The source history item.
139
+ * @param paths - The field paths to inspect.
140
+ * @param fieldPathSeparator - The path segment separator.
141
+ * @returns The first present string value.
142
+ */
143
+ declare function getHistoryMappingString(item: THistoryDetailsRawItem, paths: readonly string[], fieldPathSeparator?: string): string | null;
144
+ /**
145
+ * Gets the first finite number from the supplied history item paths.
146
+ *
147
+ * @param item - The source history item.
148
+ * @param paths - The field paths to inspect.
149
+ * @param options - Number mapping options.
150
+ * @returns The first finite number value.
151
+ */
152
+ declare function getHistoryMappingNumber(item: THistoryDetailsRawItem, paths: readonly string[], options?: IHistoryMappingNumberOptions): number | null;
153
+ /**
154
+ * Parses supported history date values to sortable UTC timestamps.
155
+ *
156
+ * @param value - The raw date value.
157
+ * @param dateFormat - The configured input date format.
158
+ * @returns The UTC timestamp in milliseconds, or null when parsing fails.
159
+ */
160
+ declare function parseHistoryDateTimestamp(value: unknown, dateFormat: IHistoryDetailsDateFormat): number | null;
161
+ /**
162
+ * Gets the first parseable date timestamp from the supplied history item paths.
163
+ *
164
+ * @param item - The source history item.
165
+ * @param paths - The field paths to inspect.
166
+ * @param dateFormat - The configured input date format.
167
+ * @param fieldPathSeparator - The path segment separator.
168
+ * @returns The first parseable UTC timestamp in milliseconds.
169
+ */
170
+ declare function getHistoryMappingDateTimestamp(item: THistoryDetailsRawItem, paths: readonly string[], dateFormat: IHistoryDetailsDateFormat, fieldPathSeparator?: string): number | null;
171
+ /**
172
+ * Gets the rendered prefix for a history details fragment.
173
+ *
174
+ * @param fragment - The details fragment.
175
+ * @param index - The fragment index in its part.
176
+ * @param options - Prefix display options.
177
+ * @returns The rendered prefix.
178
+ */
179
+ declare function getHistoryMappingFragmentPrefix(fragment: Pick<IHistoryDetailsFragment, 'hyphen'>, index: number, options: IHistoryMappingFragmentPrefixOptions): string;
180
+ /**
181
+ * Converts transformed history details into plain text for table sorting.
182
+ *
183
+ * @param details - The transformed details model.
184
+ * @param options - Details text display options.
185
+ * @returns Details text.
186
+ */
187
+ declare function getHistoryMappingDetailsText(details: IHistoryDetails, options: IHistoryMappingDetailsTextOptions): string;
188
+ /**
189
+ * Converts transformed history details parts into plain text for table sorting.
190
+ *
191
+ * @param parts - The transformed details parts.
192
+ * @param options - Details text display options.
193
+ * @returns Details parts text.
194
+ */
195
+ declare function getHistoryMappingPartsText(parts: IHistoryDetailsPart[], options: IHistoryMappingDetailsTextOptions): string;
196
+
80
197
  /**
81
198
  * Transforms a raw history item into the configured structured details model.
82
199
  *
@@ -246,5 +363,5 @@ declare function formatHistoryDate(value: string | null, dateFormat: IHistoryDet
246
363
  */
247
364
  declare function formatHistoryMoney(value: unknown, currencyPrefix: string, emptyValues: readonly unknown[]): string | null;
248
365
 
249
- export { HISTORY_DETAILS_PATTERNS, HistoryTransformationService, createHistoryDetails, createHistoryDetailsPart, createHistoryFragment, createHistoryLabelValuePart, createHistoryLink, createHistoryTextPart, formatHistoryDate, formatHistoryMoney, getHistoryAliasPaths, getHistoryString, getHistoryValue, getHistoryValueByPath, isHistoryEmptyValue, isHistoryPresentString, isHistoryRecord, normaliseHistoryKey, normaliseHistoryTransactionType, toHistorySnakeCase, transformHistoryDetails, transformHistoryFallbackDetails, transformHistoryItems };
250
- export type { IHistoryDetails, IHistoryDetailsDateFormat, IHistoryDetailsFragment, IHistoryDetailsLink, IHistoryDetailsPart, IHistoryFragmentOptions, IHistoryTransformationConfig, THistoryDetailsRawItem, THistoryDetailsTransformer, THistoryDetailsTransformerConfig };
366
+ export { HISTORY_DETAILS_PATTERNS, HistoryTransformationService, createHistoryDetails, createHistoryDetailsPart, createHistoryFragment, createHistoryLabelValuePart, createHistoryLink, createHistoryTextPart, formatHistoryDate, formatHistoryMoney, getHistoryAliasPaths, getHistoryMappingDateTimestamp, getHistoryMappingDetailsText, getHistoryMappingFragmentPrefix, getHistoryMappingItemsEntry, getHistoryMappingNumber, getHistoryMappingPartsText, getHistoryMappingRows, getHistoryMappingString, getHistoryMappingValue, getHistoryString, getHistoryValue, getHistoryValueByPath, isHistoryEmptyValue, isHistoryMappingItem, isHistoryPresentString, isHistoryRecord, normaliseHistoryKey, normaliseHistoryTransactionType, parseHistoryDateTimestamp, toHistorySnakeCase, transformHistoryDetails, transformHistoryFallbackDetails, transformHistoryItems };
367
+ export type { IHistoryDetails, IHistoryDetailsDateFormat, IHistoryDetailsFragment, IHistoryDetailsLink, IHistoryDetailsPart, IHistoryFragmentOptions, IHistoryMappingDetailsTextOptions, IHistoryMappingFragmentPrefixOptions, IHistoryMappingItemsEntry, IHistoryMappingNumberOptions, IHistoryTransformationConfig, THistoryDetailsRawItem, THistoryDetailsTransformer, THistoryDetailsTransformerConfig };