valtech-components 4.0.981 → 4.0.983

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 (24) hide show
  1. package/esm2022/lib/components/atoms/button/button.component.mjs +3 -1
  2. package/esm2022/lib/components/organisms/field-schema-editor/field-schema-editor.component.mjs +332 -0
  3. package/esm2022/lib/components/organisms/field-schema-editor/field-schema-editor.i18n.mjs +71 -0
  4. package/esm2022/lib/components/organisms/field-schema-editor/types.mjs +2 -0
  5. package/esm2022/lib/components/organisms/survey-builder/survey-builder.component.mjs +269 -131
  6. package/esm2022/lib/components/organisms/survey-builder/survey-builder.i18n.mjs +19 -7
  7. package/esm2022/lib/components/organisms/survey-builder/types.mjs +31 -2
  8. package/esm2022/lib/components/organisms/survey-response/survey-response.component.mjs +294 -26
  9. package/esm2022/lib/components/types.mjs +1 -1
  10. package/esm2022/lib/version.mjs +2 -2
  11. package/esm2022/public-api.mjs +3 -1
  12. package/fesm2022/valtech-components.mjs +1056 -227
  13. package/fesm2022/valtech-components.mjs.map +1 -1
  14. package/lib/components/organisms/article/article.component.d.ts +1 -0
  15. package/lib/components/organisms/field-schema-editor/field-schema-editor.component.d.ts +90 -0
  16. package/lib/components/organisms/field-schema-editor/field-schema-editor.i18n.d.ts +2 -0
  17. package/lib/components/organisms/field-schema-editor/types.d.ts +60 -0
  18. package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +26 -14
  19. package/lib/components/organisms/survey-builder/types.d.ts +23 -5
  20. package/lib/components/organisms/survey-response/survey-response.component.d.ts +42 -1
  21. package/lib/components/types.d.ts +6 -0
  22. package/lib/version.d.ts +1 -1
  23. package/package.json +1 -1
  24. package/public-api.d.ts +2 -0
