ngx-dynamic-entity 1.1.0 → 1.3.0

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.
Files changed (58) hide show
  1. package/README.md +1 -1
  2. package/esm2022/lib/field-types/array-field.component.mjs +13 -5
  3. package/esm2022/lib/field-types/boolean-field.component.mjs +4 -3
  4. package/esm2022/lib/field-types/checkbox-field.component.mjs +4 -3
  5. package/esm2022/lib/field-types/currency-field.component.mjs +4 -3
  6. package/esm2022/lib/field-types/date-field.component.mjs +4 -3
  7. package/esm2022/lib/field-types/date-time-field.component.mjs +138 -0
  8. package/esm2022/lib/field-types/dropdown-field.component.mjs +9 -7
  9. package/esm2022/lib/field-types/email-field.component.mjs +4 -3
  10. package/esm2022/lib/field-types/entity-ref-field.component.mjs +21 -7
  11. package/esm2022/lib/field-types/field-component.contract.mjs +2 -0
  12. package/esm2022/lib/field-types/file-field.component.mjs +4 -3
  13. package/esm2022/lib/field-types/group-field.component.mjs +5 -5
  14. package/esm2022/lib/field-types/image-field.component.mjs +4 -3
  15. package/esm2022/lib/field-types/month-year-field.component.mjs +4 -3
  16. package/esm2022/lib/field-types/multi-select-field.component.mjs +4 -3
  17. package/esm2022/lib/field-types/number-field.component.mjs +7 -11
  18. package/esm2022/lib/field-types/password-field.component.mjs +4 -3
  19. package/esm2022/lib/field-types/radio-field.component.mjs +4 -3
  20. package/esm2022/lib/field-types/text-field.component.mjs +25 -18
  21. package/esm2022/lib/field-types/textarea-field.component.mjs +4 -3
  22. package/esm2022/lib/field-types/time-field.component.mjs +96 -0
  23. package/esm2022/lib/form/dynamic-field/dynamic-field.component.mjs +55 -7
  24. package/esm2022/lib/form/dynamic-form.component.mjs +140 -15
  25. package/esm2022/lib/form/dynamic-record-form.component.mjs +54 -17
  26. package/esm2022/lib/providers/provide-field-types.mjs +5 -2
  27. package/esm2022/lib/providers/provide-ngx-dynamic-entity.mjs +7 -2
  28. package/esm2022/lib/services/cascade-data.service.mjs +2 -2
  29. package/esm2022/lib/services/entity-ref-registry.service.mjs +2 -2
  30. package/esm2022/lib/services/lookup-registry.service.mjs +2 -2
  31. package/esm2022/lib/services/validation-messages.service.mjs +56 -0
  32. package/esm2022/lib/services/validator-registry.service.mjs +24 -2
  33. package/esm2022/lib/tokens/injection-tokens.mjs +19 -6
  34. package/esm2022/public-api.mjs +9 -2
  35. package/fesm2022/ngx-dynamic-entity.mjs +663 -98
  36. package/fesm2022/ngx-dynamic-entity.mjs.map +1 -1
  37. package/lib/field-types/array-field.component.d.ts +7 -1
  38. package/lib/field-types/date-time-field.component.d.ts +30 -0
  39. package/lib/field-types/dropdown-field.component.d.ts +1 -0
  40. package/lib/field-types/entity-ref-field.component.d.ts +11 -1
  41. package/lib/field-types/field-component.contract.d.ts +49 -0
  42. package/lib/field-types/group-field.component.d.ts +1 -1
  43. package/lib/field-types/number-field.component.d.ts +1 -0
  44. package/lib/field-types/text-field.component.d.ts +10 -2
  45. package/lib/field-types/time-field.component.d.ts +27 -0
  46. package/lib/form/dynamic-field/dynamic-field.component.d.ts +39 -4
  47. package/lib/form/dynamic-form.component.d.ts +64 -2
  48. package/lib/form/dynamic-record-form.component.d.ts +19 -0
  49. package/lib/providers/provide-ngx-dynamic-entity.d.ts +17 -1
  50. package/lib/services/cascade-data.service.d.ts +1 -1
  51. package/lib/services/entity-ref-registry.service.d.ts +1 -1
  52. package/lib/services/lookup-registry.service.d.ts +1 -1
  53. package/lib/services/validation-messages.service.d.ts +43 -0
  54. package/lib/services/validator-registry.service.d.ts +13 -1
  55. package/lib/tokens/injection-tokens.d.ts +18 -5
  56. package/package.json +2 -2
  57. package/public-api.d.ts +4 -0
  58. package/styles.css +579 -0
