@commercetools-uikit/localized-text-input 16.12.0 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -68,7 +68,9 @@ export default Example;
68
68
  | `placeholder` | `Record` | | | Placeholders for each language. Object of the same shape as `value`. |
69
69
  | `horizontalConstraint` | `union`<br/>Possible values:<br/>`, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 'scale', 'auto'` | | `'scale'` | Horizontal size limit of the input fields. |
70
70
  | `hasError` | `boolean` | | | Will apply the error state to each input without showing any error message. |
71
+ | `hasWarning` | `boolean` | | | Indicates the input field has a warning |
71
72
  | `errors` | `Record` | | | Used to show errors underneath the inputs of specific currencies. Pass an object whose key is a currency and whose value is the error to show for that key. |
73
+ | `warnings` | `Record` | | | A map of warnings. |
72
74
 
73
75
  ## `data-*` props
74
76
 
@@ -88,7 +88,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
88
88
  } : {
89
89
  name: "1ysn02y-LocalizedInput",
90
90
  styles: "width:100%;position:relative;display:flex;label:LocalizedInput;",
91
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsaXplZC10ZXh0LWlucHV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0TGMiLCJmaWxlIjoibG9jYWxpemVkLXRleHQtaW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50SGFuZGxlcixcbiAgdHlwZSBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB1c2VGaWVsZElkLCB1c2VUb2dnbGVTdGF0ZSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2hvb2tzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L21lc3NhZ2VzJztcbmltcG9ydCBTdGFjayBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncy1zdGFjayc7XG5pbXBvcnQgQ29uc3RyYWludHMgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvY29uc3RyYWludHMnO1xuaW1wb3J0IHtcbiAgc29ydExhbmd1YWdlcyxcbiAgY3JlYXRlTG9jYWxpemVkRGF0YUF0dHJpYnV0ZXMsXG4gIGdldEhhc0Vycm9yT25SZW1haW5pbmdMYW5ndWFnZXMsXG4gIGlzVG91Y2hlZCxcbiAgb21pdEVtcHR5VHJhbnNsYXRpb25zLFxuICBpc0VtcHR5LFxuICBjcmVhdGVMb2NhbGl6ZWRTdHJpbmcsXG4gIGdldElkLFxuICBnZXROYW1lLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9sb2NhbGl6ZWQtdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VxdWVudGlhbElkLCB3YXJuaW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvdXRpbHMnO1xuaW1wb3J0IFRleHRJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC90ZXh0LWlucHV0JztcbmltcG9ydCB7XG4gIExvY2FsaXplZElucHV0VG9nZ2xlLFxuICBtZXNzYWdlc0xvY2FsaXplZElucHV0LFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pbnB1dC11dGlscyc7XG5pbXBvcnQge1xuICBnZXRMb2NhbGl6ZWRJbnB1dFN0eWxlcyxcbiAgZ2V0TGFuZ3VhZ2VMYWJlbFN0eWxlcyxcbn0gZnJvbSAnLi9sb2NhbGl6ZWQtdGV4dC1pbnB1dC5zdHlsZXMnO1xuXG5pbnRlcmZhY2UgSFRNTExvY2FsaXplZElucHV0RWxlbWVudCBleHRlbmRzIEhUTUxJbnB1dEVsZW1lbnQge1xuICBsYW5ndWFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUTG9jYWxpemVkVGV4dElucHV0UHJvcHMgPSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZSBpZiB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICovXG4gICdhcmlhLWludmFsaWQnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhUTUwgSUQgb2YgYW4gZWxlbWVudCBjb250YWluaW5nIGFuIGVycm9yIG1lc3NhZ2UgcmVsYXRlZCB0byB0aGUgaW5wdXQuXG4gICAqL1xuICAnYXJpYS1lcnJvcm1lc3NhZ2UnPzogc3RyaW5nO1xuICAvKipcbiAgICogICB0aGVuIGlucHV0IGRvZXNuJ3QgYWNjZXB0IGEgXCJsYW5ndWFnZXNcIiBwcm9wLCBpbnN0ZWFkIGFsbCBwb3NzaWJsZVxuICBsYW5ndWFnZXMgaGF2ZSB0byBleGlzdCAod2l0aCBlbXB0eSBvciBmaWxsZWQgc3RyaW5ncykgb24gdGhlIHZhbHVlOlxuICAgIHsgZW46ICdmb28nLCBkZTogJycsIGVzOiAnJyB9XG4gICAqL1xuICB2YWx1ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIHdoZW4gYW55IGlucHV0IGlzIGNoYW5nZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBjaGFuZ2UgZXZlbnQgb2YgdGhlIGNoYW5nZWQgaW5wdXQuXG4gICAqL1xuICBvbkNoYW5nZT86IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MTG9jYWxpemVkSW5wdXRFbGVtZW50PjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBsYW5ndWFnZSB3aWxsIGJlIHNob3duIGluIGNhc2UgdGhlIGBMb2NhbGl6ZWRUZXh0SW5wdXRgIGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFueSBmaWVsZCBpcyBibHVycmVkLiBJcyBjYWxsZWQgd2l0aCB0aGUgYGV2ZW50YCBvZiB0aGF0IGZpZWxkLlxuICAgKi9cbiAgb25CbHVyPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbnkgZmllbGQgaXMgZm9jdXNzZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBgZXZlbnRgIG9mIHRoYXQgZmllbGQuXG4gICAqL1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBXaWxsIGhpZGUgdGhlIGxhbmd1YWdlIGV4cGFuc2lvbiBjb250cm9scyB3aGVuIHNldCB0byBgdHJ1ZWAuIEFsbCBsYW5ndWFnZXMgd2lsbCBiZSBzaG93biB3aGVuIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIG9uZSBvciBhbGwgbGFuZ3VhZ2VzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRlZmF1bHRFeHBhbmRMYW5ndWFnZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogRm9jdXMgdGhlIGlucHV0IGZpZWxkIG9uIGluaXRpYWwgcmVuZGVyXG4gICAqL1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzIGFuZCBzaG93cyB0aGVtIGluIHJlYWQtb25seSBtb2RlLlxuICAgKi9cbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcnMgZm9yIGVhY2ggbGFuZ3VhZ2UuIE9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSBhcyBgdmFsdWVgLlxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogSG9yaXpvbnRhbCBzaXplIGxpbWl0IG9mIHRoZSBpbnB1dCBmaWVsZHMuXG4gICAqL1xuICBob3Jpem9udGFsQ29uc3RyYWludD86XG4gICAgfCAxXG4gICAgfCAyXG4gICAgfCAzXG4gICAgfCA0XG4gICAgfCA1XG4gICAgfCA2XG4gICAgfCA3XG4gICAgfCA4XG4gICAgfCA5XG4gICAgfCAxMFxuICAgIHwgMTFcbiAgICB8IDEyXG4gICAgfCAxM1xuICAgIHwgMTRcbiAgICB8IDE1XG4gICAgfCAxNlxuICAgIHwgJ3NjYWxlJ1xuICAgIHwgJ2F1dG8nO1xuICAvKipcbiAgICogV2lsbCBhcHBseSB0aGUgZXJyb3Igc3RhdGUgdG8gZWFjaCBpbnB1dCB3aXRob3V0IHNob3dpbmcgYW55IGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBoYXNFcnJvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNob3cgZXJyb3JzIHVuZGVybmVhdGggdGhlIGlucHV0cyBvZiBzcGVjaWZpYyBjdXJyZW5jaWVzLiBQYXNzIGFuIG9iamVjdCB3aG9zZSBrZXkgaXMgYSBjdXJyZW5jeSBhbmQgd2hvc2UgdmFsdWUgaXMgdGhlIGVycm9yIHRvIHNob3cgZm9yIHRoYXQga2V5LlxuICAgKi9cbiAgZXJyb3JzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRMb2NhbGl6ZWRJbnB1dFByb3BzID0ge1xuICAvKipcbiAgICogVXNlZCBhcyBwcmVmaXggb2YgSFRNTCBgaWRgIHByb3BlcnR5LiBFYWNoIGlucHV0IGZpZWxkIGlkIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke2lkUHJlZml4fS4ke2xhbmd9YCksIGUuZy4gYGZvby5lbmAuIFlvdSBjYW4gdXNlIHRoZSBzdGF0aWMgYExvY2FsaXplZFRleHRJbnB1dC5nZXRJZChpZFByZWZpeCwgbGFuZ3VhZ2UpYCB0byBjcmVhdGUgdGhpcyBpZCBzdHJpbmcsIGUuZy4gZm9yIGxhYmVscy5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlZCBhcyBIVE1MIGBuYW1lYCBwcm9wZXJ0eSBmb3IgZWFjaCBpbnB1dCBmaWVsZC4gRWFjaCBpbnB1dCBmaWVsZCBuYW1lIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke25hbWVQcmVmaXh9LiR7bGFuZ31gKSwgZS5nLiBgZm9vLmVuYFxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgYXMgSFRNTCBgYXV0b2NvbXBsZXRlYCBwcm9wZXJ0eVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlPzogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogR2V0cyBjYWxsZWQgd2hlbiBhbnkgaW5wdXQgaXMgY2hhbmdlZC4gSXMgY2FsbGVkIHdpdGggdGhlIGNoYW5nZSBldmVudCBvZiB0aGUgY2hhbmdlZCBpbnB1dC5cbiAgICovXG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxMb2NhbGl6ZWRJbnB1dEVsZW1lbnQ+O1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICBvbkJsdXI/OiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgb25Gb2N1cz86IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRPbmx5PzogYm9vbGVhbjtcbiAgaGFzRXJyb3I/OiBib29sZWFuO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbn07XG5cbmNvbnN0IHNlcXVlbnRpYWxJZCA9IGNyZWF0ZVNlcXVlbnRpYWxJZCgnbG9jYWxpemVkLXRleHQtaW5wdXQtJyk7XG5cbmNvbnN0IExvY2FsaXplZElucHV0ID0gKHByb3BzOiBUTG9jYWxpemVkSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IG9uQ2hhbmdlIH0gPSBwcm9wcztcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICAvLyBXZSBtYW5pcHVsYXRlIHRoZSBldmVudCB0byBhZGQgdGhlIGxhbmd1YWdlIHRvIHRoZSB0YXJnZXQuXG4gICAgICAvLyBUaGF0IHdheSB0aGUgdXNlcnMgb2YgTG9jYWxpemVkVGV4dElucHV0J3Mgb25DaGFuZ2UgY2FuIHJlYWRcbiAgICAgIC8vIGV2ZW50LnRhcmdldC5sYW5ndWFnZSBhbmQgZXZlbnQudGFyZ2V0LnZhbHVlIHRvIGRldGVybWluZSB0aGUgbmV4dCB2YWx1ZS5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBvbmx5IG5lZWQgdGhpcyBpbmZvcm1hdGlvbiBmb3IgdGhlIHN0b3J5LCB0aGUgTUMgYXBwbGljYXRpb24gY29kZSB3aWxsXG4gICAgICAvLyBuZXZlciBuZWVkIHRvIGFjY2VzcyB0aGUgaW5mb3JtYXRpb24gaW4gc3VjaCBhbiBpbmNvbnZlbmllbnQgd2F5LCBhc1xuICAgICAgLy8gRm9ybWlrIGNhbiBkZWFsIHdpdGggYSBuYW1lIGxpa2UgXCJmb28uZW5cIiBhbmQgc2V0cyB0aGUgdmFsdWUgY29ycmVjdGx5LlxuICAgICAgLy8gV2UgY2FuJ3QgdXNlIHRoaXMgYXMgd2UgYXJlbid0IGd1YXJhbnRlZWQgYSBuYW1lIGluIHRoZSBzdG9yeSBhcyB0aGUgdXNlclxuICAgICAgLy8gbWlnaHQgY2xlYXIgaXQgdXNpbmcgdGhlIGtub2IsIGFuZCB0aGVuIHdlIGNhbid0IHBhcnNlIHRoZSBsYW5ndWFnZSBmcm9tXG4gICAgICAvLyB0aGUgaW5wdXQgbmFtZSBhbnltb3JlLlxuICAgICAgLy9cbiAgICAgIGV2ZW50LnRhcmdldC5sYW5ndWFnZSA9IHByb3BzLmxhbmd1YWdlO1xuICAgICAgb25DaGFuZ2U/LihldmVudCk7XG4gICAgfSxcbiAgICBbcHJvcHMubGFuZ3VhZ2UsIG9uQ2hhbmdlXVxuICApO1xuXG4gIGlmICghcHJvcHMuaXNSZWFkT25seSkge1xuICAgIHdhcm5pbmcoXG4gICAgICB0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbicsXG4gICAgICAnTG9jYWxpemVkVGV4dElucHV0OiBcIm9uQ2hhbmdlXCIgaXMgcmVxdWlyZWQgd2hlbiBpc1JlYWRPbmx5IGlzIG5vdCB0cnVlJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGtleT17cHJvcHMubGFuZ3VhZ2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGxhYmVsIGh0bWxGb3I9e3Byb3BzLmlkfSBjc3M9e2dldExhbmd1YWdlTGFiZWxTdHlsZXMocHJvcHMpfT5cbiAgICAgICAge3Byb3BzLmxhbmd1YWdlLnRvVXBwZXJDYXNlKCl9XG4gICAgICA8L2xhYmVsPlxuICAgICAgPFRleHRJbnB1dFxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgIGNzcz17Z2V0TG9jYWxpemVkSW5wdXRTdHlsZXN9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuTG9jYWxpemVkSW5wdXQuZGlzcGxheU5hbWUgPSAnTG9jYWxpemVkSW5wdXQnO1xuXG5jb25zdCBSZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlID0gKCkgPT4gKFxuICA8RXJyb3JNZXNzYWdlPlxuICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlc0xvY2FsaXplZElucHV0Lm1pc3NpbmdSZXF1aXJlZEZpZWxkfSAvPlxuICA8L0Vycm9yTWVzc2FnZT5cbik7XG5cblJlcXVpcmVkVmFsdWVFcnJvck1lc3NhZ2UuZGlzcGxheU5hbWUgPSAnUmVxdWlyZWRWYWx1ZUVycm9yTWVzc2FnZSc7XG5cbmNvbnN0IExvY2FsaXplZFRleHRJbnB1dCA9IChwcm9wczogVExvY2FsaXplZFRleHRJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRFeHBhbnNpb25TdGF0ZSA9XG4gICAgcHJvcHMuaGlkZUxhbmd1YWdlRXhwYW5zaW9uQ29udHJvbHMgfHxcbiAgICBwcm9wcy5kZWZhdWx0RXhwYW5kTGFuZ3VhZ2VzIHx8IC8vIGRlZmF1bHQgdG8gYGZhbHNlYCwgYmVjYXVzZSB1c2VUb2dnbGVTdGF0ZSBkZWZhdWx0cyB0byBgdHJ1ZWBcbiAgICBmYWxzZTtcblxuICBjb25zdCBbYXJlTGFuZ3VhZ2VzRXhwYW5kZWQsIHRvZ2dsZUxhbmd1YWdlc10gPSB1c2VUb2dnbGVTdGF0ZShcbiAgICBkZWZhdWx0RXhwYW5zaW9uU3RhdGVcbiAgKTtcblxuICBjb25zdCBvbkxvY2FsaXplZElucHV0VG9nZ2xlID0gdXNlQ2FsbGJhY2soXG4gICAgKCkgPT4gdG9nZ2xlTGFuZ3VhZ2VzKCksXG4gICAgW3RvZ2dsZUxhbmd1YWdlc11cbiAgKTtcblxuICBjb25zdCBsYW5ndWFnZXMgPSBzb3J0TGFuZ3VhZ2VzKFxuICAgIHByb3BzLnNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgT2JqZWN0LmtleXMocHJvcHMudmFsdWUpXG4gICk7XG5cbiAgY29uc3QgaWQgPSB1c2VGaWVsZElkKHByb3BzLmlkLCBzZXF1ZW50aWFsSWQpO1xuXG4gIGNvbnN0IGhhc0Vycm9ySW5SZW1haW5pbmdMYW5ndWFnZXMgPVxuICAgIHByb3BzLmhhc0Vycm9yIHx8XG4gICAgZ2V0SGFzRXJyb3JPblJlbWFpbmluZ0xhbmd1YWdlcyhwcm9wcy5lcnJvcnMsIHByb3BzLnNlbGVjdGVkTGFuZ3VhZ2UpO1xuXG4gIGlmIChoYXNFcnJvckluUmVtYWluaW5nTGFuZ3VhZ2VzKSB7XG4gICAgLy8gdGhpcyB1cGRhdGUgd2l0aGluIHJlbmRlciByZXBsYWNlcyB0aGUgb2xkIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGZ1bmN0aW9uYWxpdHlcbiAgICAvLyBodHRwczovL3JlYWN0anMub3JnL2RvY3MvaG9va3MtZmFxLmh0bWwjaG93LWRvLWktaW1wbGVtZW50LWdldGRlcml2ZWRzdGF0ZWZyb21wcm9wc1xuICAgIGlmIChoYXNFcnJvckluUmVtYWluaW5nTGFuZ3VhZ2VzICE9PSBhcmVMYW5ndWFnZXNFeHBhbmRlZCkge1xuICAgICAgdG9nZ2xlTGFuZ3VhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkUmVuZGVyTGFuZ3VhZ2VzQnV0dG9uID1cbiAgICBsYW5ndWFnZXMubGVuZ3RoID4gMSAmJiAhcHJvcHMuaGlkZUxhbmd1YWdlRXhwYW5zaW9uQ29udHJvbHM7XG5cbiAgaWYgKCFwcm9wcy5pc1JlYWRPbmx5KSB7XG4gICAgd2FybmluZyhcbiAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgICdMb2NhbGl6ZWRUZXh0SW5wdXQ6IFwib25DaGFuZ2VcIiBpcyByZXF1aXJlZCB3aGVuIGlzUmVhZE9ubHkgaXMgbm90IHRydWUnXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwcm9wcy5oaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scykge1xuICAgIHdhcm5pbmcoXG4gICAgICB0eXBlb2YgcHJvcHMuZGVmYXVsdEV4cGFuZExhbmd1YWdlcyAhPT0gJ2Jvb2xlYW4nLFxuICAgICAgJ0xvY2FsaXplZFRleHRJbnB1dDogXCJkZWZhdWx0RXhwYW5kTGFuZ3VhZ2VzXCIgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IHdoZW4gXCJoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9sc1wiIGlzIHNldC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbnN0cmFpbnRzLkhvcml6b250YWwgbWF4PXtwcm9wcy5ob3Jpem9udGFsQ29uc3RyYWludH0+XG4gICAgICA8U3RhY2sgc2NhbGU9XCJ4c1wiPlxuICAgICAgICA8U3RhY2s+XG4gICAgICAgICAge2xhbmd1YWdlcy5tYXAoKGxhbmd1YWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNGaXJzdExhbmd1YWdlID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpZiAoIWlzRmlyc3RMYW5ndWFnZSAmJiAhYXJlTGFuZ3VhZ2VzRXhwYW5kZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17bGFuZ3VhZ2V9PlxuICAgICAgICAgICAgICAgIDxTdGFjayBzY2FsZT1cInhzXCI+XG4gICAgICAgICAgICAgICAgICA8TG9jYWxpemVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPXtwcm9wcy5hdXRvQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtMb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0SWQoaWQsIGxhbmd1YWdlKX1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17TG9jYWxpemVkVGV4dElucHV0LmdldE5hbWUocHJvcHMubmFtZSwgbGFuZ3VhZ2UpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cHJvcHMudmFsdWVbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHByb3BzLnBsYWNlaG9sZGVyW2xhbmd1YWdlXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3Byb3BzLm9uQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17cHJvcHMub25Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgaXNBdXRvZm9jdXNzZWQ9e2luZGV4ID09PSAwICYmIHByb3BzLmlzQXV0b2ZvY3Vzc2VkfVxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtwcm9wcy5pc0Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBpc1JlYWRPbmx5PXtwcm9wcy5pc1JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcj17Qm9vbGVhbihcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5oYXNFcnJvciB8fCAocHJvcHMuZXJyb3JzICYmIHByb3BzLmVycm9yc1tsYW5ndWFnZV0pXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5jcmVhdGVMb2NhbGl6ZWREYXRhQXR0cmlidXRlcyhwcm9wcywgbGFuZ3VhZ2UpfVxuICAgICAgICAgICAgICAgICAgICAvKiBBUklBICovXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaW52YWxpZD17cHJvcHNbJ2FyaWEtaW52YWxpZCddfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWVycm9ybWVzc2FnZT17cHJvcHNbJ2FyaWEtZXJyb3JtZXNzYWdlJ119XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge3Byb3BzLmVycm9ycyAmJiBwcm9wcy5lcnJvcnNbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgICAge3Nob3VsZFJlbmRlckxhbmd1YWdlc0J1dHRvbiAmJiAoXG4gICAgICAgICAgPExvY2FsaXplZElucHV0VG9nZ2xlXG4gICAgICAgICAgICBpc09wZW49e2FyZUxhbmd1YWdlc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17b25Mb2NhbGl6ZWRJbnB1dFRvZ2dsZX1cbiAgICAgICAgICAgIGlzRGlzYWJsZWQ9e2FyZUxhbmd1YWdlc0V4cGFuZGVkICYmIGhhc0Vycm9ySW5SZW1haW5pbmdMYW5ndWFnZXN9XG4gICAgICAgICAgICByZW1haW5pbmdMb2NhbGl6YXRpb25zPXtsYW5ndWFnZXMubGVuZ3RoIC0gMX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICA8L0NvbnN0cmFpbnRzLkhvcml6b250YWw+XG4gICk7XG59O1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZGlzcGxheU5hbWUgPSAnTG9jYWxpemVkVGV4dElucHV0JztcblxuTG9jYWxpemVkVGV4dElucHV0LlJlcXVpcmVkVmFsdWVFcnJvck1lc3NhZ2UgPSBSZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZGVmYXVsdFByb3BzID0ge1xuICBob3Jpem9udGFsQ29uc3RyYWludDogJ3NjYWxlJyxcbn07XG5cbkxvY2FsaXplZFRleHRJbnB1dC5nZXRJZCA9IGdldElkO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0TmFtZSA9IGdldE5hbWU7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5jcmVhdGVMb2NhbGl6ZWRTdHJpbmcgPSBjcmVhdGVMb2NhbGl6ZWRTdHJpbmc7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5pc0VtcHR5ID0gaXNFbXB0eTtcblxuTG9jYWxpemVkVGV4dElucHV0Lm9taXRFbXB0eVRyYW5zbGF0aW9ucyA9IG9taXRFbXB0eVRyYW5zbGF0aW9ucztcblxuTG9jYWxpemVkVGV4dElucHV0LmlzVG91Y2hlZCA9IGlzVG91Y2hlZDtcblxuZXhwb3J0IGRlZmF1bHQgTG9jYWxpemVkVGV4dElucHV0O1xuIl19 */",
91
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsaXplZC10ZXh0LWlucHV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4TWMiLCJmaWxlIjoibG9jYWxpemVkLXRleHQtaW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50SGFuZGxlcixcbiAgdHlwZSBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB1c2VDYWxsYmFjayxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgdXNlRmllbGRJZCwgdXNlVG9nZ2xlU3RhdGUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9ob29rcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9tZXNzYWdlcyc7XG5pbXBvcnQgU3RhY2sgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc3BhY2luZ3Mtc3RhY2snO1xuaW1wb3J0IENvbnN0cmFpbnRzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2NvbnN0cmFpbnRzJztcbmltcG9ydCB7XG4gIHNvcnRMYW5ndWFnZXMsXG4gIGNyZWF0ZUxvY2FsaXplZERhdGFBdHRyaWJ1dGVzLFxuICBnZXRIYXNFcnJvck9uUmVtYWluaW5nTGFuZ3VhZ2VzLFxuICBnZXRIYXNXYXJuaW5nT25SZW1haW5pbmdMYW5ndWFnZXMsXG4gIGlzVG91Y2hlZCxcbiAgb21pdEVtcHR5VHJhbnNsYXRpb25zLFxuICBpc0VtcHR5LFxuICBjcmVhdGVMb2NhbGl6ZWRTdHJpbmcsXG4gIGdldElkLFxuICBnZXROYW1lLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9sb2NhbGl6ZWQtdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VxdWVudGlhbElkLCB3YXJuaW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvdXRpbHMnO1xuaW1wb3J0IFRleHRJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC90ZXh0LWlucHV0JztcbmltcG9ydCB7XG4gIExvY2FsaXplZElucHV0VG9nZ2xlLFxuICBtZXNzYWdlc0xvY2FsaXplZElucHV0LFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pbnB1dC11dGlscyc7XG5pbXBvcnQge1xuICBnZXRMb2NhbGl6ZWRJbnB1dFN0eWxlcyxcbiAgZ2V0TGFuZ3VhZ2VMYWJlbFN0eWxlcyxcbn0gZnJvbSAnLi9sb2NhbGl6ZWQtdGV4dC1pbnB1dC5zdHlsZXMnO1xuXG5pbnRlcmZhY2UgSFRNTExvY2FsaXplZElucHV0RWxlbWVudCBleHRlbmRzIEhUTUxJbnB1dEVsZW1lbnQge1xuICBsYW5ndWFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUTG9jYWxpemVkVGV4dElucHV0UHJvcHMgPSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZSBpZiB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICovXG4gICdhcmlhLWludmFsaWQnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhUTUwgSUQgb2YgYW4gZWxlbWVudCBjb250YWluaW5nIGFuIGVycm9yIG1lc3NhZ2UgcmVsYXRlZCB0byB0aGUgaW5wdXQuXG4gICAqL1xuICAnYXJpYS1lcnJvcm1lc3NhZ2UnPzogc3RyaW5nO1xuICAvKipcbiAgICogICB0aGVuIGlucHV0IGRvZXNuJ3QgYWNjZXB0IGEgXCJsYW5ndWFnZXNcIiBwcm9wLCBpbnN0ZWFkIGFsbCBwb3NzaWJsZVxuICBsYW5ndWFnZXMgaGF2ZSB0byBleGlzdCAod2l0aCBlbXB0eSBvciBmaWxsZWQgc3RyaW5ncykgb24gdGhlIHZhbHVlOlxuICAgIHsgZW46ICdmb28nLCBkZTogJycsIGVzOiAnJyB9XG4gICAqL1xuICB2YWx1ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIHdoZW4gYW55IGlucHV0IGlzIGNoYW5nZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBjaGFuZ2UgZXZlbnQgb2YgdGhlIGNoYW5nZWQgaW5wdXQuXG4gICAqL1xuICBvbkNoYW5nZT86IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MTG9jYWxpemVkSW5wdXRFbGVtZW50PjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBsYW5ndWFnZSB3aWxsIGJlIHNob3duIGluIGNhc2UgdGhlIGBMb2NhbGl6ZWRUZXh0SW5wdXRgIGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFueSBmaWVsZCBpcyBibHVycmVkLiBJcyBjYWxsZWQgd2l0aCB0aGUgYGV2ZW50YCBvZiB0aGF0IGZpZWxkLlxuICAgKi9cbiAgb25CbHVyPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbnkgZmllbGQgaXMgZm9jdXNzZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBgZXZlbnRgIG9mIHRoYXQgZmllbGQuXG4gICAqL1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBXaWxsIGhpZGUgdGhlIGxhbmd1YWdlIGV4cGFuc2lvbiBjb250cm9scyB3aGVuIHNldCB0byBgdHJ1ZWAuIEFsbCBsYW5ndWFnZXMgd2lsbCBiZSBzaG93biB3aGVuIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIG9uZSBvciBhbGwgbGFuZ3VhZ2VzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRlZmF1bHRFeHBhbmRMYW5ndWFnZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogRm9jdXMgdGhlIGlucHV0IGZpZWxkIG9uIGluaXRpYWwgcmVuZGVyXG4gICAqL1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzIGFuZCBzaG93cyB0aGVtIGluIHJlYWQtb25seSBtb2RlLlxuICAgKi9cbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcnMgZm9yIGVhY2ggbGFuZ3VhZ2UuIE9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSBhcyBgdmFsdWVgLlxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogSG9yaXpvbnRhbCBzaXplIGxpbWl0IG9mIHRoZSBpbnB1dCBmaWVsZHMuXG4gICAqL1xuICBob3Jpem9udGFsQ29uc3RyYWludD86XG4gICAgfCAxXG4gICAgfCAyXG4gICAgfCAzXG4gICAgfCA0XG4gICAgfCA1XG4gICAgfCA2XG4gICAgfCA3XG4gICAgfCA4XG4gICAgfCA5XG4gICAgfCAxMFxuICAgIHwgMTFcbiAgICB8IDEyXG4gICAgfCAxM1xuICAgIHwgMTRcbiAgICB8IDE1XG4gICAgfCAxNlxuICAgIHwgJ3NjYWxlJ1xuICAgIHwgJ2F1dG8nO1xuICAvKipcbiAgICogV2lsbCBhcHBseSB0aGUgZXJyb3Igc3RhdGUgdG8gZWFjaCBpbnB1dCB3aXRob3V0IHNob3dpbmcgYW55IGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBoYXNFcnJvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGlucHV0IGZpZWxkIGhhcyBhIHdhcm5pbmdcbiAgICovXG4gIGhhc1dhcm5pbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVXNlZCB0byBzaG93IGVycm9ycyB1bmRlcm5lYXRoIHRoZSBpbnB1dHMgb2Ygc3BlY2lmaWMgY3VycmVuY2llcy4gUGFzcyBhbiBvYmplY3Qgd2hvc2Uga2V5IGlzIGEgY3VycmVuY3kgYW5kIHdob3NlIHZhbHVlIGlzIHRoZSBlcnJvciB0byBzaG93IGZvciB0aGF0IGtleS5cbiAgICovXG4gIGVycm9ycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBBIG1hcCBvZiB3YXJuaW5ncy5cbiAgICovXG4gIHdhcm5pbmdzPzogUmVjb3JkPHN0cmluZywgUmVhY3ROb2RlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRMb2NhbGl6ZWRJbnB1dFByb3BzID0ge1xuICAvKipcbiAgICogVXNlZCBhcyBwcmVmaXggb2YgSFRNTCBgaWRgIHByb3BlcnR5LiBFYWNoIGlucHV0IGZpZWxkIGlkIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke2lkUHJlZml4fS4ke2xhbmd9YCksIGUuZy4gYGZvby5lbmAuIFlvdSBjYW4gdXNlIHRoZSBzdGF0aWMgYExvY2FsaXplZFRleHRJbnB1dC5nZXRJZChpZFByZWZpeCwgbGFuZ3VhZ2UpYCB0byBjcmVhdGUgdGhpcyBpZCBzdHJpbmcsIGUuZy4gZm9yIGxhYmVscy5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlZCBhcyBIVE1MIGBuYW1lYCBwcm9wZXJ0eSBmb3IgZWFjaCBpbnB1dCBmaWVsZC4gRWFjaCBpbnB1dCBmaWVsZCBuYW1lIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke25hbWVQcmVmaXh9LiR7bGFuZ31gKSwgZS5nLiBgZm9vLmVuYFxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgYXMgSFRNTCBgYXV0b2NvbXBsZXRlYCBwcm9wZXJ0eVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlPzogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogR2V0cyBjYWxsZWQgd2hlbiBhbnkgaW5wdXQgaXMgY2hhbmdlZC4gSXMgY2FsbGVkIHdpdGggdGhlIGNoYW5nZSBldmVudCBvZiB0aGUgY2hhbmdlZCBpbnB1dC5cbiAgICovXG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxMb2NhbGl6ZWRJbnB1dEVsZW1lbnQ+O1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICBvbkJsdXI/OiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgb25Gb2N1cz86IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRPbmx5PzogYm9vbGVhbjtcbiAgaGFzRXJyb3I/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBpbnB1dCBmaWVsZCBoYXMgYSB3YXJuaW5nXG4gICAqL1xuICBoYXNXYXJuaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhUTUwgbm9kZSB0byBkaXNwbGF5IHdhcm5pbmdcbiAgICovXG4gIHdhcm5pbmc/OiBSZWFjdE5vZGU7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xufTtcblxuY29uc3Qgc2VxdWVudGlhbElkID0gY3JlYXRlU2VxdWVudGlhbElkKCdsb2NhbGl6ZWQtdGV4dC1pbnB1dC0nKTtcblxuY29uc3QgTG9jYWxpemVkSW5wdXQgPSAocHJvcHM6IFRMb2NhbGl6ZWRJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHByb3BzO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIFdlIG1hbmlwdWxhdGUgdGhlIGV2ZW50IHRvIGFkZCB0aGUgbGFuZ3VhZ2UgdG8gdGhlIHRhcmdldC5cbiAgICAgIC8vIFRoYXQgd2F5IHRoZSB1c2VycyBvZiBMb2NhbGl6ZWRUZXh0SW5wdXQncyBvbkNoYW5nZSBjYW4gcmVhZFxuICAgICAgLy8gZXZlbnQudGFyZ2V0Lmxhbmd1YWdlIGFuZCBldmVudC50YXJnZXQudmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBuZXh0IHZhbHVlLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgbmVlZCB0aGlzIGluZm9ybWF0aW9uIGZvciB0aGUgc3RvcnksIHRoZSBNQyBhcHBsaWNhdGlvbiBjb2RlIHdpbGxcbiAgICAgIC8vIG5ldmVyIG5lZWQgdG8gYWNjZXNzIHRoZSBpbmZvcm1hdGlvbiBpbiBzdWNoIGFuIGluY29udmVuaWVudCB3YXksIGFzXG4gICAgICAvLyBGb3JtaWsgY2FuIGRlYWwgd2l0aCBhIG5hbWUgbGlrZSBcImZvby5lblwiIGFuZCBzZXRzIHRoZSB2YWx1ZSBjb3JyZWN0bHkuXG4gICAgICAvLyBXZSBjYW4ndCB1c2UgdGhpcyBhcyB3ZSBhcmVuJ3QgZ3VhcmFudGVlZCBhIG5hbWUgaW4gdGhlIHN0b3J5IGFzIHRoZSB1c2VyXG4gICAgICAvLyBtaWdodCBjbGVhciBpdCB1c2luZyB0aGUga25vYiwgYW5kIHRoZW4gd2UgY2FuJ3QgcGFyc2UgdGhlIGxhbmd1YWdlIGZyb21cbiAgICAgIC8vIHRoZSBpbnB1dCBuYW1lIGFueW1vcmUuXG4gICAgICAvL1xuICAgICAgZXZlbnQudGFyZ2V0Lmxhbmd1YWdlID0gcHJvcHMubGFuZ3VhZ2U7XG4gICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICB9LFxuICAgIFtwcm9wcy5sYW5ndWFnZSwgb25DaGFuZ2VdXG4gICk7XG5cbiAgaWYgKCFwcm9wcy5pc1JlYWRPbmx5KSB7XG4gICAgd2FybmluZyhcbiAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgICdMb2NhbGl6ZWRUZXh0SW5wdXQ6IFwib25DaGFuZ2VcIiBpcyByZXF1aXJlZCB3aGVuIGlzUmVhZE9ubHkgaXMgbm90IHRydWUnXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAga2V5PXtwcm9wcy5sYW5ndWFnZX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8bGFiZWwgaHRtbEZvcj17cHJvcHMuaWR9IGNzcz17Z2V0TGFuZ3VhZ2VMYWJlbFN0eWxlcyhwcm9wcyl9PlxuICAgICAgICB7cHJvcHMubGFuZ3VhZ2UudG9VcHBlckNhc2UoKX1cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8VGV4dElucHV0XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgY3NzPXtnZXRMb2NhbGl6ZWRJbnB1dFN0eWxlc31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Mb2NhbGl6ZWRJbnB1dC5kaXNwbGF5TmFtZSA9ICdMb2NhbGl6ZWRJbnB1dCc7XG5cbmNvbnN0IFJlcXVpcmVkVmFsdWVFcnJvck1lc3NhZ2UgPSAoKSA9PiAoXG4gIDxFcnJvck1lc3NhZ2U+XG4gICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzTG9jYWxpemVkSW5wdXQubWlzc2luZ1JlcXVpcmVkRmllbGR9IC8+XG4gIDwvRXJyb3JNZXNzYWdlPlxuKTtcblxuUmVxdWlyZWRWYWx1ZUVycm9yTWVzc2FnZS5kaXNwbGF5TmFtZSA9ICdSZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlJztcblxuY29uc3QgTG9jYWxpemVkVGV4dElucHV0ID0gKHByb3BzOiBUTG9jYWxpemVkVGV4dElucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgZGVmYXVsdEV4cGFuc2lvblN0YXRlID1cbiAgICBwcm9wcy5oaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scyB8fFxuICAgIHByb3BzLmRlZmF1bHRFeHBhbmRMYW5ndWFnZXMgfHwgLy8gZGVmYXVsdCB0byBgZmFsc2VgLCBiZWNhdXNlIHVzZVRvZ2dsZVN0YXRlIGRlZmF1bHRzIHRvIGB0cnVlYFxuICAgIGZhbHNlO1xuXG4gIGNvbnN0IFthcmVMYW5ndWFnZXNFeHBhbmRlZCwgdG9nZ2xlTGFuZ3VhZ2VzXSA9IHVzZVRvZ2dsZVN0YXRlKFxuICAgIGRlZmF1bHRFeHBhbnNpb25TdGF0ZVxuICApO1xuXG4gIGNvbnN0IG9uTG9jYWxpemVkSW5wdXRUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiB0b2dnbGVMYW5ndWFnZXMoKSxcbiAgICBbdG9nZ2xlTGFuZ3VhZ2VzXVxuICApO1xuXG4gIGNvbnN0IGxhbmd1YWdlcyA9IHNvcnRMYW5ndWFnZXMoXG4gICAgcHJvcHMuc2VsZWN0ZWRMYW5ndWFnZSxcbiAgICBPYmplY3Qua2V5cyhwcm9wcy52YWx1ZSlcbiAgKTtcblxuICBjb25zdCBpZCA9IHVzZUZpZWxkSWQocHJvcHMuaWQsIHNlcXVlbnRpYWxJZCk7XG5cbiAgY29uc3QgaGFzRXJyb3JJblJlbWFpbmluZ0xhbmd1YWdlcyA9XG4gICAgcHJvcHMuaGFzRXJyb3IgfHxcbiAgICBnZXRIYXNFcnJvck9uUmVtYWluaW5nTGFuZ3VhZ2VzKHByb3BzLmVycm9ycywgcHJvcHMuc2VsZWN0ZWRMYW5ndWFnZSk7XG5cbiAgY29uc3QgaGFzV2FybmluZ0luUmVtYWluaW5nTGFuZ3VhZ2VzID1cbiAgICBwcm9wcy5oYXNXYXJuaW5nIHx8XG4gICAgZ2V0SGFzV2FybmluZ09uUmVtYWluaW5nTGFuZ3VhZ2VzKHByb3BzLndhcm5pbmdzLCBwcm9wcy5zZWxlY3RlZExhbmd1YWdlKTtcblxuICBpZiAoaGFzRXJyb3JJblJlbWFpbmluZ0xhbmd1YWdlcyB8fCBoYXNXYXJuaW5nSW5SZW1haW5pbmdMYW5ndWFnZXMpIHtcbiAgICAvLyB0aGlzIHVwZGF0ZSB3aXRoaW4gcmVuZGVyIHJlcGxhY2VzIHRoZSBvbGQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgZnVuY3Rpb25hbGl0eVxuICAgIC8vIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1mYXEuaHRtbCNob3ctZG8taS1pbXBsZW1lbnQtZ2V0ZGVyaXZlZHN0YXRlZnJvbXByb3BzXG4gICAgaWYgKCFhcmVMYW5ndWFnZXNFeHBhbmRlZCkge1xuICAgICAgdG9nZ2xlTGFuZ3VhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkUmVuZGVyTGFuZ3VhZ2VzQnV0dG9uID1cbiAgICBsYW5ndWFnZXMubGVuZ3RoID4gMSAmJiAhcHJvcHMuaGlkZUxhbmd1YWdlRXhwYW5zaW9uQ29udHJvbHM7XG5cbiAgaWYgKCFwcm9wcy5pc1JlYWRPbmx5KSB7XG4gICAgd2FybmluZyhcbiAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgICdMb2NhbGl6ZWRUZXh0SW5wdXQ6IFwib25DaGFuZ2VcIiBpcyByZXF1aXJlZCB3aGVuIGlzUmVhZE9ubHkgaXMgbm90IHRydWUnXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwcm9wcy5oaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scykge1xuICAgIHdhcm5pbmcoXG4gICAgICB0eXBlb2YgcHJvcHMuZGVmYXVsdEV4cGFuZExhbmd1YWdlcyAhPT0gJ2Jvb2xlYW4nLFxuICAgICAgJ0xvY2FsaXplZFRleHRJbnB1dDogXCJkZWZhdWx0RXhwYW5kTGFuZ3VhZ2VzXCIgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IHdoZW4gXCJoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9sc1wiIGlzIHNldC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbnN0cmFpbnRzLkhvcml6b250YWwgbWF4PXtwcm9wcy5ob3Jpem9udGFsQ29uc3RyYWludH0+XG4gICAgICA8U3RhY2sgc2NhbGU9XCJ4c1wiPlxuICAgICAgICA8U3RhY2s+XG4gICAgICAgICAge2xhbmd1YWdlcy5tYXAoKGxhbmd1YWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNGaXJzdExhbmd1YWdlID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpZiAoIWlzRmlyc3RMYW5ndWFnZSAmJiAhYXJlTGFuZ3VhZ2VzRXhwYW5kZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17bGFuZ3VhZ2V9PlxuICAgICAgICAgICAgICAgIDxTdGFjayBzY2FsZT1cInhzXCI+XG4gICAgICAgICAgICAgICAgICA8TG9jYWxpemVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPXtwcm9wcy5hdXRvQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtMb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0SWQoaWQsIGxhbmd1YWdlKX1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17TG9jYWxpemVkVGV4dElucHV0LmdldE5hbWUocHJvcHMubmFtZSwgbGFuZ3VhZ2UpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cHJvcHMudmFsdWVbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHByb3BzLnBsYWNlaG9sZGVyW2xhbmd1YWdlXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3Byb3BzLm9uQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17cHJvcHMub25Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgaXNBdXRvZm9jdXNzZWQ9e2luZGV4ID09PSAwICYmIHByb3BzLmlzQXV0b2ZvY3Vzc2VkfVxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtwcm9wcy5pc0Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBpc1JlYWRPbmx5PXtwcm9wcy5pc1JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcj17Qm9vbGVhbihcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5oYXNFcnJvciB8fCAocHJvcHMuZXJyb3JzICYmIHByb3BzLmVycm9yc1tsYW5ndWFnZV0pXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIGhhc1dhcm5pbmc9e0Jvb2xlYW4oXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaGFzV2FybmluZyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BzLndhcm5pbmdzICYmIHByb3BzLndhcm5pbmdzW2xhbmd1YWdlXSlcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgd2FybmluZz17cHJvcHMud2FybmluZ3MgJiYgcHJvcHMud2FybmluZ3NbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgICAgICB7Li4uY3JlYXRlTG9jYWxpemVkRGF0YUF0dHJpYnV0ZXMocHJvcHMsIGxhbmd1YWdlKX1cbiAgICAgICAgICAgICAgICAgICAgLyogQVJJQSAqL1xuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9e3Byb3BzWydhcmlhLWludmFsaWQnXX1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1lcnJvcm1lc3NhZ2U9e3Byb3BzWydhcmlhLWVycm9ybWVzc2FnZSddfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtwcm9wcy5lcnJvcnMgJiYgcHJvcHMuZXJyb3JzW2xhbmd1YWdlXX1cbiAgICAgICAgICAgICAgICAgIHtwcm9wcy53YXJuaW5ncyAmJiBwcm9wcy53YXJuaW5nc1tsYW5ndWFnZV19XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L1N0YWNrPlxuICAgICAgICB7c2hvdWxkUmVuZGVyTGFuZ3VhZ2VzQnV0dG9uICYmIChcbiAgICAgICAgICA8TG9jYWxpemVkSW5wdXRUb2dnbGVcbiAgICAgICAgICAgIGlzT3Blbj17YXJlTGFuZ3VhZ2VzRXhwYW5kZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkxvY2FsaXplZElucHV0VG9nZ2xlfVxuICAgICAgICAgICAgaXNEaXNhYmxlZD17XG4gICAgICAgICAgICAgIGFyZUxhbmd1YWdlc0V4cGFuZGVkICYmXG4gICAgICAgICAgICAgIEJvb2xlYW4oXG4gICAgICAgICAgICAgICAgaGFzRXJyb3JJblJlbWFpbmluZ0xhbmd1YWdlcyB8fCBoYXNXYXJuaW5nSW5SZW1haW5pbmdMYW5ndWFnZXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVtYWluaW5nTG9jYWxpemF0aW9ucz17bGFuZ3VhZ2VzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3RhY2s+XG4gICAgPC9Db25zdHJhaW50cy5Ib3Jpem9udGFsPlxuICApO1xufTtcblxuTG9jYWxpemVkVGV4dElucHV0LmRpc3BsYXlOYW1lID0gJ0xvY2FsaXplZFRleHRJbnB1dCc7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5SZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlID0gUmVxdWlyZWRWYWx1ZUVycm9yTWVzc2FnZTtcblxuTG9jYWxpemVkVGV4dElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgaG9yaXpvbnRhbENvbnN0cmFpbnQ6ICdzY2FsZScsXG59O1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0SWQgPSBnZXRJZDtcblxuTG9jYWxpemVkVGV4dElucHV0LmdldE5hbWUgPSBnZXROYW1lO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuY3JlYXRlTG9jYWxpemVkU3RyaW5nID0gY3JlYXRlTG9jYWxpemVkU3RyaW5nO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuaXNFbXB0eSA9IGlzRW1wdHk7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5vbWl0RW1wdHlUcmFuc2xhdGlvbnMgPSBvbWl0RW1wdHlUcmFuc2xhdGlvbnM7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5pc1RvdWNoZWQgPSBpc1RvdWNoZWQ7XG5cbmV4cG9ydCBkZWZhdWx0IExvY2FsaXplZFRleHRJbnB1dDtcbiJdfQ== */",
92
92
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
93
93
  };
