ngx-dynamic-entity 2.4.1 → 3.0.0-rc.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-dynamic-entity",
3
- "version": "2.4.1",
3
+ "version": "3.0.0-rc.1",
4
4
  "description": "Angular standalone UI library for rendering dynamic entity forms.",
5
5
  "//typings": "Local workspace resolution only: ng-packagr 21 writes types/ngx-dynamic-entity.d.ts into dist/package.json. Do NOT add a 'main' field here — ng-packagr does not generate one, so it would be copied verbatim and resolve wrongly in the published package.",
6
6
  "typings": "types/ngx-dynamic-entity.d.ts",
@@ -8,7 +8,7 @@
8
8
  "@angular/common": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
9
9
  "@angular/core": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
10
10
  "@angular/forms": "^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0 || ^21.0.0 || ^22.0.0",
11
- "@dynamic-entity/core": "^2.4.1",
11
+ "@dynamic-entity/core": "^3.0.0-rc.1",
12
12
  "rxjs": "^7.0.0"
13
13
  },
14
14
  "keywords": [
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Type, EnvironmentProviders, WritableSignal, OnInit, OnChanges, OnDestroy, EventEmitter, SimpleChanges, Provider } from '@angular/core';
3
- import { ReferenceOption, LocalizedText, EntityFormConfig, FormRule, ImportLookups, MappingPlan, CsvDelimiter, ImportResult, TemplateSpec, SheetGrid, CommonModuleEntry, EntityReferenceLoader, LookupListSource, RecordMigration, FileUploadHandler, FieldValidators, NestedFieldConfig, ReferenceLoaderContext, DropdownOption, LookupListValue, NestedTabConfig, RuleEvaluationResult, FieldScopeEntry, EvaluateFormRulesOptions, ImportColumn, MappingEntry, UnsupportedColumn, ImportRowError, SliderBounds } from '@dynamic-entity/core';
3
+ import { ReferenceOption, LocalizedText, EntityFormConfig, FormRule, ImportLookups, DateOrder, AnyMappingPlan, CsvDelimiter, ImportResult, TemplateSpec, SheetGrid, CommonModuleEntry, EntityReferenceLoader, LookupListSource, RecordMigration, FileUploadHandler, FieldValidators, NestedFieldConfig, ReferenceLoaderContext, DropdownOption, LookupListValue, NestedTabConfig, RuleEvaluationResult, FieldScopeEntry, EvaluateFormRulesOptions, MappingPlan, ImportColumn, MappingEntry, UnsupportedColumn, ImportRowError, SliderBounds } from '@dynamic-entity/core';
4
4
  export { AutoPatchConfig, CommonModuleEntry, ComponentClass, DropdownOption, EntityFormConfig, EntityPermissions, EntityReferenceConfig, EntityReferenceLoader, FieldTableConfig, FieldValidators, FileRef, FormRule, LocalizedText, NestedFieldConfig, NestedTabConfig, PatchOnTrueMapping, RbacContext, ReferenceLoaderContext, ReferenceOption, RichFieldType, RuleAction, RuleCondition, RuleEvaluationResult, VersionedRecord, formatDisplayValue, normalizeConfig, normalizeOption, resolveLabel, resolveOptionLabel, resolveOptionValue, valuesMatch } from '@dynamic-entity/core';
5
5
  import { ValidatorFn, AsyncValidatorFn, AbstractControl, ValidationErrors, FormGroup, FormArray } from '@angular/forms';
6
6
  import * as rxjs from 'rxjs';
7
7
  import * as ngx_dynamic_entity from 'ngx-dynamic-entity';
8
+ import * as sheet_to_schema from 'sheet-to-schema';
8
9
 