@@ -151,6 +151,7 @@ export class ButtonComponent {
151
151
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "val-button", inputs: { preset: "preset", props: "props" }, outputs: { onClick: "onClick" }, usesOnChanges: true, ngImport: i0, template: `
152
152
  <ion-button
153
153
  [attr.data-testid]="resolvedProps.token"
154
+ [attr.aria-label]="resolvedProps.ariaLabel || null"
154
155
  [type]="resolvedProps.type"
155
156
  [color]="resolvedProps.color"
156
157
  [expand]="resolvedProps.expand"
@@ -180,6 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
180
181
  args: [{ selector: 'val-button', standalone: true, imports: [CommonModule, RouterLink, IonButton, IonIcon, IonSpinner, IonText], template: `
181
182
  <ion-button
182
183
  [attr.data-testid]="resolvedProps.token"
184
+ [attr.aria-label]="resolvedProps.ariaLabel || null"
183
185
  [type]="resolvedProps.type"
184
186
  [color]="resolvedProps.color"
185
187
  [expand]="resolvedProps.expand"
@@ -210,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
210
212
  }], onClick: [{
211
213
  type: Output
212
214
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFrQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQWtDMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFVMUI7Ozs7Ozs7T0FPRztJQUNILFdBQVc7UUFDVCxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUk7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxLQUFLLE1BQU07WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFD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TUFBTTtzQkFBZCxLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFZTixPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBJb25UZXh0IH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBEb3dubG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kb3dubG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IEljb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZXNldHMnO1xuaW1wb3J0IHsgQWN0aW9uVHlwZSwgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlckxpbmssIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciwgSW9uVGV4dF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1idXR0b25cbiAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cInJlc29sdmVkUHJvcHMudG9rZW5cIlxuICAgICAgW3R5cGVdPVwicmVzb2x2ZWRQcm9wcy50eXBlXCJcbiAgICAgIFtjb2xvcl09XCJyZXNvbHZlZFByb3BzLmNvbG9yXCJcbiAgICAgIFtleHBhbmRdPVwicmVzb2x2ZWRQcm9wcy5leHBhbmRcIlxuICAgICAgW2ZpbGxdPVwiaW9uRmlsbCgpXCJcbiAgICAgIFtzaXplXT1cInJlc29sdmVkUHJvcHMuc2l6ZVwiXG4gICAgICBbaHJlZl09XCJyZXNvbHZlZFByb3BzLmhyZWZcIlxuICAgICAgW3JvdXRlckxpbmtdPVwicmVzb2x2ZWRQcm9wcy5yb3V0ZXJMaW5rID8/IG51bGxcIlxuICAgICAgW3RhcmdldF09XCJyZXNvbHZlZFByb3BzLnRhcmdldFwiXG4gICAgICBbc2hhcGVdPVwicmVzb2x2ZWRQcm9wcy5zaGFwZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInJlc29sdmVkUHJvcHMuc3RhdGUgPT09IHN0YXRlcy5ESVNBQkxFRFwiXG4gICAgICBbbmdDbGFzc109XCJzaXplQ2xhc3NlcygpXCJcbiAgICA+XG4gICAgICA8aW9uLWljb25cbiAgICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmljb25cIlxuICAgICAgICBbc2xvdF09XCJyZXNvbHZlZFByb3BzLmljb24uc2xvdFwiXG4gICAgICAgIFtuYW1lXT1cInJlc29sdmVkUHJvcHMuaWNvbi5uYW1lXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L2lvbi1pY29uPlxuICAgICAgPGlvbi1zcGlubmVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLldPUktJTkdcIiBuYW1lPVwiY2lyY3VsYXJcIiBhcmlhLWxhYmVsPVwiQ2FyZ2FuZG9cIj48L2lvbi1zcGlubmVyPlxuICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5zdGF0ZSAhPT0gc3RhdGVzLldPUktJTkdcIj57eyBkaXNwbGF5VGV4dCB9fTwvaW9uLXRleHQ+XG4gICAgPC9pb24tYnV0dG9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1idXR0b25cbiAqXG4gKiBBIGN1c3RvbWl6YWJsZSBidXR0b24gc3VwcG9ydGluZyBpY29ucywgbG9hZGluZyBzdGF0ZSwgbmF2aWdhdGlvbiwgYW5kIHByZXNldHMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQgKHJlY29tbWVuZGVkIHdpdGggaTE4bik6XG4gKiA8dmFsLWJ1dHRvbiBwcmVzZXQ9XCJwcmltYXJ5LWFjdGlvblwiIFtwcm9wc109XCJ7IHRleHQ6ICdTdWJtaXQnIHwgdCB9XCI+PC92YWwtYnV0dG9uPlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyB0ZXh0OlxuICogPHZhbC1idXR0b24gW3Byb3BzXT1cIntcbiAqICAgdGV4dDogJ1NhdmUnLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICB0eXBlOiAnYnV0dG9uJyxcbiAqICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAqICAgaWNvbjogeyBuYW1lOiAnc2F2ZScsIHNsb3Q6ICdzdGFydCcgfVxuICogfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoKVwiPjwvdmFsLWJ1dHRvbj5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseSAoZS5nLiwgJ3ByaW1hcnktYWN0aW9uJywgJ2RhbmdlcicpXG4gKiBAaW5wdXQgcHJvcHM6IEJ1dHRvbk1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGJ1dHRvbiAob3ZlcnJpZGVzIHByZXNldCB2YWx1ZXMpXG4gKiBAb3V0cHV0IG9uQ2xpY2sgLSBFbWl0cyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZFxuICovXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG5cbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IG9uIHRoZSBidXR0b24uXG4gICAqL1xuICBkaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIENsYXNlcyBkZSB0YW1hw7FvIGRlbCBib3TDs24uXG4gICAqXG4gICAqIGBpY29uLW9ubHlgIHNlIERFUklWQSBkZSBxdWUgbm8gaGF5YSB0ZXh0byBlbiB2ZXogZGUgcGVkaXJzZSBwb3IgcHJvcDogdW5cbiAgICogYm90w7NuIHNpbiB0ZXh0byB5YSBkZWNsYXLDsyB0b2RvIGxvIHF1ZSBoYWPDrWEgZmFsdGEgc2FiZXIsIHkgdW5hIHByb3AgZXh0cmFcbiAgICogc29sbyBhZ3JlZ2EgdW5hIGZvcm1hIGRlIHF1ZSBhbGd1aWVuIGxhIG9sdmlkZSB5IGVsIGJvdMOzbiBzYWxnYSBjb21vIGPDoXBzdWxhXG4gICAqIGVzdGlyYWRhLiBWZXIgbGEgZXNjYWxhIGVuIGJ1dHRvbi5jb21wb25lbnQuc2Nzcy5cbiAgICovXG4gIHNpemVDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LnNpemUpIGNsYXNzZXMucHVzaCh0aGlzLnJlc29sdmVkUHJvcHMuc2l6ZSk7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlUZXh0ICYmIHRoaXMucmVzb2x2ZWRQcm9wcz8uaWNvbikgY2xhc3Nlcy5wdXNoKCdpY29uLW9ubHknKTtcbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzPy5maWxsID09PSAndGludCcpIGNsYXNzZXMucHVzaCgnYnV0dG9uLXRpbnQnKTtcbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBgdGludGAgbm8gZXhpc3RlIGVuIElvbmljIOKAlCBzZSByZW5kZXJpemEgY29tbyBgY2xlYXJgIChzaW4gZm9uZG8vYm9yZGVcbiAgICogcHJvcGlvcyBkZSBJb25pYykgeSBsYSBzdXBlcmZpY2llIHRlbnVlIGxhIGFwb3J0YSBgLmJ1dHRvbi10aW50YCBlbiBlbFxuICAgKiBTQ1NTLCB2w61hIGxhIGNsYXNlIHF1ZSBhZ3JlZ2EgYHNpemVDbGFzc2VzKClgLlxuICAgKi9cbiAgaW9uRmlsbCgpOiAnY2xlYXInIHwgJ291dGxpbmUnIHwgJ3NvbGlkJyB8ICdkZWZhdWx0JyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcz8uZmlsbCA9PT0gJ3RpbnQnID8gJ2NsZWFyJyA6IHRoaXMucmVzb2x2ZWRQcm9wcz8uZmlsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgYnV0dG9uIGNvbmZpZ3VyYXRpb25zXG4gICAqIChzaXplLCBjb2xvciwgZmlsbCwgZXRjLikgdGhhdCBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBhcHAgbGV2ZWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtYnV0dG9uIHByZXNldD1cInByaW1hcnktYWN0aW9uXCIgW3Byb3BzXT1cInsgdGV4dDogJ1NhdmUnIH1cIj48L3ZhbC1idXR0b24+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiBjb25maWd1cmF0aW9uLiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBXaGVuIHVzaW5nIHByZXNldHMsIG9ubHkgcGFydGlhbCBwcm9wcyBhcmUgbmVlZGVkIChwcmVzZXQgcHJvdmlkZXMgZGVmYXVsdHMpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqIFByZXNldCB2YWx1ZXMgYXJlIG92ZXJyaWRkZW4gYnkgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBCdXR0b25NZXRhZGF0YSA9IHt9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvd25sb2FkOiBEb3dubG9hZFNlcnZpY2UsXG4gICAgX2ljb246IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdGlvbjogTmF2aWdhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlUZXh0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgICB0aGlzLnNldHVwRGlzcGxheVRleHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXQgPyAodGhpcy5wcmVzZXRzLmdldCgnYnV0dG9uJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgLy8gTWVyZ2U6IHByZXNldCBkZWZhdWx0cyA8IGV4cGxpY2l0IHByb3BzXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgQnV0dG9uTWV0YWRhdGE7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSB0ZXh0IGNvbnRlbnQgYmFzZWQgb24gdGhlIHJlc29sdmVkIHByb3BzIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNldHVwRGlzcGxheVRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy50ZXh0KSB7XG4gICAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLmludGVycG9sYXRlQ29udGVudCh0aGlzLnJlc29sdmVkUHJvcHMudGV4dCwgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnJlc29sdmVkUHJvcHMudGV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5jb250ZW50RmFsbGJhY2spIHtcbiAgICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OiB1c2UgZmFsbGJhY2sgaWYgdGV4dCBpcyBub3QgcHJvdmlkZWRcbiAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnJlc29sdmVkUHJvcHMuY29udGVudEZhbGxiYWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlUZXh0ID0gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludGVycG9sYXRlIHBsYWNlaG9sZGVycyBpbiBjb250ZW50IHdpdGggcHJvdmlkZWQgdmFsdWVzLlxuICAgKiBTdXBwb3J0cyB7e3BsYWNlaG9sZGVyfX0gZm9ybWF0LlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcnBvbGF0ZUNvbnRlbnQoY29udGVudDogc3RyaW5nLCB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb250ZW50LnJlcGxhY2UoL1xce1xceyhcXHcrKVxcfVxcfS9nLCAobWF0Y2gsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgPyBTdHJpbmcodmFsdWVzW2tleV0pIDogbWF0Y2g7XG4gICAgfSk7XG4gIH1cblxuICBjbGlja0hhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5zdGF0ZSA9PT0gdGhpcy5zdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmFjdGlvblR5cGUgPT09IEFjdGlvblR5cGUuQVBQX05BVklHQVRJT04pIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRQcm9wcy5saW5rKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmRvd25sb2FkKSB7XG4gICAgICB0aGlzLmRvd25sb2FkLmRvd25sb2FkTGlua0Zyb21Ccm93c2VyKHRoaXMucmVzb2x2ZWRQcm9wcy5kb3dubG9hZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5oYW5kbGVyKSB7XG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHMuaGFuZGxlcih0aGlzLnJlc29sdmVkUHJvcHMucmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLnJlc29sdmVkUHJvcHMudG9rZW4pO1xuICB9XG59XG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFrQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQW1DMUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFVMUI7Ozs7Ozs7T0FPRztJQUNILFdBQVc7UUFDVCxNQUFNLE9BQU8sR0FBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUk7WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxLQUFLLE1BQU07WUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQ2xGLENBQUM7SUE2QkQsWUFDVSxRQUF5QixFQUNqQyxLQUFrQixFQUNWLFVBQTZCO1FBRjdCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBRXpCLGVBQVUsR0FBVixVQUFVLENBQW1CO1FBaEV2QyxXQUFNLEdBQUcsZUFBZSxDQUFDO1FBRWpCLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFeEM7O1dBRUc7UUFDSCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQW9DekI7OztXQUdHO1FBQ00sVUFBSyxHQUE0QixFQUFFLENBQUM7UUFFN0M7OztXQUdHO1FBQ0gsa0JBQWEsR0FBbUIsRUFBb0IsQ0FBQztRQUVyRDs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBTWxDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssWUFBWTtRQUNsQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBNkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTVHLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLEdBQUcsV0FBVztZQUNkLEdBQUcsSUFBSSxDQUFDLEtBQUs7U0FDSSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQjtRQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMvRyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM5QyxnRUFBZ0U7WUFDaEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUN4RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCLENBQUMsT0FBZSxFQUFFLE1BQTJCO1FBQ3JFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUN0RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQTVJVSxlQUFlO21HQUFmLGVBQWUsMEtBbERoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQsd2lLQTNCUyxZQUFZLGlPQUFFLFVBQVUsb09BQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVUseUdBQUUsT0FBTzs7NEZBbURoRSxlQUFlO2tCQXREM0IsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFDbEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJUOzhJQWtFUSxNQUFNO3NCQUFkLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQVlOLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIsIElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IERvd25sb2FkU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlc2V0cyc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTGluaywgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBJb25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8aW9uLWJ1dHRvblxuICAgICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwicmVzb2x2ZWRQcm9wcy50b2tlblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkUHJvcHMuYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgW3R5cGVdPVwicmVzb2x2ZWRQcm9wcy50eXBlXCJcbiAgICAgIFtjb2xvcl09XCJyZXNvbHZlZFByb3BzLmNvbG9yXCJcbiAgICAgIFtleHBhbmRdPVwicmVzb2x2ZWRQcm9wcy5leHBhbmRcIlxuICAgICAgW2ZpbGxdPVwiaW9uRmlsbCgpXCJcbiAgICAgIFtzaXplXT1cInJlc29sdmVkUHJvcHMuc2l6ZVwiXG4gICAgICBbaHJlZl09XCJyZXNvbHZlZFByb3BzLmhyZWZcIlxuICAgICAgW3JvdXRlckxpbmtdPVwicmVzb2x2ZWRQcm9wcy5yb3V0ZXJMaW5rID8/IG51bGxcIlxuICAgICAgW3RhcmdldF09XCJyZXNvbHZlZFByb3BzLnRhcmdldFwiXG4gICAgICBbc2hhcGVdPVwicmVzb2x2ZWRQcm9wcy5zaGFwZVwiXG4gICAgICAoY2xpY2spPVwiY2xpY2tIYW5kbGVyKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInJlc29sdmVkUHJvcHMuc3RhdGUgPT09IHN0YXRlcy5ESVNBQkxFRFwiXG4gICAgICBbbmdDbGFzc109XCJzaXplQ2xhc3NlcygpXCJcbiAgICA+XG4gICAgICA8aW9uLWljb25cbiAgICAgICAgKm5nSWY9XCJyZXNvbHZlZFByb3BzLmljb25cIlxuICAgICAgICBbc2xvdF09XCJyZXNvbHZlZFByb3BzLmljb24uc2xvdFwiXG4gICAgICAgIFtuYW1lXT1cInJlc29sdmVkUHJvcHMuaWNvbi5uYW1lXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L2lvbi1pY29uPlxuICAgICAgPGlvbi1zcGlubmVyICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5zdGF0ZSA9PT0gc3RhdGVzLldPUktJTkdcIiBuYW1lPVwiY2lyY3VsYXJcIiBhcmlhLWxhYmVsPVwiQ2FyZ2FuZG9cIj48L2lvbi1zcGlubmVyPlxuICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwicmVzb2x2ZWRQcm9wcy5zdGF0ZSAhPT0gc3RhdGVzLldPUktJTkdcIj57eyBkaXNwbGF5VGV4dCB9fTwvaW9uLXRleHQ+XG4gICAgPC9pb24tYnV0dG9uPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1idXR0b25cbiAqXG4gKiBBIGN1c3RvbWl6YWJsZSBidXR0b24gc3VwcG9ydGluZyBpY29ucywgbG9hZGluZyBzdGF0ZSwgbmF2aWdhdGlvbiwgYW5kIHByZXNldHMuXG4gKlxuICogQGV4YW1wbGUgV2l0aCBwcmVzZXQgKHJlY29tbWVuZGVkIHdpdGggaTE4bik6XG4gKiA8dmFsLWJ1dHRvbiBwcmVzZXQ9XCJwcmltYXJ5LWFjdGlvblwiIFtwcm9wc109XCJ7IHRleHQ6ICdTdWJtaXQnIHwgdCB9XCI+PC92YWwtYnV0dG9uPlxuICpcbiAqIEBleGFtcGxlIFN0YXRpYyB0ZXh0OlxuICogPHZhbC1idXR0b24gW3Byb3BzXT1cIntcbiAqICAgdGV4dDogJ1NhdmUnLFxuICogICBjb2xvcjogJ3ByaW1hcnknLFxuICogICB0eXBlOiAnYnV0dG9uJyxcbiAqICAgc3RhdGU6ICdFTkFCTEVEJyxcbiAqICAgaWNvbjogeyBuYW1lOiAnc2F2ZScsIHNsb3Q6ICdzdGFydCcgfVxuICogfVwiIChvbkNsaWNrKT1cImhhbmRsZXIoKVwiPjwvdmFsLWJ1dHRvbj5cbiAqXG4gKiBAaW5wdXQgcHJlc2V0OiBzdHJpbmcgLSBOYW1lIG9mIHByZXNldCB0byBhcHBseSAoZS5nLiwgJ3ByaW1hcnktYWN0aW9uJywgJ2RhbmdlcicpXG4gKiBAaW5wdXQgcHJvcHM6IEJ1dHRvbk1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGJ1dHRvbiAob3ZlcnJpZGVzIHByZXNldCB2YWx1ZXMpXG4gKiBAb3V0cHV0IG9uQ2xpY2sgLSBFbWl0cyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZFxuICovXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBzdGF0ZXMgPSBDb21wb25lbnRTdGF0ZXM7XG5cbiAgcHJpdmF0ZSBwcmVzZXRzID0gaW5qZWN0KFByZXNldFNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCB0byBkaXNwbGF5IG9uIHRoZSBidXR0b24uXG4gICAqL1xuICBkaXNwbGF5VGV4dDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIENsYXNlcyBkZSB0YW1hw7FvIGRlbCBib3TDs24uXG4gICAqXG4gICAqIGBpY29uLW9ubHlgIHNlIERFUklWQSBkZSBxdWUgbm8gaGF5YSB0ZXh0byBlbiB2ZXogZGUgcGVkaXJzZSBwb3IgcHJvcDogdW5cbiAgICogYm90w7NuIHNpbiB0ZXh0byB5YSBkZWNsYXLDsyB0b2RvIGxvIHF1ZSBoYWPDrWEgZmFsdGEgc2FiZXIsIHkgdW5hIHByb3AgZXh0cmFcbiAgICogc29sbyBhZ3JlZ2EgdW5hIGZvcm1hIGRlIHF1ZSBhbGd1aWVuIGxhIG9sdmlkZSB5IGVsIGJvdMOzbiBzYWxnYSBjb21vIGPDoXBzdWxhXG4gICAqIGVzdGlyYWRhLiBWZXIgbGEgZXNjYWxhIGVuIGJ1dHRvbi5jb21wb25lbnQuc2Nzcy5cbiAgICovXG4gIHNpemVDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh0aGlzLnJlc29sdmVkUHJvcHM/LnNpemUpIGNsYXNzZXMucHVzaCh0aGlzLnJlc29sdmVkUHJvcHMuc2l6ZSk7XG4gICAgaWYgKCF0aGlzLmRpc3BsYXlUZXh0ICYmIHRoaXMucmVzb2x2ZWRQcm9wcz8uaWNvbikgY2xhc3Nlcy5wdXNoKCdpY29uLW9ubHknKTtcbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzPy5maWxsID09PSAndGludCcpIGNsYXNzZXMucHVzaCgnYnV0dG9uLXRpbnQnKTtcbiAgICByZXR1cm4gY2xhc3NlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBgdGludGAgbm8gZXhpc3RlIGVuIElvbmljIOKAlCBzZSByZW5kZXJpemEgY29tbyBgY2xlYXJgIChzaW4gZm9uZG8vYm9yZGVcbiAgICogcHJvcGlvcyBkZSBJb25pYykgeSBsYSBzdXBlcmZpY2llIHRlbnVlIGxhIGFwb3J0YSBgLmJ1dHRvbi10aW50YCBlbiBlbFxuICAgKiBTQ1NTLCB2w61hIGxhIGNsYXNlIHF1ZSBhZ3JlZ2EgYHNpemVDbGFzc2VzKClgLlxuICAgKi9cbiAgaW9uRmlsbCgpOiAnY2xlYXInIHwgJ291dGxpbmUnIHwgJ3NvbGlkJyB8ICdkZWZhdWx0JyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRQcm9wcz8uZmlsbCA9PT0gJ3RpbnQnID8gJ2NsZWFyJyA6IHRoaXMucmVzb2x2ZWRQcm9wcz8uZmlsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVzZXQgbmFtZSB0byBhcHBseS4gUHJlc2V0cyBkZWZpbmUgcmV1c2FibGUgYnV0dG9uIGNvbmZpZ3VyYXRpb25zXG4gICAqIChzaXplLCBjb2xvciwgZmlsbCwgZXRjLikgdGhhdCBjYW4gYmUgcmVnaXN0ZXJlZCBhdCBhcHAgbGV2ZWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDx2YWwtYnV0dG9uIHByZXNldD1cInByaW1hcnktYWN0aW9uXCIgW3Byb3BzXT1cInsgdGV4dDogJ1NhdmUnIH1cIj48L3ZhbC1idXR0b24+XG4gICAqL1xuICBASW5wdXQoKSBwcmVzZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJ1dHRvbiBjb25maWd1cmF0aW9uLiBWYWx1ZXMgaGVyZSBvdmVycmlkZSBwcmVzZXQgdmFsdWVzLlxuICAgKiBXaGVuIHVzaW5nIHByZXNldHMsIG9ubHkgcGFydGlhbCBwcm9wcyBhcmUgbmVlZGVkIChwcmVzZXQgcHJvdmlkZXMgZGVmYXVsdHMpLlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+ID0ge307XG5cbiAgLyoqXG4gICAqIFJlc29sdmVkIHByb3BzIGFmdGVyIG1lcmdpbmcgcHJlc2V0ICsgZXhwbGljaXQgcHJvcHMuXG4gICAqIFByZXNldCB2YWx1ZXMgYXJlIG92ZXJyaWRkZW4gYnkgZXhwbGljaXQgcHJvcHMuXG4gICAqL1xuICByZXNvbHZlZFByb3BzOiBCdXR0b25NZXRhZGF0YSA9IHt9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRvd25sb2FkOiBEb3dubG9hZFNlcnZpY2UsXG4gICAgX2ljb246IEljb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbmF2aWdhdGlvbjogTmF2aWdhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgdGhpcy5zZXR1cERpc3BsYXlUZXh0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3ByZXNldCddIHx8IGNoYW5nZXNbJ3Byb3BzJ10pIHtcbiAgICAgIHRoaXMucmVzb2x2ZVByb3BzKCk7XG4gICAgICB0aGlzLnNldHVwRGlzcGxheVRleHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWVyZ2UgcHJlc2V0IGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcm9wcy5cbiAgICogRXhwbGljaXQgcHJvcHMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgcHJlc2V0IHZhbHVlcy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZVByb3BzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXNldFByb3BzID0gdGhpcy5wcmVzZXQgPyAodGhpcy5wcmVzZXRzLmdldCgnYnV0dG9uJywgdGhpcy5wcmVzZXQpIGFzIFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+KSA6IHt9O1xuXG4gICAgLy8gTWVyZ2U6IHByZXNldCBkZWZhdWx0cyA8IGV4cGxpY2l0IHByb3BzXG4gICAgdGhpcy5yZXNvbHZlZFByb3BzID0ge1xuICAgICAgLi4ucHJlc2V0UHJvcHMsXG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgIH0gYXMgQnV0dG9uTWV0YWRhdGE7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSB0ZXh0IGNvbnRlbnQgYmFzZWQgb24gdGhlIHJlc29sdmVkIHByb3BzIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNldHVwRGlzcGxheVRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy50ZXh0KSB7XG4gICAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLmludGVycG9sYXRlQ29udGVudCh0aGlzLnJlc29sdmVkUHJvcHMudGV4dCwgdGhpcy5yZXNvbHZlZFByb3BzLmNvbnRlbnRJbnRlcnBvbGF0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnJlc29sdmVkUHJvcHMudGV4dDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5jb250ZW50RmFsbGJhY2spIHtcbiAgICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OiB1c2UgZmFsbGJhY2sgaWYgdGV4dCBpcyBub3QgcHJvdmlkZWRcbiAgICAgIHRoaXMuZGlzcGxheVRleHQgPSB0aGlzLnJlc29sdmVkUHJvcHMuY29udGVudEZhbGxiYWNrO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRpc3BsYXlUZXh0ID0gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludGVycG9sYXRlIHBsYWNlaG9sZGVycyBpbiBjb250ZW50IHdpdGggcHJvdmlkZWQgdmFsdWVzLlxuICAgKiBTdXBwb3J0cyB7e3BsYWNlaG9sZGVyfX0gZm9ybWF0LlxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcnBvbGF0ZUNvbnRlbnQoY29udGVudDogc3RyaW5nLCB2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb250ZW50LnJlcGxhY2UoL1xce1xceyhcXHcrKVxcfVxcfS9nLCAobWF0Y2gsIGtleSkgPT4ge1xuICAgICAgcmV0dXJuIHZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgPyBTdHJpbmcodmFsdWVzW2tleV0pIDogbWF0Y2g7XG4gICAgfSk7XG4gIH1cblxuICBjbGlja0hhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5zdGF0ZSA9PT0gdGhpcy5zdGF0ZXMuRElTQUJMRUQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmFjdGlvblR5cGUgPT09IEFjdGlvblR5cGUuQVBQX05BVklHQVRJT04pIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZUJ5VXJsKHRoaXMucmVzb2x2ZWRQcm9wcy5saW5rKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXNvbHZlZFByb3BzLmRvd25sb2FkKSB7XG4gICAgICB0aGlzLmRvd25sb2FkLmRvd25sb2FkTGlua0Zyb21Ccm93c2VyKHRoaXMucmVzb2x2ZWRQcm9wcy5kb3dubG9hZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVzb2x2ZWRQcm9wcy5oYW5kbGVyKSB7XG4gICAgICB0aGlzLnJlc29sdmVkUHJvcHMuaGFuZGxlcih0aGlzLnJlc29sdmVkUHJvcHMucmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh0aGlzLnJlc29sdmVkUHJvcHMudG9rZW4pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,332 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, computed, inject, signal } from '@angular/core';
3
+ import { FormControl, ReactiveFormsModule } from '@angular/forms';
4
+ import { I18nService } from '../../../services/i18n';
5
+ import { FormSchemaBuilderService } from '../../../services/forms/form-schema-builder.service';
6
+ import { ComponentStates, InputType } from '../../types';
7
+ import { FormFieldComponent } from '../../molecules/form-field/form-field.component';
8
+ import { TextInputComponent } from '../../molecules/text-input/text-input.component';
9
+ import { TextareaInputComponent } from '../../molecules/textarea-input/textarea-input.component';
10
+ import { SearchSelectorComponent } from '../../molecules/select-input/select-input.component';
11
+ import { ToggleInputComponent } from '../../molecules/toggle-input/toggle-input.component';
12
+ import { FieldOptionsEditorComponent } from '../../molecules/field-options-editor/field-options-editor.component';
13
+ import { FIELD_SCHEMA_EDITOR_I18N } from './field-schema-editor.i18n';
14
+ import * as i0 from "@angular/core";
15
+ const NAMESPACE = 'FieldSchemaEditor';
16
+ /**
17
+ * Tipos cuyo valor sale de una lista cerrada que define quien arma el
18
+ * formulario — sin al menos una opción, el campo no se puede responder.
19
+ * Espejo de `fieldRequiresOptions` que vivía duplicado en bingo.
20
+ */
21
+ export const FIELD_TYPES_WITH_OPTIONS = ['SELECT', 'RADIO', 'MULTI_SELECT'];
22
+ let fieldUid = 0;
23
+ /**
24
+ * val-field-schema-editor
25
+ *
26
+ * Edita UN campo de un formulario dinámico: texto, tipo, placeholder, nota,
27
+ * obligatoriedad y opciones. Es la pieza que faltaba en la lib — hasta ahora
28
+ * el único editor de campos con este nivel vivía dentro de bingo
29
+ * (`checkout-field-modal.component.ts`), invisible para el resto del factory,
30
+ * y `val-survey-builder` había terminado con una versión pobre de lo mismo
31
+ * (dos tipos fijos, sin placeholder ni opciones).
32
+ *
33
+ * Es agnóstico de dominio a propósito:
34
+ * - el **catálogo de tipos** (`allowedTypes`) lo decide el consumer, porque es
35
+ * él quien sabe qué sabe renderizar su formulario;
36
+ * - los **presets** los pasa el consumer, porque "correo del comprador" es de
37
+ * checkout y no significa nada en una encuesta.
38
+ *
39
+ * No trae cáscara de modal: el consumer lo envuelve en `val-modal-layout` (o
40
+ * en lo que quiera) y dispara `submit()` desde su propio botón, igual que hace
41
+ * `survey-create-modal` con `val-survey-builder`.
42
+ */
43
+ export class FieldSchemaEditorComponent {
44
+ constructor() {
45
+ this.props = { allowedTypes: ['TEXT'] };
46
+ this.save = new EventEmitter();
47
+ this.i18n = inject(I18nService);
48
+ this.formSchemas = inject(FormSchemaBuilderService);
49
+ this.labelControl = new FormControl('', { nonNullable: true });
50
+ this.placeholderControl = new FormControl('', { nonNullable: true });
51
+ this.hintControl = new FormControl('', { nonNullable: true });
52
+ this.requiredControl = new FormControl(true, { nonNullable: true });
53
+ this.typeControl = new FormControl('TEXT', { nonNullable: true });
54
+ this.options = signal([]);
55
+ this.validationError = signal('');
56
+ this.selectedPresetId = signal('');
57
+ /** Se refresca con cada cambio de tipo — `needsOptions` no puede leer el control directo. */
58
+ this.currentType = signal('TEXT');
59
+ /** Una vez que se toca el token a mano (o se edita un campo ya guardado) deja de derivarse del label. */
60
+ this.nameLocked = false;
61
+ this.name = '';
62
+ this.fieldId = '';
63
+ this.typeSelectProps = computed(() => {
64
+ this.i18n.lang();
65
+ return {
66
+ control: this.typeControl,
67
+ type: InputType.SELECT,
68
+ state: this.state(),
69
+ placeholder: this.t('typeLabel'),
70
+ options: this.allowedTypes().map((type, order) => ({ id: type, name: this.typeLabel(type), order })),
71
+ };
72
+ });
73
+ this.optionsEditorProps = computed(() => {
74
+ this.i18n.lang();
75
+ return {
76
+ title: this.t('optionsTitle'),
77
+ hint: this.t('optionsHint'),
78
+ addLabel: this.t('optionsAdd'),
79
+ optionsLabel: this.t('optionsList'),
80
+ placeholder: this.t('optionsPlaceholder'),
81
+ emptyText: this.t('optionsEmpty'),
82
+ removeOptionLabel: this.t('optionsRemove'),
83
+ reorderOptionLabel: this.t('optionsReorder'),
84
+ state: this.state(),
85
+ options: this.options(),
86
+ };
87
+ });
88
+ if (!this.i18n.hasNamespace(NAMESPACE)) {
89
+ this.i18n.registerDefaults(NAMESPACE, FIELD_SCHEMA_EDITOR_I18N);
90
+ }
91
+ this.typeControl.valueChanges.subscribe(value => this.currentType.set(value || 'TEXT'));
92
+ this.labelControl.valueChanges.subscribe(value => {
93
+ if (!this.nameLocked)
94
+ this.name = this.formSchemas.toToken(value || '');
95
+ });
96
+ }
97
+ ngOnInit() {
98
+ const initial = this.props.field;
99
+ if (initial) {
100
+ this.fieldId = initial.id;
101
+ this.nameLocked = true;
102
+ this.name = initial.name;
103
+ this.labelControl.setValue(initial.label ?? '');
104
+ this.placeholderControl.setValue(initial.placeholderText ?? '');
105
+ this.hintControl.setValue(initial.hintText ?? '');
106
+ this.requiredControl.setValue(!!initial.required);
107
+ this.typeControl.setValue(this.coerceType(initial.type));
108
+ this.options.set(initial.options ?? []);
109
+ return;
110
+ }
111
+ this.fieldId = `field-${++fieldUid}`;
112
+ this.typeControl.setValue(this.coerceType(this.typeControl.value));
113
+ const first = this.props.presets?.[0];
114
+ if (first)
115
+ this.selectPreset(first);
116
+ }
117
+ t(key) {
118
+ this.i18n.lang();
119
+ return this.i18n.t(key, NAMESPACE);
120
+ }
121
+ state() {
122
+ return this.props.state ?? ComponentStates.ENABLED;
123
+ }
124
+ showPresets() {
125
+ return this.props.mode !== 'edit' && !!this.props.presets?.length;
126
+ }
127
+ needsOptions() {
128
+ return FIELD_TYPES_WITH_OPTIONS.includes(this.currentType());
129
+ }
130
+ typeLabel(type) {
131
+ return this.props.typeLabels?.[type] || this.t(`type${type}`);
132
+ }
133
+ selectPreset(preset) {
134
+ this.selectedPresetId.set(preset.id);
135
+ const value = preset.field;
136
+ // El preset fija el token: "correo del comprador" tiene que llamarse
137
+ // `email` aunque después le cambien el texto visible.
138
+ this.nameLocked = !!value.name;
139
+ this.name = value.name || this.formSchemas.toToken(value.label || '');
140
+ this.labelControl.setValue(value.label ?? '');
141
+ this.placeholderControl.setValue(value.placeholderText ?? '');
142
+ this.hintControl.setValue(value.hintText ?? '');
143
+ this.requiredControl.setValue(!!value.required);
144
+ this.typeControl.setValue(this.coerceType(value.type));
145
+ this.options.set(value.options ?? []);
146
+ }
147
+ /**
148
+ * Valida y emite. Público a propósito: lo llama el consumer desde el botón
149
+ * de su propia cáscara (modal, página o acordeón).
150
+ */
151
+ submit() {
152
+ const field = this.value();
153
+ if (!field.label || !field.name || !field.type) {
154
+ this.validationError.set(this.t('errorIncomplete'));
155
+ return false;
156
+ }
157
+ if (this.needsOptions() && !(field.options?.length ?? 0)) {
158
+ this.validationError.set(this.t('errorOptionsRequired'));
159
+ return false;
160
+ }
161
+ this.validationError.set('');
162
+ this.save.emit(field);
163
+ return true;
164
+ }
165
+ /** El campo tal como está en pantalla, sin validar. */
166
+ value() {
167
+ const label = (this.labelControl.value || '').trim();
168
+ return {
169
+ id: this.fieldId,
170
+ name: this.formSchemas.toToken(this.name || label),
171
+ label,
172
+ placeholderText: (this.placeholderControl.value || '').trim(),
173
+ hintText: (this.hintControl.value || '').trim(),
174
+ type: this.coerceType(this.typeControl.value),
175
+ required: this.requiredControl.value,
176
+ options: this.needsOptions() ? this.options().map((option, index) => ({ ...option, order: index })) : undefined,
177
+ };
178
+ }
179
+ allowedTypes() {
180
+ return this.props.allowedTypes?.length ? this.props.allowedTypes : ['TEXT'];
181
+ }
182
+ /**
183
+ * Un tipo fuera del catálogo del consumer cae al primero permitido. Pasa al
184
+ * editar un campo guardado con un tipo que la app ya no ofrece (bingo lo
185
+ * hacía con ATTACHMENT cuando el medio de pago no lo admite): sin esto, el
186
+ * select queda en un valor que no está en su lista y se ve vacío.
187
+ */
188
+ coerceType(type) {
189
+ const allowed = this.allowedTypes();
190
+ return allowed.includes(type) ? type : allowed[0];
191
+ }
192
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldSchemaEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: FieldSchemaEditorComponent, isStandalone: true, selector: "val-field-schema-editor", inputs: { props: "props" }, outputs: { save: "save" }, ngImport: i0, template: `
194
+ <div class="field-schema-editor">
195
+ @if (showPresets()) {
196
+ <section class="field-schema-editor__presets">
197
+ <span class="field-schema-editor__section-label">{{ props.presetsTitle || t('presetsTitle') }}</span>
198
+ <div class="field-schema-editor__preset-grid">
199
+ @for (preset of props.presets; track preset.id) {
200
+ <button
201
+ type="button"
202
+ class="field-schema-editor__preset"
203
+ [class.field-schema-editor__preset--selected]="selectedPresetId() === preset.id"
204
+ (click)="selectPreset(preset)"
205
+ >
206
+ <strong>{{ preset.label }}</strong>
207
+ @if (preset.description) {
208
+ <span>{{ preset.description }}</span>
209
+ }
210
+ </button>
211
+ }
212
+ </div>
213
+ </section>
214
+ }
215
+
216
+ <val-form-field [label]="t('labelLabel')">
217
+ <val-text-input [props]="{ control: labelControl, placeholder: t('labelPlaceholder'), state: state() }" />
218
+ </val-form-field>
219
+
220
+ <val-form-field [label]="t('typeLabel')">
221
+ <val-select-input [props]="typeSelectProps()" />
222
+ </val-form-field>
223
+
224
+ @if (props.showPlaceholder !== false) {
225
+ <val-form-field [label]="t('placeholderLabel')">
226
+ <val-textarea-input [props]="{ control: placeholderControl, autoGrow: true, state: state() }" />
227
+ </val-form-field>
228
+ }
229
+
230
+ @if (props.showHint !== false) {
231
+ <val-form-field [label]="t('hintLabel')">
232
+ <val-textarea-input [props]="{ control: hintControl, autoGrow: true, state: state() }" />
233
+ </val-form-field>
234
+ }
235
+
236
+ <val-toggle-input
237
+ [props]="{
238
+ control: requiredControl,
239
+ label: t('requiredLabel'),
240
+ justify: 'space-between',
241
+ state: state(),
242
+ }"
243
+ />
244
+
245
+ @if (needsOptions()) {
246
+ <val-field-options-editor [props]="optionsEditorProps()" (optionsChange)="options.set($event)" />
247
+ }
248
+
249
+ @if (validationError()) {
250
+ <p class="field-schema-editor__error">{{ validationError() }}</p>
251
+ }
252
+ </div>
253
+ `, isInline: true, styles: [":host{display:block}.field-schema-editor{display:flex;flex-direction:column;gap:12px}.field-schema-editor__presets{display:flex;flex-direction:column;gap:8px}.field-schema-editor__section-label{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ion-color-medium, #92949c)}.field-schema-editor__preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.field-schema-editor__preset{min-height:80px;padding:12px;border:1px solid var(--val-border-color, var(--ion-border-color, rgba(0, 0, 0, .1)));border-radius:var(--val-radius-md, 12px);background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-text-color);text-align:left;cursor:pointer}.field-schema-editor__preset strong,.field-schema-editor__preset span{display:block}.field-schema-editor__preset span{margin-top:4px;font-size:.8125rem;line-height:1.3;color:var(--ion-color-medium, #92949c)}.field-schema-editor__preset--selected{border-color:var(--ion-color-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.14)}.field-schema-editor__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: FormFieldComponent, selector: "val-form-field", inputs: ["label"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["preset", "props"] }, { kind: "component", type: TextareaInputComponent, selector: "val-textarea-input", inputs: ["preset", "props"] }, { kind: "component", type: SearchSelectorComponent, selector: "val-select-input", inputs: ["preset", "props"] }, { kind: "component", type: ToggleInputComponent, selector: "val-toggle-input", inputs: ["preset", "props"] }, { kind: "component", type: FieldOptionsEditorComponent, selector: "val-field-options-editor", inputs: ["props"], outputs: ["optionsChange"] }] }); }
254
+ }
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FieldSchemaEditorComponent, decorators: [{
256
+ type: Component,
257
+ args: [{ selector: 'val-field-schema-editor', standalone: true, imports: [
258
+ CommonModule,
259
+ ReactiveFormsModule,
260
+ FormFieldComponent,
261
+ TextInputComponent,
262
+ TextareaInputComponent,
263
+ SearchSelectorComponent,
264
+ ToggleInputComponent,
265
+ FieldOptionsEditorComponent,
266
+ ], template: `
267
+ <div class="field-schema-editor">
268
+ @if (showPresets()) {
269
+ <section class="field-schema-editor__presets">
270
+ <span class="field-schema-editor__section-label">{{ props.presetsTitle || t('presetsTitle') }}</span>
271
+ <div class="field-schema-editor__preset-grid">
272
+ @for (preset of props.presets; track preset.id) {
273
+ <button
274
+ type="button"
275
+ class="field-schema-editor__preset"
276
+ [class.field-schema-editor__preset--selected]="selectedPresetId() === preset.id"
277
+ (click)="selectPreset(preset)"
278
+ >
279
+ <strong>{{ preset.label }}</strong>
280
+ @if (preset.description) {
281
+ <span>{{ preset.description }}</span>
282
+ }
283
+ </button>
284
+ }
285
+ </div>
286
+ </section>
287
+ }
288
+
289
+ <val-form-field [label]="t('labelLabel')">
290
+ <val-text-input [props]="{ control: labelControl, placeholder: t('labelPlaceholder'), state: state() }" />
291
+ </val-form-field>
292
+
293
+ <val-form-field [label]="t('typeLabel')">
294
+ <val-select-input [props]="typeSelectProps()" />
295
+ </val-form-field>
296
+
297
+ @if (props.showPlaceholder !== false) {
298
+ <val-form-field [label]="t('placeholderLabel')">
299
+ <val-textarea-input [props]="{ control: placeholderControl, autoGrow: true, state: state() }" />
300
+ </val-form-field>
301
+ }
302
+
303
+ @if (props.showHint !== false) {
304
+ <val-form-field [label]="t('hintLabel')">
305
+ <val-textarea-input [props]="{ control: hintControl, autoGrow: true, state: state() }" />
306
+ </val-form-field>
307
+ }
308
+
309
+ <val-toggle-input
310
+ [props]="{
311
+ control: requiredControl,
312
+ label: t('requiredLabel'),
313
+ justify: 'space-between',
314
+ state: state(),
315
+ }"
316
+ />
317
+
318
+ @if (needsOptions()) {
319
+ <val-field-options-editor [props]="optionsEditorProps()" (optionsChange)="options.set($event)" />
320
+ }
321
+
322
+ @if (validationError()) {
323
+ <p class="field-schema-editor__error">{{ validationError() }}</p>
324
+ }
325
+ </div>
326
+ `, styles: [":host{display:block}.field-schema-editor{display:flex;flex-direction:column;gap:12px}.field-schema-editor__presets{display:flex;flex-direction:column;gap:8px}.field-schema-editor__section-label{font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ion-color-medium, #92949c)}.field-schema-editor__preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.field-schema-editor__preset{min-height:80px;padding:12px;border:1px solid var(--val-border-color, var(--ion-border-color, rgba(0, 0, 0, .1)));border-radius:var(--val-radius-md, 12px);background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-text-color);text-align:left;cursor:pointer}.field-schema-editor__preset strong,.field-schema-editor__preset span{display:block}.field-schema-editor__preset span{margin-top:4px;font-size:.8125rem;line-height:1.3;color:var(--ion-color-medium, #92949c)}.field-schema-editor__preset--selected{border-color:var(--ion-color-primary);box-shadow:0 0 0 2px rgba(var(--ion-color-primary-rgb, 255, 0, 178),.14)}.field-schema-editor__error{margin:0;color:var(--ion-color-danger);font-size:.875rem;font-weight:700}\n"] }]
327
+ }], ctorParameters: () => [], propDecorators: { props: [{
328
+ type: Input
329
+ }], save: [{
330
+ type: Output
331
+ }] } });
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtc2NoZW1hLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLXNjaGVtYS1lZGl0b3IvZmllbGQtc2NoZW1hLWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsZUFBZSxFQUFpQixTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDakcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDM0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFFbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRXRFLE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDO0FB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LE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7K0dBcEtVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDBJQXpIM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTREVCw0dkNBckVDLFlBQVksOEJBQ1osbUJBQW1CLCtCQUNuQixrQkFBa0IsOEVBQ2xCLGtCQUFrQix3RkFDbEIsc0JBQXNCLDRGQUN0Qix1QkFBdUIsMEZBQ3ZCLG9CQUFvQiwwRkFDcEIsMkJBQTJCOzs0RkEySGxCLDBCQUEwQjtrQkF0SXRDLFNBQVM7K0JBQ0UseUJBQXlCLGNBQ3ZCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLDJCQUEyQjtxQkFDNUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNERUO3dEQThEUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2EsSUFBSTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybXMvZm9ybS1zY2hlbWEtYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybXMvdHlwZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90b2dnbGUtaW5wdXQvdG9nZ2xlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZE9wdGlvbnNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZmllbGQtb3B0aW9ucy1lZGl0b3IvZmllbGQtb3B0aW9ucy1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRhYmxlRmllbGREZWYsIEZpZWxkU2NoZW1hRWRpdG9yTWV0YWRhdGEsIEZpZWxkU2NoZW1hRWRpdG9yUHJlc2V0IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGSUVMRF9TQ0hFTUFfRURJVE9SX0kxOE4gfSBmcm9tICcuL2ZpZWxkLXNjaGVtYS1lZGl0b3IuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdGaWVsZFNjaGVtYUVkaXRvcic7XG5cbi8qKlxuICogVGlwb3MgY3V5byB2YWxvciBzYWxlIGRlIHVuYSBsaXN0YSBjZXJyYWRhIHF1ZSBkZWZpbmUgcXVpZW4gYXJtYSBlbFxuICogZm9ybXVsYXJpbyDigJQgc2luIGFsIG1lbm9zIHVuYSBvcGNpw7NuLCBlbCBjYW1wbyBubyBzZSBwdWVkZSByZXNwb25kZXIuXG4gKiBFc3Blam8gZGUgYGZpZWxkUmVxdWlyZXNPcHRpb25zYCBxdWUgdml2w61hIGR1cGxpY2FkbyBlbiBiaW5nby5cbiAqL1xuZXhwb3J0IGNvbnN0IEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUyA9IFsnU0VMRUNUJywgJ1JBRElPJywgJ01VTFRJX1NFTEVDVCddO1xuXG5sZXQgZmllbGRVaWQgPSAwO1xuXG4vKipcbiAqIHZhbC1maWVsZC1zY2hlbWEtZWRpdG9yXG4gKlxuICogRWRpdGEgVU4gY2FtcG8gZGUgdW4gZm9ybXVsYXJpbyBkaW7DoW1pY286IHRleHRvLCB0aXBvLCBwbGFjZWhvbGRlciwgbm90YSxcbiAqIG9ibGlnYXRvcmllZGFkIHkgb3BjaW9uZXMuIEVzIGxhIHBpZXphIHF1ZSBmYWx0YWJhIGVuIGxhIGxpYiDigJQgaGFzdGEgYWhvcmFcbiAqIGVsIMO6bmljbyBlZGl0b3IgZGUgY2FtcG9zIGNvbiBlc3RlIG5pdmVsIHZpdsOtYSBkZW50cm8gZGUgYmluZ29cbiAqIChgY2hlY2tvdXQtZmllbGQtbW9kYWwuY29tcG9uZW50LnRzYCksIGludmlzaWJsZSBwYXJhIGVsIHJlc3RvIGRlbCBmYWN0b3J5LFxuICogeSBgdmFsLXN1cnZleS1idWlsZGVyYCBoYWLDrWEgdGVybWluYWRvIGNvbiB1bmEgdmVyc2nDs24gcG9icmUgZGUgbG8gbWlzbW9cbiAqIChkb3MgdGlwb3MgZmlqb3MsIHNpbiBwbGFjZWhvbGRlciBuaSBvcGNpb25lcykuXG4gKlxuICogRXMgYWduw7NzdGljbyBkZSBkb21pbmlvIGEgcHJvcMOzc2l0bzpcbiAqIC0gZWwgKipjYXTDoWxvZ28gZGUgdGlwb3MqKiAoYGFsbG93ZWRUeXBlc2ApIGxvIGRlY2lkZSBlbCBjb25zdW1lciwgcG9ycXVlIGVzXG4gKiAgIMOpbCBxdWllbiBzYWJlIHF1w6kgc2FiZSByZW5kZXJpemFyIHN1IGZvcm11bGFyaW87XG4gKiAtIGxvcyAqKnByZXNldHMqKiBsb3MgcGFzYSBlbCBjb25zdW1lciwgcG9ycXVlIFwiY29ycmVvIGRlbCBjb21wcmFkb3JcIiBlcyBkZVxuICogICBjaGVja291dCB5IG5vIHNpZ25pZmljYSBuYWRhIGVuIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBObyB0cmFlIGPDoXNjYXJhIGRlIG1vZGFsOiBlbCBjb25zdW1lciBsbyBlbnZ1ZWx2ZSBlbiBgdmFsLW1vZGFsLWxheW91dGAgKG9cbiAqIGVuIGxvIHF1ZSBxdWllcmEpIHkgZGlzcGFyYSBgc3VibWl0KClgIGRlc2RlIHN1IHByb3BpbyBib3TDs24sIGlndWFsIHF1ZSBoYWNlXG4gKiBgc3VydmV5LWNyZWF0ZS1tb2RhbGAgY29uIGB2YWwtc3VydmV5LWJ1aWxkZXJgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZmllbGQtc2NoZW1hLWVkaXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3JtRmllbGRDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRleHRhcmVhSW5wdXRDb21wb25lbnQsXG4gICAgU2VhcmNoU2VsZWN0b3JDb21wb25lbnQsXG4gICAgVG9nZ2xlSW5wdXRDb21wb25lbnQsXG4gICAgRmllbGRPcHRpb25zRWRpdG9yQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1zY2hlbWEtZWRpdG9yXCI+XG4gICAgICBAaWYgKHNob3dQcmVzZXRzKCkpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJmaWVsZC1zY2hlbWEtZWRpdG9yX19wcmVzZXRzXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWVsZC1zY2hlbWEtZWRpdG9yX19zZWN0aW9uLWxhYmVsXCI+e3sgcHJvcHMucHJlc2V0c1RpdGxlIHx8IHQoJ3ByZXNldHNUaXRsZScpIH19PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1zY2hlbWEtZWRpdG9yX19wcmVzZXQtZ3JpZFwiPlxuICAgICAgICAgICAgQGZvciAocHJlc2V0IG9mIHByb3BzLnByZXNldHM7IHRyYWNrIHByZXNldC5pZCkge1xuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWVsZC1zY2hlbWEtZWRpdG9yX19wcmVzZXRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5maWVsZC1zY2hlbWEtZWRpdG9yX19wcmVzZXQtLXNlbGVjdGVkXT1cInNlbGVjdGVkUHJlc2V0SWQoKSA9PT0gcHJlc2V0LmlkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJlc2V0KHByZXNldClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN0cm9uZz57eyBwcmVzZXQubGFiZWwgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICBAaWYgKHByZXNldC5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcHJlc2V0LmRlc2NyaXB0aW9uIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJ0KCdsYWJlbExhYmVsJylcIj5cbiAgICAgICAgPHZhbC10ZXh0LWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IGxhYmVsQ29udHJvbCwgcGxhY2Vob2xkZXI6IHQoJ2xhYmVsUGxhY2Vob2xkZXInKSwgc3RhdGU6IHN0YXRlKCkgfVwiIC8+XG4gICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuXG4gICAgICA8dmFsLWZvcm0tZmllbGQgW2xhYmVsXT1cInQoJ3R5cGVMYWJlbCcpXCI+XG4gICAgICAgIDx2YWwtc2VsZWN0LWlucHV0IFtwcm9wc109XCJ0eXBlU2VsZWN0UHJvcHMoKVwiIC8+XG4gICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuXG4gICAgICBAaWYgKHByb3BzLnNob3dQbGFjZWhvbGRlciAhPT0gZmFsc2UpIHtcbiAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJ0KCdwbGFjZWhvbGRlckxhYmVsJylcIj5cbiAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0IFtwcm9wc109XCJ7IGNvbnRyb2w6IHBsYWNlaG9sZGVyQ29udHJvbCwgYXV0b0dyb3c6IHRydWUsIHN0YXRlOiBzdGF0ZSgpIH1cIiAvPlxuICAgICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLnNob3dIaW50ICE9PSBmYWxzZSkge1xuICAgICAgICA8dmFsLWZvcm0tZmllbGQgW2xhYmVsXT1cInQoJ2hpbnRMYWJlbCcpXCI+XG4gICAgICAgICAgPHZhbC10ZXh0YXJlYS1pbnB1dCBbcHJvcHNdPVwieyBjb250cm9sOiBoaW50Q29udHJvbCwgYXV0b0dyb3c6IHRydWUsIHN0YXRlOiBzdGF0ZSgpIH1cIiAvPlxuICAgICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgfVxuXG4gICAgICA8dmFsLXRvZ2dsZS1pbnB1dFxuICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgIGNvbnRyb2w6IHJlcXVpcmVkQ29udHJvbCxcbiAgICAgICAgICBsYWJlbDogdCgncmVxdWlyZWRMYWJlbCcpLFxuICAgICAgICAgIGp1c3RpZnk6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICBzdGF0ZTogc3RhdGUoKSxcbiAgICAgICAgfVwiXG4gICAgICAvPlxuXG4gICAgICBAaWYgKG5lZWRzT3B0aW9ucygpKSB7XG4gICAgICAgIDx2YWwtZmllbGQtb3B0aW9ucy1lZGl0b3IgW3Byb3BzXT1cIm9wdGlvbnNFZGl0b3JQcm9wcygpXCIgKG9wdGlvbnNDaGFuZ2UpPVwib3B0aW9ucy5zZXQoJGV2ZW50KVwiIC8+XG4gICAgICB9XG5cbiAgICAgIEBpZiAodmFsaWRhdGlvbkVycm9yKCkpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJmaWVsZC1zY2hlbWEtZWRpdG9yX19lcnJvclwiPnt7IHZhbGlkYXRpb25FcnJvcigpIH19PC9wPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLmZpZWxkLXNjaGVtYS1lZGl0b3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICB9XG4gICAgICAuZmllbGQtc2NoZW1hLWVkaXRvcl9fcHJlc2V0cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuICAgICAgLmZpZWxkLXNjaGVtYS1lZGl0b3JfX3NlY3Rpb24tbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgfVxuICAgICAgLmZpZWxkLXNjaGVtYS1lZGl0b3JfX3ByZXNldC1ncmlkIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxNjBweCwgMWZyKSk7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICAgIC5maWVsZC1zY2hlbWEtZWRpdG9yX19wcmVzZXQge1xuICAgICAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdmFsLXJhZGl1cy1tZCwgMTJweCk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvcik7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC5maWVsZC1zY2hlbWEtZWRpdG9yX19wcmVzZXQgc3Ryb25nLFxuICAgICAgLmZpZWxkLXNjaGVtYS1lZGl0b3JfX3ByZXNldCBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuZmllbGQtc2NoZW1hLWVkaXRvcl9fcHJlc2V0IHNwYW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAuZmllbGQtc2NoZW1hLWVkaXRvcl9fcHJlc2V0LS1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSh2YXIoLS1pb24tY29sb3ItcHJpbWFyeS1yZ2IsIDI1NSwgMCwgMTc4KSwgMC4xNCk7XG4gICAgICB9XG4gICAgICAuZmllbGQtc2NoZW1hLWVkaXRvcl9fZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZFNjaGVtYUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBGaWVsZFNjaGVtYUVkaXRvck1ldGFkYXRhID0geyBhbGxvd2VkVHlwZXM6IFsnVEVYVCddIH07XG4gIEBPdXRwdXQoKSByZWFkb25seSBzYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxFZGl0YWJsZUZpZWxkRGVmPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybVNjaGVtYXMgPSBpbmplY3QoRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlKTtcblxuICByZWFkb25seSBsYWJlbENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgcmVhZG9ubHkgaGludENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IHJlcXVpcmVkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0cnVlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSB0eXBlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnVEVYVCcsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgb3B0aW9ucyA9IHNpZ25hbDxGaWVsZE9wdGlvbltdPihbXSk7XG4gIHJlYWRvbmx5IHZhbGlkYXRpb25FcnJvciA9IHNpZ25hbCgnJyk7XG4gIHJlYWRvbmx5IHNlbGVjdGVkUHJlc2V0SWQgPSBzaWduYWwoJycpO1xuICAvKiogU2UgcmVmcmVzY2EgY29uIGNhZGEgY2FtYmlvIGRlIHRpcG8g4oCUIGBuZWVkc09wdGlvbnNgIG5vIHB1ZWRlIGxlZXIgZWwgY29udHJvbCBkaXJlY3RvLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGN1cnJlbnRUeXBlID0gc2lnbmFsKCdURVhUJyk7XG4gIC8qKiBVbmEgdmV6IHF1ZSBzZSB0b2NhIGVsIHRva2VuIGEgbWFubyAobyBzZSBlZGl0YSB1biBjYW1wbyB5YSBndWFyZGFkbykgZGVqYSBkZSBkZXJpdmFyc2UgZGVsIGxhYmVsLiAqL1xuICBwcml2YXRlIG5hbWVMb2NrZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBuYW1lID0gJyc7XG4gIHByaXZhdGUgZmllbGRJZCA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShOQU1FU1BBQ0UpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhOQU1FU1BBQ0UsIEZJRUxEX1NDSEVNQV9FRElUT1JfSTE4Tik7XG4gICAgfVxuICAgIHRoaXMudHlwZUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmN1cnJlbnRUeXBlLnNldCh2YWx1ZSB8fCAnVEVYVCcpKTtcbiAgICB0aGlzLmxhYmVsQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGlmICghdGhpcy5uYW1lTG9ja2VkKSB0aGlzLm5hbWUgPSB0aGlzLmZvcm1TY2hlbWFzLnRvVG9rZW4odmFsdWUgfHwgJycpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5pdGlhbCA9IHRoaXMucHJvcHMuZmllbGQ7XG4gICAgaWYgKGluaXRpYWwpIHtcbiAgICAgIHRoaXMuZmllbGRJZCA9IGluaXRpYWwuaWQ7XG4gICAgICB0aGlzLm5hbWVMb2NrZWQgPSB0cnVlO1xuICAgICAgdGhpcy5uYW1lID0gaW5pdGlhbC5uYW1lO1xuICAgICAgdGhpcy5sYWJlbENvbnRyb2wuc2V0VmFsdWUoaW5pdGlhbC5sYWJlbCA/PyAnJyk7XG4gICAgICB0aGlzLnBsYWNlaG9sZGVyQ29udHJvbC5zZXRWYWx1ZShpbml0aWFsLnBsYWNlaG9sZGVyVGV4dCA/PyAnJyk7XG4gICAgICB0aGlzLmhpbnRDb250cm9sLnNldFZhbHVlKGluaXRpYWwuaGludFRleHQgPz8gJycpO1xuICAgICAgdGhpcy5yZXF1aXJlZENvbnRyb2wuc2V0VmFsdWUoISFpbml0aWFsLnJlcXVpcmVkKTtcbiAgICAgIHRoaXMudHlwZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jb2VyY2VUeXBlKGluaXRpYWwudHlwZSkpO1xuICAgICAgdGhpcy5vcHRpb25zLnNldChpbml0aWFsLm9wdGlvbnMgPz8gW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRJZCA9IGBmaWVsZC0keysrZmllbGRVaWR9YDtcbiAgICB0aGlzLnR5cGVDb250cm9sLnNldFZhbHVlKHRoaXMuY29lcmNlVHlwZSh0aGlzLnR5cGVDb250cm9sLnZhbHVlKSk7XG4gICAgY29uc3QgZmlyc3QgPSB0aGlzLnByb3BzLnByZXNldHM/LlswXTtcbiAgICBpZiAoZmlyc3QpIHRoaXMuc2VsZWN0UHJlc2V0KGZpcnN0KTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgTkFNRVNQQUNFKTtcbiAgfVxuXG4gIHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnN0YXRlID8/IENvbXBvbmVudFN0YXRlcy5FTkFCTEVEO1xuICB9XG5cbiAgc2hvd1ByZXNldHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubW9kZSAhPT0gJ2VkaXQnICYmICEhdGhpcy5wcm9wcy5wcmVzZXRzPy5sZW5ndGg7XG4gIH1cblxuICBuZWVkc09wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZJRUxEX1RZUEVTX1dJVEhfT1BUSU9OUy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRUeXBlKCkpO1xuICB9XG5cbiAgdHlwZUxhYmVsKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudHlwZUxhYmVscz8uW3R5cGVdIHx8IHRoaXMudChgdHlwZSR7dHlwZX1gKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHR5cGVTZWxlY3RQcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8SW5wdXRNZXRhZGF0YT4+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7XG4gICAgICBjb250cm9sOiB0aGlzLnR5cGVDb250cm9sLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlNFTEVDVCxcbiAgICAgIHN0YXRlOiB0aGlzLnN0YXRlKCksXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCd0eXBlTGFiZWwnKSxcbiAgICAgIG9wdGlvbnM6IHRoaXMuYWxsb3dlZFR5cGVzKCkubWFwKCh0eXBlLCBvcmRlcikgPT4gKHsgaWQ6IHR5cGUsIG5hbWU6IHRoaXMudHlwZUxhYmVsKHR5cGUpLCBvcmRlciB9KSksXG4gICAgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgb3B0aW9uc0VkaXRvclByb3BzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0aGlzLnQoJ29wdGlvbnNUaXRsZScpLFxuICAgICAgaGludDogdGhpcy50KCdvcHRpb25zSGludCcpLFxuICAgICAgYWRkTGFiZWw6IHRoaXMudCgnb3B0aW9uc0FkZCcpLFxuICAgICAgb3B0aW9uc0xhYmVsOiB0aGlzLnQoJ29wdGlvbnNMaXN0JyksXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdvcHRpb25zUGxhY2Vob2xkZXInKSxcbiAgICAgIGVtcHR5VGV4dDogdGhpcy50KCdvcHRpb25zRW1wdHknKSxcbiAgICAgIHJlbW92ZU9wdGlvbkxhYmVsOiB0aGlzLnQoJ29wdGlvbnNSZW1vdmUnKSxcbiAgICAgIHJlb3JkZXJPcHRpb25MYWJlbDogdGhpcy50KCdvcHRpb25zUmVvcmRlcicpLFxuICAgICAgc3RhdGU6IHRoaXMuc3RhdGUoKSxcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucygpLFxuICAgIH07XG4gIH0pO1xuXG4gIHNlbGVjdFByZXNldChwcmVzZXQ6IEZpZWxkU2NoZW1hRWRpdG9yUHJlc2V0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXNldElkLnNldChwcmVzZXQuaWQpO1xuICAgIGNvbnN0IHZhbHVlID0gcHJlc2V0LmZpZWxkO1xuICAgIC8vIEVsIHByZXNldCBmaWphIGVsIHRva2VuOiBcImNvcnJlbyBkZWwgY29tcHJhZG9yXCIgdGllbmUgcXVlIGxsYW1hcnNlXG4gICAgLy8gYGVtYWlsYCBhdW5xdWUgZGVzcHXDqXMgbGUgY2FtYmllbiBlbCB0ZXh0byB2aXNpYmxlLlxuICAgIHRoaXMubmFtZUxvY2tlZCA9ICEhdmFsdWUubmFtZTtcbiAgICB0aGlzLm5hbWUgPSB2YWx1ZS5uYW1lIHx8IHRoaXMuZm9ybVNjaGVtYXMudG9Ub2tlbih2YWx1ZS5sYWJlbCB8fCAnJyk7XG4gICAgdGhpcy5sYWJlbENvbnRyb2wuc2V0VmFsdWUodmFsdWUubGFiZWwgPz8gJycpO1xuICAgIHRoaXMucGxhY2Vob2xkZXJDb250cm9sLnNldFZhbHVlKHZhbHVlLnBsYWNlaG9sZGVyVGV4dCA/PyAnJyk7XG4gICAgdGhpcy5oaW50Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZS5oaW50VGV4dCA/PyAnJyk7XG4gICAgdGhpcy5yZXF1aXJlZENvbnRyb2wuc2V0VmFsdWUoISF2YWx1ZS5yZXF1aXJlZCk7XG4gICAgdGhpcy50eXBlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvZXJjZVR5cGUodmFsdWUudHlwZSkpO1xuICAgIHRoaXMub3B0aW9ucy5zZXQodmFsdWUub3B0aW9ucyA/PyBbXSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhIHkgZW1pdGUuIFDDumJsaWNvIGEgcHJvcMOzc2l0bzogbG8gbGxhbWEgZWwgY29uc3VtZXIgZGVzZGUgZWwgYm90w7NuXG4gICAqIGRlIHN1IHByb3BpYSBjw6FzY2FyYSAobW9kYWwsIHDDoWdpbmEgbyBhY29yZGXDs24pLlxuICAgKi9cbiAgc3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy52YWx1ZSgpO1xuICAgIGlmICghZmllbGQubGFiZWwgfHwgIWZpZWxkLm5hbWUgfHwgIWZpZWxkLnR5cGUpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ2Vycm9ySW5jb21wbGV0ZScpKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubmVlZHNPcHRpb25zKCkgJiYgIShmaWVsZC5vcHRpb25zPy5sZW5ndGggPz8gMCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnNldCh0aGlzLnQoJ2Vycm9yT3B0aW9uc1JlcXVpcmVkJykpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5zZXQoJycpO1xuICAgIHRoaXMuc2F2ZS5lbWl0KGZpZWxkKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBFbCBjYW1wbyB0YWwgY29tbyBlc3TDoSBlbiBwYW50YWxsYSwgc2luIHZhbGlkYXIuICovXG4gIHZhbHVlKCk6IEVkaXRhYmxlRmllbGREZWYge1xuICAgIGNvbnN0IGxhYmVsID0gKHRoaXMubGFiZWxDb250cm9sLnZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLmZpZWxkSWQsXG4gICAgICBuYW1lOiB0aGlzLmZvcm1TY2hlbWFzLnRvVG9rZW4odGhpcy5uYW1lIHx8IGxhYmVsKSxcbiAgICAgIGxhYmVsLFxuICAgICAgcGxhY2Vob2xkZXJUZXh0OiAodGhpcy5wbGFjZWhvbGRlckNvbnRyb2wudmFsdWUgfHwgJycpLnRyaW0oKSxcbiAgICAgIGhpbnRUZXh0OiAodGhpcy5oaW50Q29udHJvbC52YWx1ZSB8fCAnJykudHJpbSgpLFxuICAgICAgdHlwZTogdGhpcy5jb2VyY2VUeXBlKHRoaXMudHlwZUNvbnRyb2wudmFsdWUpLFxuICAgICAgcmVxdWlyZWQ6IHRoaXMucmVxdWlyZWRDb250cm9sLnZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5uZWVkc09wdGlvbnMoKSA/IHRoaXMub3B0aW9ucygpLm1hcCgob3B0aW9uLCBpbmRleCkgPT4gKHsgLi4ub3B0aW9uLCBvcmRlcjogaW5kZXggfSkpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFsbG93ZWRUeXBlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYWxsb3dlZFR5cGVzPy5sZW5ndGggPyB0aGlzLnByb3BzLmFsbG93ZWRUeXBlcyA6IFsnVEVYVCddO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuIHRpcG8gZnVlcmEgZGVsIGNhdMOhbG9nbyBkZWwgY29uc3VtZXIgY2FlIGFsIHByaW1lcm8gcGVybWl0aWRvLiBQYXNhIGFsXG4gICAqIGVkaXRhciB1biBjYW1wbyBndWFyZGFkbyBjb24gdW4gdGlwbyBxdWUgbGEgYXBwIHlhIG5vIG9mcmVjZSAoYmluZ28gbG9cbiAgICogaGFjw61hIGNvbiBBVFRBQ0hNRU5UIGN1YW5kbyBlbCBtZWRpbyBkZSBwYWdvIG5vIGxvIGFkbWl0ZSk6IHNpbiBlc3RvLCBlbFxuICAgKiBzZWxlY3QgcXVlZGEgZW4gdW4gdmFsb3IgcXVlIG5vIGVzdMOhIGVuIHN1IGxpc3RhIHkgc2UgdmUgdmFjw61vLlxuICAgKi9cbiAgcHJpdmF0ZSBjb2VyY2VUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYWxsb3dlZCA9IHRoaXMuYWxsb3dlZFR5cGVzKCk7XG4gICAgcmV0dXJuIGFsbG93ZWQuaW5jbHVkZXModHlwZSkgPyB0eXBlIDogYWxsb3dlZFswXTtcbiAgfVxufVxuIl19
@@ -0,0 +1,71 @@
1
+ export const FIELD_SCHEMA_EDITOR_I18N = {
2
+ es: {
3
+ presetsTitle: 'Empieza desde',
4
+ labelLabel: 'Texto del campo',
5
+ labelPlaceholder: 'Escribe lo que verá quien responde',
6
+ typeLabel: 'Tipo de campo',
7
+ placeholderLabel: 'Texto de ayuda dentro del campo',
8
+ hintLabel: 'Nota bajo el campo',
9
+ requiredLabel: 'Obligatorio',
10
+ optionsTitle: 'Opciones',
11
+ optionsHint: 'Estas son las alternativas que puede elegir quien responde.',
12
+ optionsAdd: 'Agregar opción',
13
+ optionsList: 'Opciones',
14
+ optionsPlaceholder: 'Escribe una opción',
15
+ optionsEmpty: 'Todavía no hay opciones.',
16
+ optionsRemove: 'Quitar opción',
17
+ optionsReorder: 'Reordenar opción',
18
+ errorIncomplete: 'Ponle un texto al campo y elige su tipo.',
19
+ errorOptionsRequired: 'Este tipo de campo necesita al menos una opción.',
20
+ typeTEXT: 'Texto corto',
21
+ typeTEXTAREA: 'Texto largo',
22
+ typeEMAIL: 'Correo',
23
+ typePHONE: 'Teléfono',
24
+ typeNUMBER: 'Número',
25
+ typeDATE: 'Fecha',
26
+ typeSELECT: 'Lista desplegable',
27
+ typeRADIO: 'Una sola opción',
28
+ typeMULTI_SELECT: 'Varias opciones',
29
+ typeCHECK: 'Casilla',
30
+ typeTOGGLE: 'Sí o no',
31
+ typeCURRENCY: 'Monto',
32
+ typeATTACHMENT: 'Archivo adjunto',
33
+ typeFILE: 'Archivo',
34
+ typeEMOJI_RATING: 'Calificación con emoji',
35
+ },
36
+ en: {
37
+ presetsTitle: 'Start from',
38
+ labelLabel: 'Field text',
39
+ labelPlaceholder: 'Write what the person will see',
40
+ typeLabel: 'Field type',
41
+ placeholderLabel: 'Helper text inside the field',
42
+ hintLabel: 'Note below the field',
43
+ requiredLabel: 'Required',
44
+ optionsTitle: 'Options',
45
+ optionsHint: 'These are the choices the person can pick.',
46
+ optionsAdd: 'Add option',
47
+ optionsList: 'Options',
48
+ optionsPlaceholder: 'Write an option',
49
+ optionsEmpty: 'No options yet.',
50
+ optionsRemove: 'Remove option',
51
+ optionsReorder: 'Reorder option',
52
+ errorIncomplete: 'Give the field a text and pick its type.',
53
+ errorOptionsRequired: 'This field type needs at least one option.',
54
+ typeTEXT: 'Short text',
55
+ typeTEXTAREA: 'Long text',
56
+ typeEMAIL: 'Email',
57
+ typePHONE: 'Phone',
58
+ typeNUMBER: 'Number',
59
+ typeDATE: 'Date',
60
+ typeSELECT: 'Dropdown',
61
+ typeRADIO: 'Single choice',
62
+ typeMULTI_SELECT: 'Multiple choice',
63
+ typeCHECK: 'Checkbox',
64
+ typeTOGGLE: 'Yes or no',
65
+ typeCURRENCY: 'Amount',
66
+ typeATTACHMENT: 'Attachment',
67
+ typeFILE: 'File',
68
+ typeEMOJI_RATING: 'Emoji rating',
69
+ },
70
+ };
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtc2NoZW1hLWVkaXRvci5pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9maWVsZC1zY2hlbWEtZWRpdG9yL2ZpZWxkLXNjaGVtYS1lZGl0b3IuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBcUI7SUFDeEQsRUFBRSxFQUFFO1FBQ0YsWUFBWSxFQUFFLGVBQWU7UUFDN0IsVUFBVSxFQUFFLGlCQUFpQjtRQUM3QixnQkFBZ0IsRUFBRSxvQ0FBb0M7UUFDdEQsU0FBUyxFQUFFLGVBQWU7UUFDMUIsZ0JBQWdCLEVBQUUsaUNBQWlDO1FBQ25ELFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsYUFBYSxFQUFFLGFBQWE7UUFDNUIsWUFBWSxFQUFFLFVBQVU7UUFDeEIsV0FBVyxFQUFFLDZEQUE2RDtRQUMxRSxVQUFVLEVBQUUsZ0JBQWdCO1FBQzVCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLGtCQUFrQixFQUFFLG9CQUFvQjtRQUN4QyxZQUFZLEVBQUUsMEJBQTBCO1FBQ3hDLGFBQWEsRUFBRSxlQUFlO1FBQzlCLGNBQWMsRUFBRSxrQkFBa0I7UUFDbEMsZUFBZSxFQUFFLDBDQUEwQztRQUMzRCxvQkFBb0IsRUFBRSxrREFBa0Q7UUFDeEUsUUFBUSxFQUFFLGFBQWE7UUFDdkIsWUFBWSxFQUFFLGFBQWE7UUFDM0IsU0FBUyxFQUFFLFFBQVE7UUFDbkIsU0FBUyxFQUFFLFVBQVU7UUFDckIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsUUFBUSxFQUFFLE9BQU87UUFDakIsVUFBVSxFQUFFLG1CQUFtQjtRQUMvQixTQUFTLEVBQUUsaUJBQWlCO1FBQzVCLGdCQUFnQixFQUFFLGlCQUFpQjtRQUNuQyxTQUFTLEVBQUUsU0FBUztRQUNwQixVQUFVLEVBQUUsU0FBUztRQUNyQixZQUFZLEVBQUUsT0FBTztRQUNyQixjQUFjLEVBQUUsaUJBQWlCO1FBQ2pDLFFBQVEsRUFBRSxTQUFTO1FBQ25CLGdCQUFnQixFQUFFLHdCQUF3QjtLQUMzQztJQUNELEVBQUUsRUFBRTtRQUNGLFlBQVksRUFBRSxZQUFZO1FBQzFCLFVBQVUsRUFBRSxZQUFZO1FBQ3hCLGdCQUFnQixFQUFFLGdDQUFnQztRQUNsRCxTQUFTLEVBQUUsWUFBWTtRQUN2QixnQkFBZ0IsRUFBRSw4QkFBOEI7UUFDaEQsU0FBUyxFQUFFLHNCQUFzQjtRQUNqQyxhQUFhLEVBQUUsVUFBVTtRQUN6QixZQUFZLEVBQUUsU0FBUztRQUN2QixXQUFXLEVBQUUsNENBQTRDO1FBQ3pELFVBQVUsRUFBRSxZQUFZO1FBQ3hCLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGtCQUFrQixFQUFFLGlCQUFpQjtRQUNyQyxZQUFZLEVBQUUsaUJBQWlCO1FBQy9CLGFBQWEsRUFBRSxlQUFlO1FBQzlCLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsZUFBZSxFQUFFLDBDQUEwQztRQUMzRCxvQkFBb0IsRUFBRSw0Q0FBNEM7UUFDbEUsUUFBUSxFQUFFLFlBQVk7UUFDdEIsWUFBWSxFQUFFLFdBQVc7UUFDekIsU0FBUyxFQUFFLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsUUFBUSxFQUFFLE1BQU07UUFDaEIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsU0FBUyxFQUFFLGVBQWU7UUFDMUIsZ0JBQWdCLEVBQUUsaUJBQWlCO1FBQ25DLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLFlBQVksRUFBRSxRQUFRO1FBQ3RCLGNBQWMsRUFBRSxZQUFZO1FBQzVCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLGdCQUFnQixFQUFFLGNBQWM7S0FDakM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuXG5leHBvcnQgY29uc3QgRklFTERfU0NIRU1BX0VESVRPUl9JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIHByZXNldHNUaXRsZTogJ0VtcGllemEgZGVzZGUnLFxuICAgIGxhYmVsTGFiZWw6ICdUZXh0byBkZWwgY2FtcG8nLFxuICAgIGxhYmVsUGxhY2Vob2xkZXI6ICdFc2NyaWJlIGxvIHF1ZSB2ZXLDoSBxdWllbiByZXNwb25kZScsXG4gICAgdHlwZUxhYmVsOiAnVGlwbyBkZSBjYW1wbycsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogJ1RleHRvIGRlIGF5dWRhIGRlbnRybyBkZWwgY2FtcG8nLFxuICAgIGhpbnRMYWJlbDogJ05vdGEgYmFqbyBlbCBjYW1wbycsXG4gICAgcmVxdWlyZWRMYWJlbDogJ09ibGlnYXRvcmlvJyxcbiAgICBvcHRpb25zVGl0bGU6ICdPcGNpb25lcycsXG4gICAgb3B0aW9uc0hpbnQ6ICdFc3RhcyBzb24gbGFzIGFsdGVybmF0aXZhcyBxdWUgcHVlZGUgZWxlZ2lyIHF1aWVuIHJlc3BvbmRlLicsXG4gICAgb3B0aW9uc0FkZDogJ0FncmVnYXIgb3BjacOzbicsXG4gICAgb3B0aW9uc0xpc3Q6ICdPcGNpb25lcycsXG4gICAgb3B0aW9uc1BsYWNlaG9sZGVyOiAnRXNjcmliZSB1bmEgb3BjacOzbicsXG4gICAgb3B0aW9uc0VtcHR5OiAnVG9kYXbDrWEgbm8gaGF5IG9wY2lvbmVzLicsXG4gICAgb3B0aW9uc1JlbW92ZTogJ1F1aXRhciBvcGNpw7NuJyxcbiAgICBvcHRpb25zUmVvcmRlcjogJ1Jlb3JkZW5hciBvcGNpw7NuJyxcbiAgICBlcnJvckluY29tcGxldGU6ICdQb25sZSB1biB0ZXh0byBhbCBjYW1wbyB5IGVsaWdlIHN1IHRpcG8uJyxcbiAgICBlcnJvck9wdGlvbnNSZXF1aXJlZDogJ0VzdGUgdGlwbyBkZSBjYW1wbyBuZWNlc2l0YSBhbCBtZW5vcyB1bmEgb3BjacOzbi4nLFxuICAgIHR5cGVURVhUOiAnVGV4dG8gY29ydG8nLFxuICAgIHR5cGVURVhUQVJFQTogJ1RleHRvIGxhcmdvJyxcbiAgICB0eXBlRU1BSUw6ICdDb3JyZW8nLFxuICAgIHR5cGVQSE9ORTogJ1RlbMOpZm9ubycsXG4gICAgdHlwZU5VTUJFUjogJ07Dum1lcm8nLFxuICAgIHR5cGVEQVRFOiAnRmVjaGEnLFxuICAgIHR5cGVTRUxFQ1Q6ICdMaXN0YSBkZXNwbGVnYWJsZScsXG4gICAgdHlwZVJBRElPOiAnVW5hIHNvbGEgb3BjacOzbicsXG4gICAgdHlwZU1VTFRJX1NFTEVDVDogJ1ZhcmlhcyBvcGNpb25lcycsXG4gICAgdHlwZUNIRUNLOiAnQ2FzaWxsYScsXG4gICAgdHlwZVRPR0dMRTogJ1PDrSBvIG5vJyxcbiAgICB0eXBlQ1VSUkVOQ1k6ICdNb250bycsXG4gICAgdHlwZUFUVEFDSE1FTlQ6ICdBcmNoaXZvIGFkanVudG8nLFxuICAgIHR5cGVGSUxFOiAnQXJjaGl2bycsXG4gICAgdHlwZUVNT0pJX1JBVElORzogJ0NhbGlmaWNhY2nDs24gY29uIGVtb2ppJyxcbiAgfSxcbiAgZW46IHtcbiAgICBwcmVzZXRzVGl0bGU6ICdTdGFydCBmcm9tJyxcbiAgICBsYWJlbExhYmVsOiAnRmllbGQgdGV4dCcsXG4gICAgbGFiZWxQbGFjZWhvbGRlcjogJ1dyaXRlIHdoYXQgdGhlIHBlcnNvbiB3aWxsIHNlZScsXG4gICAgdHlwZUxhYmVsOiAnRmllbGQgdHlwZScsXG4gICAgcGxhY2Vob2xkZXJMYWJlbDogJ0hlbHBlciB0ZXh0IGluc2lkZSB0aGUgZmllbGQnLFxuICAgIGhpbnRMYWJlbDogJ05vdGUgYmVsb3cgdGhlIGZpZWxkJyxcbiAgICByZXF1aXJlZExhYmVsOiAnUmVxdWlyZWQnLFxuICAgIG9wdGlvbnNUaXRsZTogJ09wdGlvbnMnLFxuICAgIG9wdGlvbnNIaW50OiAnVGhlc2UgYXJlIHRoZSBjaG9pY2VzIHRoZSBwZXJzb24gY2FuIHBpY2suJyxcbiAgICBvcHRpb25zQWRkOiAnQWRkIG9wdGlvbicsXG4gICAgb3B0aW9uc0xpc3Q6ICdPcHRpb25zJyxcbiAgICBvcHRpb25zUGxhY2Vob2xkZXI6ICdXcml0ZSBhbiBvcHRpb24nLFxuICAgIG9wdGlvbnNFbXB0eTogJ05vIG9wdGlvbnMgeWV0LicsXG4gICAgb3B0aW9uc1JlbW92ZTogJ1JlbW92ZSBvcHRpb24nLFxuICAgIG9wdGlvbnNSZW9yZGVyOiAnUmVvcmRlciBvcHRpb24nLFxuICAgIGVycm9ySW5jb21wbGV0ZTogJ0dpdmUgdGhlIGZpZWxkIGEgdGV4dCBhbmQgcGljayBpdHMgdHlwZS4nLFxuICAgIGVycm9yT3B0aW9uc1JlcXVpcmVkOiAnVGhpcyBmaWVsZCB0eXBlIG5lZWRzIGF0IGxlYXN0IG9uZSBvcHRpb24uJyxcbiAgICB0eXBlVEVYVDogJ1Nob3J0IHRleHQnLFxuICAgIHR5cGVURVhUQVJFQTogJ0xvbmcgdGV4dCcsXG4gICAgdHlwZUVNQUlMOiAnRW1haWwnLFxuICAgIHR5cGVQSE9ORTogJ1Bob25lJyxcbiAgICB0eXBlTlVNQkVSOiAnTnVtYmVyJyxcbiAgICB0eXBlREFURTogJ0RhdGUnLFxuICAgIHR5cGVTRUxFQ1Q6ICdEcm9wZG93bicsXG4gICAgdHlwZVJBRElPOiAnU2luZ2xlIGNob2ljZScsXG4gICAgdHlwZU1VTFRJX1NFTEVDVDogJ011bHRpcGxlIGNob2ljZScsXG4gICAgdHlwZUNIRUNLOiAnQ2hlY2tib3gnLFxuICAgIHR5cGVUT0dHTEU6ICdZZXMgb3Igbm8nLFxuICAgIHR5cGVDVVJSRU5DWTogJ0Ftb3VudCcsXG4gICAgdHlwZUFUVEFDSE1FTlQ6ICdBdHRhY2htZW50JyxcbiAgICB0eXBlRklMRTogJ0ZpbGUnLFxuICAgIHR5cGVFTU9KSV9SQVRJTkc6ICdFbW9qaSByYXRpbmcnLFxuICB9LFxufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2ZpZWxkLXNjaGVtYS1lZGl0b3IvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFN0YXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRmllbGRPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3Jtcy90eXBlcyc7XG5cbi8qKlxuICogVW4gY2FtcG8gZW4gZWRpY2nDs24g4oCUIGxhIGZvcm1hIG11dGFibGUgY29uIGxhIHF1ZSB0cmFiYWphIGVsIGVkaXRvciBhbnRlcyBkZVxuICogY29udmVydGlyc2UgZW4gYEZpZWxkU2NoZW1hRGVmYCB2w61hIGBGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2UuY3JlYXRlRmllbGRTY2hlbWFgLlxuICpcbiAqIE5vIGVzIGBGaWVsZFNjaGVtYURlZmAgYSBwcm9ww7NzaXRvOiBlc2UgdGlwbyBjYXJnYSBgbGFiZWxLZXlgLCBgb3JkZXJgLFxuICogYHZhbGlkYXRvcnNgIHkgbG9zIGAqRXMvKkVuYCBkZSBjb21wYXRpYmlsaWRhZCwgbmluZ3VubyBkZSBsb3MgY3VhbGVzIGVkaXRhXG4gKiB1bmEgcGVyc29uYS4gRWwgZWRpdG9yIHRyYWJhamEgY29uIGxvIHF1ZSBzZSBlc2NyaWJlIGVuIHBhbnRhbGxhIHkgZGVqYSBxdWVcbiAqIGVsIGJ1aWxkZXIgZGVyaXZlIGVsIHJlc3RvLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRhYmxlRmllbGREZWYge1xuICAvKiogSWQgbG9jYWwgZXN0YWJsZSDigJQgc2lydmUgcGFyYSBgdHJhY2tgIHkgcGFyYSByZWVtcGxhemFyIGVuIGxhIGxpc3RhIGFsIGVkaXRhci4gKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIFRva2VuIGRlbCBjYW1wbyAoZGVyaXZhZG8gZGVsIGxhYmVsIG1pZW50cmFzIG5vIHNlIGVkaXRlIGEgbWFubykuICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIFRleHRvIHF1ZSBlc2NyaWJlIGxhIG9yZ2FuaXphY2nDs24uIE5vIHNlIHRyYWR1Y2UgKHJlZ2xhICM0IGRlIENMQVVERS5tZCkuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHBsYWNlaG9sZGVyVGV4dDogc3RyaW5nO1xuICBoaW50VGV4dDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xuICBvcHRpb25zPzogRmllbGRPcHRpb25bXTtcbn1cblxuLyoqXG4gKiBVbiBwdW50byBkZSBwYXJ0aWRhIG9mcmVjaWRvIGFsIGNyZWFyIHVuIGNhbXBvLiBMb3MgZGVmaW5lIGVsIGNvbnN1bWVyLCBub1xuICogZWwgZWRpdG9yOiBsb3MgcHJlc2V0cyBkZSB1biBjaGVja291dCAoY29ycmVvLCB0ZWzDqWZvbm8sIGN1cnNvKSBubyB0aWVuZW5cbiAqIG5hZGEgcXVlIHZlciBjb24gbG9zIGRlIHVuYSBlbmN1ZXN0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZFNjaGVtYUVkaXRvclByZXNldCB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBUw610dWxvIGRlIGxhIHRhcmpldGEgZGVsIHByZXNldC4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIEJhamFkYSBkZSBsYSB0YXJqZXRhLiBPcGNpb25hbC4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBWYWxvcmVzIGNvbiBsb3MgcXVlIHNlIHJlbGxlbmEgZWwgZWRpdG9yIGFsIGVsZWdpcmxvLiAqL1xuICBmaWVsZDogT21pdDxFZGl0YWJsZUZpZWxkRGVmLCAnaWQnPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWVsZFNjaGVtYUVkaXRvck1ldGFkYXRhIHtcbiAgLyoqICdlZGl0JyBvY3VsdGEgbG9zIHByZXNldHMgeSBubyByZS1kZXJpdmEgZWwgYG5hbWVgIGRlc2RlIGVsIGxhYmVsLiAqL1xuICBtb2RlPzogJ25ldycgfCAnZWRpdCc7XG4gIC8qKiBDYW1wbyBhIGVkaXRhci4gQXVzZW50ZSA9IGNhbXBvIG51ZXZvLiAqL1xuICBmaWVsZD86IEVkaXRhYmxlRmllbGREZWYgfCBudWxsO1xuICAvKipcbiAgICogQ2F0w6Fsb2dvIGRlIHRpcG9zIHF1ZSBlc3RlIGNvbnN1bWVyIG9mcmVjZS4gT2JsaWdhdG9yaW8geSBhY290YWRvIGFcbiAgICogcHJvcMOzc2l0bzogcXVpZW4gdXNhIGVsIGVkaXRvciBkZWNpZGUgcXXDqSB0aXBvcyB0aWVuZW4gc2VudGlkbyBlbiBzdVxuICAgKiBkb21pbmlvICh1bmEgZW5jdWVzdGEgcMO6YmxpY2Egbm8gb2ZyZWNlIEFUVEFDSE1FTlQsIHVuIGNoZWNrb3V0IG5vIG9mcmVjZVxuICAgKiBFTU9KSV9SQVRJTkcpIHksIHNvYnJlIHRvZG8sIGdhcmFudGl6YSBxdWUgc3UgcmVuZGVyZXIgc2VwYSBkaWJ1amFybG9zLlxuICAgKi9cbiAgYWxsb3dlZFR5cGVzOiBzdHJpbmdbXTtcbiAgLyoqIEV0aXF1ZXRhIHZpc2libGUgcG9yIHRpcG8uIFNpIGZhbHRhIHVuYSwgY2FlIGFsIGRlZmF1bHQgaTE4biBkZWwgZWRpdG9yLiAqL1xuICB0eXBlTGFiZWxzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcHJlc2V0cz86IEZpZWxkU2NoZW1hRWRpdG9yUHJlc2V0W107XG4gIHByZXNldHNUaXRsZT86IHN0cmluZztcbiAgLyoqIERlZmF1bHQgdHJ1ZS4gKi9cbiAgc2hvd1BsYWNlaG9sZGVyPzogYm9vbGVhbjtcbiAgLyoqIERlZmF1bHQgdHJ1ZS4gKi9cbiAgc2hvd0hpbnQ/OiBib29sZWFuO1xuICBzdGF0ZT86IENvbXBvbmVudFN0YXRlO1xufVxuIl19