94
94
  const LocalizedInput = props => {
@@ -136,6 +136,8 @@ LocalizedInput.propTypes = process.env.NODE_ENV !== "production" ? {
136
136
  isDisabled: _pt__default["default"].bool,
137
137
  isReadOnly: _pt__default["default"].bool,
138
138
  hasError: _pt__default["default"].bool,
139
+ hasWarning: _pt__default["default"].bool,
140
+ warning: _pt__default["default"].node,
139
141
  placeholder: _pt__default["default"].string
140
142
  } : {};
141
143
  LocalizedInput.displayName = 'LocalizedInput';
@@ -155,10 +157,11 @@ const LocalizedTextInput = props => {
155
157
  const languages = localizedUtils.sortLanguages(props.selectedLanguage, _Object$keys__default["default"](props.value));
156
158
  const id = hooks.useFieldId(props.id, sequentialId);
157
159
  const hasErrorInRemainingLanguages = props.hasError || localizedUtils.getHasErrorOnRemainingLanguages(props.errors, props.selectedLanguage);
158
- if (hasErrorInRemainingLanguages) {
160
+ const hasWarningInRemainingLanguages = props.hasWarning || localizedUtils.getHasWarningOnRemainingLanguages(props.warnings, props.selectedLanguage);
161
+ if (hasErrorInRemainingLanguages || hasWarningInRemainingLanguages) {
159
162
  // this update within render replaces the old `getDerivedStateFromProps` functionality
160
163
  // https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops
161
- if (hasErrorInRemainingLanguages !== areLanguagesExpanded) {
164
+ if (!areLanguagesExpanded) {
162
165
  toggleLanguages();
163
166
  }
164
167
  }
@@ -193,19 +196,21 @@ const LocalizedTextInput = props => {
193
196
  isAutofocussed: index === 0 && props.isAutofocussed,
194
197
  isDisabled: props.isDisabled,
195
198
  isReadOnly: props.isReadOnly,
196
- hasError: Boolean(props.hasError || props.errors && props.errors[language])
199
+ hasError: Boolean(props.hasError || props.errors && props.errors[language]),
200
+ hasWarning: Boolean(props.hasWarning || props.warnings && props.warnings[language]),
201
+ warning: props.warnings && props.warnings[language]
197
202
  }, localizedUtils.createLocalizedDataAttributes(props, language)), {}, {
198
203
  /* ARIA */
199
204
  "aria-invalid": props['aria-invalid'],
200
205
  "aria-errormessage": props['aria-errormessage']
201
- })), props.errors && props.errors[language]]
206
+ })), props.errors && props.errors[language], props.warnings && props.warnings[language]]
202
207
  })