@@ -16,15 +16,20 @@ export * from './lib/services/lookup-registry.service';
16
16
  export * from './lib/services/rbac.service';
17
17
  export * from './lib/services/rules-evaluation.service';
18
18
  export * from './lib/services/config-source.service';
19
+ export * from './lib/services/validation-messages.service';
19
20
  // Components — the library ships form UI only; rendering a data table is the consumer's choice.
20
21
  export * from './lib/form/dynamic-form.component';
21
22
  export * from './lib/form/dynamic-record-form.component';
22
23
  export * from './lib/form/dynamic-field/dynamic-field.component';
24
+ // The contract a field component must satisfy to be registered with provideFieldTypes.
25
+ // Previously this existed only as a code comment and an ADR that is gitignored, so a
26
+ // consumer had no interface to implement against.
27
+ export * from './lib/field-types/field-component.contract';
23
28
  // Field type components — every one, individually importable.
24
29
  //
25
30
  // The tree-shaking seam is `provideFieldTypes({ image: ImageFieldComponent })`: register
26
31
  // only what you use and the rest never enters the bundle. That only works for components a
27
- // consumer can name, and ten of these were unreachable — so wanting eleven of the eighteen
32
+ // consumer can name, and ten of these were unreachable — so wanting eleven of the twenty
28
33
  // meant calling provideBuiltInFieldTypes() and bundling all of them, which is exactly what
29
34
  // the seam exists to avoid.
30
35
  export * from './lib/field-types/text-field.component';
@@ -36,6 +41,8 @@ export * from './lib/field-types/password-field.component';
36
41
  export * from './lib/field-types/checkbox-field.component';
37
42
  export * from './lib/field-types/boolean-field.component';
38
43
  export * from './lib/field-types/date-field.component';
44
+ export * from './lib/field-types/date-time-field.component';
45
+ export * from './lib/field-types/time-field.component';
39
46
  export * from './lib/field-types/month-year-field.component';
40
47
  export * from './lib/field-types/dropdown-field.component';
41
48
  export * from './lib/field-types/radio-field.component';
@@ -48,4 +55,4 @@ export * from './lib/field-types/file-field.component';
48
55
  // Value helpers — a dropdown value is now a language-keyed object, so a consumer rendering
49
56
  // record values needs these. Re-exported so they don't have to depend on core directly.