9
10
  /**
10
11
  * Backing store for cached reference options.
@@ -129,6 +130,8 @@ declare const DEFAULT_UI_TEXT: {
129
130
  importDelimiterComma: string;
130
131
  importDelimiterSemicolon: string;
131
132
  importDelimiterTab: string;
133
+ importDateOrderMismatch: string;
134
+ importDateOrderUnconfirmed: string;
132
135
  importRowRejected: string;
133
136
  importRunImport: string;
134
137
  importImporting: string;
@@ -272,6 +275,15 @@ interface ImportContext {
272
275
  /** Values for any `listName` field, already resolved — core cannot reach `LOOKUP_REGISTRY`. */
273
276
  lookups?: ImportLookups;
274
277
  lang?: string;
278
+ /**
279
+ * The order of a date written in digits, such as `05/09/2026`: `DMY` for day first, `MDY`
280
+ * for month first. Without it, a date that reads two ways fails its row; it is never guessed.
281
+ *
282
+ * The local transport reads cells with it. A server transport reads with whatever its own
283
+ * router was given, so state the same order on both, or the review step shows one reading
284
+ * and the server stores another.
285
+ */
286
+ dateOrder?: DateOrder;
275
287
  }
276
288
  /** What a first look at an uploaded file yields. */
277
289
  interface ImportPreview {
@@ -279,7 +291,7 @@ interface ImportPreview {
279
291
  /** The first few rows, for the mapping screen to show under each column. */
280
292
  sample: string[][];
281
293
  /** Where the suggester got to. Every inferred match is tagged `guess`. */
282
- suggestion: MappingPlan;
294
+ suggestion: AnyMappingPlan;
283
295
  /** Total data rows in the file, which may be far more than `sample` holds. */
284
296
  rowCount: number;
285
297
  /**
@@ -289,7 +301,26 @@ interface ImportPreview {
289
301
  arrayBound?: number;
290
302
  /** The field separator a delimited-text file used. Absent for a workbook. */
291
303
  delimiter?: CsvDelimiter;
304
+ /**
305
+ * The order this transport will read a date written in digits in when it commits. Absent
306
+ * when it will read with none, or cannot say.
307
+ *
308
+ * The wizard reads the review sample with it, so the review shows what the commit will
309
+ * store. When the host stated a different order the wizard refuses to commit, and when the
310
+ * host stated one and the transport reports none it warns.
311
+ */
312
+ dateOrder?: DateOrder;
292
313
  }
314
+ /**
315
+ * How the order the host states compares with the one the transport reports it reads with.
316
+ *
317
+ * - `mismatch`: both state one and they differ. Committing would store dates read one way
318
+ * after a review that showed them the other, so nothing may be committed.
319
+ * - `unconfirmed`: the host states one and the transport reports none. The transport reads the
320
+ * file, so the host's order is not applied: worth a warning, not a refusal.
321
+ * - `agreed`: anything else. Only the transport stating one is fine: it is the one that reads.
322
+ */
323
+ declare function compareDateOrders(stated: DateOrder | undefined, reported: DateOrder | undefined): 'agreed' | 'mismatch' | 'unconfirmed';
293
324
  /**
294
325
  * Where the work happens.
295
326
  *
@@ -305,7 +336,7 @@ interface ImportTransport {
305
336
  /** Headers, a sample, and a suggested mapping for a freshly chosen file. */
306
337
  preview(file: File, context: ImportContext): Promise<ImportPreview>;
307
338
  /** Apply a plan to the whole file. */
308
- commit(file: File, plan: MappingPlan, context: ImportContext): Promise<ImportResult>;
339
+ commit(file: File, plan: AnyMappingPlan, context: ImportContext): Promise<ImportResult>;
309
340
  /**
310
341
  * Render a template for download.
311
342
  *
@@ -2057,8 +2088,14 @@ declare class LocalImportTransport implements ImportTransport {
2057
2088
  private readonly parsed;
2058
2089
  /** The registered parser, or the built-in CSV one. */
2059
2090
  private read;
2060
- preview(file: File, context: ImportContext): Promise<ImportPreview>;
2061
- commit(file: File, plan: MappingPlan, context: ImportContext): Promise<ImportResult>;
2091
+ /**
2092
+ * The suggestion made here is always plan v2, and the return type says so. The contract's is
2093
+ * a plan in either shape, because a 2.x server sends the older one.
2094
+ */
2095
+ preview(file: File, context: ImportContext): Promise<ImportPreview & {
2096
+ suggestion: MappingPlan;
2097
+ }>;
2098
+ commit(file: File, plan: AnyMappingPlan, context: ImportContext): Promise<ImportResult>;
2062
2099
  template(spec: TemplateSpec, format: TemplateFormat): Promise<Blob>;
2063
2100
  static ɵfac: i0.ɵɵFactoryDeclaration<LocalImportTransport, never>;
2064
2101
  static ɵprov: i0.ɵɵInjectableDeclaration<LocalImportTransport>;
@@ -2087,21 +2124,33 @@ interface HttpImportTransportOptions {
2087
2124
  /**
2088
2125
  * Where a warning goes. Defaults to `console.warn`.
2089
2126
  *
2090
- * There is exactly one warning, and it is the engine-version mismatch below — which is a
2091
- * developer's problem, not a user's, so it does not belong in the wizard's error banner.
2127
+ * What is warned about is the two deploys having moved apart: the engine version, the
2128
+ * adapter, the date order the server did not confirm. Those are a developer's problem, not
2129
+ * a user's, so they do not belong in the wizard's error banner.
2092
2130
  */
2093
2131
  warn?: (message: string) => void;
2094
2132
  }
2095
- /**
2096
- * Not `@Injectable`, and registered by value rather than by class.
2097
- *
2098
- * Its constructor takes options rather than dependencies, so there is nothing for an injector
2099
- * to resolve — and a consumer who wants two of them, pointed at two backends, gets that for
2100
- * free.
2101
- */
2102
2133
  declare class HttpImportTransport implements ImportTransport {
2103
2134
  private readonly options;
2135
+ /**
2136
+ * The date order each previewed file's server reported, for `commit` to compare against.
2137
+ * Keyed on the `File`, so it lives exactly as long as the file does.
2138
+ */
2139
+ private readonly reported;
2140
+ /**
2141
+ * The plan versions each previewed file's server said it reads. A file with no entry was
2142
+ * never previewed here, and one whose server said nothing is from before plan v2: either
2143
+ * way `commit` sends nothing that only a v2 reader would understand.
2144
+ */
2145
+ private readonly planVersions;
2104
2146
  constructor(options: HttpImportTransportOptions);
2147
+ private warn;
2148
+ /**
2149
+ * The server reads the file, so its date order is the one that is applied. When the host
2150
+ * stated one and the server confirms none, the host's order does nothing there: say so, and
2151
+ * say what the server will do instead, which depends on how old it is.
2152
+ */
2153
+ private checkDateOrder;
2105
2154
  private get base();
2106
2155
  private get send();
2107
2156
  private entityOf;
@@ -2114,8 +2163,15 @@ declare class HttpImportTransport implements ImportTransport {
2114
2163
  * patch release is not a reason to stop somebody importing.
2115
2164
  */
2116
2165
  private checkEngine;
2166
+ /**
2167
+ * Warn when the server runs another adapter, or this one at another major version.
2168
+ *
2169
+ * Since 3.0 a server says which adapter turned its rows into records. A server from before
2170
+ * that says nothing, and `checkEngine` has already compared the one version it does report.
2171
+ */
2172
+ private checkAdapter;
2117
2173
  preview(file: File, context: ImportContext): Promise<ImportPreview>;
2118
- commit(file: File, plan: MappingPlan, context: ImportContext): Promise<ImportResult>;
2174
+ commit(file: File, plan: AnyMappingPlan, context: ImportContext): Promise<ImportResult>;
2119
2175
  template(spec: TemplateSpec, format: TemplateFormat, context: ImportContext, fields?: readonly string[]): Promise<Blob>;
2120
2176
  }
2121
2177
  /**
@@ -2162,6 +2218,16 @@ declare class EntityImportComponent {
2162
2218
  */
2163
2219
  lookups?: ImportLookups;
2164
2220
  language: string;
2221
+ /**
2222
+ * The order of a date written in digits in the sheets this wizard imports: `DMY` for day
2223
+ * first, `MDY` for month first. Without it, a date that reads two ways (`05/09/2026`) is
2224
+ * shown, and imported, as an error rather than guessed.
2225
+ *
2226
+ * The transport reads the file, so the order it reports at preview is the one applied, and
2227
+ * the one the review step shows. If that differs from this, the wizard refuses to commit;
2228
+ * if the transport reports none, the wizard warns that this order is not being applied.
2229
+ */
2230
+ dateOrder?: DateOrder;
2165
2231
  /** Format asked of the transport when a template is downloaded. */
2166
2232
  templateFormat: TemplateFormat;
2167
2233
  /** The finished import, once it has run. */
@@ -2177,9 +2243,11 @@ declare class EntityImportComponent {
2177
2243
  protected readonly sample: i0.WritableSignal<string[][]>;
2178
2244
  protected readonly rowCount: i0.WritableSignal<number>;
2179
2245
  /** The separator a delimited file turned out to use, so the user can see how it was read. */
2180
- protected readonly delimiter: i0.WritableSignal<CsvDelimiter>;
2246
+ protected readonly delimiter: i0.WritableSignal<sheet_to_schema.CsvDelimiter>;
2247
+ /** The date order the transport said it will read with at commit, from its preview. */
2248
+ protected readonly reportedDateOrder: i0.WritableSignal<DateOrder>;
2181
2249
  protected readonly fileName: i0.WritableSignal<string>;
2182
- protected readonly plan: i0.WritableSignal<MappingPlan>;
2250
+ protected readonly plan: i0.WritableSignal<AnyMappingPlan>;
2183
2251
  protected readonly result: i0.WritableSignal<ImportResult>;
2184
2252
  private readonly registered;
2185
2253
  private readonly local;
@@ -2229,13 +2297,20 @@ declare class EntityImportComponent {
2229
2297
  * exact and `failed` is absent.
2230
2298
  */
2231
2299
  protected failedRowCount(result: ImportResult): number;
2300
+ /** How the order the host states compares with the one the transport reads with. */
2301
+ protected dateOrderCheck(): 'agreed' | 'mismatch' | 'unconfirmed';
2302
+ /** The two orders, for a message that names them. Only asked for when they do not agree. */
2303
+ protected dateOrders(): {
2304
+ stated: string;
2305
+ reported: string;
2306
+ };
2232
2307
  /** The decimal mark the commit will read numbers with, so the preview reads them the same. */
2233
2308
  protected decimal(): '.' | ',';
2234
2309
  /** How the file's columns were split, in words — or nothing for a workbook. */
2235
2310
  protected delimiterText(): string | null;
2236
2311
  protected restart(): void;
2237
2312
  static ɵfac: i0.ɵɵFactoryDeclaration<EntityImportComponent, never>;
2238
- static ɵcmp: i0.ɵɵComponentDeclaration<EntityImportComponent, "ngx-entity-import", never, { "config": { "alias": "config"; "required": true; }; "rules": { "alias": "rules"; "required": false; }; "lookups": { "alias": "lookups"; "required": false; }; "language": { "alias": "language"; "required": false; }; "templateFormat": { "alias": "templateFormat"; "required": false; }; }, { "importComplete": "importComplete"; "templateReady": "templateReady"; }, never, never, true, never>;
2313
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntityImportComponent, "ngx-entity-import", never, { "config": { "alias": "config"; "required": true; }; "rules": { "alias": "rules"; "required": false; }; "lookups": { "alias": "lookups"; "required": false; }; "language": { "alias": "language"; "required": false; }; "dateOrder": { "alias": "dateOrder"; "required": false; }; "templateFormat": { "alias": "templateFormat"; "required": false; }; }, { "importComplete": "importComplete"; "templateReady": "templateReady"; }, never, never, true, never>;
2239
2314
  }
2240
2315
 
2241
2316
  /** One target field, and which of the sheet's columns feeds it. */
@@ -2268,11 +2343,11 @@ interface ArraySlots {
2268
2343
  declare class ImportMapperComponent implements OnChanges {
2269
2344
  config: EntityFormConfig;
2270
2345
  headers: readonly string[];
2271
- /** The starting point, normally `suggestMapping`'s output. */
2272
- plan: MappingPlan | null;
2346
+ /** The starting point, normally `suggestMapping`'s output. A stored 2.x plan is taken too. */
2347
+ plan: AnyMappingPlan | null;
2273
2348
  language: string;
2274
- /** Emitted whenever the user changes a selection. */
2275
- readonly planChange: EventEmitter<MappingPlan>;
2349
+ /** Emitted whenever the user changes a selection. Always plan v2, whichever shape came in. */
2350
+ readonly planChange: EventEmitter<sheet_to_schema.MappingPlan>;
2276
2351
  protected readonly ui: UiTextService;
2277
2352
  protected readonly rows: i0.WritableSignal<MappingRow[]>;
2278
2353
  /**
@@ -2284,7 +2359,7 @@ declare class ImportMapperComponent implements OnChanges {
2284
2359
  */
2285
2360
  protected readonly unsupported: i0.WritableSignal<number>;
2286
2361
  /** A plan entry whose field this config no longer has. Kept, and emitted, until removed. */
2287
- protected readonly stale: i0.WritableSignal<MappingEntry[]>;
2362
+ protected readonly stale: i0.WritableSignal<sheet_to_schema.MappingEntry[]>;
2288
2363
  /** Repeating fields the user can add a row to. */
2289
2364
  protected readonly arrays: i0.WritableSignal<ArraySlots[]>;
2290
2365
  protected readonly constant = -1;
@@ -2315,6 +2390,10 @@ declare class ImportMapperComponent implements OnChanges {
2315
2390
  * Every entry of the incoming plan survives in its own position — a fixed value, a ref the
2316
2391
  * config no longer has — unless the user changed or removed it, and an untouched entry is
2317
2392
  * emitted exactly as it arrived. New selections follow, in field order.
2393
+ *
2394
+ * What is emitted is plan v2, whichever shape came in: `target` and `schemaVersion`, where a
2395
+ * 2.x plan said `entity` and `configVersion`. Anything else the incoming plan carried, such
2396
+ * as its lists and its grouping, is kept.
2318
2397
  */
2319
2398
  private toPlan;
2320
2399
  static ɵfac: i0.ɵɵFactoryDeclaration<ImportMapperComponent, never>;
@@ -2357,7 +2436,7 @@ interface PreviewRow {
2357
2436
  */
2358
2437
  declare class ImportPreviewComponent implements OnChanges {
2359
2438
  config: EntityFormConfig;
2360
- plan: MappingPlan;
2439
+ plan: AnyMappingPlan;
2361
2440
  rows: readonly (readonly string[])[];
2362
2441
  lookups?: ImportLookups;
2363
2442
  /** The same rules the commit will apply; without them a rule-driven rejection is invisible. */
@@ -2365,13 +2444,15 @@ declare class ImportPreviewComponent implements OnChanges {
2365
2444
  language: string;
2366
2445
  /** The decimal mark number cells use — the one the commit will read them with. */
2367
2446
  decimal: '.' | ',';
2447
+ /** The order of a date written in digits — the one the commit will read them in. */
2448
+ dateOrder?: DateOrder;
2368
2449
  protected readonly ui: UiTextService;
2369
2450
  /** The columns this plan fills, in the plan's own order. */
2370
2451
  protected readonly columns: i0.WritableSignal<ImportColumn[]>;
2371
2452
  protected readonly grid: i0.WritableSignal<PreviewRow[]>;
2372
2453
  ngOnChanges(): void;
2373
2454
  static ɵfac: i0.ɵɵFactoryDeclaration<ImportPreviewComponent, never>;
2374
- static ɵcmp: i0.ɵɵComponentDeclaration<ImportPreviewComponent, "ngx-import-preview", never, { "config": { "alias": "config"; "required": true; }; "plan": { "alias": "plan"; "required": true; }; "rows": { "alias": "rows"; "required": false; }; "lookups": { "alias": "lookups"; "required": false; }; "rules": { "alias": "rules"; "required": false; }; "language": { "alias": "language"; "required": false; }; "decimal": { "alias": "decimal"; "required": false; }; }, {}, never, never, true, never>;
2455
+ static ɵcmp: i0.ɵɵComponentDeclaration<ImportPreviewComponent, "ngx-import-preview", never, { "config": { "alias": "config"; "required": true; }; "plan": { "alias": "plan"; "required": true; }; "rows": { "alias": "rows"; "required": false; }; "lookups": { "alias": "lookups"; "required": false; }; "rules": { "alias": "rules"; "required": false; }; "language": { "alias": "language"; "required": false; }; "decimal": { "alias": "decimal"; "required": false; }; "dateOrder": { "alias": "dateOrder"; "required": false; }; }, {}, never, never, true, never>;
2375
2456
  }
2376
2457
 
2377
2458
  /** One field offered for the template, with the guidance that belongs to it. */
@@ -3607,5 +3688,5 @@ declare class TagsFieldComponent implements OnDestroy {
3607
3688
  static ɵcmp: i0.ɵɵComponentDeclaration<TagsFieldComponent, "ngx-tags-field", never, { "field": { "alias": "field"; "required": false; }; "language": { "alias": "language"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "masked": { "alias": "masked"; "required": false; }; "control": { "alias": "control"; "required": false; }; }, {}, never, never, true, never>;
3608
3689
  }
3609
3690
 
3610
- export { ASYNC_VALIDATOR_REGISTRY, ArrayFieldComponent, BooleanFieldComponent, COMMON_MODULES_REGISTRY, CONFIG_SOURCE, CascadeDataService, CheckboxFieldComponent, ColorFieldComponent, ConfigSourceService, CurrencyFieldComponent, DEFAULT_UI_TEXT, DEFAULT_VALIDATION_MESSAGES, DateFieldComponent, DateTimeFieldComponent, DropdownFieldComponent, DynamicFieldComponent, DynamicFormComponent, DynamicRecordFormComponent, ENTITY_REF_CACHE_STORE, ENTITY_REF_REGISTRY, EmailFieldComponent, EntityImportComponent, EntityRefFieldComponent, EntityRefRegistryService, EntityRefSelectionService, EntityReferenceService, FIELD_TYPE_REGISTRY, FIELD_TYPE_SETS, FieldRegistryService, FileFieldComponent, GroupFieldComponent, HOOK_REGISTRY, HookRegistryService, HttpImportTransport, IMPORT_TRANSPORT, ImageFieldComponent, ImportErrorsComponent, ImportMapperComponent, ImportPreviewComponent, ImportTemplateComponent, InMemoryEntityRefCacheStore, LOOKUP_REGISTRY, LocalImportTransport, LookupRegistryService, MARKDOWN_RENDERER, MASKED_PLACEHOLDER, MASKED_ROLES, MarkdownFieldComponent, MonthYearFieldComponent, MultiSelectFieldComponent, NumberFieldComponent, PasswordFieldComponent, PhoneFieldComponent, RECORD_MIGRATIONS, RadioFieldComponent, RatingFieldComponent, RbacService, RulesEvaluationService, SHEET_PARSER, SYSTEM_DEFAULT_CAN_EDIT, SliderFieldComponent, TagsFieldComponent, TextFieldComponent, TextareaFieldComponent, TimeFieldComponent, UI_TEXT, UPLOAD_HANDLER, UiTextService, UrlFieldComponent, VALIDATION_MESSAGES, VALIDATOR_REGISTRY, ValidationMessagesService, ValidatorRegistryService, builtInFieldTypes, defaultSheetParser, fieldDescribedBy, fieldDomId, nextFieldInstanceId, phoneValidator, provideBuiltInFieldTypes, provideFieldTypes, provideHttpImportTransport, provideNgxDynamicEntity, refreshChoiceOptions, resolveUiText, urlValidator };
3691
+ export { ASYNC_VALIDATOR_REGISTRY, ArrayFieldComponent, BooleanFieldComponent, COMMON_MODULES_REGISTRY, CONFIG_SOURCE, CascadeDataService, CheckboxFieldComponent, ColorFieldComponent, ConfigSourceService, CurrencyFieldComponent, DEFAULT_UI_TEXT, DEFAULT_VALIDATION_MESSAGES, DateFieldComponent, DateTimeFieldComponent, DropdownFieldComponent, DynamicFieldComponent, DynamicFormComponent, DynamicRecordFormComponent, ENTITY_REF_CACHE_STORE, ENTITY_REF_REGISTRY, EmailFieldComponent, EntityImportComponent, EntityRefFieldComponent, EntityRefRegistryService, EntityRefSelectionService, EntityReferenceService, FIELD_TYPE_REGISTRY, FIELD_TYPE_SETS, FieldRegistryService, FileFieldComponent, GroupFieldComponent, HOOK_REGISTRY, HookRegistryService, HttpImportTransport, IMPORT_TRANSPORT, ImageFieldComponent, ImportErrorsComponent, ImportMapperComponent, ImportPreviewComponent, ImportTemplateComponent, InMemoryEntityRefCacheStore, LOOKUP_REGISTRY, LocalImportTransport, LookupRegistryService, MARKDOWN_RENDERER, MASKED_PLACEHOLDER, MASKED_ROLES, MarkdownFieldComponent, MonthYearFieldComponent, MultiSelectFieldComponent, NumberFieldComponent, PasswordFieldComponent, PhoneFieldComponent, RECORD_MIGRATIONS, RadioFieldComponent, RatingFieldComponent, RbacService, RulesEvaluationService, SHEET_PARSER, SYSTEM_DEFAULT_CAN_EDIT, SliderFieldComponent, TagsFieldComponent, TextFieldComponent, TextareaFieldComponent, TimeFieldComponent, UI_TEXT, UPLOAD_HANDLER, UiTextService, UrlFieldComponent, VALIDATION_MESSAGES, VALIDATOR_REGISTRY, ValidationMessagesService, ValidatorRegistryService, builtInFieldTypes, compareDateOrders, defaultSheetParser, fieldDescribedBy, fieldDomId, nextFieldInstanceId, phoneValidator, provideBuiltInFieldTypes, provideFieldTypes, provideHttpImportTransport, provideNgxDynamicEntity, refreshChoiceOptions, resolveUiText, urlValidator };
3611
3692
  export type { ChoiceOptionHost, ConfigSourceHandler, DynamicFieldComponentContract, EntityRefCacheStore, EntityRefSelection, HookFn, HttpImportTransportOptions, ImportContext, ImportPreview, ImportTransport, InvalidField, MessageOrderEntry, NgxDynamicEntityConfig, RuleSyncContext, SheetParser, TemplateFormat, UiTextKey, UiTextOverrides, UiTextOverridesFor, UiTextParams, UiTextResolver, UiTextResolverFor, UiTextValue, ValidationMessage };