203
208
  }, language);
204
209
  })
205
210
  }), shouldRenderLanguagesButton && jsxRuntime.jsx(inputUtils.LocalizedInputToggle, {
206
211
  isOpen: areLanguagesExpanded,
207
212
  onClick: onLocalizedInputToggle,
208
- isDisabled: areLanguagesExpanded && hasErrorInRemainingLanguages,
213
+ isDisabled: areLanguagesExpanded && Boolean(hasErrorInRemainingLanguages || hasWarningInRemainingLanguages),
209
214
  remainingLocalizations: languages.length - 1
210
215
  })]
211
216
  })
@@ -230,7 +235,9 @@ LocalizedTextInput.propTypes = process.env.NODE_ENV !== "production" ? {
230
235
  placeholder: _pt__default["default"].objectOf(_pt__default["default"].string),
231
236
  horizontalConstraint: _pt__default["default"].oneOf([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 'scale', 'auto']),
232
237
  hasError: _pt__default["default"].bool,
233
- errors: _pt__default["default"].objectOf(_pt__default["default"].string)
238
+ hasWarning: _pt__default["default"].bool,
239
+ errors: _pt__default["default"].objectOf(_pt__default["default"].string),
240
+ warnings: _pt__default["default"].objectOf(_pt__default["default"].node)
234
241
  } : {};