50
57
  export { resolveLabel, resolveOptionLabel, resolveOptionValue, formatDisplayValue, valuesMatch, normalizeOption, normalizeConfig, } from '@dynamic-entity/core';
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVM7QUFDVCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLFlBQVk7QUFDWixjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsV0FBVztBQUNYLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGdHQUFnRztBQUNoRyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrREFBa0QsQ0FBQztBQUVqRSw4REFBOEQ7QUFDOUQsRUFBRTtBQUNGLHlGQUF5RjtBQUN6RiwyRkFBMkY7QUFDM0YsMkZBQTJGO0FBQzNGLDJGQUEyRjtBQUMzRiw0QkFBNEI7QUFDNUIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsMkZBQTJGO0FBQzNGLHdGQUF3RjtBQUN4RixPQUFPLEVBQ0wsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVG9rZW5zXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMvaW5qZWN0aW9uLXRva2Vucyc7XG5cbi8vIFByb3ZpZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvdmlkZXJzL3Byb3ZpZGUtbmd4LWR5bmFtaWMtZW50aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3ZpZGVycy9wcm92aWRlLWZpZWxkLXR5cGVzJztcblxuLy8gU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ZpZWxkLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaG9vay1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3ZhbGlkYXRvci1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2VudGl0eS1yZWYtcmVnaXN0cnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbnRpdHktcmVmLXNlbGVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Nhc2NhZGUtZGF0YS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2VudGl0eS1yZWZlcmVuY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbnRpdHktcmVmLWNhY2hlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xvb2t1cC1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3JiYWMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ydWxlcy1ldmFsdWF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29uZmlnLXNvdXJjZS5zZXJ2aWNlJztcblxuLy8gQ29tcG9uZW50cyDigJQgdGhlIGxpYnJhcnkgc2hpcHMgZm9ybSBVSSBvbmx5OyByZW5kZXJpbmcgYSBkYXRhIHRhYmxlIGlzIHRoZSBjb25zdW1lcidzIGNob2ljZS5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtL2R5bmFtaWMtcmVjb3JkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudCc7XG5cbi8vIEZpZWxkIHR5cGUgY29tcG9uZW50cyDigJQgZXZlcnkgb25lLCBpbmRpdmlkdWFsbHkgaW1wb3J0YWJsZS5cbi8vXG4vLyBUaGUgdHJlZS1zaGFraW5nIHNlYW0gaXMgYHByb3ZpZGVGaWVsZFR5cGVzKHsgaW1hZ2U6IEltYWdlRmllbGRDb21wb25lbnQgfSlgOiByZWdpc3RlclxuLy8gb25seSB3aGF0IHlvdSB1c2UgYW5kIHRoZSByZXN0IG5ldmVyIGVudGVycyB0aGUgYnVuZGxlLiBUaGF0IG9ubHkgd29ya3MgZm9yIGNvbXBvbmVudHMgYVxuLy8gY29uc3VtZXIgY2FuIG5hbWUsIGFuZCB0ZW4gb2YgdGhlc2Ugd2VyZSB1bnJlYWNoYWJsZSDigJQgc28gd2FudGluZyBlbGV2ZW4gb2YgdGhlIGVpZ2h0ZWVuXG4vLyBtZWFudCBjYWxsaW5nIHByb3ZpZGVCdWlsdEluRmllbGRUeXBlcygpIGFuZCBidW5kbGluZyBhbGwgb2YgdGhlbSwgd2hpY2ggaXMgZXhhY3RseSB3aGF0XG4vLyB0aGUgc2VhbSBleGlzdHMgdG8gYXZvaWQuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy90ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy90ZXh0YXJlYS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvbnVtYmVyLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9jdXJyZW5jeS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvZW1haWwtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL3Bhc3N3b3JkLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9jaGVja2JveC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvYm9vbGVhbi1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvZGF0ZS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvbW9udGgteWVhci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvZHJvcGRvd24tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL3JhZGlvLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9tdWx0aS1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2VudGl0eS1yZWYtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2dyb3VwLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9hcnJheS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvaW1hZ2UtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2ZpbGUtZmllbGQuY29tcG9uZW50JztcblxuLy8gVmFsdWUgaGVscGVycyDigJQgYSBkcm9wZG93biB2YWx1ZSBpcyBub3cgYSBsYW5ndWFnZS1rZXllZCBvYmplY3QsIHNvIGEgY29uc3VtZXIgcmVuZGVyaW5nXG4vLyByZWNvcmQgdmFsdWVzIG5lZWRzIHRoZXNlLiBSZS1leHBvcnRlZCBzbyB0aGV5IGRvbid0IGhhdmUgdG8gZGVwZW5kIG9uIGNvcmUgZGlyZWN0bHkuXG5leHBvcnQge1xuICByZXNvbHZlTGFiZWwsXG4gIHJlc29sdmVPcHRpb25MYWJlbCxcbiAgcmVzb2x2ZU9wdGlvblZhbHVlLFxuICBmb3JtYXREaXNwbGF5VmFsdWUsXG4gIHZhbHVlc01hdGNoLFxuICBub3JtYWxpemVPcHRpb24sXG4gIG5vcm1hbGl6ZUNvbmZpZyxcbn0gZnJvbSAnQGR5bmFtaWMtZW50aXR5L2NvcmUnO1xuXG4vLyBSZS1leHBvcnQgY29yZSB0eXBlcyBzbyBjb25zdW1lcnMgbmVlZCBvbmx5IG9uZSBpbXBvcnRcbmV4cG9ydCB0eXBlIHtcbiAgRW50aXR5Rm9ybUNvbmZpZyxcbiAgTmVzdGVkVGFiQ29uZmlnLFxuICBOZXN0ZWRGaWVsZENvbmZpZyxcbiAgRmllbGRUYWJsZUNvbmZpZyxcbiAgUmljaEZpZWxkVHlwZSxcbiAgTG9jYWxpemVkVGV4dCxcbiAgRHJvcGRvd25PcHRpb24sXG4gIFZlcnNpb25lZFJlY29yZCxcbiAgRW50aXR5UGVybWlzc2lvbnMsXG4gIFJiYWNDb250ZXh0LFxuICBGaWVsZFZhbGlkYXRvcnMsXG4gIEVudGl0eVJlZmVyZW5jZUNvbmZpZyxcbiAgRW50aXR5UmVmZXJlbmNlTG9hZGVyLFxuICBSZWZlcmVuY2VPcHRpb24sXG4gIFJlZmVyZW5jZUxvYWRlckNvbnRleHQsXG4gIEF1dG9QYXRjaENvbmZpZyxcbiAgUGF0Y2hPblRydWVNYXBwaW5nLFxuICBGaWxlUmVmLFxuICBGb3JtUnVsZSxcbiAgUnVsZUNvbmRpdGlvbixcbiAgUnVsZUFjdGlvbixcbiAgUnVsZUV2YWx1YXRpb25SZXN1bHQsXG4gIENvbW1vbk1vZHVsZUVudHJ5LFxufSBmcm9tICdAZHluYW1pYy1lbnRpdHkvY29yZSc7XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVM7QUFDVCxjQUFjLCtCQUErQixDQUFDO0FBRTlDLFlBQVk7QUFDWixjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsV0FBVztBQUNYLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsZ0dBQWdHO0FBQ2hHLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLHVGQUF1RjtBQUN2RixxRkFBcUY7QUFDckYsa0RBQWtEO0FBQ2xELGNBQWMsNENBQTRDLENBQUM7QUFFM0QsOERBQThEO0FBQzlELEVBQUU7QUFDRix5RkFBeUY7QUFDekYsMkZBQTJGO0FBQzNGLHlGQUF5RjtBQUN6RiwyRkFBMkY7QUFDM0YsNEJBQTRCO0FBQzVCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCwyRkFBMkY7QUFDM0Ysd0ZBQXdGO0FBQ3hGLE9BQU8sRUFDTCxZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUb2tlbnNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucy9pbmplY3Rpb24tdG9rZW5zJztcblxuLy8gUHJvdmlkZXJzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm92aWRlcnMvcHJvdmlkZS1uZ3gtZHluYW1pYy1lbnRpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvdmlkZXJzL3Byb3ZpZGUtZmllbGQtdHlwZXMnO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZmllbGQtcmVnaXN0cnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ob29rLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdmFsaWRhdG9yLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZW50aXR5LXJlZi1yZWdpc3RyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2VudGl0eS1yZWYtc2VsZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY2FzY2FkZS1kYXRhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZW50aXR5LXJlZmVyZW5jZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2VudGl0eS1yZWYtY2FjaGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9va3VwLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcmJhYy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3J1bGVzLWV2YWx1YXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb25maWctc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdmFsaWRhdGlvbi1tZXNzYWdlcy5zZXJ2aWNlJztcblxuLy8gQ29tcG9uZW50cyDigJQgdGhlIGxpYnJhcnkgc2hpcHMgZm9ybSBVSSBvbmx5OyByZW5kZXJpbmcgYSBkYXRhIHRhYmxlIGlzIHRoZSBjb25zdW1lcidzIGNob2ljZS5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtL2R5bmFtaWMtcmVjb3JkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0vZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudCc7XG5cbi8vIFRoZSBjb250cmFjdCBhIGZpZWxkIGNvbXBvbmVudCBtdXN0IHNhdGlzZnkgdG8gYmUgcmVnaXN0ZXJlZCB3aXRoIHByb3ZpZGVGaWVsZFR5cGVzLlxuLy8gUHJldmlvdXNseSB0aGlzIGV4aXN0ZWQgb25seSBhcyBhIGNvZGUgY29tbWVudCBhbmQgYW4gQURSIHRoYXQgaXMgZ2l0aWdub3JlZCwgc28gYVxuLy8gY29uc3VtZXIgaGFkIG5vIGludGVyZmFjZSB0byBpbXBsZW1lbnQgYWdhaW5zdC5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2ZpZWxkLWNvbXBvbmVudC5jb250cmFjdCc7XG5cbi8vIEZpZWxkIHR5cGUgY29tcG9uZW50cyDigJQgZXZlcnkgb25lLCBpbmRpdmlkdWFsbHkgaW1wb3J0YWJsZS5cbi8vXG4vLyBUaGUgdHJlZS1zaGFraW5nIHNlYW0gaXMgYHByb3ZpZGVGaWVsZFR5cGVzKHsgaW1hZ2U6IEltYWdlRmllbGRDb21wb25lbnQgfSlgOiByZWdpc3RlclxuLy8gb25seSB3aGF0IHlvdSB1c2UgYW5kIHRoZSByZXN0IG5ldmVyIGVudGVycyB0aGUgYnVuZGxlLiBUaGF0IG9ubHkgd29ya3MgZm9yIGNvbXBvbmVudHMgYVxuLy8gY29uc3VtZXIgY2FuIG5hbWUsIGFuZCB0ZW4gb2YgdGhlc2Ugd2VyZSB1bnJlYWNoYWJsZSDigJQgc28gd2FudGluZyBlbGV2ZW4gb2YgdGhlIHR3ZW50eVxuLy8gbWVhbnQgY2FsbGluZyBwcm92aWRlQnVpbHRJbkZpZWxkVHlwZXMoKSBhbmQgYnVuZGxpbmcgYWxsIG9mIHRoZW0sIHdoaWNoIGlzIGV4YWN0bHkgd2hhdFxuLy8gdGhlIHNlYW0gZXhpc3RzIHRvIGF2b2lkLlxuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvdGV4dC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvdGV4dGFyZWEtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL251bWJlci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvY3VycmVuY3ktZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2VtYWlsLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9wYXNzd29yZC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvY2hlY2tib3gtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2Jvb2xlYW4tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2RhdGUtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2RhdGUtdGltZS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvdGltZS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvbW9udGgteWVhci1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvZHJvcGRvd24tZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL3JhZGlvLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9tdWx0aS1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2VudGl0eS1yZWYtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2dyb3VwLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZC10eXBlcy9hcnJheS1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGQtdHlwZXMvaW1hZ2UtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkLXR5cGVzL2ZpbGUtZmllbGQuY29tcG9uZW50JztcblxuLy8gVmFsdWUgaGVscGVycyDigJQgYSBkcm9wZG93biB2YWx1ZSBpcyBub3cgYSBsYW5ndWFnZS1rZXllZCBvYmplY3QsIHNvIGEgY29uc3VtZXIgcmVuZGVyaW5nXG4vLyByZWNvcmQgdmFsdWVzIG5lZWRzIHRoZXNlLiBSZS1leHBvcnRlZCBzbyB0aGV5IGRvbid0IGhhdmUgdG8gZGVwZW5kIG9uIGNvcmUgZGlyZWN0bHkuXG5leHBvcnQge1xuICByZXNvbHZlTGFiZWwsXG4gIHJlc29sdmVPcHRpb25MYWJlbCxcbiAgcmVzb2x2ZU9wdGlvblZhbHVlLFxuICBmb3JtYXREaXNwbGF5VmFsdWUsXG4gIHZhbHVlc01hdGNoLFxuICBub3JtYWxpemVPcHRpb24sXG4gIG5vcm1hbGl6ZUNvbmZpZyxcbn0gZnJvbSAnQGR5bmFtaWMtZW50aXR5L2NvcmUnO1xuXG4vLyBSZS1leHBvcnQgY29yZSB0eXBlcyBzbyBjb25zdW1lcnMgbmVlZCBvbmx5IG9uZSBpbXBvcnRcbmV4cG9ydCB0eXBlIHtcbiAgRW50aXR5Rm9ybUNvbmZpZyxcbiAgTmVzdGVkVGFiQ29uZmlnLFxuICBOZXN0ZWRGaWVsZENvbmZpZyxcbiAgRmllbGRUYWJsZUNvbmZpZyxcbiAgUmljaEZpZWxkVHlwZSxcbiAgTG9jYWxpemVkVGV4dCxcbiAgRHJvcGRvd25PcHRpb24sXG4gIFZlcnNpb25lZFJlY29yZCxcbiAgRW50aXR5UGVybWlzc2lvbnMsXG4gIFJiYWNDb250ZXh0LFxuICBGaWVsZFZhbGlkYXRvcnMsXG4gIEVudGl0eVJlZmVyZW5jZUNvbmZpZyxcbiAgRW50aXR5UmVmZXJlbmNlTG9hZGVyLFxuICBSZWZlcmVuY2VPcHRpb24sXG4gIFJlZmVyZW5jZUxvYWRlckNvbnRleHQsXG4gIEF1dG9QYXRjaENvbmZpZyxcbiAgUGF0Y2hPblRydWVNYXBwaW5nLFxuICBGaWxlUmVmLFxuICBGb3JtUnVsZSxcbiAgUnVsZUNvbmRpdGlvbixcbiAgUnVsZUFjdGlvbixcbiAgUnVsZUV2YWx1YXRpb25SZXN1bHQsXG4gIENvbW1vbk1vZHVsZUVudHJ5LFxufSBmcm9tICdAZHluYW1pYy1lbnRpdHkvY29yZSc7XG4iXX0=