@researchdatabox/redbox-core 0.0.1-beta.9474 → 0.0.1-beta.9604

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 (126) hide show
  1. package/dist/CoreController.d.ts.map +1 -1
  2. package/dist/CoreController.js +8 -4
  3. package/dist/api-routes/groups/translation.d.ts.map +1 -1
  4. package/dist/api-routes/groups/translation.js +5 -1
  5. package/dist/config/branding.config.d.ts +2 -1
  6. package/dist/config/branding.config.d.ts.map +1 -1
  7. package/dist/config/branding.config.js +5 -95
  8. package/dist/config/form.config.d.ts +4 -0
  9. package/dist/config/form.config.d.ts.map +1 -1
  10. package/dist/config/form.config.js +1 -1
  11. package/dist/config/http.config.d.ts +1 -1
  12. package/dist/config/http.config.d.ts.map +1 -1
  13. package/dist/config/http.config.js +32 -4
  14. package/dist/config/routes.config.d.ts.map +1 -1
  15. package/dist/config/routes.config.js +5 -4
  16. package/dist/config/validators.config.d.ts +6 -4
  17. package/dist/config/validators.config.d.ts.map +1 -1
  18. package/dist/config/validators.config.js +5 -3
  19. package/dist/config/webpack.config.d.ts.map +1 -1
  20. package/dist/config/webpack.config.js +9 -9
  21. package/dist/controllers/BrandingAppController.js +2 -2
  22. package/dist/controllers/BrandingController.d.ts +8 -0
  23. package/dist/controllers/BrandingController.d.ts.map +1 -1
  24. package/dist/controllers/BrandingController.js +88 -28
  25. package/dist/controllers/DynamicAssetController.d.ts +0 -21
  26. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  27. package/dist/controllers/DynamicAssetController.js +1 -42
  28. package/dist/controllers/FormVocabularyController.d.ts +2 -0
  29. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  30. package/dist/controllers/FormVocabularyController.js +58 -1
  31. package/dist/controllers/RecordController.d.ts.map +1 -1
  32. package/dist/controllers/RecordController.js +23 -7
  33. package/dist/controllers/TranslationController.js +3 -3
  34. package/dist/controllers/webservice/AdminController.js +2 -2
  35. package/dist/controllers/webservice/BrandingController.js +2 -2
  36. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  37. package/dist/controllers/webservice/TranslationController.js +8 -8
  38. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  39. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  40. package/dist/controllers/webservice/UserManagementController.js +3 -3
  41. package/dist/hooks/webpack.d.ts.map +1 -1
  42. package/dist/hooks/webpack.js +17 -7
  43. package/dist/middleware/redboxSession.d.ts.map +1 -1
  44. package/dist/middleware/redboxSession.js +6 -2
  45. package/dist/model/BuildResponse.d.ts +4 -0
  46. package/dist/model/BuildResponse.d.ts.map +1 -1
  47. package/dist/sails.d.ts +2 -0
  48. package/dist/sails.d.ts.map +1 -1
  49. package/dist/services/BrandingService.d.ts.map +1 -1
  50. package/dist/services/BrandingService.js +4 -32
  51. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  52. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  53. package/dist/services/BrandingThemeCssService.js +113 -0
  54. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  55. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  56. package/dist/services/BrandingThemeTokens.js +82 -0
  57. package/dist/services/CacheService.d.ts.map +1 -1
  58. package/dist/services/CacheService.js +37 -29
  59. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  60. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  61. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  62. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  63. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  64. package/dist/services/FormRecordConsistencyService.js +18 -18
  65. package/dist/services/FormsService.js +5 -5
  66. package/dist/services/I18nEntriesService.d.ts +6 -4
  67. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  68. package/dist/services/I18nEntriesService.js +83 -17
  69. package/dist/services/OniService.js +2 -2
  70. package/dist/services/RecordsService.js +3 -3
  71. package/dist/services/SassCompilerService.d.ts +4 -10
  72. package/dist/services/SassCompilerService.d.ts.map +1 -1
  73. package/dist/services/SassCompilerService.js +9 -173
  74. package/dist/services/StandardDatastreamService.d.ts +5 -0
  75. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  76. package/dist/services/StandardDatastreamService.js +51 -6
  77. package/dist/services/StorageManagerService.d.ts +1 -0
  78. package/dist/services/StorageManagerService.d.ts.map +1 -1
  79. package/dist/services/StorageManagerService.js +30 -12
  80. package/dist/services/TemplateService.d.ts +1 -17
  81. package/dist/services/TemplateService.d.ts.map +1 -1
  82. package/dist/services/TemplateService.js +5 -50
  83. package/dist/services/VocabularyService.d.ts +12 -0
  84. package/dist/services/VocabularyService.d.ts.map +1 -1
  85. package/dist/services/VocabularyService.js +201 -14
  86. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  87. package/dist/services/doi-v2/bindings.js +2 -8
  88. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  89. package/dist/services/figshare-v2/bindings.js +2 -5
  90. package/dist/services/index.d.ts +6 -0
  91. package/dist/services/index.d.ts.map +1 -1
  92. package/dist/services/index.js +12 -2
  93. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  94. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  95. package/dist/visitor/attachment-fields.visitor.js +44 -34
  96. package/dist/visitor/client.visitor.d.ts +93 -92
  97. package/dist/visitor/client.visitor.d.ts.map +1 -1
  98. package/dist/visitor/client.visitor.js +159 -159
  99. package/dist/visitor/construct.visitor.d.ts +95 -95
  100. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  101. package/dist/visitor/construct.visitor.js +154 -154
  102. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  103. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  104. package/dist/visitor/context-variables.visitor.js +85 -75
  105. package/dist/visitor/data-value.visitor.d.ts +95 -95
  106. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  107. package/dist/visitor/data-value.visitor.js +151 -151
  108. package/dist/visitor/json-type-def.visitor.d.ts +92 -92
  109. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  110. package/dist/visitor/json-type-def.visitor.js +152 -152
  111. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +96 -96
  112. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  113. package/dist/visitor/migrate-config-v4-v5.visitor.js +187 -184
  114. package/dist/visitor/template.visitor.d.ts +96 -94
  115. package/dist/visitor/template.visitor.d.ts.map +1 -1
  116. package/dist/visitor/template.visitor.js +214 -159
  117. package/dist/visitor/validator.visitor.d.ts +92 -92
  118. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  119. package/dist/visitor/validator.visitor.js +165 -152
  120. package/dist/visitor/visitor-helpers.js +9 -9
  121. package/dist/visitor/vocab-inline.visitor.d.ts +18 -18
  122. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  123. package/dist/visitor/vocab-inline.visitor.js +67 -53
  124. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  125. package/dist/waterline-models/BrandingConfig.js +5 -4
  126. package/package.json +15 -12
@@ -106,36 +106,44 @@ var Services;
106
106
  }