235
242
  LocalizedTextInput.displayName = 'LocalizedTextInput';
236
243
  LocalizedTextInput.RequiredValueErrorMessage = RequiredValueErrorMessage;
@@ -246,7 +253,7 @@ LocalizedTextInput.isTouched = localizedUtils.isTouched;
246
253
  var LocalizedTextInput$1 = LocalizedTextInput;
247
254
 
248
255
  // NOTE: This string will be replaced on build time with the package version.
249
- var version = "16.12.0";
256
+ var version = "17.0.0";
250
257
 
251
258
  exports["default"] = LocalizedTextInput$1;
252
259
  exports.version = version;
@@ -126,10 +126,11 @@ const LocalizedTextInput = props => {
126
126
  const languages = localizedUtils.sortLanguages(props.selectedLanguage, _Object$keys__default["default"](props.value));
127
127
  const id = hooks.useFieldId(props.id, sequentialId);
128
128
  const hasErrorInRemainingLanguages = props.hasError || localizedUtils.getHasErrorOnRemainingLanguages(props.errors, props.selectedLanguage);
129
- if (hasErrorInRemainingLanguages) {
129
+ const hasWarningInRemainingLanguages = props.hasWarning || localizedUtils.getHasWarningOnRemainingLanguages(props.warnings, props.selectedLanguage);
130
+ if (hasErrorInRemainingLanguages || hasWarningInRemainingLanguages) {
130
131
  // this update within render replaces the old `getDerivedStateFromProps` functionality
131
132
  // https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops
132
- if (hasErrorInRemainingLanguages !== areLanguagesExpanded) {
133
+ if (!areLanguagesExpanded) {
133
134
  toggleLanguages();
134
135
  }
135
136
  }
@@ -160,19 +161,21 @@ const LocalizedTextInput = props => {
160
161
  isAutofocussed: index === 0 && props.isAutofocussed,
161
162
  isDisabled: props.isDisabled,
162
163
  isReadOnly: props.isReadOnly,
163
- hasError: Boolean(props.hasError || props.errors && props.errors[language])
164
+ hasError: Boolean(props.hasError || props.errors && props.errors[language]),
165
+ hasWarning: Boolean(props.hasWarning || props.warnings && props.warnings[language]),
166
+ warning: props.warnings && props.warnings[language]
164
167
  }, localizedUtils.createLocalizedDataAttributes(props, language)), {}, {
165
168
  /* ARIA */
166
169
  "aria-invalid": props['aria-invalid'],
167
170
  "aria-errormessage": props['aria-errormessage']
168
- })), props.errors && props.errors[language]]
171
+ })), props.errors && props.errors[language], props.warnings && props.warnings[language]]
169
172
  })
170
173
  }, language);
171
174
  })
172
175
  }), shouldRenderLanguagesButton && jsxRuntime.jsx(inputUtils.LocalizedInputToggle, {
173
176
  isOpen: areLanguagesExpanded,
174
177
  onClick: onLocalizedInputToggle,
175
- isDisabled: areLanguagesExpanded && hasErrorInRemainingLanguages,
178
+ isDisabled: areLanguagesExpanded && Boolean(hasErrorInRemainingLanguages || hasWarningInRemainingLanguages),
176
179
  remainingLocalizations: languages.length - 1
177
180
  })]
178
181
  })
@@ -193,7 +196,7 @@ LocalizedTextInput.isTouched = localizedUtils.isTouched;
193
196
  var LocalizedTextInput$1 = LocalizedTextInput;
194
197
 
195
198
  // NOTE: This string will be replaced on build time with the package version.
196
- var version = "16.12.0";
199
+ var version = "17.0.0";
197
200
 
198
201
  exports["default"] = LocalizedTextInput$1;
199
202
  exports.version = version;
@@ -17,7 +17,7 @@ import { useToggleState, useFieldId } from '@commercetools-uikit/hooks';
17
17
  import { ErrorMessage } from '@commercetools-uikit/messages';
18
18
  import Stack from '@commercetools-uikit/spacings-stack';
19
19
  import Constraints from '@commercetools-uikit/constraints';
20
- import { sortLanguages, getHasErrorOnRemainingLanguages, createLocalizedDataAttributes, getId, getName, createLocalizedString, isEmpty, omitEmptyTranslations, isTouched } from '@commercetools-uikit/localized-utils';
20
+ import { sortLanguages, getHasErrorOnRemainingLanguages, getHasWarningOnRemainingLanguages, createLocalizedDataAttributes, getId, getName, createLocalizedString, isEmpty, omitEmptyTranslations, isTouched } from '@commercetools-uikit/localized-utils';
21
21
  import { createSequentialId, warning } from '@commercetools-uikit/utils';
22
22
  import TextInput from '@commercetools-uikit/text-input';
23
23
  import { LocalizedInputToggle, messagesLocalizedInput } from '@commercetools-uikit/input-utils';
@@ -68,7 +68,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
68
68
  } : {
69
69
  name: "1ysn02y-LocalizedInput",
70
70
  styles: "width:100%;position:relative;display:flex;label:LocalizedInput;",
71
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsaXplZC10ZXh0LWlucHV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0TGMiLCJmaWxlIjoibG9jYWxpemVkLXRleHQtaW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50SGFuZGxlcixcbiAgdHlwZSBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIHVzZUNhbGxiYWNrLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGb3JtYXR0ZWRNZXNzYWdlIH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyB1c2VGaWVsZElkLCB1c2VUb2dnbGVTdGF0ZSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2hvb2tzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L21lc3NhZ2VzJztcbmltcG9ydCBTdGFjayBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9zcGFjaW5ncy1zdGFjayc7XG5pbXBvcnQgQ29uc3RyYWludHMgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvY29uc3RyYWludHMnO1xuaW1wb3J0IHtcbiAgc29ydExhbmd1YWdlcyxcbiAgY3JlYXRlTG9jYWxpemVkRGF0YUF0dHJpYnV0ZXMsXG4gIGdldEhhc0Vycm9yT25SZW1haW5pbmdMYW5ndWFnZXMsXG4gIGlzVG91Y2hlZCxcbiAgb21pdEVtcHR5VHJhbnNsYXRpb25zLFxuICBpc0VtcHR5LFxuICBjcmVhdGVMb2NhbGl6ZWRTdHJpbmcsXG4gIGdldElkLFxuICBnZXROYW1lLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9sb2NhbGl6ZWQtdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VxdWVudGlhbElkLCB3YXJuaW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvdXRpbHMnO1xuaW1wb3J0IFRleHRJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC90ZXh0LWlucHV0JztcbmltcG9ydCB7XG4gIExvY2FsaXplZElucHV0VG9nZ2xlLFxuICBtZXNzYWdlc0xvY2FsaXplZElucHV0LFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pbnB1dC11dGlscyc7XG5pbXBvcnQge1xuICBnZXRMb2NhbGl6ZWRJbnB1dFN0eWxlcyxcbiAgZ2V0TGFuZ3VhZ2VMYWJlbFN0eWxlcyxcbn0gZnJvbSAnLi9sb2NhbGl6ZWQtdGV4dC1pbnB1dC5zdHlsZXMnO1xuXG5pbnRlcmZhY2UgSFRNTExvY2FsaXplZElucHV0RWxlbWVudCBleHRlbmRzIEhUTUxJbnB1dEVsZW1lbnQge1xuICBsYW5ndWFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUTG9jYWxpemVkVGV4dElucHV0UHJvcHMgPSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZSBpZiB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICovXG4gICdhcmlhLWludmFsaWQnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhUTUwgSUQgb2YgYW4gZWxlbWVudCBjb250YWluaW5nIGFuIGVycm9yIG1lc3NhZ2UgcmVsYXRlZCB0byB0aGUgaW5wdXQuXG4gICAqL1xuICAnYXJpYS1lcnJvcm1lc3NhZ2UnPzogc3RyaW5nO1xuICAvKipcbiAgICogICB0aGVuIGlucHV0IGRvZXNuJ3QgYWNjZXB0IGEgXCJsYW5ndWFnZXNcIiBwcm9wLCBpbnN0ZWFkIGFsbCBwb3NzaWJsZVxuICBsYW5ndWFnZXMgaGF2ZSB0byBleGlzdCAod2l0aCBlbXB0eSBvciBmaWxsZWQgc3RyaW5ncykgb24gdGhlIHZhbHVlOlxuICAgIHsgZW46ICdmb28nLCBkZTogJycsIGVzOiAnJyB9XG4gICAqL1xuICB2YWx1ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIHdoZW4gYW55IGlucHV0IGlzIGNoYW5nZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBjaGFuZ2UgZXZlbnQgb2YgdGhlIGNoYW5nZWQgaW5wdXQuXG4gICAqL1xuICBvbkNoYW5nZT86IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MTG9jYWxpemVkSW5wdXRFbGVtZW50PjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBsYW5ndWFnZSB3aWxsIGJlIHNob3duIGluIGNhc2UgdGhlIGBMb2NhbGl6ZWRUZXh0SW5wdXRgIGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFueSBmaWVsZCBpcyBibHVycmVkLiBJcyBjYWxsZWQgd2l0aCB0aGUgYGV2ZW50YCBvZiB0aGF0IGZpZWxkLlxuICAgKi9cbiAgb25CbHVyPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbnkgZmllbGQgaXMgZm9jdXNzZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBgZXZlbnRgIG9mIHRoYXQgZmllbGQuXG4gICAqL1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBXaWxsIGhpZGUgdGhlIGxhbmd1YWdlIGV4cGFuc2lvbiBjb250cm9scyB3aGVuIHNldCB0byBgdHJ1ZWAuIEFsbCBsYW5ndWFnZXMgd2lsbCBiZSBzaG93biB3aGVuIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIG9uZSBvciBhbGwgbGFuZ3VhZ2VzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRlZmF1bHRFeHBhbmRMYW5ndWFnZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogRm9jdXMgdGhlIGlucHV0IGZpZWxkIG9uIGluaXRpYWwgcmVuZGVyXG4gICAqL1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzIGFuZCBzaG93cyB0aGVtIGluIHJlYWQtb25seSBtb2RlLlxuICAgKi9cbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcnMgZm9yIGVhY2ggbGFuZ3VhZ2UuIE9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSBhcyBgdmFsdWVgLlxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogSG9yaXpvbnRhbCBzaXplIGxpbWl0IG9mIHRoZSBpbnB1dCBmaWVsZHMuXG4gICAqL1xuICBob3Jpem9udGFsQ29uc3RyYWludD86XG4gICAgfCAxXG4gICAgfCAyXG4gICAgfCAzXG4gICAgfCA0XG4gICAgfCA1XG4gICAgfCA2XG4gICAgfCA3XG4gICAgfCA4XG4gICAgfCA5XG4gICAgfCAxMFxuICAgIHwgMTFcbiAgICB8IDEyXG4gICAgfCAxM1xuICAgIHwgMTRcbiAgICB8IDE1XG4gICAgfCAxNlxuICAgIHwgJ3NjYWxlJ1xuICAgIHwgJ2F1dG8nO1xuICAvKipcbiAgICogV2lsbCBhcHBseSB0aGUgZXJyb3Igc3RhdGUgdG8gZWFjaCBpbnB1dCB3aXRob3V0IHNob3dpbmcgYW55IGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBoYXNFcnJvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIHRvIHNob3cgZXJyb3JzIHVuZGVybmVhdGggdGhlIGlucHV0cyBvZiBzcGVjaWZpYyBjdXJyZW5jaWVzLiBQYXNzIGFuIG9iamVjdCB3aG9zZSBrZXkgaXMgYSBjdXJyZW5jeSBhbmQgd2hvc2UgdmFsdWUgaXMgdGhlIGVycm9yIHRvIHNob3cgZm9yIHRoYXQga2V5LlxuICAgKi9cbiAgZXJyb3JzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRMb2NhbGl6ZWRJbnB1dFByb3BzID0ge1xuICAvKipcbiAgICogVXNlZCBhcyBwcmVmaXggb2YgSFRNTCBgaWRgIHByb3BlcnR5LiBFYWNoIGlucHV0IGZpZWxkIGlkIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke2lkUHJlZml4fS4ke2xhbmd9YCksIGUuZy4gYGZvby5lbmAuIFlvdSBjYW4gdXNlIHRoZSBzdGF0aWMgYExvY2FsaXplZFRleHRJbnB1dC5nZXRJZChpZFByZWZpeCwgbGFuZ3VhZ2UpYCB0byBjcmVhdGUgdGhpcyBpZCBzdHJpbmcsIGUuZy4gZm9yIGxhYmVscy5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlZCBhcyBIVE1MIGBuYW1lYCBwcm9wZXJ0eSBmb3IgZWFjaCBpbnB1dCBmaWVsZC4gRWFjaCBpbnB1dCBmaWVsZCBuYW1lIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke25hbWVQcmVmaXh9LiR7bGFuZ31gKSwgZS5nLiBgZm9vLmVuYFxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgYXMgSFRNTCBgYXV0b2NvbXBsZXRlYCBwcm9wZXJ0eVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlPzogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogR2V0cyBjYWxsZWQgd2hlbiBhbnkgaW5wdXQgaXMgY2hhbmdlZC4gSXMgY2FsbGVkIHdpdGggdGhlIGNoYW5nZSBldmVudCBvZiB0aGUgY2hhbmdlZCBpbnB1dC5cbiAgICovXG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxMb2NhbGl6ZWRJbnB1dEVsZW1lbnQ+O1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICBvbkJsdXI/OiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgb25Gb2N1cz86IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRPbmx5PzogYm9vbGVhbjtcbiAgaGFzRXJyb3I/OiBib29sZWFuO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbn07XG5cbmNvbnN0IHNlcXVlbnRpYWxJZCA9IGNyZWF0ZVNlcXVlbnRpYWxJZCgnbG9jYWxpemVkLXRleHQtaW5wdXQtJyk7XG5cbmNvbnN0IExvY2FsaXplZElucHV0ID0gKHByb3BzOiBUTG9jYWxpemVkSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCB7IG9uQ2hhbmdlIH0gPSBwcm9wcztcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50KSA9PiB7XG4gICAgICAvLyBXZSBtYW5pcHVsYXRlIHRoZSBldmVudCB0byBhZGQgdGhlIGxhbmd1YWdlIHRvIHRoZSB0YXJnZXQuXG4gICAgICAvLyBUaGF0IHdheSB0aGUgdXNlcnMgb2YgTG9jYWxpemVkVGV4dElucHV0J3Mgb25DaGFuZ2UgY2FuIHJlYWRcbiAgICAgIC8vIGV2ZW50LnRhcmdldC5sYW5ndWFnZSBhbmQgZXZlbnQudGFyZ2V0LnZhbHVlIHRvIGRldGVybWluZSB0aGUgbmV4dCB2YWx1ZS5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBvbmx5IG5lZWQgdGhpcyBpbmZvcm1hdGlvbiBmb3IgdGhlIHN0b3J5LCB0aGUgTUMgYXBwbGljYXRpb24gY29kZSB3aWxsXG4gICAgICAvLyBuZXZlciBuZWVkIHRvIGFjY2VzcyB0aGUgaW5mb3JtYXRpb24gaW4gc3VjaCBhbiBpbmNvbnZlbmllbnQgd2F5LCBhc1xuICAgICAgLy8gRm9ybWlrIGNhbiBkZWFsIHdpdGggYSBuYW1lIGxpa2UgXCJmb28uZW5cIiBhbmQgc2V0cyB0aGUgdmFsdWUgY29ycmVjdGx5LlxuICAgICAgLy8gV2UgY2FuJ3QgdXNlIHRoaXMgYXMgd2UgYXJlbid0IGd1YXJhbnRlZWQgYSBuYW1lIGluIHRoZSBzdG9yeSBhcyB0aGUgdXNlclxuICAgICAgLy8gbWlnaHQgY2xlYXIgaXQgdXNpbmcgdGhlIGtub2IsIGFuZCB0aGVuIHdlIGNhbid0IHBhcnNlIHRoZSBsYW5ndWFnZSBmcm9tXG4gICAgICAvLyB0aGUgaW5wdXQgbmFtZSBhbnltb3JlLlxuICAgICAgLy9cbiAgICAgIGV2ZW50LnRhcmdldC5sYW5ndWFnZSA9IHByb3BzLmxhbmd1YWdlO1xuICAgICAgb25DaGFuZ2U/LihldmVudCk7XG4gICAgfSxcbiAgICBbcHJvcHMubGFuZ3VhZ2UsIG9uQ2hhbmdlXVxuICApO1xuXG4gIGlmICghcHJvcHMuaXNSZWFkT25seSkge1xuICAgIHdhcm5pbmcoXG4gICAgICB0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbicsXG4gICAgICAnTG9jYWxpemVkVGV4dElucHV0OiBcIm9uQ2hhbmdlXCIgaXMgcmVxdWlyZWQgd2hlbiBpc1JlYWRPbmx5IGlzIG5vdCB0cnVlJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGtleT17cHJvcHMubGFuZ3VhZ2V9XG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGB9XG4gICAgPlxuICAgICAgPGxhYmVsIGh0bWxGb3I9e3Byb3BzLmlkfSBjc3M9e2dldExhbmd1YWdlTGFiZWxTdHlsZXMocHJvcHMpfT5cbiAgICAgICAge3Byb3BzLmxhbmd1YWdlLnRvVXBwZXJDYXNlKCl9XG4gICAgICA8L2xhYmVsPlxuICAgICAgPFRleHRJbnB1dFxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgIGNzcz17Z2V0TG9jYWxpemVkSW5wdXRTdHlsZXN9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuTG9jYWxpemVkSW5wdXQuZGlzcGxheU5hbWUgPSAnTG9jYWxpemVkSW5wdXQnO1xuXG5jb25zdCBSZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlID0gKCkgPT4gKFxuICA8RXJyb3JNZXNzYWdlPlxuICAgIDxGb3JtYXR0ZWRNZXNzYWdlIHsuLi5tZXNzYWdlc0xvY2FsaXplZElucHV0Lm1pc3NpbmdSZXF1aXJlZEZpZWxkfSAvPlxuICA8L0Vycm9yTWVzc2FnZT5cbik7XG5cblJlcXVpcmVkVmFsdWVFcnJvck1lc3NhZ2UuZGlzcGxheU5hbWUgPSAnUmVxdWlyZWRWYWx1ZUVycm9yTWVzc2FnZSc7XG5cbmNvbnN0IExvY2FsaXplZFRleHRJbnB1dCA9IChwcm9wczogVExvY2FsaXplZFRleHRJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IGRlZmF1bHRFeHBhbnNpb25TdGF0ZSA9XG4gICAgcHJvcHMuaGlkZUxhbmd1YWdlRXhwYW5zaW9uQ29udHJvbHMgfHxcbiAgICBwcm9wcy5kZWZhdWx0RXhwYW5kTGFuZ3VhZ2VzIHx8IC8vIGRlZmF1bHQgdG8gYGZhbHNlYCwgYmVjYXVzZSB1c2VUb2dnbGVTdGF0ZSBkZWZhdWx0cyB0byBgdHJ1ZWBcbiAgICBmYWxzZTtcblxuICBjb25zdCBbYXJlTGFuZ3VhZ2VzRXhwYW5kZWQsIHRvZ2dsZUxhbmd1YWdlc10gPSB1c2VUb2dnbGVTdGF0ZShcbiAgICBkZWZhdWx0RXhwYW5zaW9uU3RhdGVcbiAgKTtcblxuICBjb25zdCBvbkxvY2FsaXplZElucHV0VG9nZ2xlID0gdXNlQ2FsbGJhY2soXG4gICAgKCkgPT4gdG9nZ2xlTGFuZ3VhZ2VzKCksXG4gICAgW3RvZ2dsZUxhbmd1YWdlc11cbiAgKTtcblxuICBjb25zdCBsYW5ndWFnZXMgPSBzb3J0TGFuZ3VhZ2VzKFxuICAgIHByb3BzLnNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgT2JqZWN0LmtleXMocHJvcHMudmFsdWUpXG4gICk7XG5cbiAgY29uc3QgaWQgPSB1c2VGaWVsZElkKHByb3BzLmlkLCBzZXF1ZW50aWFsSWQpO1xuXG4gIGNvbnN0IGhhc0Vycm9ySW5SZW1haW5pbmdMYW5ndWFnZXMgPVxuICAgIHByb3BzLmhhc0Vycm9yIHx8XG4gICAgZ2V0SGFzRXJyb3JPblJlbWFpbmluZ0xhbmd1YWdlcyhwcm9wcy5lcnJvcnMsIHByb3BzLnNlbGVjdGVkTGFuZ3VhZ2UpO1xuXG4gIGlmIChoYXNFcnJvckluUmVtYWluaW5nTGFuZ3VhZ2VzKSB7XG4gICAgLy8gdGhpcyB1cGRhdGUgd2l0aGluIHJlbmRlciByZXBsYWNlcyB0aGUgb2xkIGBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNgIGZ1bmN0aW9uYWxpdHlcbiAgICAvLyBodHRwczovL3JlYWN0anMub3JnL2RvY3MvaG9va3MtZmFxLmh0bWwjaG93LWRvLWktaW1wbGVtZW50LWdldGRlcml2ZWRzdGF0ZWZyb21wcm9wc1xuICAgIGlmIChoYXNFcnJvckluUmVtYWluaW5nTGFuZ3VhZ2VzICE9PSBhcmVMYW5ndWFnZXNFeHBhbmRlZCkge1xuICAgICAgdG9nZ2xlTGFuZ3VhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkUmVuZGVyTGFuZ3VhZ2VzQnV0dG9uID1cbiAgICBsYW5ndWFnZXMubGVuZ3RoID4gMSAmJiAhcHJvcHMuaGlkZUxhbmd1YWdlRXhwYW5zaW9uQ29udHJvbHM7XG5cbiAgaWYgKCFwcm9wcy5pc1JlYWRPbmx5KSB7XG4gICAgd2FybmluZyhcbiAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgICdMb2NhbGl6ZWRUZXh0SW5wdXQ6IFwib25DaGFuZ2VcIiBpcyByZXF1aXJlZCB3aGVuIGlzUmVhZE9ubHkgaXMgbm90IHRydWUnXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwcm9wcy5oaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scykge1xuICAgIHdhcm5pbmcoXG4gICAgICB0eXBlb2YgcHJvcHMuZGVmYXVsdEV4cGFuZExhbmd1YWdlcyAhPT0gJ2Jvb2xlYW4nLFxuICAgICAgJ0xvY2FsaXplZFRleHRJbnB1dDogXCJkZWZhdWx0RXhwYW5kTGFuZ3VhZ2VzXCIgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IHdoZW4gXCJoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9sc1wiIGlzIHNldC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbnN0cmFpbnRzLkhvcml6b250YWwgbWF4PXtwcm9wcy5ob3Jpem9udGFsQ29uc3RyYWludH0+XG4gICAgICA8U3RhY2sgc2NhbGU9XCJ4c1wiPlxuICAgICAgICA8U3RhY2s+XG4gICAgICAgICAge2xhbmd1YWdlcy5tYXAoKGxhbmd1YWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNGaXJzdExhbmd1YWdlID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpZiAoIWlzRmlyc3RMYW5ndWFnZSAmJiAhYXJlTGFuZ3VhZ2VzRXhwYW5kZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17bGFuZ3VhZ2V9PlxuICAgICAgICAgICAgICAgIDxTdGFjayBzY2FsZT1cInhzXCI+XG4gICAgICAgICAgICAgICAgICA8TG9jYWxpemVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPXtwcm9wcy5hdXRvQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtMb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0SWQoaWQsIGxhbmd1YWdlKX1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17TG9jYWxpemVkVGV4dElucHV0LmdldE5hbWUocHJvcHMubmFtZSwgbGFuZ3VhZ2UpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cHJvcHMudmFsdWVbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHByb3BzLnBsYWNlaG9sZGVyW2xhbmd1YWdlXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3Byb3BzLm9uQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17cHJvcHMub25Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgaXNBdXRvZm9jdXNzZWQ9e2luZGV4ID09PSAwICYmIHByb3BzLmlzQXV0b2ZvY3Vzc2VkfVxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtwcm9wcy5pc0Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBpc1JlYWRPbmx5PXtwcm9wcy5pc1JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcj17Qm9vbGVhbihcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5oYXNFcnJvciB8fCAocHJvcHMuZXJyb3JzICYmIHByb3BzLmVycm9yc1tsYW5ndWFnZV0pXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5jcmVhdGVMb2NhbGl6ZWREYXRhQXR0cmlidXRlcyhwcm9wcywgbGFuZ3VhZ2UpfVxuICAgICAgICAgICAgICAgICAgICAvKiBBUklBICovXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaW52YWxpZD17cHJvcHNbJ2FyaWEtaW52YWxpZCddfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWVycm9ybWVzc2FnZT17cHJvcHNbJ2FyaWEtZXJyb3JtZXNzYWdlJ119XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge3Byb3BzLmVycm9ycyAmJiBwcm9wcy5lcnJvcnNbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9TdGFjaz5cbiAgICAgICAge3Nob3VsZFJlbmRlckxhbmd1YWdlc0J1dHRvbiAmJiAoXG4gICAgICAgICAgPExvY2FsaXplZElucHV0VG9nZ2xlXG4gICAgICAgICAgICBpc09wZW49e2FyZUxhbmd1YWdlc0V4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17b25Mb2NhbGl6ZWRJbnB1dFRvZ2dsZX1cbiAgICAgICAgICAgIGlzRGlzYWJsZWQ9e2FyZUxhbmd1YWdlc0V4cGFuZGVkICYmIGhhc0Vycm9ySW5SZW1haW5pbmdMYW5ndWFnZXN9XG4gICAgICAgICAgICByZW1haW5pbmdMb2NhbGl6YXRpb25zPXtsYW5ndWFnZXMubGVuZ3RoIC0gMX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TdGFjaz5cbiAgICA8L0NvbnN0cmFpbnRzLkhvcml6b250YWw+XG4gICk7XG59O1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZGlzcGxheU5hbWUgPSAnTG9jYWxpemVkVGV4dElucHV0JztcblxuTG9jYWxpemVkVGV4dElucHV0LlJlcXVpcmVkVmFsdWVFcnJvck1lc3NhZ2UgPSBSZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZGVmYXVsdFByb3BzID0ge1xuICBob3Jpem9udGFsQ29uc3RyYWludDogJ3NjYWxlJyxcbn07XG5cbkxvY2FsaXplZFRleHRJbnB1dC5nZXRJZCA9IGdldElkO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0TmFtZSA9IGdldE5hbWU7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5jcmVhdGVMb2NhbGl6ZWRTdHJpbmcgPSBjcmVhdGVMb2NhbGl6ZWRTdHJpbmc7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5pc0VtcHR5ID0gaXNFbXB0eTtcblxuTG9jYWxpemVkVGV4dElucHV0Lm9taXRFbXB0eVRyYW5zbGF0aW9ucyA9IG9taXRFbXB0eVRyYW5zbGF0aW9ucztcblxuTG9jYWxpemVkVGV4dElucHV0LmlzVG91Y2hlZCA9IGlzVG91Y2hlZDtcblxuZXhwb3J0IGRlZmF1bHQgTG9jYWxpemVkVGV4dElucHV0O1xuIl19 */",
71
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvY2FsaXplZC10ZXh0LWlucHV0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4TWMiLCJmaWxlIjoibG9jYWxpemVkLXRleHQtaW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBGb2N1c0V2ZW50SGFuZGxlcixcbiAgdHlwZSBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIHR5cGUgUmVhY3ROb2RlLFxuICB1c2VDYWxsYmFjayxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgRm9ybWF0dGVkTWVzc2FnZSB9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgdXNlRmllbGRJZCwgdXNlVG9nZ2xlU3RhdGUgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9ob29rcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9tZXNzYWdlcyc7XG5pbXBvcnQgU3RhY2sgZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvc3BhY2luZ3Mtc3RhY2snO1xuaW1wb3J0IENvbnN0cmFpbnRzIGZyb20gJ0Bjb21tZXJjZXRvb2xzLXVpa2l0L2NvbnN0cmFpbnRzJztcbmltcG9ydCB7XG4gIHNvcnRMYW5ndWFnZXMsXG4gIGNyZWF0ZUxvY2FsaXplZERhdGFBdHRyaWJ1dGVzLFxuICBnZXRIYXNFcnJvck9uUmVtYWluaW5nTGFuZ3VhZ2VzLFxuICBnZXRIYXNXYXJuaW5nT25SZW1haW5pbmdMYW5ndWFnZXMsXG4gIGlzVG91Y2hlZCxcbiAgb21pdEVtcHR5VHJhbnNsYXRpb25zLFxuICBpc0VtcHR5LFxuICBjcmVhdGVMb2NhbGl6ZWRTdHJpbmcsXG4gIGdldElkLFxuICBnZXROYW1lLFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9sb2NhbGl6ZWQtdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlU2VxdWVudGlhbElkLCB3YXJuaW5nIH0gZnJvbSAnQGNvbW1lcmNldG9vbHMtdWlraXQvdXRpbHMnO1xuaW1wb3J0IFRleHRJbnB1dCBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC90ZXh0LWlucHV0JztcbmltcG9ydCB7XG4gIExvY2FsaXplZElucHV0VG9nZ2xlLFxuICBtZXNzYWdlc0xvY2FsaXplZElucHV0LFxufSBmcm9tICdAY29tbWVyY2V0b29scy11aWtpdC9pbnB1dC11dGlscyc7XG5pbXBvcnQge1xuICBnZXRMb2NhbGl6ZWRJbnB1dFN0eWxlcyxcbiAgZ2V0TGFuZ3VhZ2VMYWJlbFN0eWxlcyxcbn0gZnJvbSAnLi9sb2NhbGl6ZWQtdGV4dC1pbnB1dC5zdHlsZXMnO1xuXG5pbnRlcmZhY2UgSFRNTExvY2FsaXplZElucHV0RWxlbWVudCBleHRlbmRzIEhUTUxJbnB1dEVsZW1lbnQge1xuICBsYW5ndWFnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUTG9jYWxpemVkVGV4dElucHV0UHJvcHMgPSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBhdXRvQ29tcGxldGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZSBpZiB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICovXG4gICdhcmlhLWludmFsaWQnPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhUTUwgSUQgb2YgYW4gZWxlbWVudCBjb250YWluaW5nIGFuIGVycm9yIG1lc3NhZ2UgcmVsYXRlZCB0byB0aGUgaW5wdXQuXG4gICAqL1xuICAnYXJpYS1lcnJvcm1lc3NhZ2UnPzogc3RyaW5nO1xuICAvKipcbiAgICogICB0aGVuIGlucHV0IGRvZXNuJ3QgYWNjZXB0IGEgXCJsYW5ndWFnZXNcIiBwcm9wLCBpbnN0ZWFkIGFsbCBwb3NzaWJsZVxuICBsYW5ndWFnZXMgaGF2ZSB0byBleGlzdCAod2l0aCBlbXB0eSBvciBmaWxsZWQgc3RyaW5ncykgb24gdGhlIHZhbHVlOlxuICAgIHsgZW46ICdmb28nLCBkZTogJycsIGVzOiAnJyB9XG4gICAqL1xuICB2YWx1ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqXG4gICAqIEdldHMgY2FsbGVkIHdoZW4gYW55IGlucHV0IGlzIGNoYW5nZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBjaGFuZ2UgZXZlbnQgb2YgdGhlIGNoYW5nZWQgaW5wdXQuXG4gICAqL1xuICBvbkNoYW5nZT86IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MTG9jYWxpemVkSW5wdXRFbGVtZW50PjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGljaCBsYW5ndWFnZSB3aWxsIGJlIHNob3duIGluIGNhc2UgdGhlIGBMb2NhbGl6ZWRUZXh0SW5wdXRgIGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIGFueSBmaWVsZCBpcyBibHVycmVkLiBJcyBjYWxsZWQgd2l0aCB0aGUgYGV2ZW50YCBvZiB0aGF0IGZpZWxkLlxuICAgKi9cbiAgb25CbHVyPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBhbnkgZmllbGQgaXMgZm9jdXNzZWQuIElzIGNhbGxlZCB3aXRoIHRoZSBgZXZlbnRgIG9mIHRoYXQgZmllbGQuXG4gICAqL1xuICBvbkZvY3VzPzogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG4gIC8qKlxuICAgKiBXaWxsIGhpZGUgdGhlIGxhbmd1YWdlIGV4cGFuc2lvbiBjb250cm9scyB3aGVuIHNldCB0byBgdHJ1ZWAuIEFsbCBsYW5ndWFnZXMgd2lsbCBiZSBzaG93biB3aGVuIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIG9uZSBvciBhbGwgbGFuZ3VhZ2VzIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRlZmF1bHRFeHBhbmRMYW5ndWFnZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogRm9jdXMgdGhlIGlucHV0IGZpZWxkIG9uIGluaXRpYWwgcmVuZGVyXG4gICAqL1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzLlxuICAgKi9cbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlcyBhbGwgaW5wdXQgZmllbGRzIGFuZCBzaG93cyB0aGVtIGluIHJlYWQtb25seSBtb2RlLlxuICAgKi9cbiAgaXNSZWFkT25seT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcnMgZm9yIGVhY2ggbGFuZ3VhZ2UuIE9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSBhcyBgdmFsdWVgLlxuICAgKi9cbiAgcGxhY2Vob2xkZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKipcbiAgICogSG9yaXpvbnRhbCBzaXplIGxpbWl0IG9mIHRoZSBpbnB1dCBmaWVsZHMuXG4gICAqL1xuICBob3Jpem9udGFsQ29uc3RyYWludD86XG4gICAgfCAxXG4gICAgfCAyXG4gICAgfCAzXG4gICAgfCA0XG4gICAgfCA1XG4gICAgfCA2XG4gICAgfCA3XG4gICAgfCA4XG4gICAgfCA5XG4gICAgfCAxMFxuICAgIHwgMTFcbiAgICB8IDEyXG4gICAgfCAxM1xuICAgIHwgMTRcbiAgICB8IDE1XG4gICAgfCAxNlxuICAgIHwgJ3NjYWxlJ1xuICAgIHwgJ2F1dG8nO1xuICAvKipcbiAgICogV2lsbCBhcHBseSB0aGUgZXJyb3Igc3RhdGUgdG8gZWFjaCBpbnB1dCB3aXRob3V0IHNob3dpbmcgYW55IGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICBoYXNFcnJvcj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGlucHV0IGZpZWxkIGhhcyBhIHdhcm5pbmdcbiAgICovXG4gIGhhc1dhcm5pbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogVXNlZCB0byBzaG93IGVycm9ycyB1bmRlcm5lYXRoIHRoZSBpbnB1dHMgb2Ygc3BlY2lmaWMgY3VycmVuY2llcy4gUGFzcyBhbiBvYmplY3Qgd2hvc2Uga2V5IGlzIGEgY3VycmVuY3kgYW5kIHdob3NlIHZhbHVlIGlzIHRoZSBlcnJvciB0byBzaG93IGZvciB0aGF0IGtleS5cbiAgICovXG4gIGVycm9ycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKlxuICAgKiBBIG1hcCBvZiB3YXJuaW5ncy5cbiAgICovXG4gIHdhcm5pbmdzPzogUmVjb3JkPHN0cmluZywgUmVhY3ROb2RlPjtcbn07XG5cbmV4cG9ydCB0eXBlIFRMb2NhbGl6ZWRJbnB1dFByb3BzID0ge1xuICAvKipcbiAgICogVXNlZCBhcyBwcmVmaXggb2YgSFRNTCBgaWRgIHByb3BlcnR5LiBFYWNoIGlucHV0IGZpZWxkIGlkIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke2lkUHJlZml4fS4ke2xhbmd9YCksIGUuZy4gYGZvby5lbmAuIFlvdSBjYW4gdXNlIHRoZSBzdGF0aWMgYExvY2FsaXplZFRleHRJbnB1dC5nZXRJZChpZFByZWZpeCwgbGFuZ3VhZ2UpYCB0byBjcmVhdGUgdGhpcyBpZCBzdHJpbmcsIGUuZy4gZm9yIGxhYmVscy5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVXNlZCBhcyBIVE1MIGBuYW1lYCBwcm9wZXJ0eSBmb3IgZWFjaCBpbnB1dCBmaWVsZC4gRWFjaCBpbnB1dCBmaWVsZCBuYW1lIHdpbGwgaGF2ZSB0aGUgbGFuZ3VhZ2UgYXMgYSBzdWZmaXggKGAke25hbWVQcmVmaXh9LiR7bGFuZ31gKSwgZS5nLiBgZm9vLmVuYFxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFVzZWQgYXMgSFRNTCBgYXV0b2NvbXBsZXRlYCBwcm9wZXJ0eVxuICAgKi9cbiAgYXV0b0NvbXBsZXRlPzogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICAvKipcbiAgICogR2V0cyBjYWxsZWQgd2hlbiBhbnkgaW5wdXQgaXMgY2hhbmdlZC4gSXMgY2FsbGVkIHdpdGggdGhlIGNoYW5nZSBldmVudCBvZiB0aGUgY2hhbmdlZCBpbnB1dC5cbiAgICovXG4gIG9uQ2hhbmdlPzogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxMb2NhbGl6ZWRJbnB1dEVsZW1lbnQ+O1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICBvbkJsdXI/OiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgb25Gb2N1cz86IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBpc0F1dG9mb2N1c3NlZD86IGJvb2xlYW47XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc1JlYWRPbmx5PzogYm9vbGVhbjtcbiAgaGFzRXJyb3I/OiBib29sZWFuO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBpbnB1dCBmaWVsZCBoYXMgYSB3YXJuaW5nXG4gICAqL1xuICBoYXNXYXJuaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEhUTUwgbm9kZSB0byBkaXNwbGF5IHdhcm5pbmdcbiAgICovXG4gIHdhcm5pbmc/OiBSZWFjdE5vZGU7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xufTtcblxuY29uc3Qgc2VxdWVudGlhbElkID0gY3JlYXRlU2VxdWVudGlhbElkKCdsb2NhbGl6ZWQtdGV4dC1pbnB1dC0nKTtcblxuY29uc3QgTG9jYWxpemVkSW5wdXQgPSAocHJvcHM6IFRMb2NhbGl6ZWRJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHsgb25DaGFuZ2UgfSA9IHByb3BzO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZXZlbnQpID0+IHtcbiAgICAgIC8vIFdlIG1hbmlwdWxhdGUgdGhlIGV2ZW50IHRvIGFkZCB0aGUgbGFuZ3VhZ2UgdG8gdGhlIHRhcmdldC5cbiAgICAgIC8vIFRoYXQgd2F5IHRoZSB1c2VycyBvZiBMb2NhbGl6ZWRUZXh0SW5wdXQncyBvbkNoYW5nZSBjYW4gcmVhZFxuICAgICAgLy8gZXZlbnQudGFyZ2V0Lmxhbmd1YWdlIGFuZCBldmVudC50YXJnZXQudmFsdWUgdG8gZGV0ZXJtaW5lIHRoZSBuZXh0IHZhbHVlLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIG9ubHkgbmVlZCB0aGlzIGluZm9ybWF0aW9uIGZvciB0aGUgc3RvcnksIHRoZSBNQyBhcHBsaWNhdGlvbiBjb2RlIHdpbGxcbiAgICAgIC8vIG5ldmVyIG5lZWQgdG8gYWNjZXNzIHRoZSBpbmZvcm1hdGlvbiBpbiBzdWNoIGFuIGluY29udmVuaWVudCB3YXksIGFzXG4gICAgICAvLyBGb3JtaWsgY2FuIGRlYWwgd2l0aCBhIG5hbWUgbGlrZSBcImZvby5lblwiIGFuZCBzZXRzIHRoZSB2YWx1ZSBjb3JyZWN0bHkuXG4gICAgICAvLyBXZSBjYW4ndCB1c2UgdGhpcyBhcyB3ZSBhcmVuJ3QgZ3VhcmFudGVlZCBhIG5hbWUgaW4gdGhlIHN0b3J5IGFzIHRoZSB1c2VyXG4gICAgICAvLyBtaWdodCBjbGVhciBpdCB1c2luZyB0aGUga25vYiwgYW5kIHRoZW4gd2UgY2FuJ3QgcGFyc2UgdGhlIGxhbmd1YWdlIGZyb21cbiAgICAgIC8vIHRoZSBpbnB1dCBuYW1lIGFueW1vcmUuXG4gICAgICAvL1xuICAgICAgZXZlbnQudGFyZ2V0Lmxhbmd1YWdlID0gcHJvcHMubGFuZ3VhZ2U7XG4gICAgICBvbkNoYW5nZT8uKGV2ZW50KTtcbiAgICB9LFxuICAgIFtwcm9wcy5sYW5ndWFnZSwgb25DaGFuZ2VdXG4gICk7XG5cbiAgaWYgKCFwcm9wcy5pc1JlYWRPbmx5KSB7XG4gICAgd2FybmluZyhcbiAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgICdMb2NhbGl6ZWRUZXh0SW5wdXQ6IFwib25DaGFuZ2VcIiBpcyByZXF1aXJlZCB3aGVuIGlzUmVhZE9ubHkgaXMgbm90IHRydWUnXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAga2V5PXtwcm9wcy5sYW5ndWFnZX1cbiAgICAgIGNzcz17Y3NzYFxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYH1cbiAgICA+XG4gICAgICA8bGFiZWwgaHRtbEZvcj17cHJvcHMuaWR9IGNzcz17Z2V0TGFuZ3VhZ2VMYWJlbFN0eWxlcyhwcm9wcyl9PlxuICAgICAgICB7cHJvcHMubGFuZ3VhZ2UudG9VcHBlckNhc2UoKX1cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8VGV4dElucHV0XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgY3NzPXtnZXRMb2NhbGl6ZWRJbnB1dFN0eWxlc31cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5Mb2NhbGl6ZWRJbnB1dC5kaXNwbGF5TmFtZSA9ICdMb2NhbGl6ZWRJbnB1dCc7XG5cbmNvbnN0IFJlcXVpcmVkVmFsdWVFcnJvck1lc3NhZ2UgPSAoKSA9PiAoXG4gIDxFcnJvck1lc3NhZ2U+XG4gICAgPEZvcm1hdHRlZE1lc3NhZ2Ugey4uLm1lc3NhZ2VzTG9jYWxpemVkSW5wdXQubWlzc2luZ1JlcXVpcmVkRmllbGR9IC8+XG4gIDwvRXJyb3JNZXNzYWdlPlxuKTtcblxuUmVxdWlyZWRWYWx1ZUVycm9yTWVzc2FnZS5kaXNwbGF5TmFtZSA9ICdSZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlJztcblxuY29uc3QgTG9jYWxpemVkVGV4dElucHV0ID0gKHByb3BzOiBUTG9jYWxpemVkVGV4dElucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgZGVmYXVsdEV4cGFuc2lvblN0YXRlID1cbiAgICBwcm9wcy5oaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scyB8fFxuICAgIHByb3BzLmRlZmF1bHRFeHBhbmRMYW5ndWFnZXMgfHwgLy8gZGVmYXVsdCB0byBgZmFsc2VgLCBiZWNhdXNlIHVzZVRvZ2dsZVN0YXRlIGRlZmF1bHRzIHRvIGB0cnVlYFxuICAgIGZhbHNlO1xuXG4gIGNvbnN0IFthcmVMYW5ndWFnZXNFeHBhbmRlZCwgdG9nZ2xlTGFuZ3VhZ2VzXSA9IHVzZVRvZ2dsZVN0YXRlKFxuICAgIGRlZmF1bHRFeHBhbnNpb25TdGF0ZVxuICApO1xuXG4gIGNvbnN0IG9uTG9jYWxpemVkSW5wdXRUb2dnbGUgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiB0b2dnbGVMYW5ndWFnZXMoKSxcbiAgICBbdG9nZ2xlTGFuZ3VhZ2VzXVxuICApO1xuXG4gIGNvbnN0IGxhbmd1YWdlcyA9IHNvcnRMYW5ndWFnZXMoXG4gICAgcHJvcHMuc2VsZWN0ZWRMYW5ndWFnZSxcbiAgICBPYmplY3Qua2V5cyhwcm9wcy52YWx1ZSlcbiAgKTtcblxuICBjb25zdCBpZCA9IHVzZUZpZWxkSWQocHJvcHMuaWQsIHNlcXVlbnRpYWxJZCk7XG5cbiAgY29uc3QgaGFzRXJyb3JJblJlbWFpbmluZ0xhbmd1YWdlcyA9XG4gICAgcHJvcHMuaGFzRXJyb3IgfHxcbiAgICBnZXRIYXNFcnJvck9uUmVtYWluaW5nTGFuZ3VhZ2VzKHByb3BzLmVycm9ycywgcHJvcHMuc2VsZWN0ZWRMYW5ndWFnZSk7XG5cbiAgY29uc3QgaGFzV2FybmluZ0luUmVtYWluaW5nTGFuZ3VhZ2VzID1cbiAgICBwcm9wcy5oYXNXYXJuaW5nIHx8XG4gICAgZ2V0SGFzV2FybmluZ09uUmVtYWluaW5nTGFuZ3VhZ2VzKHByb3BzLndhcm5pbmdzLCBwcm9wcy5zZWxlY3RlZExhbmd1YWdlKTtcblxuICBpZiAoaGFzRXJyb3JJblJlbWFpbmluZ0xhbmd1YWdlcyB8fCBoYXNXYXJuaW5nSW5SZW1haW5pbmdMYW5ndWFnZXMpIHtcbiAgICAvLyB0aGlzIHVwZGF0ZSB3aXRoaW4gcmVuZGVyIHJlcGxhY2VzIHRoZSBvbGQgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgZnVuY3Rpb25hbGl0eVxuICAgIC8vIGh0dHBzOi8vcmVhY3Rqcy5vcmcvZG9jcy9ob29rcy1mYXEuaHRtbCNob3ctZG8taS1pbXBsZW1lbnQtZ2V0ZGVyaXZlZHN0YXRlZnJvbXByb3BzXG4gICAgaWYgKCFhcmVMYW5ndWFnZXNFeHBhbmRlZCkge1xuICAgICAgdG9nZ2xlTGFuZ3VhZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2hvdWxkUmVuZGVyTGFuZ3VhZ2VzQnV0dG9uID1cbiAgICBsYW5ndWFnZXMubGVuZ3RoID4gMSAmJiAhcHJvcHMuaGlkZUxhbmd1YWdlRXhwYW5zaW9uQ29udHJvbHM7XG5cbiAgaWYgKCFwcm9wcy5pc1JlYWRPbmx5KSB7XG4gICAgd2FybmluZyhcbiAgICAgIHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJyxcbiAgICAgICdMb2NhbGl6ZWRUZXh0SW5wdXQ6IFwib25DaGFuZ2VcIiBpcyByZXF1aXJlZCB3aGVuIGlzUmVhZE9ubHkgaXMgbm90IHRydWUnXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwcm9wcy5oaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9scykge1xuICAgIHdhcm5pbmcoXG4gICAgICB0eXBlb2YgcHJvcHMuZGVmYXVsdEV4cGFuZExhbmd1YWdlcyAhPT0gJ2Jvb2xlYW4nLFxuICAgICAgJ0xvY2FsaXplZFRleHRJbnB1dDogXCJkZWZhdWx0RXhwYW5kTGFuZ3VhZ2VzXCIgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IHdoZW4gXCJoaWRlTGFuZ3VhZ2VFeHBhbnNpb25Db250cm9sc1wiIGlzIHNldC4nXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbnN0cmFpbnRzLkhvcml6b250YWwgbWF4PXtwcm9wcy5ob3Jpem9udGFsQ29uc3RyYWludH0+XG4gICAgICA8U3RhY2sgc2NhbGU9XCJ4c1wiPlxuICAgICAgICA8U3RhY2s+XG4gICAgICAgICAge2xhbmd1YWdlcy5tYXAoKGxhbmd1YWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNGaXJzdExhbmd1YWdlID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpZiAoIWlzRmlyc3RMYW5ndWFnZSAmJiAhYXJlTGFuZ3VhZ2VzRXhwYW5kZWQpIHJldHVybiBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8ZGl2IGtleT17bGFuZ3VhZ2V9PlxuICAgICAgICAgICAgICAgIDxTdGFjayBzY2FsZT1cInhzXCI+XG4gICAgICAgICAgICAgICAgICA8TG9jYWxpemVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPXtwcm9wcy5hdXRvQ29tcGxldGV9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtMb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0SWQoaWQsIGxhbmd1YWdlKX1cbiAgICAgICAgICAgICAgICAgICAgbmFtZT17TG9jYWxpemVkVGV4dElucHV0LmdldE5hbWUocHJvcHMubmFtZSwgbGFuZ3VhZ2UpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cHJvcHMudmFsdWVbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17cHJvcHMub25DaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlPXtsYW5ndWFnZX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgICAgICAgICAgIHByb3BzLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHByb3BzLnBsYWNlaG9sZGVyW2xhbmd1YWdlXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3Byb3BzLm9uQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17cHJvcHMub25Gb2N1c31cbiAgICAgICAgICAgICAgICAgICAgaXNBdXRvZm9jdXNzZWQ9e2luZGV4ID09PSAwICYmIHByb3BzLmlzQXV0b2ZvY3Vzc2VkfVxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtwcm9wcy5pc0Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBpc1JlYWRPbmx5PXtwcm9wcy5pc1JlYWRPbmx5fVxuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcj17Qm9vbGVhbihcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5oYXNFcnJvciB8fCAocHJvcHMuZXJyb3JzICYmIHByb3BzLmVycm9yc1tsYW5ndWFnZV0pXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIGhhc1dhcm5pbmc9e0Jvb2xlYW4oXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHMuaGFzV2FybmluZyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKHByb3BzLndhcm5pbmdzICYmIHByb3BzLndhcm5pbmdzW2xhbmd1YWdlXSlcbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgd2FybmluZz17cHJvcHMud2FybmluZ3MgJiYgcHJvcHMud2FybmluZ3NbbGFuZ3VhZ2VdfVxuICAgICAgICAgICAgICAgICAgICB7Li4uY3JlYXRlTG9jYWxpemVkRGF0YUF0dHJpYnV0ZXMocHJvcHMsIGxhbmd1YWdlKX1cbiAgICAgICAgICAgICAgICAgICAgLyogQVJJQSAqL1xuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9e3Byb3BzWydhcmlhLWludmFsaWQnXX1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1lcnJvcm1lc3NhZ2U9e3Byb3BzWydhcmlhLWVycm9ybWVzc2FnZSddfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtwcm9wcy5lcnJvcnMgJiYgcHJvcHMuZXJyb3JzW2xhbmd1YWdlXX1cbiAgICAgICAgICAgICAgICAgIHtwcm9wcy53YXJuaW5ncyAmJiBwcm9wcy53YXJuaW5nc1tsYW5ndWFnZV19XG4gICAgICAgICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L1N0YWNrPlxuICAgICAgICB7c2hvdWxkUmVuZGVyTGFuZ3VhZ2VzQnV0dG9uICYmIChcbiAgICAgICAgICA8TG9jYWxpemVkSW5wdXRUb2dnbGVcbiAgICAgICAgICAgIGlzT3Blbj17YXJlTGFuZ3VhZ2VzRXhwYW5kZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkxvY2FsaXplZElucHV0VG9nZ2xlfVxuICAgICAgICAgICAgaXNEaXNhYmxlZD17XG4gICAgICAgICAgICAgIGFyZUxhbmd1YWdlc0V4cGFuZGVkICYmXG4gICAgICAgICAgICAgIEJvb2xlYW4oXG4gICAgICAgICAgICAgICAgaGFzRXJyb3JJblJlbWFpbmluZ0xhbmd1YWdlcyB8fCBoYXNXYXJuaW5nSW5SZW1haW5pbmdMYW5ndWFnZXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVtYWluaW5nTG9jYWxpemF0aW9ucz17bGFuZ3VhZ2VzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3RhY2s+XG4gICAgPC9Db25zdHJhaW50cy5Ib3Jpem9udGFsPlxuICApO1xufTtcblxuTG9jYWxpemVkVGV4dElucHV0LmRpc3BsYXlOYW1lID0gJ0xvY2FsaXplZFRleHRJbnB1dCc7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5SZXF1aXJlZFZhbHVlRXJyb3JNZXNzYWdlID0gUmVxdWlyZWRWYWx1ZUVycm9yTWVzc2FnZTtcblxuTG9jYWxpemVkVGV4dElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgaG9yaXpvbnRhbENvbnN0cmFpbnQ6ICdzY2FsZScsXG59O1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuZ2V0SWQgPSBnZXRJZDtcblxuTG9jYWxpemVkVGV4dElucHV0LmdldE5hbWUgPSBnZXROYW1lO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuY3JlYXRlTG9jYWxpemVkU3RyaW5nID0gY3JlYXRlTG9jYWxpemVkU3RyaW5nO1xuXG5Mb2NhbGl6ZWRUZXh0SW5wdXQuaXNFbXB0eSA9IGlzRW1wdHk7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5vbWl0RW1wdHlUcmFuc2xhdGlvbnMgPSBvbWl0RW1wdHlUcmFuc2xhdGlvbnM7XG5cbkxvY2FsaXplZFRleHRJbnB1dC5pc1RvdWNoZWQgPSBpc1RvdWNoZWQ7XG5cbmV4cG9ydCBkZWZhdWx0IExvY2FsaXplZFRleHRJbnB1dDtcbiJdfQ== */",
72
72
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
73
73
  };