107
107
  async buildNgAppFileHash() {
108
108
  this.ngFileAppHash = {};
109
- if (_.isEmpty(sails.config.angularDev) || sails.config.angularDev == 'false') {
110
- const ngRootPath = `${sails.config.appPath}/assets/angular/`;
111
- const ngAppDirs = await (0, promises_1.readdir)(ngRootPath);
112
- const targetFilesPrefix = ['runtime', 'polyfills', 'main', 'styles'];
113
- for (const appName of ngAppDirs) {
114
- let ngPath = `${sails.config.appPath}/assets/angular/${appName}`;
115
- try {
116
- await (0, promises_1.access)(`${ngPath}/browser`);
117
- ngPath = `${ngPath}/browser`;
118
- }
119
- catch (_error) {
120
- sails.log.verbose(`Detected legacy angular app: ${ngPath}`);
121
- continue;
109
+ const ngRootPath = `${sails.config.appPath}/assets/angular/`;
110
+ try {
111
+ await (0, promises_1.access)(ngRootPath);
112
+ }
113
+ catch (_error) {
114
+ sails.log.verbose(`Angular app asset directory not found: ${ngRootPath}`);
115
+ sails.log.verbose(JSON.stringify(this.ngFileAppHash));
116
+ return;
117
+ }
118
+ const ngAppDirs = await (0, promises_1.readdir)(ngRootPath);
119
+ const targetFilesPrefix = ['runtime', 'polyfills', 'main', 'styles'];
120
+ for (const appName of ngAppDirs) {
121
+ let ngPath = `${sails.config.appPath}/assets/angular/${appName}`;
122
+ try {
123
+ await (0, promises_1.access)(`${ngPath}/browser`);
124
+ ngPath = `${ngPath}/browser`;
125
+ }
126
+ catch (_error) {
127
+ sails.log.verbose(`Detected legacy angular app: ${ngPath}`);
128
+ continue;
129
+ }
130
+ const ngFiles = await (0, promises_1.readdir)(ngPath);
131
+ for (const fileNamePrefix of targetFilesPrefix) {
132
+ const fileName = _.find(ngFiles, (file) => {
133
+ return _.startsWith(file, `${fileNamePrefix}.`) || _.startsWith(file, `${fileNamePrefix}-`);
134
+ });
135
+ const nameParts = _.split(fileName, '.');
136
+ let appHash = '';
137
+ //legacy angular app cache path
138
+ if (nameParts && nameParts.length == 3) {
139
+ appHash = nameParts[1];
122
140
  }
123
- const ngFiles = await (0, promises_1.readdir)(ngPath);
124
- for (const fileNamePrefix of targetFilesPrefix) {
125
- const fileName = _.find(ngFiles, (file) => { return _.startsWith(file, fileNamePrefix); });
126
- const nameParts = _.split(fileName, '.');
127
- let appHash = '';
128
- //legacy angular app cache path
129
- if (nameParts && nameParts.length == 3) {
130
- appHash = nameParts[1];
131
- }
132
- //angular 18+ cache path
133
- if (nameParts && nameParts.length == 2 && nameParts[0].indexOf('-') > 0) {
134
- const hashParts = _.split(nameParts[0], '-');
135
- appHash = hashParts[1];
136
- }
137
- _.set(this.ngFileAppHash, `${appName}.${fileNamePrefix}`, appHash);
141
+ //angular 18+ cache path
142
+ if (nameParts && nameParts.length == 2 && nameParts[0].indexOf('-') > 0) {
143
+ const hashParts = _.split(nameParts[0], '-');
144
+ appHash = hashParts[1];
138
145
  }
146
+ _.set(this.ngFileAppHash, `${appName}.${fileNamePrefix}`, appHash);
139
147
  }
140
148
  }
141
149
  sails.log.verbose(JSON.stringify(this.ngFileAppHash));
@@ -150,4 +158,4 @@ var Services;
150
158
  }
151
159
  Services.Cache = Cache;
152
160
  })(Services || (exports.Services = Services = {}));
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0NhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7OztBQUU5RCwrQkFBc0M7QUFDdEMsOENBQXFEO0FBQ3JELGdEQUFzRDtBQUN0RCw0REFBa0Q7QUFDbEQsaUNBQWlDO0FBQ2pDLCtDQUFtRDtBQUVuRCxJQUFpQixRQUFRLENBK0h4QjtBQS9IRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxLQUFNLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUUzQixnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gsS0FBSztZQUNMLEtBQUs7WUFDTCxrQkFBa0I7U0FDbkIsQ0FBQztRQUVRLEtBQUssQ0FBYTtRQUNsQixhQUFhLEdBQTJCLEVBQUUsQ0FBQztRQUU5QyxLQUFLLENBQUMsU0FBUztZQUNwQixNQUFNLFNBQVMsR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQztZQUNwSyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ2hELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxvQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUVNLEdBQUcsQ0FBQyxJQUFZO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUEsU0FBRSxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUMsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQU8sRUFBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDVCxPQUFPLElBQUEsU0FBRSxFQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQzlELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBaUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQU8sRUFBQyxNQUFNLENBQUMsRUFBRTt3QkFDakgsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQzs0QkFDdkIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQzs0QkFDeEMsK0JBQStCOzRCQUMvQixNQUFNLFNBQVMsR0FBRyxNQUErQyxDQUFDOzRCQUNsRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQ0FDakgsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLElBQUksaURBQWlELENBQUMsQ0FBQztnQ0FDNUYsT0FBTyxJQUFBLFNBQUUsRUFBQyxJQUFJLENBQUMsQ0FBQzs0QkFDbEIsQ0FBQztpQ0FBTSxDQUFDO2dDQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0NBQ3JDLE9BQU8sSUFBQSxTQUFFLEVBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQzs0QkFDcEMsQ0FBQzt3QkFDSCxDQUFDO3dCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLDBCQUEwQixJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUNwRCxPQUFPLElBQUEsU0FBRSxFQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNOLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR04sQ0FBQztRQUVNLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBYSxFQUFFLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXO1lBQ3BGLDJDQUEyQztZQUMzQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsSUFBSSxLQUFLLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO2lCQUNwRCxJQUFJLENBQUMsSUFBQSxvQkFBTyxFQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN2QixLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDakQsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzSSxDQUFDO3FCQUFNLENBQUM7b0JBQ04sS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQ2xELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0gsQ0FBQztZQUNILENBQUMsQ0FBQyxFQUNELElBQUEsb0JBQU8sRUFBQyxNQUFNLENBQUMsRUFBRTtnQkFDaEIsT0FBTyxJQUFBLFNBQUUsRUFBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztpQkFDRixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDVCxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDM0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU0sS0FBSyxDQUFDLGtCQUFrQjtZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDN0UsTUFBTSxVQUFVLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sa0JBQWtCLENBQUM7Z0JBQzdELE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBQSxrQkFBTyxFQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLGlCQUFpQixHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3JFLEtBQUssTUFBTSxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7b0JBQ2hDLElBQUksTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLG1CQUFtQixPQUFPLEVBQUUsQ0FBQztvQkFDakUsSUFBSSxDQUFDO3dCQUNILE1BQU0sSUFBQSxpQkFBTSxFQUFDLEdBQUcsTUFBTSxVQUFVLENBQUMsQ0FBQzt3QkFDbEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxVQUFVLENBQUM7b0JBQy9CLENBQUM7b0JBQUMsT0FBTyxNQUFNLEVBQUUsQ0FBQzt3QkFDaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLE1BQU0sRUFBRSxDQUFDLENBQUM7d0JBQzVELFNBQVM7b0JBQ1gsQ0FBQztvQkFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEsa0JBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEMsS0FBSyxNQUFNLGNBQWMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO3dCQUMvQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNsRyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO3dCQUNqQiwrQkFBK0I7d0JBQy9CLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7NEJBQ3ZDLE9BQU8sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3pCLENBQUM7d0JBQ0Qsd0JBQXdCO3dCQUN4QixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUN4RSxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzs0QkFDN0MsT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDekIsQ0FBQzt3QkFFRCxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxPQUFPLElBQUksY0FBYyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3JFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFTSxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsY0FBc0IsRUFBRSxhQUFxQixFQUFFLEVBQUUsYUFBcUIsRUFBRSxFQUFFLG9CQUE0QixLQUFLO1lBQ2xKLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQzdDLE9BQU8sR0FBRyxHQUFHLFVBQVUsR0FBRyxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7WUFDbkQsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FFRjtJQXZIWSxjQUFLLFFBdUhqQixDQUFBO0FBQ0gsQ0FBQyxFQS9IZ0IsUUFBUSx3QkFBUixRQUFRLFFBK0h4QiJ9
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0NhY2hlU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7OztBQUU5RCwrQkFBc0M7QUFDdEMsOENBQXFEO0FBQ3JELGdEQUFzRDtBQUN0RCw0REFBa0Q7QUFDbEQsaUNBQWlDO0FBQ2pDLCtDQUFtRDtBQUVuRCxJQUFpQixRQUFRLENBc0l4QjtBQXRJRCxXQUFpQixRQUFRO0lBQ3ZCOzs7OztPQUtHO0lBQ0gsTUFBYSxLQUFNLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUUzQixnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gsS0FBSztZQUNMLEtBQUs7WUFDTCxrQkFBa0I7U0FDbkIsQ0FBQztRQUVRLEtBQUssQ0FBYTtRQUNsQixhQUFhLEdBQTJCLEVBQUUsQ0FBQztRQUU5QyxLQUFLLENBQUMsU0FBUztZQUNwQixNQUFNLFNBQVMsR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQztZQUNwSyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8s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
@@ -0,0 +1,35 @@
1
+ import { BrandingModel } from '../model';
2
+ import { Services as services } from '../CoreService';
3
+ import { FormConfigOutline, FormPrehydratePayload, FormPrehydrateVocabTreePayload } from '@researchdatabox/sails-ng-common';
4
+ type CheckboxTreeTarget = {
5
+ vocabRef: string;
6
+ selectedValues: Array<{
7
+ notation: string;
8
+ genealogy?: string[];
9
+ }>;
10
+ };
11
+ type BuildInput = {
12
+ branding: BrandingModel | string;
13
+ formConfig: FormConfigOutline;
14
+ };
15
+ type PrehydrateConfig = {
16
+ enabled: boolean;
17
+ maxVocabSelections: number;
18
+ };
19
+ export declare namespace Services {
20
+ class FormPayloadPrehydrateService extends services.Core.Service {
21
+ protected _exportedMethods: string[];
22
+ build({ branding, formConfig }: BuildInput): Promise<FormPrehydratePayload | undefined>;
23
+ extractTargets(formConfig: FormConfigOutline, config?: PrehydrateConfig): CheckboxTreeTarget[];
24
+ private getNestedComponentDefinitions;
25
+ resolveVocabTrees(branding: BrandingModel | string, targets: CheckboxTreeTarget[]): Promise<Record<string, FormPrehydrateVocabTreePayload>>;
26
+ private getPrehydrateConfig;
27
+ private getBrandingName;
28
+ private resolveSelectionChain;
29
+ }
30
+ }
31
+ declare global {
32
+ let FormPayloadPrehydrateService: Services.FormPayloadPrehydrateService;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=FormPayloadPrehydrateService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormPayloadPrehydrateService.d.ts","sourceRoot":"","sources":["../../src/services/FormPayloadPrehydrateService.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAGL,iBAAiB,EACjB,qBAAqB,EAErB,8BAA8B,EAE/B,MAAM,kCAAkC,CAAC;AAI1C,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,KAAK,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,yBAAiB,QAAQ,CAAC;IACxB,MAAa,4BAA6B,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QACrE,UAAmB,gBAAgB,EAAE,MAAM,EAAE,CAI3C;QAEW,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;QAoB7F,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAA6B,GAAG,kBAAkB,EAAE;QA+C/G,OAAO,CAAC,6BAA6B;QAiBxB,iBAAiB,CAC5B,QAAQ,EAAE,aAAa,GAAG,MAAM,EAChC,OAAO,EAAE,kBAAkB,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QA0D1D,OAAO,CAAC,mBAAmB;QAa3B,OAAO,CAAC,eAAe;gBAOT,qBAAqB;KA0BpC;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,4BAA4B,EAAE,QAAQ,CAAC,4BAA4B,CAAC;CACzE"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Services = void 0;
37
+ const _ = __importStar(require("lodash"));
38
+ const CoreService_1 = require("../CoreService");
39
+ const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
40
+ var Services;
41
+ (function (Services) {
42
+ class FormPayloadPrehydrateService extends CoreService_1.Services.Core.Service {
43
+ _exportedMethods = [
44
+ 'build',
45
+ 'extractTargets',
46
+ 'resolveVocabTrees'
47
+ ];
48
+ async build({ branding, formConfig }) {
49
+ const config = this.getPrehydrateConfig();
50
+ if (!config.enabled) {
51
+ return undefined;
52
+ }
53
+ const checkboxTrees = this.extractTargets(formConfig, config);
54
+ if (checkboxTrees.length === 0) {
55
+ return undefined;
56
+ }
57
+ try {
58
+ const vocabTrees = await this.resolveVocabTrees(branding, checkboxTrees);
59
+ return _.isEmpty(vocabTrees) ? undefined : { vocabTrees };
60
+ }
61
+ catch (error) {
62
+ this.logger.warn('Failed to build form prehydrate payload', error);
63
+ return undefined;
64
+ }
65
+ }
66
+ extractTargets(formConfig, config = this.getPrehydrateConfig()) {
67
+ const checkboxTrees = [];
68
+ const componentDefinitions = Array.isArray(formConfig?.componentDefinitions) ? formConfig.componentDefinitions : [];
69
+ let remainingVocabSelections = Math.max(0, config.maxVocabSelections);
70
+ const visit = (definition) => {
71
+ const component = (definition?.component ?? {});
72
+ const componentClass = String(component?.class ?? '').trim();
73
+ const componentConfig = (component?.config ?? {});
74
+ const modelConfig = (definition?.model ?? {})?.config;
75
+ if (componentClass === sails_ng_common_1.CheckboxTreeComponentName && remainingVocabSelections > 0) {
76
+ const cfg = componentConfig;
77
+ const vocabRef = String(cfg?.vocabRef ?? '').trim();
78
+ const values = Array.isArray(modelConfig?.value) ? modelConfig.value : [];
79
+ const selectedValues = values
80
+ .map((value) => {
81
+ const notation = String(value?.notation ?? '').trim();
82
+ if (!notation) {
83
+ return null;
84
+ }
85
+ const genealogy = Array.isArray(value?.genealogy)
86
+ ? value.genealogy.map((item) => String(item ?? '').trim()).filter(Boolean)
87
+ : undefined;
88
+ return { notation, genealogy };
89
+ })
90
+ .filter((value) => value !== null)
91
+ .slice(0, remainingVocabSelections);
92
+ remainingVocabSelections -= selectedValues.length;
93
+ if (vocabRef && selectedValues.length > 0) {
94
+ checkboxTrees.push({ vocabRef, selectedValues });
95
+ }
96
+ }
97
+ for (const nestedDefinition of this.getNestedComponentDefinitions(componentConfig)) {
98
+ visit(nestedDefinition);
99
+ }
100
+ };
101
+ for (const definition of componentDefinitions) {
102
+ visit(definition);
103
+ }
104
+ return checkboxTrees;
105
+ }
106
+ getNestedComponentDefinitions(componentConfig) {
107
+ const nestedDefinitions = [];
108
+ if (Array.isArray(componentConfig?.componentDefinitions)) {
109
+ nestedDefinitions.push(...componentConfig.componentDefinitions);
110
+ }
111
+ const tabs = Array.isArray(componentConfig?.tabs) ? componentConfig.tabs : [];
112
+ for (const tab of tabs) {
113
+ const tabDefinitions = tab?.component?.config?.componentDefinitions;
114
+ if (Array.isArray(tabDefinitions)) {
115
+ nestedDefinitions.push(...tabDefinitions);
116
+ }
117
+ }
118
+ return nestedDefinitions;
119
+ }
120
+ async resolveVocabTrees(branding, targets) {
121
+ const payloadByVocabRef = {};
122
+ for (const target of targets) {
123
+ const targetPayload = payloadByVocabRef[target.vocabRef] ?? {
124
+ childrenByParentId: {},
125
+ selectedNotations: []
126
+ };
127
+ for (const selected of target.selectedValues) {
128
+ try {
129
+ const chain = await this.resolveSelectionChain(branding, target.vocabRef, selected);
130
+ if (chain.length === 0) {
131
+ continue;
132
+ }
133
+ if (!targetPayload.selectedNotations.includes(selected.notation)) {
134
+ targetPayload.selectedNotations.push(selected.notation);
135
+ }
136
+ const parentIdsToFetch = [null];
137
+ for (const entry of chain.slice(0, -1)) {
138
+ const entryId = String(entry.id ?? '').trim();
139
+ if (entryId) {
140
+ parentIdsToFetch.push(entryId);
141
+ }
142
+ }
143
+ for (const parentId of parentIdsToFetch) {
144
+ const parentKey = parentId || sails_ng_common_1.FormPrehydrateRootKey;
145
+ if (targetPayload.childrenByParentId[parentKey]) {
146
+ continue;
147
+ }
148
+ const response = await VocabularyService.getChildren(this.getBrandingName(branding), target.vocabRef, parentId ?? undefined);
149
+ if (response) {
150
+ targetPayload.childrenByParentId[parentKey] = {
151
+ data: response.entries,
152
+ meta: response.meta
153
+ };
154
+ }
155
+ }
156
+ }
157
+ catch (error) {
158
+ this.logger.warn(`Failed to prehydrate vocab tree selection '${selected.notation}' for '${target.vocabRef}'`, error);
159
+ }
160
+ }
161
+ if (!_.isEmpty(targetPayload.childrenByParentId) || targetPayload.selectedNotations.length > 0) {
162
+ payloadByVocabRef[target.vocabRef] = targetPayload;
163
+ }
164
+ }
165
+ return payloadByVocabRef;
166
+ }
167
+ getPrehydrateConfig() {
168
+ const configured = (sails.config.form?.prehydrate ?? {});
169
+ return {
170
+ enabled: configured.enabled ?? true,
171
+ maxVocabSelections: Number.isInteger(configured.maxVocabSelections)
172
+ ? Math.max(0, Number(configured.maxVocabSelections))
173
+ : 50,
174
+ };
175
+ }
176
+ getBrandingName(branding) {
177
+ if (typeof branding === 'string') {
178
+ return branding;
179
+ }
180
+ return String(branding?.name ?? branding?.id ?? '');
181
+ }
182
+ async resolveSelectionChain(branding, vocabRef, selected) {
183
+ const genealogy = Array.isArray(selected.genealogy) ? selected.genealogy.filter(Boolean) : [];
184
+ if (genealogy.length > 0) {
185
+ const notationChain = [...genealogy, selected.notation];
186
+ const resolvedChain = await Promise.all(notationChain.map((notation) => VocabularyService.getEntryByNotation(this.getBrandingName(branding), vocabRef, notation)));
187
+ return resolvedChain
188
+ .filter((entry) => entry !== null)
189
+ .map((entry) => ({
190
+ id: entry.id,
191
+ parent: entry.parent ? String(entry.parent) : null,
192
+ vocabulary: entry.vocabulary ? String(entry.vocabulary) : undefined
193
+ }));
194
+ }
195
+ return await VocabularyService.getAncestorChain(this.getBrandingName(branding), vocabRef, selected.notation);
196
+ }
197
+ }
198
+ Services.FormPayloadPrehydrateService = FormPayloadPrehydrateService;
199
+ })(Services || (exports.Services = Services = {}));
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVBheWxvYWRQcmVoeWRyYXRlU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9Gb3JtUGF5bG9hZFByZWh5ZHJhdGVTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUE0QjtBQUk1QixnREFBc0Q7QUFDdEQsc0VBUTBDO0FBc0IxQyxJQUFpQixRQUFRLENBd014QjtBQXhNRCxXQUFpQixRQUFRO0lBQ3ZCLE1BQWEsNEJBQTZCLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNsRCxnQkFBZ0IsR0FBYTtZQUM5QyxPQUFPO1lBQ1AsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtTQUNwQixDQUFDO1FBRUssS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQWM7WUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlELElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUVELElBQUksQ0FBQztnQkFDSCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3pFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQzVELENBQUM7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
@@ -79,7 +79,7 @@ export declare namespace Services {
79
79
  * @param reusableFormDefs The reusable form definitions.
80
80
  * @return The merged record.
81
81
  */
82
- mergeRecordClientFormConfig(original: BasicRedboxRecord, changed: BasicRedboxRecord, clientFormConfig: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): BasicRedboxRecord;
82
+ mergeRecordClientFormConfig(original: BasicRedboxRecord, changed: BasicRedboxRecord, clientFormConfig: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<BasicRedboxRecord>;
83
83
  /**
84
84
  * Merge the original and changed records, using the client form config to know which changes to include.
85
85
  * @param original The existing original record.
@@ -95,14 +95,14 @@ export declare namespace Services {
95
95
  * @param formMode The form mode.
96
96
  * @param reusableFormDefs The reusable form definitions.
97
97
  */
98
- buildDataModelDefaultForFormConfig(item: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Record<string, unknown>;
98
+ buildDataModelDefaultForFormConfig(item: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<Record<string, unknown>>;
99
99
  /**
100
100
  * Convert a form config into a schema describing the data model it creates.
101
101
  * @param item The form config.
102
102
  * @param formMode The form mode.
103
103
  * @param reusableFormDefs The reusable form definitions.
104
104
  */
105
- buildSchemaForFormConfig(item: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Record<string, unknown>;
105
+ buildSchemaForFormConfig(item: FormConfigFrame, formMode: FormModesConfig, reusableFormDefs?: ReusableFormDefinitions): Promise<Record<string, unknown>>;
106
106
  /**
107
107
  * Compare two data items.
108
108
  * @param original The first item, used as the 'original' for the comparison.
@@ -1 +1 @@
1
- {"version":3,"file":"FormRecordConsistencyService.d.ts","sourceRoot":"","sources":["../../src/services/FormRecordConsistencyService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormRecordConsistencyService.d.ts","sourceRoot":"","sources":["../../src/services/FormRecordConsistencyService.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,7 @@ var Services;
82
82
  const recordMetadata = original?.metadata;
83
83
  const clientFormConfig = await FormsService.buildClientFormConfig(formConfig, formMode, userRoles, recordMetadata, reusableFormDefs);
84
84
  // merge the original and changed records using the client form config to know which changes to include
85
- return this.mergeRecordClientFormConfig(original, changed, clientFormConfig, formMode, reusableFormDefs);
85
+ return await this.mergeRecordClientFormConfig(original, changed, clientFormConfig, formMode, reusableFormDefs);
86
86
  }
87
87
  /**
88
88
  * Merge the existing original and changed records using the clientFormConfig.
@@ -102,9 +102,9 @@ var Services;
102
102
  * @param reusableFormDefs The reusable form definitions.
103
103
  * @return The merged record.
104
104
  */
105
- mergeRecordClientFormConfig(original, changed, clientFormConfig, formMode, reusableFormDefs) {
105
+ async mergeRecordClientFormConfig(original, changed, clientFormConfig, formMode, reusableFormDefs) {
106
106
  const schemaFormConfig = this.stripModelValuesFromFormConfig(clientFormConfig);
107
- const permittedChanges = this.buildSchemaForFormConfig(schemaFormConfig, formMode, reusableFormDefs);
107
+ const permittedChanges = await this.buildSchemaForFormConfig(schemaFormConfig, formMode, reusableFormDefs);
108
108
  const originalMetadata = original?.metadata ?? {};
109
109
  const changedMetadata = changed?.metadata ?? {};
110
110
  const changes = this.compareRecords(original, changed);
@@ -127,7 +127,7 @@ var Services;
127
127
  currentPath = currentPath ?? [];
128
128
  // filter the changes to only those relevant to the current path
129
129
  const relevantChanges = changes?.filter(i => {
130
- return !currentPath || this.arrayStartsWithArray(currentPath, i?.path);
130
+ return !currentPath || (0, sails_ng_common_1.arrayStartsWithArray)(currentPath, i?.path);
131
131
  });
132
132
  // check all keys in either the original or changes objects
133
133
  const { keys: originalKeys } = this.toKeysEntries(original);
@@ -198,7 +198,7 @@ var Services;
198
198
  // because that default is for new entries, not existing entries.
199
199
  const originalElement = {};
200
200
  const newPath = [...currentPath, key, index];
201
- const keyChanges = relevantChanges?.filter(i => this.arrayStartsWithArray(newPath, i?.path));
201
+ const keyChanges = relevantChanges?.filter(i => (0, sails_ng_common_1.arrayStartsWithArray)(newPath, i?.path));
202
202
  sails.log.verbose(`mergeRecordMetadataPermitted - array`, {
203
203
  originalElement: originalElement,
204
204
  changedElement: changedElement,
@@ -223,7 +223,7 @@ var Services;
223
223
  // Evaluate the properties of the object.
224
224
  const newPermittedChanges = permittedChangesValue;
225
225
  const newPath = [...currentPath, key];
226
- const keyChanges = relevantChanges?.filter(i => this.arrayStartsWithArray(newPath, i?.path));
226
+ const keyChanges = relevantChanges?.filter(i => (0, sails_ng_common_1.arrayStartsWithArray)(newPath, i?.path));
227
227
  result[key] = this.mergeRecordMetadataPermitted(originalValue, changedValue, newPermittedChanges, keyChanges, newPath);
228
228
  }
229
229
  else if (isKeyInPermittedChange && isKeyInChanged) {
@@ -254,11 +254,11 @@ var Services;
254
254
  * @param formMode The form mode.
255
255
  * @param reusableFormDefs The reusable form definitions.
256
256
  */
257
- buildDataModelDefaultForFormConfig(item, formMode, reusableFormDefs) {
257
+ async buildDataModelDefaultForFormConfig(item, formMode, reusableFormDefs) {
258
258
  const constructor = new construct_visitor_1.ConstructFormConfigVisitor(this.logger);
259
- const constructed = constructor.start({ data: item, formMode, reusableFormDefs });
259
+ const constructed = await constructor.start({ data: item, formMode, reusableFormDefs });
260
260
  const visitor = new data_value_visitor_1.DataValueFormConfigVisitor(this.logger);
261
- return visitor.start({ form: constructed });
261
+ return await visitor.start({ form: constructed });
262
262
  }
263
263
  /**
264
264
  * Convert a form config into a schema describing the data model it creates.
@@ -266,11 +266,11 @@ var Services;
266
266
  * @param formMode The form mode.
267
267
  * @param reusableFormDefs The reusable form definitions.
268
268
  */
269
- buildSchemaForFormConfig(item, formMode, reusableFormDefs) {
269
+ async buildSchemaForFormConfig(item, formMode, reusableFormDefs) {
270
270
  const constructor = new construct_visitor_1.ConstructFormConfigVisitor(this.logger);
271
- const constructed = constructor.start({ data: item, formMode, reusableFormDefs });
271
+ const constructed = await constructor.start({ data: item, formMode, reusableFormDefs });
272
272
  const visitor = new json_type_def_visitor_1.JsonTypeDefSchemaFormConfigVisitor(this.logger);
273
- return visitor.start({ form: constructed });
273
+ return await visitor.start({ form: constructed });
274
274
  }
275
275
  /**
276
276
  * Compare two data items.
@@ -401,7 +401,7 @@ var Services;
401
401
  // Get the validator definitions from the sails config, so the definitions can be overwritten.
402
402
  const validatorDefinitions = sails.config.validators.definitions;
403
403
  const constructor = new construct_visitor_1.ConstructFormConfigVisitor(this.logger);
404
- const constructed = constructor.start({
404
+ const constructed = await constructor.start({
405
405
  data: formConfig,
406
406
  formMode,
407
407
  reusableFormDefs,
@@ -461,16 +461,16 @@ var Services;
461
461
  */
462
462
  async extractRawTemplates(item, formMode, userRoles, recordMetadata, reusableFormDefs) {
463
463
  const constructor = new construct_visitor_1.ConstructFormConfigVisitor(this.logger);
464
- const constructedForm = constructor.start({ data: item, reusableFormDefs, formMode, record: recordMetadata });
464
+ const constructedForm = await constructor.start({ data: item, reusableFormDefs, formMode, record: recordMetadata });
465
465
  const vocabVisitor = new vocab_inline_visitor_1.VocabInlineFormConfigVisitor(this.logger);
466
466
  await vocabVisitor.resolveVocabs(constructedForm, undefined, {
467
467
  includeHistoricalValues: recordMetadata !== null && recordMetadata !== undefined
468
468
  });
469
469
  const contextVariablesVisitor = new context_variables_visitor_1.ContextVariablesFormConfigVisitor(this.logger);
470
- contextVariablesVisitor.applyContextVariables(constructedForm);
470
+ await contextVariablesVisitor.applyContextVariables(constructedForm);
471
471
  const rawBehaviours = _.cloneDeep(constructedForm.behaviours);
472
472
  const clientVisitor = new client_visitor_1.ClientFormConfigVisitor(this.logger);
473
- const clientForm = clientVisitor.start({
473
+ const clientForm = await clientVisitor.start({
474
474
  form: constructedForm,
475
475
  formMode,
476
476
  userRoles,
@@ -479,7 +479,7 @@ var Services;
479
479
  const form = clientForm;
480
480
  form.behaviours = rawBehaviours;
481
481
  const visitor = new template_visitor_1.TemplateFormConfigVisitor(this.logger);
482
- return visitor.start({ form });
482
+ return await visitor.start({ form });
483
483
  }
484
484
  /**
485
485
  * Extract the keys and entries from an object or array.
@@ -515,4 +515,4 @@ var Services;
515
515
  ], FormRecordConsistency);
516
516
  Services.FormRecordConsistency = FormRecordConsistency;
517
517
  })(Services || (exports.Services = Services = {}));
518
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVJlY29yZENvbnNpc3RlbmN5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9Gb3JtUmVjb3JkQ29uc2lzdGVuY3lTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7Ozs7Ozs7O0FBRTlELGdEQUFzRDtBQUN0RCxzR0FBeUY7QUFDekYsc0VBSTBDO0FBQzFDLCtCQUFvQztBQUNwQyxvRUFBMEU7QUFDMUUsc0VBQTJFO0FBQzNFLDRFQUFzRjtBQUN0RixrRUFBd0U7QUFDeEUsb0VBQTBFO0FBQzFFLDhEQUFvRTtBQUNwRSwwRUFBK0U7QUFDL0Usb0ZBQXlGO0FBS3pGLElBQWlCLFFBQVEsQ0FxbEJ4QjtBQXJsQkQsV0FBaUIsUUFBUTtJQTBDckI7Ozs7Ozs7Ozs7O09BV0c7SUFFSCxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFzQixTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFDNUQ7Ozs7Ozs7Ozs7O1dBV0c7UUFDSSxLQUFLLENBQUMsV0FBVyxDQUNwQixPQUEwQixFQUFFLFFBQXlCLEVBQUUsZ0JBQTBDO1lBRWpHLDBCQUEwQjtZQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWpFLHdDQUF3QztZQUN4QyxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQztZQUM3RSxNQUFNLFVBQVUsR0FBRyxRQUFRLEtBQUssTUFBTSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBQSxxQkFBYyxFQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNqSCxNQUFNLFVBQVUsR0FBRyxVQUFVLEVBQUUsYUFBYSxDQUFDO1lBQzdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFFRCwrQkFBK0I7WUFDL0IsTUFBTSxTQUFTLEdBQXlCLFNBQVMsQ0FBQztZQUNsRCxNQUFNLGNBQWMsR0FBRyxRQUFRLEVBQUUsUUFBUSxDQUFDO1lBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFFckksdUdBQXVHO1lBQ3ZHLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQXdDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdJLENBQUM7UUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FpQkc7UUFDSSwyQkFBMkIsQ0FDOUIsUUFBMkIsRUFDM0IsT0FBMEIsRUFDMUIsZ0JBQWlDLEVBQ2pDLFFBQXlCLEVBQ3pCLGdCQUEwQztZQUUxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JHLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDbEQsTUFBTSxlQUFlLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkQsT0FBTztnQkFDSCxHQUFHLFFBQVE7Z0JBQ1gsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLElBQUksRUFBRTtnQkFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDO2FBQzVHLENBQUE7UUFDTCxDQUFDO1FBRUQ7Ozs7Ozs7V0FPRztRQUNJLDRCQUE0QixDQUMvQixRQUFnQixFQUNoQixPQUFlLEVBQ2YsZ0JBQW1ELEVBQ25ELE9BQXNDLEVBQ3RDLFdBQTZDO1lBRTdDLGlDQUFpQztZQUNqQyxXQUFXLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUVoQyxnRUFBZ0U7WUFDaEUsTUFBTSxlQUFlLEdBQUcsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDeEMsT0FBTyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzRSxDQUFDLENBQUMsQ0FBQztZQUVILDJEQUEyRDtZQUMzRCxNQUFNLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUQsTUFBTSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFrQixZQUFZLENBQUMsQ0FBQztZQUN2RCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpDLDhDQUE4QztZQUM5Qyw2RUFBNkU7WUFDN0UsTUFBTSxjQUFjLEdBQUcsUUFBNEMsQ0FBQztZQUNwRSxNQUFNLGFBQWEsR0FBRyxPQUEyQyxDQUFDO1lBQ2xFLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQW9ELENBQUM7WUFDakYsZ0RBQWdEO1lBQ2hELDhJQUE4STtZQUM5SSxJQUFJO1lBQ0osTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsWUFBWSxJQUFJLG1CQUFtQixDQUFDO2dCQUNsRSxDQUFDLENBQUUsbUJBQW1CLENBQUMsWUFBWSxDQUFzQztnQkFDekUsQ0FBQyxDQUFDLG1CQUFtQixDQUFxQyxDQUFDO1lBRzdELCtCQUErQjtZQUMvQixNQUFNLE1BQU0sR0FBcUM7WUFDN0MsaUJBQWlCO1lBQ2pCLDZEQUE2RDthQUNoRSxDQUFDO1lBRUYsbUNBQW1DO1lBQ25DLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLDZDQUE2QztnQkFDN0MsTUFBTSxlQUFlLEdBQUcsR0FBRyxJQUFJLGNBQWMsQ0FBQztnQkFDOUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDJCQUFTLEVBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRW5ELDRDQUE0QztnQkFDNUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxJQUFJLGFBQWEsQ0FBQztnQkFDNUMsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDckUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDJCQUFTLEVBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRWpELGlEQUFpRDtnQkFDakQsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLElBQUkscUJBQXFCLENBQUM7Z0JBQzVELE1BQU0scUJBQXFCLEdBQUcscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLENBQXdDLENBQUM7Z0JBQ2xHLE1BQU0sdUJBQXVCLEdBQUcsc0JBQXNCLElBQUksQ0FBQyxDQUFDLHFCQUFxQixJQUFJLFlBQVksSUFBSSxxQkFBcUIsQ0FBQztnQkFDM0gsTUFBTSxzQkFBc0IsR0FBRyxzQkFBc0IsSUFBSSxDQUFDLENBQUMscUJBQXFCLElBQUksVUFBVSxJQUFJLHFCQUFxQixDQUFDO2dCQUN4SCxNQUFNLHFCQUFxQixHQUFHLHNCQUFzQixJQUFJLENBQUMsQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLElBQUkscUJBQXFCLENBQUM7Z0JBQ25ILE1BQU0sc0JBQXNCLEdBQUcsc0JBQXNCLElBQUksQ0FBQyxDQUFDLHFCQUFxQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO2dCQUVwSSw2Q0FBNkM7Z0JBQzdDLE1BQU0sd0JBQXdCLEdBQUc7b0JBQzdCLHVCQUF1QixFQUFFLHVCQUF1QjtvQkFDaEQsc0JBQXNCLEVBQUUsc0JBQXNCO29CQUM5QyxxQkFBcUIsRUFBRSxxQkFBcUI7b0JBQzVDLHNCQUFzQixFQUFFLHNCQUFzQjtpQkFDakQsQ0FBQztnQkFDRixJQUFJLHNCQUFzQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3BILE1BQU0sSUFBSSxLQUFLLENBQUMsa0lBQWtJLElBQUksQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3TyxDQUFDO2dCQUVELDJEQUEyRDtnQkFDM0QsSUFDSSxzQkFBc0I7dUJBQ25CLGVBQWU7dUJBQ2YsY0FBYzt1QkFDZCxpQkFBaUIsS0FBSyxPQUFPO3VCQUM3QixnQkFBZ0IsS0FBSyxPQUFPLEVBQ2pDLENBQUM7b0JBQ0MsK0ZBQStGO29CQUMvRix5RkFBeUY7b0JBQ3pGLG9IQUFvSDtvQkFDcEgsc0ZBQXNGO29CQUN0RixtR0FBbUc7b0JBQ25HLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUE0QixDQUFDO29CQUN6RixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUksWUFBMEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUF1QixFQUFFLEtBQWEsRUFBRSxFQUFFO3dCQUNyRixxQ0FBcUM7d0JBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUEsMkJBQVMsRUFBQyxjQUFjLENBQUMsQ0FBQzt3QkFDOUMsSUFBSSxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7NEJBQzNCLG1EQUFtRDs0QkFDbkQsZ0ZBQWdGOzRCQUNoRix1RUFBdUU7NEJBQ3ZFLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQzs0QkFDM0IsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7NEJBQzdDLE1BQU0sVUFBVSxHQUFHLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDOzRCQUM3RixLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRTtnQ0FDdEQsZUFBZSxFQUFFLGVBQWU7Z0NBQ2hDLGNBQWMsRUFBRSxjQUFjO2dDQUM5QixtQkFBbUIsRUFBRSxtQkFBbUI7Z0NBQ3hDLFVBQVUsRUFBRSxVQUFVO2dDQUN0QixPQUFPLEVBQUUsT0FBTzs2QkFDbkIsQ0FBQyxDQUFDOzRCQUNILE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLGVBQWUsRUFBRSxjQUF3QixFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxPQUEwQyxDQUFDLENBQUM7d0JBQ3JLLENBQUM7NkJBQU0sQ0FBQzs0QkFDSiw0RUFBNEU7NEJBQzVFLE9BQU8sY0FBYyxDQUFDO3dCQUMxQixDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUVQLENBQUM7cUJBQU0sSUFDSCx1QkFBdUI7dUJBQ3BCLGVBQWU7dUJBQ2YsY0FBYzt1QkFDZCxpQkFBaUIsS0FBSyxRQUFRO3VCQUM5QixnQkFBZ0IsS0FBSyxRQUFRLEVBQ2xDLENBQUM7b0JBQ0MsaUdBQWlHO29CQUNqRyx5Q0FBeUM7b0JBQ3pDLE1BQU0sbUJBQW1CLEdBQUcscUJBQWdELENBQUM7b0JBQzdFLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3RDLE1BQU0sVUFBVSxHQUFHLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM3RixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLGFBQXVCLEVBQUUsWUFBc0IsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsT0FBMEMsQ0FBQyxDQUFDO2dCQUVsTCxDQUFDO3FCQUFNLElBQUksc0JBQXNCLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ2xELHlEQUF5RDtvQkFDekQscURBQXFEO29CQUNyRCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsWUFBWSxDQUFDO2dCQUUvQixDQUFDO3FCQUFNLElBQUksZUFBZSxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztvQkFDeEQsdURBQXVEO29CQUN2RCwyQkFBMkI7b0JBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUM7Z0JBQ2hDLENBQUM7WUFDTCxDQUFDO1lBRUQ7Ozs7Ozs7O2VBUUc7WUFFSCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDSSxrQ0FBa0MsQ0FDckMsSUFBcUIsRUFBRSxRQUF5QixFQUFFLGdCQUEwQztZQUU1RixNQUFNLFdBQVcsR0FBRyxJQUFJLDhDQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFDO1lBRWhGLE1BQU0sT0FBTyxHQUFHLElBQUksK0NBQTBCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRDs7Ozs7V0FLRztRQUNJLHdCQUF3QixDQUMzQixJQUFxQixFQUFFLFFBQXlCLEVBQUUsZ0JBQTBDO1lBRTVGLE1BQU0sV0FBVyxHQUFHLElBQUksOENBQTBCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBQyxDQUFDLENBQUM7WUFFaEYsTUFBTSxPQUFPLEdBQUcsSUFBSSwwREFBa0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVEOzs7OztXQUtHO1FBQ0ksY0FBYyxDQUNqQixRQUFpQixFQUNqQixPQUFnQixFQUNoQixJQUFzQztZQUV0QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FBa0MsRUFBRSxDQUFDO1lBQ2pELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsZUFBZSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsTUFBTSxFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BGLE1BQU0sRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRixNQUFNLGNBQWMsR0FBRyxRQUE0QyxDQUFDO2dCQUNwRSxNQUFNLGFBQWEsR0FBRyxPQUEyQyxDQUFDO2dCQUVsRSxTQUFTO2dCQUNULEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDekMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDL0IsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDakQsTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFFckUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUNsQixxQkFBcUI7d0JBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ1IsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsSUFBSSxFQUFFLE9BQU87NEJBQ2IsUUFBUSxFQUFFLEtBQUs7NEJBQ2YsT0FBTyxFQUFFLFlBQVk7eUJBQ3hCLENBQUMsQ0FBQztvQkFDUCxDQUFDO3lCQUFNLElBQUksY0FBYyxJQUFJLFlBQVksS0FBSyxLQUFLLEVBQUUsQ0FBQzt3QkFDbEQsMkJBQTJCO3dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDOzZCQUM1QyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxNQUFNO2dCQUNOLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDeEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDL0IsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkQsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDeEUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dCQUNuQixrQkFBa0I7d0JBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUM7NEJBQ1IsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsSUFBSSxFQUFFLE9BQU87NEJBQ2IsUUFBUSxFQUFFLGFBQWE7NEJBQ3ZCLE9BQU8sRUFBRSxLQUFLO3lCQUNqQixDQUFDLENBQUM7b0JBQ1AsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDUixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsSUFBSTtvQkFDVixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsT0FBTyxFQUFFLE9BQU87aUJBQ25CLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLE1BQU07UUFDTiwyRkFBMkY7UUFDM0YsS0FBSztRQUNMLDBDQUEwQztRQUMxQyxLQUFLO1FBQ0wsK0NBQStDO1FBQy9DLDZEQUE2RDtRQUM3RCxNQUFNO1FBQ04sMENBQTBDO1FBQzFDLCtEQUErRDtRQUMvRCw4Q0FBOEM7UUFDOUMsZ0NBQWdDO1FBQ2hDLGdHQUFnRztRQUNoRyxxRUFBcUU7UUFDckUsbUJBQW1CO1FBQ25CLDBDQUEwQztRQUMxQyxJQUFJO1FBRUosdUJBQXVCO1FBQ3ZCLE1BQU07UUFDTiwyRkFBMkY7UUFDM0YsS0FBSztRQUNMLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsTUFBTTtRQUNOLHlHQUF5RztRQUN6RyxTQUFTO1FBQ1Qsb0NBQW9DO1FBQ3BDLHVEQUF1RDtRQUN2RCw4SEFBOEg7UUFDOUgsK0JBQStCO1FBQy9CLHNDQUFzQztRQUN0QyxpR0FBaUc7UUFDakcsNkNBQTZDO1FBQzdDLGdFQUFnRTtRQUNoRSwwRUFBMEU7UUFDMUUsaUJBQWlCO1FBQ2pCLFNBQVM7UUFDVCwwQ0FBMEM7UUFDMUMsSUFBSTtRQUVKOzs7Ozs7V0FNRztRQUNJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FDMUMsTUFBeUIsRUFDekIsdUJBQWtDLEVBQ2xDLGdCQUEwQztZQUUxQyw2QkFBNkI7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRWhELHVFQUF1RTtZQUN2RSxrREFBa0Q7WUFDbEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLFFBQVEsS0FBSyxNQUFNLENBQUM7WUFFdkMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQztZQUM1RSwrQkFBK0I7WUFDL0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFBLHFCQUFjLEVBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pILE1BQU0sVUFBVSxHQUFHLFVBQVUsRUFBRSxhQUFhLENBQUM7WUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUVELDhGQUE4RjtZQUM5RixNQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUVqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLDhDQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRSxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUNwQyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUTtnQkFDUixnQkFBZ0I7Z0JBQ2hCLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxJQUFJLEVBQUU7YUFDL0IsQ0FBQyxDQUFDO1lBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSw4Q0FBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUQsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNuQixJQUFJLEVBQUUsV0FBVztnQkFDakIsdUJBQXVCLEVBQUUsdUJBQXVCLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQzNELG9CQUFvQjthQUNyQixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQ7Ozs7V0FJRztRQUNLLDhCQUE4QixDQUFDLElBQXFCO1lBQ3hELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUF1QyxDQUFDO1lBRXZFLE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBa0MsRUFBRSxFQUFFO2dCQUMxRCxNQUFNLEtBQUssR0FBRyxTQUFTLEVBQUUsS0FBNEMsQ0FBQztnQkFDdEUsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLE1BQTZDLENBQUM7Z0JBQ3pFLElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDNUUsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUM3QixDQUFDO2dCQUVELE1BQU0sZUFBZSxHQUFJLFNBQVMsRUFBRSxTQUFpRCxFQUFFLE1BRTFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUNuQixPQUFPO2dCQUNYLENBQUM7Z0JBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2hFLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDcEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7d0JBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBK0IsQ0FBQyxDQUFDLENBQUM7b0JBQzVFLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7b0JBQ25DLGNBQWMsQ0FBQyxlQUEwQyxDQUFDLENBQUM7Z0JBQy9ELENBQUM7WUFDTCxDQUFDLENBQUM7WUFFRixNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUN6RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBK0IsQ0FBQyxDQUFDLENBQUM7WUFDMUYsQ0FBQztZQUVELE9BQU8sTUFBb0MsQ0FBQztRQUNoRCxDQUFDO1FBRUQ7Ozs7Ozs7OztXQVNHO1FBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUM5QixJQUFxQixFQUNyQixRQUF5QixFQUN6QixTQUFvQixFQUNwQixjQUErQyxFQUMvQyxnQkFBMEM7WUFFMUMsTUFBTSxXQUFXLEdBQUcsSUFBSSw4Q0FBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEUsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sWUFBWSxHQUFHLElBQUksbURBQTRCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25FLE1BQU0sWUFBWSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFO2dCQUMzRCx1QkFBdUIsRUFBRSxjQUFjLEtBQUssSUFBSSxJQUFJLGNBQWMsS0FBSyxTQUFTO2FBQ2pGLENBQUMsQ0FBQztZQUNILE1BQU0sdUJBQXVCLEdBQUcsSUFBSSw2REFBaUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkYsdUJBQXVCLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFOUQsTUFBTSxhQUFhLEdBQUcsSUFBSSx3Q0FBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0QsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztnQkFDckMsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLFFBQVE7Z0JBQ1IsU0FBUztnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1lBRWhDLE1BQU0sT0FBTyxHQUFHLElBQUksNENBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVEOzs7O1dBSUc7UUFDSyxhQUFhLENBQUMsSUFBYTtZQUkvQixNQUFNLFdBQVcsR0FBRyxJQUFBLDJCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsSUFBSSxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0IsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7WUFDNUQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxPQUFPLEdBQWtDLElBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDN0csT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQzVELENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLEVBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNMLENBQUM7UUFFRDs7Ozs7V0FLRztRQUNLLG9CQUFvQixDQUFDLElBQWUsRUFBRSxLQUFnQjtZQUMxRCxPQUFPLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLEtBQUssSUFBSSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUMzRixDQUFDO0tBQ0osQ0FBQTtJQTdoQlkscUJBQXFCO1FBRGpDLDJEQUF1QjtPQUNYLHFCQUFxQixDQTZoQmpDO0lBN2hCWSw4QkFBcUIsd0JBNmhCakMsQ0FBQTtBQUNMLENBQUMsRUFybEJnQixRQUFRLHdCQUFSLFFBQVEsUUFxbEJ4QiJ9
518
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybVJlY29yZENvbnNpc3RlbmN5U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9Gb3JtUmVjb3JkQ29uc2lzdGVuY3lTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7Ozs7Ozs7O0FBRTlELGdEQUFzRDtBQUN0RCxzR0FBeUY7QUFDekYsc0VBSTBDO0FBQzFDLCtCQUFvQztBQUNwQyxvRUFBMEU7QUFDMUUsc0VBQTJFO0FBQzNFLDRFQUFzRjtBQUN0RixrRUFBd0U7QUFDeEUsb0VBQTBFO0FBQzFFLDhEQUFvRTtBQUNwRSwwRUFBK0U7QUFDL0Usb0ZBQXlGO0FBS3pGLElBQWlCLFFBQVEsQ0FxbEJ4QjtBQXJsQkQsV0FBaUIsUUFBUTtJQTBDckI7Ozs7Ozs7Ozs7O09BV0c7SUFFSCxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFzQixTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFDNUQ7Ozs7Ozs7Ozs7O1dBV0c7UUFDSSxLQUFLLENBQUMsV0FBVyxDQUNwQixPQUEwQixFQUFFLFFBQXlCLEVBQUUsZ0JBQTBDO1lBRWpHLDBCQUEwQjtZQUMxQixNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRWpFLHdDQUF3QztZQUN4QyxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsTUFBTSxD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