74
74
  const LocalizedInput = props => {
@@ -116,6 +116,8 @@ LocalizedInput.propTypes = process.env.NODE_ENV !== "production" ? {
116
116
  isDisabled: _pt.bool,
117
117
  isReadOnly: _pt.bool,
118
118
  hasError: _pt.bool,
119
+ hasWarning: _pt.bool,
120
+ warning: _pt.node,
119
121
  placeholder: _pt.string
120
122
  } : {};
121
123
  LocalizedInput.displayName = 'LocalizedInput';
@@ -135,10 +137,11 @@ const LocalizedTextInput = props => {
135
137
  const languages = sortLanguages(props.selectedLanguage, _Object$keys(props.value));
136
138
  const id = useFieldId(props.id, sequentialId);
137
139
  const hasErrorInRemainingLanguages = props.hasError || getHasErrorOnRemainingLanguages(props.errors, props.selectedLanguage);
138
- if (hasErrorInRemainingLanguages) {
140
+ const hasWarningInRemainingLanguages = props.hasWarning || getHasWarningOnRemainingLanguages(props.warnings, props.selectedLanguage);
141
+ if (hasErrorInRemainingLanguages || hasWarningInRemainingLanguages) {
139
142
  // this update within render replaces the old `getDerivedStateFromProps` functionality
140
143
  // https://reactjs.org/docs/hooks-faq.html#how-do-i-implement-getderivedstatefromprops
141
- if (hasErrorInRemainingLanguages !== areLanguagesExpanded) {
144
+ if (!areLanguagesExpanded) {
142
145
  toggleLanguages();
143
146
  }
144
147
  }
@@ -173,19 +176,21 @@ const LocalizedTextInput = props => {
173
176
  isAutofocussed: index === 0 && props.isAutofocussed,
174
177
  isDisabled: props.isDisabled,
175
178
  isReadOnly: props.isReadOnly,
176
- hasError: Boolean(props.hasError || props.errors && props.errors[language])
179
+ hasError: Boolean(props.hasError || props.errors && props.errors[language]),
180
+ hasWarning: Boolean(props.hasWarning || props.warnings && props.warnings[language]),
181
+ warning: props.warnings && props.warnings[language]
177
182
  }, createLocalizedDataAttributes(props, language)), {}, {
178
183
  /* ARIA */
179
184
  "aria-invalid": props['aria-invalid'],
180
185
  "aria-errormessage": props['aria-errormessage']
181
- })), props.errors && props.errors[language]]
186
+ })), props.errors && props.errors[language], props.warnings && props.warnings[language]]
182
187
  })
183
188
  }, language);
184
189
  })
185
190
  }), shouldRenderLanguagesButton && jsx(LocalizedInputToggle, {
186
191
  isOpen: areLanguagesExpanded,
187
192
  onClick: onLocalizedInputToggle,
188
- isDisabled: areLanguagesExpanded && hasErrorInRemainingLanguages,
193
+ isDisabled: areLanguagesExpanded && Boolean(hasErrorInRemainingLanguages || hasWarningInRemainingLanguages),
189
194
  remainingLocalizations: languages.length - 1
190
195
  })]
191
196
  })
@@ -210,7 +215,9 @@ LocalizedTextInput.propTypes = process.env.NODE_ENV !== "production" ? {
210
215
  placeholder: _pt.objectOf(_pt.string),
211
216
  horizontalConstraint: _pt.oneOf([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 'scale', 'auto']),
212
217
  hasError: _pt.bool,
213
- errors: _pt.objectOf(_pt.string)
218
+ hasWarning: _pt.bool,
219
+ errors: _pt.objectOf(_pt.string),
220
+ warnings: _pt.objectOf(_pt.node)
214
221
  } : {};
215
222
  LocalizedTextInput.displayName = 'LocalizedTextInput';
216
223
  LocalizedTextInput.RequiredValueErrorMessage = RequiredValueErrorMessage;
@@ -226,6 +233,6 @@ LocalizedTextInput.isTouched = isTouched;
226
233
  var LocalizedTextInput$1 = LocalizedTextInput;
227
234
 
228
235
  // NOTE: This string will be replaced on build time with the package version.
229
- var version = "16.12.0";
236
+ var version = "17.0.0";
230
237
 
231
238
  export { LocalizedTextInput$1 as default, version };
@@ -1,4 +1,4 @@
1
- import { type FocusEventHandler, type ChangeEventHandler } from 'react';
1
+ import { type FocusEventHandler, type ChangeEventHandler, type ReactNode } from 'react';
2
2
  interface HTMLLocalizedInputElement extends HTMLInputElement {
3
3
  language: string;
4
4
  }
@@ -21,7 +21,9 @@ export type TLocalizedTextInputProps = {
21
21
  placeholder?: Record<string, string>;
22
22
  horizontalConstraint?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 'scale' | 'auto';
23
23
  hasError?: boolean;
24
+ hasWarning?: boolean;
24
25
  errors?: Record<string, string>;
26
+ warnings?: Record<string, ReactNode>;
25
27
  };
26
28
  export type TLocalizedInputProps = {
27
29
  id?: string;
@@ -36,6 +38,8 @@ export type TLocalizedInputProps = {
36
38
  isDisabled?: boolean;
37
39
  isReadOnly?: boolean;
38
40
  hasError?: boolean;
41
+ hasWarning?: boolean;
42
+ warning?: ReactNode;
39
43
  placeholder?: string;
40
44
  };
41
45
  declare const LocalizedTextInput: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@commercetools-uikit/localized-text-input",
3
3
  "description": "A controlled text input component for localized single-line strings with validation states.",
4
- "version": "16.12.0",
4
+ "version": "17.0.0",
5
5
  "bugs": "https://github.com/commercetools/ui-kit/issues",
6
6
  "repository": {
7
7
  "type": "git",
@@ -21,18 +21,18 @@
21
21
  "dependencies": {
22
22
  "@babel/runtime": "^7.20.13",
23
23
  "@babel/runtime-corejs3": "^7.20.13",
24
- "@commercetools-uikit/constraints": "16.12.0",
25
- "@commercetools-uikit/design-system": "16.12.0",
26
- "@commercetools-uikit/flat-button": "16.12.0",
27
- "@commercetools-uikit/hooks": "16.12.0",
28
- "@commercetools-uikit/icons": "16.12.0",
29
- "@commercetools-uikit/input-utils": "16.12.0",
30
- "@commercetools-uikit/localized-utils": "16.12.0",
31
- "@commercetools-uikit/messages": "16.12.0",
32
- "@commercetools-uikit/spacings-stack": "16.12.0",
33
- "@commercetools-uikit/text": "16.12.0",
34
- "@commercetools-uikit/text-input": "16.12.0",
35
- "@commercetools-uikit/utils": "16.12.0",
24
+ "@commercetools-uikit/constraints": "17.0.0",
25
+ "@commercetools-uikit/design-system": "17.0.0",
26
+ "@commercetools-uikit/flat-button": "17.0.0",
27
+ "@commercetools-uikit/hooks": "17.0.0",
28
+ "@commercetools-uikit/icons": "17.0.0",
29
+ "@commercetools-uikit/input-utils": "17.0.0",
30
+ "@commercetools-uikit/localized-utils": "17.0.0",
31
+ "@commercetools-uikit/messages": "17.0.0",
32
+ "@commercetools-uikit/spacings-stack": "17.0.0",
33
+ "@commercetools-uikit/text": "17.0.0",
34
+ "@commercetools-uikit/text-input": "17.0.0",
35
+ "@commercetools-uikit/utils": "17.0.0",
36
36
  "@emotion/react": "^11.10.5",
37
37
  "@emotion/styled": "^11.10.5",
38
38
  "prop-types": "15.8.1"