@onepercentio/one-ui 1.2.1 → 1.2.2

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.
@@ -5,7 +5,18 @@ process.env.NODE_ENV =
5
5
  : "production");
6
6
  const { resolveFromMainContext } = require("./workarounds");
7
7
  require("./monkeypatch");
8
+ const chalk = require("chalk");
8
9
  const { join, relative, resolve } = require("path");
10
+ try {
11
+ require(resolveFromMainContext("html-webpack-plugin"));
12
+ } catch (error) {
13
+ throw new Error(
14
+ chalk.white(
15
+ `There was a problem loading the module ${chalk.red(chalk.bold("html-webpack-plugin"))} (Check the error above).
16
+ Make sure it's installed as it is important for generating the final HTML files.`,
17
+ ),
18
+ );
19
+ }
9
20
  const HTMLPlugin = require(resolveFromMainContext("html-webpack-plugin"));
10
21
  const {
11
22
  writeFileSync,
@@ -17,7 +28,6 @@ const {
17
28
  } = require("fs");
18
29
  const lodash = require("lodash");
19
30
  const { findPathDeep } = require("deepdash")(lodash);
20
- const chalk = require("chalk");
21
31
 
22
32
  function findAllStaticGeneration() {
23
33
  const glob = require("glob");
@@ -49,11 +59,12 @@ async function loadGenerator() {
49
59
  })();
50
60
  return await (configGenerator.default || configGenerator)(
51
61
  resolve("."),
52
- process.env.NODE_ENV
62
+ process.env.NODE_ENV,
53
63
  );
54
64
  } catch (e) {
55
65
  switch (e.code) {
56
66
  case "MODULE_NOT_FOUND":
67
+ case "ERR_MODULE_NOT_FOUND":
57
68
  if (e.message.split("\n")[0].includes("config-factory")) {
58
69
  const ans = await require("inquirer").prompt([
59
70
  {
@@ -74,14 +85,14 @@ async function loadGenerator() {
74
85
  config,
75
86
  mainHtml
76
87
  }
77
- }`
88
+ }`,
78
89
  );
79
90
  console.log(require("chalk").green("File created"));
80
91
  } else {
81
92
  console.log(
82
93
  require("chalk").yellow(
83
- "This command will only work when there is a valid configuration"
84
- )
94
+ "This command will only work when there is a valid configuration",
95
+ ),
85
96
  );
86
97
  }
87
98
  process.exit(0);
@@ -104,11 +115,11 @@ function findFirstBabelLoaderConfigPath(config) {
104
115
  function prerenderRequire() {
105
116
  try {
106
117
  return resolveFromMainContext(
107
- "@nettoolkit/prerender-loader" // This supports webpack 5
118
+ "@nettoolkit/prerender-loader", // This supports webpack 5
108
119
  );
109
120
  } catch (e) {
110
121
  return resolveFromMainContext(
111
- "prerender-loader" // This doesn't
122
+ "prerender-loader", // This doesn't
112
123
  );
113
124
  }
114
125
  }
@@ -126,11 +137,11 @@ async function createConfig(
126
137
  /** @type {number} */
127
138
  maxParallelTasks,
128
139
  /** @type {() => Promise<string[]>} */
129
- filterResults = async (results) => results
140
+ filterResults = async (results) => results,
130
141
  ) {
131
142
  if (!process.env.EMAIL_TEMPLATES_BASE_DOMAIN)
132
143
  throw new Error(
133
- `The env variable "EMAIL_TEMPLATES_BASE_DOMAIN" is not set (ex: https://localhost:3000). It's required for pointing to the image resources correctly`
144
+ `The env variable "EMAIL_TEMPLATES_BASE_DOMAIN" is not set (ex: https://localhost:3000). It's required for pointing to the image resources correctly`,
134
145
  );
135
146
  if (!existsSync(outputDir)) mkdirSync(outputDir, { recursive: true });
136
147
 
@@ -140,7 +151,7 @@ async function createConfig(
140
151
  const onlyHTMLs = !outputFolderFiles.some(
141
152
  (file) =>
142
153
  lstatSync(join(outputDir, file)).isDirectory() ||
143
- !file.endsWith(".html")
154
+ !file.endsWith(".html"),
144
155
  );
145
156
  if (onlyHTMLs) {
146
157
  rmSync(outputDir, {
@@ -158,8 +169,8 @@ async function createConfig(
158
169
  baseConfig.plugins = baseConfig.plugins.filter(
159
170
  (a) =>
160
171
  !["ManifestPlugin", "MiniCss"].find((pattern) =>
161
- a.constructor.name.includes(pattern)
162
- )
172
+ a.constructor.name.includes(pattern),
173
+ ),
163
174
  );
164
175
  /** @type {import("webpack").WebpackPluginInstance} */
165
176
  const LogPlugin = {
@@ -168,7 +179,7 @@ async function createConfig(
168
179
  compiler.hooks.afterEmit.tap("Logger", (compilation) => {
169
180
  console.log(chalk.green("Output successfull"));
170
181
  const htmls = Object.keys(compilation.assets).filter((a) =>
171
- a.endsWith(".html")
182
+ a.endsWith(".html"),
172
183
  );
173
184
  const lazyFindPort = process.argv.find((a) => a === "--port");
174
185
  const port = process.argv[process.argv.indexOf(lazyFindPort) + 1];
@@ -190,7 +201,7 @@ async function createConfig(
190
201
  ? baseConfig.module.rules
191
202
  : lodash.get(
192
203
  baseConfig.module.rules,
193
- babelLoaderPath.slice(0, indexOfOneOf + 5)
204
+ babelLoaderPath.slice(0, indexOfOneOf + 5),
194
205
  );
195
206
 
196
207
  whereToPlaceTheNewLoaderPath.splice(1, 0, {
@@ -315,7 +326,7 @@ async function createConfig(
315
326
 
316
327
  if (!baseConfig.resolve.alias) baseConfig.resolve.alias = {};
317
328
  baseConfig.resolve.alias.CSSInliner = require.resolve(
318
- join(__dirname, "scripts", "css-inliner.ts")
329
+ join(__dirname, "scripts", "css-inliner.ts"),
319
330
  );
320
331
 
321
332
  baseConfig.output.filename = `[name].js`;
@@ -326,12 +337,12 @@ async function createConfig(
326
337
  baseConfig.plugins = baseConfig.plugins.filter(
327
338
  (a) =>
328
339
  !["ModuleFederationPlugin", "SourceMapDevToolPlugin"].includes(
329
- a.constructor.name
330
- )
340
+ a.constructor.name,
341
+ ),
331
342
  );
332
343
 
333
344
  const providePlugin = baseConfig.plugins.find(
334
- (a) => a.constructor.name === "ProvidePlugin"
345
+ (a) => a.constructor.name === "ProvidePlugin",
335
346
  );
336
347
 
337
348
  if (providePlugin) delete providePlugin.definitions.process;
@@ -344,9 +355,9 @@ function checkTemplatesCount(webpackEntry) {
344
355
  console.log(
345
356
  chalk.green(
346
357
  `No templates were found. If you want to create a static template, please create a file with name ${chalk.white(
347
- "{htmlName}.static.tsx"
348
- )} (ex: some-template.static.tsx)`
349
- )
358
+ "{htmlName}.static.tsx",
359
+ )} (ex: some-template.static.tsx)`,
360
+ ),
350
361
  );
351
362
  process.exit(0);
352
363
  }
@@ -370,7 +381,7 @@ module.exports = async function initEmailWebpack() {
370
381
  outputDir,
371
382
  resourcesOnly,
372
383
  maxParallelTasks,
373
- templatesFilter
384
+ templatesFilter,
374
385
  );
375
386
  checkTemplatesCount(config.entry);
376
387
  return config;
@@ -6,15 +6,22 @@ module.exports = function (content) {
6
6
  } = getOptions(this);
7
7
  content = content.replace("export default ", "");
8
8
  const [_, functionName] = /function ([a-zA-Z0-9]+)\(/.exec(content);
9
- content = `import { render } from 'react-dom';
9
+ content = `import * as DOM from 'react-dom';
10
+ import * as ClientDOM from 'react-dom/client';
10
11
  import React from 'react';
11
12
  import InlineCSS from "CSSInliner";
12
13
  window.PRERENDER = window.PRERENDER || true
13
-
14
+ const { render } = DOM;
15
+ const { createRoot } = ClientDOM;
14
16
  ${content}
15
17
  export default function Load() {
16
18
  return new Promise((r) => {
17
- render(<${functionName}/>, document.body);
19
+ if (!!createRoot) {
20
+ createRoot(document.body).render(<${functionName}/>)
21
+ } else {
22
+ render(<${functionName}/>, document.body);
23
+ }
24
+
18
25
  ${inlineCSS ? `InlineCSS();` : ""}
19
26
  r();
20
27
  })
@@ -49,10 +49,16 @@ function _Input(_ref, ref) {
49
49
  }
50
50
  }, [autoFocus]);
51
51
  const Component = multiline ? "textarea" : "input";
52
+ const containerRef = (0, _react.useRef)(null);
53
+ const maxWidth = (0, _react.useMemo)(() => {
54
+ var _containerRef$current;
55
+ return (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.getBoundingClientRect().width;
56
+ }, [error, disclaimer]);
52
57
  return /*#__PURE__*/_react.default.createElement("div", {
53
58
  className: "".concat(className.container, " ").concat(localClassName)
54
59
  }, /*#__PURE__*/_react.default.createElement("div", _extends({
55
- className: "".concat(_InputModule.default.inputContainer, " ").concat(false ? _InputModule.default.withIcon : "")
60
+ className: "".concat(_InputModule.default.inputContainer, " ").concat(false ? _InputModule.default.withIcon : ""),
61
+ ref: containerRef
56
62
  }, containerProps), decoration, /*#__PURE__*/_react.default.createElement(Component, _extends({
57
63
  ref: inputRef,
58
64
  placeholder: placeholder,
@@ -72,7 +78,10 @@ function _Input(_ref, ref) {
72
78
  }, Icon), icon && /*#__PURE__*/_react.default.createElement("img", _extends({
73
79
  className: _InputModule.default.icon
74
80
  }, icon))), /*#__PURE__*/_react.default.createElement(_AdaptiveContainer.default, {
75
- direction: "v"
81
+ direction: "v",
82
+ style: {
83
+ maxWidth: maxWidth
84
+ }
76
85
  }, error && shouldShowError ? /*#__PURE__*/_react.default.createElement(_Text.default, {
77
86
  key: "error",
78
87
  title: typeof error === "string" ? error : "",
@@ -91,4 +100,4 @@ function _Input(_ref, ref) {
91
100
  **/
92
101
  const Input = /*#__PURE__*/(0, _react.forwardRef)(_Input);
93
102
  var _default = exports.default = Input;
94
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfT25lVUlQcm92aWRlciIsIl9UZXh0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9JbnB1dE1vZHVsZSIsIl9BZGFwdGl2ZUNvbnRhaW5lciIsIl9leGNsdWRlZCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJfSW5wdXQiLCJfcmVmIiwicmVmIiwiX3ZhcmlhbnRzJGVycm9yIiwiX3ZhcmlhbnRzJGRpc2NsYWltZXIiLCJlcnJvciIsInBsYWNlaG9sZGVyIiwiaGlkZUVycm9yIiwiaWNvbiIsIkljb24iLCJhdXRvRm9jdXMiLCJkaXNjbGFpbWVyIiwibXVsdGlsaW5lIiwiZGVjb3JhdGlvbiIsImNvbnRhaW5lclByb3BzIiwiY2xhc3NOYW1lIiwibG9jYWxDbGFzc05hbWUiLCJvdGhlclByb3BzIiwidXNlT25lVUlDb25maWciLCJ2YXJpYW50cyIsImZvY3VzZWQiLCJzZXRGb2N1c2VkIiwidXNlU3RhdGUiLCJpbnB1dFJlZiIsInVzZVJlZiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJjdXJyZW50Iiwic2hvdWxkU2hvd0Vycm9yIiwidXNlTWVtbyIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJmb2N1cyIsImNsZWFyVGltZW91dCIsIkNvbXBvbmVudCIsImNyZWF0ZUVsZW1lbnQiLCJjb25jYXQiLCJjb250YWluZXIiLCJTdHlsZXMiLCJpbnB1dENvbnRhaW5lciIsIndpdGhJY29uIiwicm93cyIsImlucHV0Iiwib25Gb2N1cyIsIm9uQmx1ciIsImRpcmVjdGlvbiIsImtleSIsInRpdGxlIiwidHlwZSIsIkZyYWdtZW50IiwiSW5wdXQiLCJmb3J3YXJkUmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSW5wdXQvSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIERldGFpbGVkSFRNTFByb3BzLFxuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEZyYWdtZW50LFxuICBSZWFjdEVsZW1lbnQsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VPbmVVSUNvbmZpZyB9IGZyb20gXCIuLi8uLi9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcbmltcG9ydCBUZXh0IGZyb20gXCIuLi9UZXh0XCI7XG5pbXBvcnQgU3R5bGVzIGZyb20gXCIuL0lucHV0Lm1vZHVsZS5zY3NzXCI7XG5pbXBvcnQgQWRhcHRpdmVDb250YWluZXIgZnJvbSBcIi4uL0FkYXB0aXZlQ29udGFpbmVyXCI7XG5cbmV4cG9ydCB0eXBlIElucHV0UHJvcHMgPSB7XG4gIGRlY29yYXRpb24/OiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudWxsO1xuICBlcnJvcj86IHN0cmluZyB8IFJlYWN0RWxlbWVudDtcbiAgaGlkZUVycm9yPzogXCJvbmZvY3VzXCI7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBkaXNjbGFpbWVyPzogc3RyaW5nIHwgUmVhY3RFbGVtZW50O1xuICBtdWx0aWxpbmU/OiBudW1iZXI7XG4gIGljb24/OiB7XG4gICAgb25DbGljaz86ICgpID0+IHZvaWQ7XG4gIH0gJiBEZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5JbWdIVE1MQXR0cmlidXRlczxIVE1MSW1hZ2VFbGVtZW50PiwgYW55PjtcbiAgSWNvbj86IFJlYWN0LlJlYWN0RWxlbWVudDtcbiAgb25DaGFuZ2U/OiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuICBjb250YWluZXJQcm9wcz86IE9taXQ8UmVhY3QuSFRNTFByb3BzPEhUTUxEaXZFbGVtZW50PiwgXCJyZWZcIj47XG4gIHZhbHVlPzogc3RyaW5nO1xuICBcImRhdGEtdGVzdGlkXCI/OiBzdHJpbmc7XG59ICYgT21pdDxcbiAgUmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PixcbiAgXCJyZWZcIiB8IFwib25DaGFuZ2VcIiB8IFwidmFsdWVcIlxuPjtcbmZ1bmN0aW9uIF9JbnB1dChcbiAge1xuICAgIGVycm9yLFxuICAgIHBsYWNlaG9sZGVyID0gXCIgXCIsXG4gICAgaGlkZUVycm9yLFxuICAgIGljb24sXG4gICAgSWNvbixcbiAgICBhdXRvRm9jdXMsXG4gICAgZGlzY2xhaW1lcixcbiAgICBtdWx0aWxpbmUsXG4gICAgZGVjb3JhdGlvbiA9IG51bGwsXG4gICAgY29udGFpbmVyUHJvcHMsXG4gICAgY2xhc3NOYW1lOiBsb2NhbENsYXNzTmFtZSxcbiAgICAuLi5vdGhlclByb3BzXG4gIH06IElucHV0UHJvcHMsXG4gIHJlZjogRm9yd2FyZGVkUmVmPGFueT4sXG4pIHtcbiAgY29uc3QgY2xhc3NOYW1lID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuaW5wdXQuY2xhc3NOYW1lXCIsIHt9KTtcbiAgY29uc3QgdmFyaWFudHMgPSB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5pbnB1dC5sYWJlbFZhcmlhbnRzXCIsIHt9KTtcbiAgY29uc3QgW2ZvY3VzZWQsIHNldEZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiBpbnB1dFJlZi5jdXJyZW50LCBbXSk7XG4gIGNvbnN0IHNob3VsZFNob3dFcnJvciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChoaWRlRXJyb3IgPT09IFwib25mb2N1c1wiKSByZXR1cm4gIWZvY3VzZWQ7XG4gICAgcmV0dXJuICEhZXJyb3I7XG4gIH0sIFtmb2N1c2VkLCBlcnJvciwgaGlkZUVycm9yXSk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGF1dG9Gb2N1cykge1xuICAgICAgY29uc3QgdCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpbnB1dFJlZi5jdXJyZW50IS5mb2N1cygpO1xuICAgICAgfSwgNTAwKTtcbiAgICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodCk7XG4gICAgfVxuICB9LCBbYXV0b0ZvY3VzXSk7XG4gIGNvbnN0IENvbXBvbmVudCA9IG11bHRpbGluZSA/IFwidGV4dGFyZWFcIiA6IFwiaW5wdXRcIjtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7Y2xhc3NOYW1lLmNvbnRhaW5lcn0gJHtsb2NhbENsYXNzTmFtZX1gfT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtgJHtTdHlsZXMuaW5wdXRDb250YWluZXJ9ICR7ZmFsc2UgPyBTdHlsZXMud2l0aEljb24gOiBcIlwifWB9XG4gICAgICAgIHsuLi5jb250YWluZXJQcm9wc31cbiAgICAgID5cbiAgICAgICAge2RlY29yYXRpb259XG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICByZWY9e2lucHV0UmVmIGFzIGFueX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgcm93cz17bXVsdGlsaW5lfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lLmlucHV0fVxuICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKHRydWUpO1xuICAgICAgICAgICAgaWYgKG90aGVyUHJvcHMub25Gb2N1cykgb3RoZXJQcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25CbHVyPXsoZSkgPT4ge1xuICAgICAgICAgICAgc2V0Rm9jdXNlZChmYWxzZSk7XG4gICAgICAgICAgICBpZiAob3RoZXJQcm9wcy5vbkJsdXIpIG90aGVyUHJvcHMub25CbHVyKGUpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtJY29uICYmIDxkaXYgY2xhc3NOYW1lPXtTdHlsZXMuaWNvbn0+e0ljb259PC9kaXY+fVxuICAgICAgICB7aWNvbiAmJiA8aW1nIGNsYXNzTmFtZT17U3R5bGVzLmljb259IHsuLi5pY29ufSAvPn1cbiAgICAgIDwvZGl2PlxuICAgICAgPEFkYXB0aXZlQ29udGFpbmVyIGRpcmVjdGlvbj1cInZcIj5cbiAgICAgICAge2Vycm9yICYmIHNob3VsZFNob3dFcnJvciA/IChcbiAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAga2V5PXtcImVycm9yXCJ9XG4gICAgICAgICAgICB0aXRsZT17dHlwZW9mIGVycm9yID09PSBcInN0cmluZ1wiID8gZXJyb3IgOiBcIlwifVxuICAgICAgICAgICAgdHlwZT17dmFyaWFudHMuZXJyb3IgPz8gXCJlcnJvclwifVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlcnJvcn1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkgOiBkaXNjbGFpbWVyID8gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e1widFwifVxuICAgICAgICAgICAgdGl0bGU9e3R5cGVvZiBkaXNjbGFpbWVyID09PSBcInN0cmluZ1wiID8gZGlzY2xhaW1lciA6IFwiXCJ9XG4gICAgICAgICAgICB0eXBlPXt2YXJpYW50cy5kaXNjbGFpbWVyID8/IFwiY2FwdGlvblwifVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtkaXNjbGFpbWVyfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8RnJhZ21lbnQga2V5PXtcImVcIn0gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvQWRhcHRpdmVDb250YWluZXI+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbi8qKlxuICogQSB0cmFuc3BhcmVudCBpbnB1dCB3aXRoIHNvbWUgcHJlYnVpbHQgc3RhdGVzIGNvbW1vbiB0byB0aGUgYXBwbGljYXRpb25cbiAqKi9cbmNvbnN0IElucHV0ID0gZm9yd2FyZFJlZihfSW5wdXQpO1xuZXhwb3J0IGRlZmF1bHQgSW5wdXQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQWFBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFBcUQsTUFBQU0sU0FBQTtBQUFBLFNBQUFILHVCQUFBSSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUcsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFaLHVCQUFBLFlBQUFBLENBQUFRLENBQUEsRUFBQUcsQ0FBQSxTQUFBQSxDQUFBLElB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
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfT25lVUlQcm92aWRlciIsIl9UZXh0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9JbnB1dE1vZHVsZSIsIl9BZGFwdGl2ZUNvbnRhaW5lciIsIl9leGNsdWRlZCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJfSW5wdXQiLCJfcmVmIiwicmVmIiwiX3ZhcmlhbnRzJGVycm9yIiwiX3ZhcmlhbnRzJGRpc2NsYWltZXIiLCJlcnJvciIsInBsYWNlaG9sZGVyIiwiaGlkZUVycm9yIiwiaWNvbiIsIkljb24iLCJhdXRvRm9jdXMiLCJkaXNjbGFpbWVyIiwibXVsdGlsaW5lIiwiZGVjb3JhdGlvbiIsImNvbnRhaW5lclByb3BzIiwiY2xhc3NOYW1lIiwibG9jYWxDbGFzc05hbWUiLCJvdGhlclByb3BzIiwidXNlT25lVUlDb25maWciLCJ2YXJpYW50cyIsImZvY3VzZWQiLCJzZXRGb2N1c2VkIiwidXNlU3RhdGUiLCJpbnB1dFJlZiIsInVzZVJlZiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJjdXJyZW50Iiwic2hvdWxkU2hvd0Vycm9yIiwidXNlTWVtbyIsInVzZUVmZmVjdCIsInNldFRpbWVvdXQiLCJmb2N1cyIsImNsZWFyVGltZW91dCIsIkNvbXBvbmVudCIsImNvbnRhaW5lclJlZiIsIm1heFdpZHRoIiwiX2NvbnRhaW5lclJlZiRjdXJyZW50IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwid2lkdGgiLCJjcmVhdGVFbGVtZW50IiwiY29uY2F0IiwiY29udGFpbmVyIiwiU3R5bGVzIiwiaW5wdXRDb250YWluZXIiLCJ3aXRoSWNvbiIsInJvd3MiLCJpbnB1dCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJkaXJlY3Rpb24iLCJzdHlsZSIsImtleSIsInRpdGxlIiwidHlwZSIsIkZyYWdtZW50IiwiSW5wdXQiLCJmb3J3YXJkUmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvSW5wdXQvSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBDaGFuZ2VFdmVudEhhbmRsZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRGV0YWlsZWRIVE1MUHJvcHMsXG4gIEZvcndhcmRlZFJlZixcbiAgZm9yd2FyZFJlZixcbiAgRnJhZ21lbnQsXG4gIFJlYWN0RWxlbWVudCxcbiAgdXNlRWZmZWN0LFxuICB1c2VJbXBlcmF0aXZlSGFuZGxlLFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuaW1wb3J0IFRleHQgZnJvbSBcIi4uL1RleHRcIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vSW5wdXQubW9kdWxlLnNjc3NcIjtcbmltcG9ydCBBZGFwdGl2ZUNvbnRhaW5lciBmcm9tIFwiLi4vQWRhcHRpdmVDb250YWluZXJcIjtcblxuZXhwb3J0IHR5cGUgSW5wdXRQcm9wcyA9IHtcbiAgZGVjb3JhdGlvbj86IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bGw7XG4gIGVycm9yPzogc3RyaW5nIHwgUmVhY3RFbGVtZW50O1xuICBoaWRlRXJyb3I/OiBcIm9uZm9jdXNcIjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2NsYWltZXI/OiBzdHJpbmcgfCBSZWFjdEVsZW1lbnQ7XG4gIG11bHRpbGluZT86IG51bWJlcjtcbiAgaWNvbj86IHtcbiAgICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbiAgfSAmIERldGFpbGVkSFRNTFByb3BzPFJlYWN0LkltZ0hUTUxBdHRyaWJ1dGVzPEhUTUxJbWFnZUVsZW1lbnQ+LCBhbnk+O1xuICBJY29uPzogUmVhY3QuUmVhY3RFbGVtZW50O1xuICBvbkNoYW5nZT86IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudD47XG4gIGNvbnRhaW5lclByb3BzPzogT21pdDxSZWFjdC5IVE1MUHJvcHM8SFRNTERpdkVsZW1lbnQ+LCBcInJlZlwiPjtcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIFwiZGF0YS10ZXN0aWRcIj86IHN0cmluZztcbn0gJiBPbWl0PFxuICBSZWFjdC5IVE1MUHJvcHM8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+LFxuICBcInJlZlwiIHwgXCJvbkNoYW5nZVwiIHwgXCJ2YWx1ZVwiXG4+O1xuZnVuY3Rpb24gX0lucHV0KFxuICB7XG4gICAgZXJyb3IsXG4gICAgcGxhY2Vob2xkZXIgPSBcIiBcIixcbiAgICBoaWRlRXJyb3IsXG4gICAgaWNvbixcbiAgICBJY29uLFxuICAgIGF1dG9Gb2N1cyxcbiAgICBkaXNjbGFpbWVyLFxuICAgIG11bHRpbGluZSxcbiAgICBkZWNvcmF0aW9uID0gbnVsbCxcbiAgICBjb250YWluZXJQcm9wcyxcbiAgICBjbGFzc05hbWU6IGxvY2FsQ2xhc3NOYW1lLFxuICAgIC4uLm90aGVyUHJvcHNcbiAgfTogSW5wdXRQcm9wcyxcbiAgcmVmOiBGb3J3YXJkZWRSZWY8YW55Pixcbikge1xuICBjb25zdCBjbGFzc05hbWUgPSB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5pbnB1dC5jbGFzc05hbWVcIiwge30pO1xuICBjb25zdCB2YXJpYW50cyA9IHVzZU9uZVVJQ29uZmlnKFwiY29tcG9uZW50LmlucHV0LmxhYmVsVmFyaWFudHNcIiwge30pO1xuICBjb25zdCBbZm9jdXNlZCwgc2V0Rm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlucHV0UmVmLmN1cnJlbnQsIFtdKTtcbiAgY29uc3Qgc2hvdWxkU2hvd0Vycm9yID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGhpZGVFcnJvciA9PT0gXCJvbmZvY3VzXCIpIHJldHVybiAhZm9jdXNlZDtcbiAgICByZXR1cm4gISFlcnJvcjtcbiAgfSwgW2ZvY3VzZWQsIGVycm9yLCBoaWRlRXJyb3JdKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoYXV0b0ZvY3VzKSB7XG4gICAgICBjb25zdCB0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlucHV0UmVmLmN1cnJlbnQhLmZvY3VzKCk7XG4gICAgICB9LCA1MDApO1xuICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0KTtcbiAgICB9XG4gIH0sIFthdXRvRm9jdXNdKTtcbiAgY29uc3QgQ29tcG9uZW50ID0gbXVsdGlsaW5lID8gXCJ0ZXh0YXJlYVwiIDogXCJpbnB1dFwiO1xuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8Q29tcG9uZW50UmVmPFwiZGl2XCI+PihudWxsKTtcbiAgY29uc3QgbWF4V2lkdGggPSB1c2VNZW1vKFxuICAgICgpID0+IGNvbnRhaW5lclJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCxcbiAgICBbZXJyb3IsIGRpc2NsYWltZXJdLFxuICApO1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtjbGFzc05hbWUuY29udGFpbmVyfSAke2xvY2FsQ2xhc3NOYW1lfWB9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2Ake1N0eWxlcy5pbnB1dENvbnRhaW5lcn0gJHtmYWxzZSA/IFN0eWxlcy53aXRoSWNvbiA6IFwiXCJ9YH1cbiAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgIHsuLi5jb250YWluZXJQcm9wc31cbiAgICAgID5cbiAgICAgICAge2RlY29yYXRpb259XG4gICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICByZWY9e2lucHV0UmVmIGFzIGFueX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgICAgcm93cz17bXVsdGlsaW5lfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lLmlucHV0fVxuICAgICAgICAgIHsuLi5vdGhlclByb3BzfVxuICAgICAgICAgIG9uRm9jdXM9eyhlKSA9PiB7XG4gICAgICAgICAgICBzZXRGb2N1c2VkKHRydWUpO1xuICAgICAgICAgICAgaWYgKG90aGVyUHJvcHMub25Gb2N1cykgb3RoZXJQcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25CbHVyPXsoZSkgPT4ge1xuICAgICAgICAgICAgc2V0Rm9jdXNlZChmYWxzZSk7XG4gICAgICAgICAgICBpZiAob3RoZXJQcm9wcy5vbkJsdXIpIG90aGVyUHJvcHMub25CbHVyKGUpO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtJY29uICYmIDxkaXYgY2xhc3NOYW1lPXtTdHlsZXMuaWNvbn0+e0ljb259PC9kaXY+fVxuICAgICAgICB7aWNvbiAmJiA8aW1nIGNsYXNzTmFtZT17U3R5bGVzLmljb259IHsuLi5pY29ufSAvPn1cbiAgICAgIDwvZGl2PlxuICAgICAgPEFkYXB0aXZlQ29udGFpbmVyIGRpcmVjdGlvbj1cInZcIiBzdHlsZT17eyBtYXhXaWR0aDogbWF4V2lkdGggfX0+XG4gICAgICAgIHtlcnJvciAmJiBzaG91bGRTaG93RXJyb3IgPyAoXG4gICAgICAgICAgPFRleHRcbiAgICAgICAgICAgIGtleT17XCJlcnJvclwifVxuICAgICAgICAgICAgdGl0bGU9e3R5cGVvZiBlcnJvciA9PT0gXCJzdHJpbmdcIiA/IGVycm9yIDogXCJcIn1cbiAgICAgICAgICAgIHR5cGU9e3ZhcmlhbnRzLmVycm9yID8/IFwiZXJyb3JcIn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZXJyb3J9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApIDogZGlzY2xhaW1lciA/IChcbiAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAga2V5PXtcInRcIn1cbiAgICAgICAgICAgIHRpdGxlPXt0eXBlb2YgZGlzY2xhaW1lciA9PT0gXCJzdHJpbmdcIiA/IGRpc2NsYWltZXIgOiBcIlwifVxuICAgICAgICAgICAgdHlwZT17dmFyaWFudHMuZGlzY2xhaW1lciA/PyBcImNhcHRpb25cIn1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ZGlzY2xhaW1lcn1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17XCJlXCJ9IC8+XG4gICAgICAgICl9XG4gICAgICA8L0FkYXB0aXZlQ29udGFpbmVyPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG4vKipcbiAqIEEgdHJhbnNwYXJlbnQgaW5wdXQgd2l0aCBzb21lIHByZWJ1aWx0IHN0YXRlcyBjb21tb24gdG8gdGhlIGFwcGxpY2F0aW9uXG4gKiovXG5jb25zdCBJbnB1dCA9IGZvcndhcmRSZWYoX0lucHV0KTtcbmV4cG9ydCBkZWZhdWx0IElucHV0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFjQSxJQUFBQyxjQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFB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
@@ -10,7 +10,7 @@ import CheckBox from "../components/CheckBox";
10
10
  import Radio from "../components/Radio/Radio";
11
11
  import { FileInputViewProps } from "../components/FileInput/View/View.types";
12
12
  import { AnswerByField, FormField, GenericFormFieldProps } from "../components/Form/FormField/FormField.types";
13
- import { BaseQuestion, FormMode } from "../components/Form/Form.types";
13
+ import { FormMode } from "../components/Form/Form.types";
14
14
  type DeepPartial<T> = {
15
15
  [P in keyof T]?: NonNullable<T[P]> extends Function ? T[P] : DeepPartial<T[P]>;
16
16
  };
@@ -47,7 +47,7 @@ export type OneUIContextSpecs = {
47
47
  Input: (props: GenericFormFieldProps<K>) => ReactElement;
48
48
  validator: (answer: AnswerByField<{
49
49
  type: K;
50
- }> | undefined, question: BaseQuestion & (FromOnePercentUtility<"UIElements.FormExtension">["fields"] & {
50
+ }> | undefined, question: FormField & (FromOnePercentUtility<"UIElements.FormExtension">["fields"] & {
51
51
  type: K;
52
52
  })) => {
53
53
  isValid: boolean;
@@ -96,4 +96,4 @@ function useCurrentImageScale() {
96
96
  const context = (0, _react.useContext)(Context);
97
97
  return context.state.imageScale;
98
98
  }
99
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWVyZ2UiLCJfY2xvbmVEZWVwIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQWRhcHRpdmVJbWFnZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiT25lVUlQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNvbmZpZyIsInByZXZDdHgiLCJ1c2VDb250ZXh0Iiwic2NhbGUiLCJ1c2VBZGFwdGl2ZUltYWdlIiwibWVyZ2VkQ29uZmlnIiwidXNlTWVtbyIsIm1lcmdlIiwiY2xvbmUiLCJzdGF0ZSIsImltYWdlU2NhbGUiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInBhdGhUb0pzb24iLCJwYXRoIiwia2V5IiwiZXhhbXBsZUNvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNwbGl0Iiwic2xpY2UiLCJyZXBsYWNlIiwiY29uY2F0IiwicmVkdWNlIiwicmVzdWx0IiwiaWR4IiwiYXJyIiwiayIsIkVycm9yV3JhcHBlciIsIm9yaWdpbmFsT2JqZWN0IiwiUHJveHkiLCJfdGFyZ2V0IiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInBhdGhKc29uIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwidXNlT25lVUlDb250ZXh0IiwiY29udGV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVzZU9uZVVJVmlldyIsIm9uZXVpQ29uZmlnUGF0aCIsImNvbXBvbmVudE5hbWUiLCJwcm92aWRlZFZhbHVlIiwidXNlT25lVUlDb25maWciLCJwcm9wIiwiZGVmYXVsdFZhbHVlIiwidmFsIiwiZW5kc1dpdGgiLCJ1c2VDdXJyZW50SW1hZ2VTY2FsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L09uZVVJUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTWCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJsb2Rhc2gvbWVyZ2VcIjtcbmltcG9ydCBjbG9uZSBmcm9tIFwibG9kYXNoL2Nsb25lRGVlcFwiO1xuaW1wb3J0IHsgR2V0IH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudFByb3BzLCBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgUHJvcHNXaXRoQ2hpbGRyZW4sIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEltYWdlU2NhbGVzIH0gZnJvbSBcIkBtdXJpdGF2by93ZWJwYWNrLW1pY3JvZnJvbnRlbmQtc2NyaXB0cy9iaW4vdHlwZXMvSW1hZ2VTY2FsZXNcIjtcbmltcG9ydCB7IFVwbG9hZFRhc2sgfSBmcm9tIFwiZmlyZWJhc2Uvc3RvcmFnZVwiO1xuaW1wb3J0IHtcbiAgRmllbGRQYXRoLFxuICBGcm9tT25lUGVyY2VudFV0aWxpdHksXG4gIE5hbWVzcGFjZUFjY2Vzc29ycyxcbiAgUGF0aCxcbiAgUGF0aE9iamVjdCxcbn0gZnJvbSBcIi4uL3R5cGUtdXRpbHNcIjtcbmltcG9ydCB1c2VBZGFwdGl2ZUltYWdlIGZyb20gXCIuLi9ob29rcy91aS91c2VBZGFwdGl2ZUltYWdlXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9jb21wb25lbnRzL0J1dHRvblwiO1xuaW1wb3J0IENoZWNrQm94IGZyb20gXCIuLi9jb21wb25lbnRzL0NoZWNrQm94XCI7XG5pbXBvcnQgUmFkaW8gZnJvbSBcIi4uL2NvbXBvbmVudHMvUmFkaW8vUmFkaW9cIjtcbmltcG9ydCB7IEZpbGVJbnB1dFZpZXdQcm9wcyB9IGZyb20gXCIuLi9jb21wb25lbnRzL0ZpbGVJbnB1dC9WaWV3L1ZpZXcudHlwZXNcIjtcbmltcG9ydCB7XG4gIEFuc3dlckJ5RmllbGQsXG4gIEZvcm1GaWVsZCxcbiAgR2VuZXJpY0Zvcm1GaWVsZFByb3BzLFxufSBmcm9tIFwiLi4vY29tcG9uZW50cy9Gb3JtL0Zvcm1GaWVsZC9Gb3JtRmllbGQudHlwZXNcIjtcbmltcG9ydCB7IEJhc2VRdWVzdGlvbiwgRm9ybU1vZGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Gb3JtL0Zvcm0udHlwZXNcIjtcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBOb25OdWxsYWJsZTxUW1BdPiBleHRlbmRzIEZ1bmN0aW9uXG4gICAgPyBUW1BdXG4gICAgOiBEZWVwUGFydGlhbDxUW1BdPjtcbn07XG5cbnR5cGUgSWZVdGlsaXR5SGFzPE4gZXh0ZW5kcyBOYW1lc3BhY2VBY2Nlc3NvcnMsIERlY2xhcmU+ID1cbiAgRnJvbU9uZVBlcmNlbnRVdGlsaXR5PE4+IGV4dGVuZHMgYFRvIGRlZmluZSB0aGlzIHByb3BlcnR5IHlvdSBuZWVkIHRvIHNldCBPbmVwZXJjZW50VXRpbGl0eS4ke3N0cmluZ30gZ2xvYmFsbHlgXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IERlY2xhcmU7XG5cbmV4cG9ydCB0eXBlIE9uZVVJQ29udGV4dFNwZWNzID0ge1xuICBjb21wb25lbnQ6IHtcbiAgICBhc3luY1RyaWdnZXJDb250YWluZXI6IHtcbiAgICAgIExvYWRpbmdDb21wb25lbnQ6ICgpID0+IFJlYWN0RWxlbWVudDtcbiAgICB9O1xuICAgIHNwYWNpbmc6IHtcbiAgICAgIHZhcmlhbnRzOiB7XG4gICAgICAgIFtrIGluIEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuU3BhY2luZ1ZhcmlhbnRzXCI+XTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGNvbGxhcHNhYmxlOiB7XG4gICAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIGZvcm06IHtcbiAgICAgIGZpZWxkV3JhcHBlcjoge1xuICAgICAgICBbayBpbiBgJHtrZXlvZiB0eXBlb2YgRm9ybU1vZGV9LSR7Rm9ybUZpZWxkW1widHlwZVwiXX1gXTpcbiAgICAgICAgICB8IHN0cmluZ1xuICAgICAgICAgIHwgKChwOiBQcm9wc1dpdGhDaGlsZHJlbjxGb3JtRmllbGQgJiB7IHZhbHVlOiBhbnkgfT4pID0+IFJlYWN0Tm9kZSk7XG4gICAgICB9O1xuICAgICAgdGl0bGVWYXJpYW50OiBGcm9tT25lUGVyY2VudFV0aWxpdHk8XCJVSUVsZW1lbnRzLlRleHRWYXJpYW50c1wiPjtcbiAgICAgIGxhYmVsVmFyaWFudDogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5UZXh0VmFyaWFudHNcIj47XG4gICAgICAvKiogTGFiZWwgc2hvd24gd2hlbiBhIGZpZWxkIGlzIG9wdGlvbmFsICovXG4gICAgICBvcHRpb25hbExhYmVsOiBzdHJpbmc7XG5cbiAgICAgIC8qKiBMYWJlbCBzaG93biB3aGVuIGEgcmVxdWlyZWQgZmllbGQgd2FzIG5vdCBwcm92aWRlZCAqL1xuICAgICAgcmVxdWlyZWRMYWJlbDogc3RyaW5nO1xuXG4gICAgICBvbkZpbGVVcGxvYWQocXVlc3Rpb25JZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogVXBsb2FkVGFzaztcblxuICAgICAgZXh0ZW5zaW9uczogSWZVdGlsaXR5SGFzPFxuICAgICAgICBcIlVJRWxlbWVudHMuRm9ybUV4dGVuc2lvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgW0sgaW4gRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5Gb3JtRXh0ZW5zaW9uXCI+W1wiZmllbGRzXCJdW1widHlwZVwiXV06IHtcbiAgICAgICAgICAgIFJlYWRPbmx5PzogKFxuICAgICAgICAgICAgICBwcm9wczogT21pdDxHZW5lcmljRm9ybUZpZWxkUHJvcHM8Sz4sIFwib25BbnN3ZXJcIiB8IFwiZXJyb3JcIj4sXG4gICAgICAgICAgICApID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgICAgIElucHV0OiAocHJvcHM6IEdlbmVyaWNGb3JtRmllbGRQcm9wczxLPikgPT4gUmVhY3RFbGVtZW50O1xuICAgICAgICAgICAgdmFsaWRhdG9yOiAoXG4gICAgICAgICAgICAgIGFuc3dlcjogQW5zd2VyQnlGaWVsZDx7IHR5cGU6IEsgfT4gfCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHF1ZXN0aW9uOiBCYXNlUXVlc3Rpb24gJlxuICAgICAgICAgICAgICAgIChGcm9tT25lUGVyY2VudFV0aWxpdHk8XCJVSUVsZW1lbnRzLkZvcm1FeHRlbnNpb25cIj5bXCJmaWVsZHNcIl0gJiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBLO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgIGlzVmFsaWQ6IGJvb2xlYW47XG4gICAgICAgICAgICAgIGVycm9yPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICA+O1xuICAgIH07XG4gICAgdGV4dDogSWZVdGlsaXR5SGFzPFxuICAgICAgXCJVSUVsZW1lbnRzLlRleHRWYXJpYW50c1wiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICBbayBpbiBSZWFjdC5Db21wb25lbnRQcm9wczxcbiAgICAgICAgICAgICh0eXBlb2YgaW1wb3J0KFwiLi4vY29tcG9uZW50cy9UZXh0XCIpKVtcImRlZmF1bHRcIl1cbiAgICAgICAgICA+W1widHlwZVwiXV06IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgaHRtbFRhZzoge1xuICAgICAgICAgIFtrIGluIFJlYWN0LkNvbXBvbmVudFByb3BzPFxuICAgICAgICAgICAgKHR5cGVvZiBpbXBvcnQoXCIuLi9jb21wb25lbnRzL1RleHRcIikpW1wiZGVmYXVsdFwiXVxuICAgICAgICAgID5bXCJ0eXBlXCJdXTogXCJwXCIgfCBcImgxXCIgfCBcImgyXCIgfCBcImgzXCIgfCBcImg0XCIgfCBcImg1XCIgfCBcImg2XCI7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgPjtcbiAgICBidXR0b24/OiB7XG4gICAgICBjbGFzc05hbWU/OiB7XG4gICAgICAgIFtrIGluIE5vbk51bGxhYmxlPFxuICAgICAgICAgIFJlYWN0LkNvbXBvbmVudFByb3BzPFxuICAgICAgICAgICAgKHR5cGVvZiBpbXBvcnQoXCIuLi9jb21wb25lbnRzL0J1dHRvblwiKSlbXCJkZWZhdWx0XCJdXG4gICAgICAgICAgPltcInZhcmlhbnRcIl1cbiAgICAgICAgPl0/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgQ29tcG9uZW50PzogKHByb3BzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgaW5wdXQ6IHtcbiAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAvKiogVGhlIHdyYXBwZXIgYXJvdW5kIGlucHV0IHRhZyAmIGNhcHRpb24gZWxlbWVudCAodXNlZCBmb3IgZXJyb3IgYW5kIGNhcHRpb24pICovXG4gICAgICAgIGNvbnRhaW5lcjogc3RyaW5nO1xuICAgICAgICAvKiogVGhlIGlucHV0IGh0bWwgdGFnICovXG4gICAgICAgIGlucHV0OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgbGFiZWxWYXJpYW50czoge1xuICAgICAgICBlcnJvcj86IEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuVGV4dFZhcmlhbnRzXCI+O1xuICAgICAgICBkaXNjbGFpbWVyPzogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5UZXh0VmFyaWFudHNcIj47XG4gICAgICB9O1xuICAgIH07XG4gICAgZmlsZUlucHV0OiB7XG4gICAgICBWaWV3OiAocHJvcHM6IEZpbGVJbnB1dFZpZXdQcm9wcykgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgcGFzc3dvcmRJbnB1dDoge1xuICAgICAgaWNvblNyYzoge1xuICAgICAgICBwYXNzd29yZEhpZGRlbjogc3RyaW5nO1xuICAgICAgICBwYXNzd29yZFZpc2libGU6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBhc3luY1dyYXBwZXI6IHtcbiAgICAgIExvYWRpbmdDb21wb25lbnQ/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgICAgIG1lc3NhZ2VzOiB7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICByZXRyeUJ0bjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIHNlbGVjdDoge1xuICAgICAgU3RhdGVJbmRpY2F0b3I6IChwcm9wczogeyBvcGVuOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgICAgY2xhc3NOYW1lPzoge1xuICAgICAgICBkcm9wZG93bj86IHN0cmluZztcbiAgICAgICAgaXRlbT86IHN0cmluZztcbiAgICAgICAgc2VsZWN0ZWRJdGVtPzogc3RyaW5nO1xuICAgICAgICBpbnB1dD86IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBoZWFkZXI6IHtcbiAgICAgIExvZ29JbWFnZTogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgICBNb3JlT3B0aW9uczogKHsgb3BlbiB9OiB7IG9wZW46IGJvb2xlYW4gfSkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgfTtcbiAgICB0YWJsZToge1xuICAgICAgY29udHJvbHM6IHtcbiAgICAgICAgUHJldlBhZ2U6ICh7IGRpc2FibGVkIH06IHsgZGlzYWJsZWQ6IGJvb2xlYW4gfSkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgICAgIE5leHRQYWdlOiAoeyBkaXNhYmxlZCB9OiB7IGRpc2FibGVkOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgICAgfTtcbiAgICB9O1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICB9O1xuICAgIGFkYXB0aXZlRGlhbG9nOiB7XG4gICAgICBkaWFsb2dDbGFzc05hbWU6IHN0cmluZztcbiAgICAgIGJhY2tkcm9wQ2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIFtrIGluIEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuQWRhcHRpdmVEaWFsb2dWYXJpYW50c1wiPl06IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBhZGFwdGl2ZVNpZGViYXI6IHtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgY29udHJvbENsYXNzTmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgY2hlY2tib3g6IHtcbiAgICAgIENvbXBvbmVudD86IChwcm9wczogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENoZWNrQm94PikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgcmFkaW86IHtcbiAgICAgIENvbXBvbmVudD86IChwcm9wczogQ29tcG9uZW50UHJvcHM8dHlwZW9mIFJhZGlvPikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgdGFiczoge1xuICAgICAgaXRlbTogc3RyaW5nO1xuICAgICAgY29udGFpbmVyOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgaG9vazoge1xuICAgIHVpOiB7XG4gICAgICB1c2VQYWdpbmF0aW9uQ29udHJvbHM6IHtcbiAgICAgICAgTGVmdENvbnRyb2w6ICgpID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgUmlnaHRDb250cm9sOiAoKSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgc3RhdGU6IHtcbiAgICBpbWFnZVNjYWxlOiBJbWFnZVNjYWxlcztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbnRleHRDb25maWdTcGVjcyA9IERlZXBQYXJ0aWFsPE9uZVVJQ29udGV4dFNwZWNzPiAmXG4gIFBhdGhPYmplY3Q8T25lVUlDb250ZXh0U3BlY3MsIFwiY29tcG9uZW50LnRleHRcIj47XG5cbmNvbnN0IENvbnRleHQgPSBjcmVhdGVDb250ZXh0PENvbnRleHRDb25maWdTcGVjcz4obnVsbCBhcyBhbnkpO1xuXG5mdW5jdGlvbiBPbmVVSVByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIGNvbmZpZyxcbn06IFByb3BzV2l0aENoaWxkcmVuPHsgY29uZmlnOiBDb250ZXh0Q29uZmlnU3BlY3MgfT4pIHtcbiAgY29uc3QgcHJldkN0eCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG4gIGNvbnN0IHNjYWxlID0gdXNlQWRhcHRpdmVJbWFnZSgpO1xuICBjb25zdCBtZXJnZWRDb25maWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2UoY2xvbmUocHJldkN0eCksIGNvbmZpZywge1xuICAgICAgc3RhdGU6IHtcbiAgICAgICAgaW1hZ2VTY2FsZTogc2NhbGUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9LCBbcHJldkN0eCwgY29uZmlnLCBzY2FsZV0pO1xuXG4gIHJldHVybiA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17bWVyZ2VkQ29uZmlnfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT25lVUlQcm92aWRlcjtcblxuZnVuY3Rpb24gcGF0aFRvSnNvbihcbiAgcGF0aDogc3RyaW5nLFxuICBrZXk/OiBzdHJpbmcgfCBTeW1ib2wsXG4gIGV4YW1wbGVDb25maWcgPSBcIlRIRV9NSVNTSU5HX0NPTkZJR1wiLFxuKSB7XG4gIGlmICgha2V5KSB7XG4gICAga2V5ID0gcGF0aC5zcGxpdChcIi5cIikuc2xpY2UoLTEpWzBdO1xuICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoYC4ke2tleX1gLCBcIlwiKTtcbiAgfVxuXG4gIHJldHVybiBwYXRoXG4gICAgLnNwbGl0KFwiLlwiKVxuICAgIC5jb25jYXQoa2V5IGFzIHN0cmluZylcbiAgICAucmVkdWNlKChyZXN1bHQsIGtleSwgaWR4LCBhcnIpID0+IHtcbiAgICAgIChhcnIuc2xpY2UoMCwgaWR4KS5yZWR1Y2UoKHIsIGspID0+IChyIGFzIGFueSlba10sIHJlc3VsdCkgYXMgYW55KVtrZXldID1cbiAgICAgICAgaWR4ID09PSBhcnIubGVuZ3RoIC0gMSA/IGV4YW1wbGVDb25maWcgOiB7fTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBFcnJvcldyYXBwZXIoXG4gIG9yaWdpbmFsT2JqZWN0OiBhbnksXG4gIHBhdGg6IHN0cmluZyA9IFwiY29uZmlnXCIsXG4pOiB0eXBlb2YgUHJveHkge1xuICByZXR1cm4gbmV3IFByb3h5KFxuICAgIHR5cGVvZiBvcmlnaW5hbE9iamVjdCAhPT0gXCJvYmplY3RcIiA/IHt9IDogb3JpZ2luYWxPYmplY3QgfHwge30sXG4gICAge1xuICAgICAgZ2V0KF90YXJnZXQsIGtleSkge1xuICAgICAgICBpZiAoa2V5ID09PSBTeW1ib2wudG9QcmltaXRpdmUgfHwga2V5ID09PSBcIiQkdHlwZW9mXCIpIHtcbiAgICAgICAgICByZXR1cm4gKCkgPT4gX3RhcmdldFtrZXldO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBvcmlnaW5hbE9iamVjdFtrZXldO1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIilcbiAgICAgICAgICAgIHJldHVybiBFcnJvcldyYXBwZXIodmFsdWUsIFtwYXRoLCBrZXldLmZpbHRlcihCb29sZWFuKS5qb2luKFwiLlwiKSk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgcGF0aEpzb24gPSBwYXRoVG9Kc29uKHBhdGgsIGtleSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEEgY29tcG9uZW50IGlzIHVzaW5nIHRoZSBVSSBjb25maWcgJHtbcGF0aCwga2V5XS5qb2luKFwiLlwiKX0uXG5cblBsZWFzZSBkZWZpbmUgaXQgdXNpbmc6XG5pbXBvcnQgT25lVUlQcm92aWRlciBmcm9tIFwiQG9uZXBlcmNlbnQvb25lLXVpL2Rpc3QvY29udGV4dC9PbmVVSVByb3ZpZGVyXCI7XG5cbiAgLi4uXG4ke2A8T25lVUlQcm92aWRlciBjb25maWc9eyR7SlNPTi5zdHJpbmdpZnkocGF0aEpzb24sIG51bGwsIDQpfX0+XG4uLi5cbjwvT25lVUlQcm92aWRlcj5gLnJlcGxhY2UoL1sgXS9nLCBcIi1cIil9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPbmVVSUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KENvbnRleHQpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKVxuICAgIHJldHVybiBFcnJvcldyYXBwZXIoY29udGV4dCkgYXMgdW5rbm93biBhcyBPbmVVSUNvbnRleHRTcGVjcztcblxuICByZXR1cm4gY29udGV4dCBhcyBPbmVVSUNvbnRleHRTcGVjcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9uZVVJVmlldzxQIGV4dGVuZHMgRmllbGRQYXRoPE9uZVVJQ29udGV4dFNwZWNzPj4oXG4gIG9uZXVpQ29uZmlnUGF0aDogUCxcbiAgY29tcG9uZW50TmFtZTogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHByb3ZpZGVkVmFsdWUgPSB1c2VPbmVVSUNvbmZpZyhvbmV1aUNvbmZpZ1BhdGgpO1xuICBpZiAoIXByb3ZpZGVkVmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjb21wb25lbnQgJHtjb21wb25lbnROYW1lfSByZXF1aXJlcyBhIHZpZXcgdG8gYmUgc2V0IG9uIE9uZVVJIGluaXRpYWxpemF0aW9uXG5cblZpZXdzIHJlYWR5IGZvciB1c2Ugd2l0aCB0aGlzIGNvbXBvbmVudCBzaGFsbCBiZSBhdmFpbGFibGUgYXQ6XG5pbXBvcnQgU29tZVZpZXcgZnJvbSBcIkBvbmVwZXJjZW50aW8vb25lLXVpL2Rpc3QvY29tcG9uZW50cy8ke2NvbXBvbmVudE5hbWV9L1ZpZXcvU29tZVZpZXdcIjtcbiAgICBcblBsZWFzZSBkZWZpbmUgaXQgdXNpbmc6XG5pbXBvcnQgT25lVUlQcm92aWRlciBmcm9tIFwiQG9uZXBlcmNlbnRpby9vbmUtdWkvZGlzdC9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcblxuICAuLi5cbiR7YDxPbmVVSVByb3ZpZGVyIGNvbmZpZz17JHtKU09OLnN0cmluZ2lmeShcbiAgcGF0aFRvSnNvbihvbmV1aUNvbmZpZ1BhdGgsIHVuZGVmaW5lZCwgXCJTb21lVmlld1wiKSxcbiAgbnVsbCxcbiAgNCxcbil9fT5cbi4uLlxuPC9PbmVVSVByb3ZpZGVyPmAucmVwbGFjZSgvWyBdL2csIFwiLVwiKX1gKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlZFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlT25lVUlDb25maWc8UCBleHRlbmRzIEZpZWxkUGF0aDxPbmVVSUNvbnRleHRTcGVjcz4+KFxuICBwcm9wOiBQLFxuKTogR2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPjtcbmV4cG9ydCBmdW5jdGlvbiB1c2VPbmVVSUNvbmZpZzxcbiAgUCBleHRlbmRzIEZpZWxkUGF0aDxPbmVVSUNvbnRleHRTcGVjcz4sXG4gIFQgZXh0ZW5kcyBEZWVwUGFydGlhbDxHZXQ8T25lVUlDb250ZXh0U3BlY3MsIFA+Pixcbj4ocHJvcDogUCwgZGVmYXVsdFZhbHVlOiBUKTogTm9uTnVsbGFibGU8R2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPj47XG5leHBvcnQgZnVuY3Rpb24gdXNlT25lVUlDb25maWc8XG4gIFAgZXh0ZW5kcyBGaWVsZFBhdGg8T25lVUlDb250ZXh0U3BlY3M+LFxuICBUIGV4dGVuZHMgR2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPixcbj4ocHJvcDogUCwgZGVmYXVsdFZhbHVlPzogVCk6IEdldDxPbmVVSUNvbnRleHRTcGVjcywgUD4gfCBUIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgY29uc3QgdmFsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0KGNvbnRleHQsIHByb3ApO1xuICAgIH0sIFtjb250ZXh0LCBwcm9wXSk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgdHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLmVuZHNXaXRoKFwiLkNvbXBvbmVudFwiKSB8fFxuICAgICAgcHJvcC5lbmRzV2l0aChcIi5WaWV3XCIpXG4gICAgKVxuICAgICAgcmV0dXJuICh2YWwgYXMgYW55KSB8fCBkZWZhdWx0VmFsdWU7XG5cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHJldHVybiB2YWwgYXMgYW55O1xuICAgIHJldHVybiBFcnJvcldyYXBwZXIodmFsIHx8IGRlZmF1bHRWYWx1ZSkgYXMgdW5rbm93biBhcyBOb25OdWxsYWJsZTxUPjtcbiAgfVxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBnZXQoY29udGV4dCwgcHJvcCk7XG4gIH0sIFtjb250ZXh0LCBwcm9wXSk7XG4gIHJldHVybiB2YWx1ZSB8fCBkZWZhdWx0VmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDdXJyZW50SW1hZ2VTY2FsZSgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRleHQuc3RhdGUhLmltYWdlU2NhbGUhO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSixPQUFBO0FBV0EsSUFBQUssaUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUE0RCxTQUFBSSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsQ0FBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0s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
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2V0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbWVyZ2UiLCJfY2xvbmVEZWVwIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlQWRhcHRpdmVJbWFnZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwiT25lVUlQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNvbmZpZyIsInByZXZDdHgiLCJ1c2VDb250ZXh0Iiwic2NhbGUiLCJ1c2VBZGFwdGl2ZUltYWdlIiwibWVyZ2VkQ29uZmlnIiwidXNlTWVtbyIsIm1lcmdlIiwiY2xvbmUiLCJzdGF0ZSIsImltYWdlU2NhbGUiLCJjcmVhdGVFbGVtZW50IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInBhdGhUb0pzb24iLCJwYXRoIiwia2V5IiwiZXhhbXBsZUNvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNwbGl0Iiwic2xpY2UiLCJyZXBsYWNlIiwiY29uY2F0IiwicmVkdWNlIiwicmVzdWx0IiwiaWR4IiwiYXJyIiwiayIsIkVycm9yV3JhcHBlciIsIm9yaWdpbmFsT2JqZWN0IiwiUHJveHkiLCJfdGFyZ2V0IiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInBhdGhKc29uIiwiRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwidXNlT25lVUlDb250ZXh0IiwiY29udGV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInVzZU9uZVVJVmlldyIsIm9uZXVpQ29uZmlnUGF0aCIsImNvbXBvbmVudE5hbWUiLCJwcm92aWRlZFZhbHVlIiwidXNlT25lVUlDb25maWciLCJwcm9wIiwiZGVmYXVsdFZhbHVlIiwidmFsIiwiZW5kc1dpdGgiLCJ1c2VDdXJyZW50SW1hZ2VTY2FsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L09uZVVJUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTWCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGdldCBmcm9tIFwibG9kYXNoL2dldFwiO1xuaW1wb3J0IG1lcmdlIGZyb20gXCJsb2Rhc2gvbWVyZ2VcIjtcbmltcG9ydCBjbG9uZSBmcm9tIFwibG9kYXNoL2Nsb25lRGVlcFwiO1xuaW1wb3J0IHsgR2V0IH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudFByb3BzLCBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgUHJvcHNXaXRoQ2hpbGRyZW4sIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IEltYWdlU2NhbGVzIH0gZnJvbSBcIkBtdXJpdGF2by93ZWJwYWNrLW1pY3JvZnJvbnRlbmQtc2NyaXB0cy9iaW4vdHlwZXMvSW1hZ2VTY2FsZXNcIjtcbmltcG9ydCB7IFVwbG9hZFRhc2sgfSBmcm9tIFwiZmlyZWJhc2Uvc3RvcmFnZVwiO1xuaW1wb3J0IHtcbiAgRmllbGRQYXRoLFxuICBGcm9tT25lUGVyY2VudFV0aWxpdHksXG4gIE5hbWVzcGFjZUFjY2Vzc29ycyxcbiAgUGF0aCxcbiAgUGF0aE9iamVjdCxcbn0gZnJvbSBcIi4uL3R5cGUtdXRpbHNcIjtcbmltcG9ydCB1c2VBZGFwdGl2ZUltYWdlIGZyb20gXCIuLi9ob29rcy91aS91c2VBZGFwdGl2ZUltYWdlXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9jb21wb25lbnRzL0J1dHRvblwiO1xuaW1wb3J0IENoZWNrQm94IGZyb20gXCIuLi9jb21wb25lbnRzL0NoZWNrQm94XCI7XG5pbXBvcnQgUmFkaW8gZnJvbSBcIi4uL2NvbXBvbmVudHMvUmFkaW8vUmFkaW9cIjtcbmltcG9ydCB7IEZpbGVJbnB1dFZpZXdQcm9wcyB9IGZyb20gXCIuLi9jb21wb25lbnRzL0ZpbGVJbnB1dC9WaWV3L1ZpZXcudHlwZXNcIjtcbmltcG9ydCB7XG4gIEFuc3dlckJ5RmllbGQsXG4gIEZvcm1GaWVsZCxcbiAgR2VuZXJpY0Zvcm1GaWVsZFByb3BzLFxufSBmcm9tIFwiLi4vY29tcG9uZW50cy9Gb3JtL0Zvcm1GaWVsZC9Gb3JtRmllbGQudHlwZXNcIjtcbmltcG9ydCB7IEJhc2VRdWVzdGlvbiwgRm9ybU1vZGUgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9Gb3JtL0Zvcm0udHlwZXNcIjtcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBOb25OdWxsYWJsZTxUW1BdPiBleHRlbmRzIEZ1bmN0aW9uXG4gICAgPyBUW1BdXG4gICAgOiBEZWVwUGFydGlhbDxUW1BdPjtcbn07XG5cbnR5cGUgSWZVdGlsaXR5SGFzPE4gZXh0ZW5kcyBOYW1lc3BhY2VBY2Nlc3NvcnMsIERlY2xhcmU+ID1cbiAgRnJvbU9uZVBlcmNlbnRVdGlsaXR5PE4+IGV4dGVuZHMgYFRvIGRlZmluZSB0aGlzIHByb3BlcnR5IHlvdSBuZWVkIHRvIHNldCBPbmVwZXJjZW50VXRpbGl0eS4ke3N0cmluZ30gZ2xvYmFsbHlgXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IERlY2xhcmU7XG5cbmV4cG9ydCB0eXBlIE9uZVVJQ29udGV4dFNwZWNzID0ge1xuICBjb21wb25lbnQ6IHtcbiAgICBhc3luY1RyaWdnZXJDb250YWluZXI6IHtcbiAgICAgIExvYWRpbmdDb21wb25lbnQ6ICgpID0+IFJlYWN0RWxlbWVudDtcbiAgICB9O1xuICAgIHNwYWNpbmc6IHtcbiAgICAgIHZhcmlhbnRzOiB7XG4gICAgICAgIFtrIGluIEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuU3BhY2luZ1ZhcmlhbnRzXCI+XTogc3RyaW5nO1xuICAgICAgfTtcbiAgICB9O1xuICAgIGNvbGxhcHNhYmxlOiB7XG4gICAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgICB9O1xuICAgIGZvcm06IHtcbiAgICAgIGZpZWxkV3JhcHBlcjoge1xuICAgICAgICBbayBpbiBgJHtrZXlvZiB0eXBlb2YgRm9ybU1vZGV9LSR7Rm9ybUZpZWxkW1widHlwZVwiXX1gXTpcbiAgICAgICAgICB8IHN0cmluZ1xuICAgICAgICAgIHwgKChwOiBQcm9wc1dpdGhDaGlsZHJlbjxGb3JtRmllbGQgJiB7IHZhbHVlOiBhbnkgfT4pID0+IFJlYWN0Tm9kZSk7XG4gICAgICB9O1xuICAgICAgdGl0bGVWYXJpYW50OiBGcm9tT25lUGVyY2VudFV0aWxpdHk8XCJVSUVsZW1lbnRzLlRleHRWYXJpYW50c1wiPjtcbiAgICAgIGxhYmVsVmFyaWFudDogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5UZXh0VmFyaWFudHNcIj47XG4gICAgICAvKiogTGFiZWwgc2hvd24gd2hlbiBhIGZpZWxkIGlzIG9wdGlvbmFsICovXG4gICAgICBvcHRpb25hbExhYmVsOiBzdHJpbmc7XG5cbiAgICAgIC8qKiBMYWJlbCBzaG93biB3aGVuIGEgcmVxdWlyZWQgZmllbGQgd2FzIG5vdCBwcm92aWRlZCAqL1xuICAgICAgcmVxdWlyZWRMYWJlbDogc3RyaW5nO1xuXG4gICAgICBvbkZpbGVVcGxvYWQocXVlc3Rpb25JZDogc3RyaW5nLCBmaWxlOiBGaWxlKTogVXBsb2FkVGFzaztcblxuICAgICAgZXh0ZW5zaW9uczogSWZVdGlsaXR5SGFzPFxuICAgICAgICBcIlVJRWxlbWVudHMuRm9ybUV4dGVuc2lvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgW0sgaW4gRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5Gb3JtRXh0ZW5zaW9uXCI+W1wiZmllbGRzXCJdW1widHlwZVwiXV06IHtcbiAgICAgICAgICAgIFJlYWRPbmx5PzogKFxuICAgICAgICAgICAgICBwcm9wczogT21pdDxHZW5lcmljRm9ybUZpZWxkUHJvcHM8Sz4sIFwib25BbnN3ZXJcIiB8IFwiZXJyb3JcIj4sXG4gICAgICAgICAgICApID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgICAgIElucHV0OiAocHJvcHM6IEdlbmVyaWNGb3JtRmllbGRQcm9wczxLPikgPT4gUmVhY3RFbGVtZW50O1xuICAgICAgICAgICAgdmFsaWRhdG9yOiAoXG4gICAgICAgICAgICAgIGFuc3dlcjogQW5zd2VyQnlGaWVsZDx7IHR5cGU6IEsgfT4gfCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHF1ZXN0aW9uOiBGb3JtRmllbGQgJlxuICAgICAgICAgICAgICAgIChGcm9tT25lUGVyY2VudFV0aWxpdHk8XCJVSUVsZW1lbnRzLkZvcm1FeHRlbnNpb25cIj5bXCJmaWVsZHNcIl0gJiB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBLO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgIGlzVmFsaWQ6IGJvb2xlYW47XG4gICAgICAgICAgICAgIGVycm9yPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICA+O1xuICAgIH07XG4gICAgdGV4dDogSWZVdGlsaXR5SGFzPFxuICAgICAgXCJVSUVsZW1lbnRzLlRleHRWYXJpYW50c1wiLFxuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6IHtcbiAgICAgICAgICBbayBpbiBSZWFjdC5Db21wb25lbnRQcm9wczxcbiAgICAgICAgICAgICh0eXBlb2YgaW1wb3J0KFwiLi4vY29tcG9uZW50cy9UZXh0XCIpKVtcImRlZmF1bHRcIl1cbiAgICAgICAgICA+W1widHlwZVwiXV06IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgaHRtbFRhZzoge1xuICAgICAgICAgIFtrIGluIFJlYWN0LkNvbXBvbmVudFByb3BzPFxuICAgICAgICAgICAgKHR5cGVvZiBpbXBvcnQoXCIuLi9jb21wb25lbnRzL1RleHRcIikpW1wiZGVmYXVsdFwiXVxuICAgICAgICAgID5bXCJ0eXBlXCJdXTogXCJwXCIgfCBcImgxXCIgfCBcImgyXCIgfCBcImgzXCIgfCBcImg0XCIgfCBcImg1XCIgfCBcImg2XCI7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgPjtcbiAgICBidXR0b24/OiB7XG4gICAgICBjbGFzc05hbWU/OiB7XG4gICAgICAgIFtrIGluIE5vbk51bGxhYmxlPFxuICAgICAgICAgIFJlYWN0LkNvbXBvbmVudFByb3BzPFxuICAgICAgICAgICAgKHR5cGVvZiBpbXBvcnQoXCIuLi9jb21wb25lbnRzL0J1dHRvblwiKSlbXCJkZWZhdWx0XCJdXG4gICAgICAgICAgPltcInZhcmlhbnRcIl1cbiAgICAgICAgPl0/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgQ29tcG9uZW50PzogKHByb3BzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgQnV0dG9uPikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgaW5wdXQ6IHtcbiAgICAgIGNsYXNzTmFtZToge1xuICAgICAgICAvKiogVGhlIHdyYXBwZXIgYXJvdW5kIGlucHV0IHRhZyAmIGNhcHRpb24gZWxlbWVudCAodXNlZCBmb3IgZXJyb3IgYW5kIGNhcHRpb24pICovXG4gICAgICAgIGNvbnRhaW5lcjogc3RyaW5nO1xuICAgICAgICAvKiogVGhlIGlucHV0IGh0bWwgdGFnICovXG4gICAgICAgIGlucHV0OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgbGFiZWxWYXJpYW50czoge1xuICAgICAgICBlcnJvcj86IEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuVGV4dFZhcmlhbnRzXCI+O1xuICAgICAgICBkaXNjbGFpbWVyPzogRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5UZXh0VmFyaWFudHNcIj47XG4gICAgICB9O1xuICAgIH07XG4gICAgZmlsZUlucHV0OiB7XG4gICAgICBWaWV3OiAocHJvcHM6IEZpbGVJbnB1dFZpZXdQcm9wcykgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgcGFzc3dvcmRJbnB1dDoge1xuICAgICAgaWNvblNyYzoge1xuICAgICAgICBwYXNzd29yZEhpZGRlbjogc3RyaW5nO1xuICAgICAgICBwYXNzd29yZFZpc2libGU6IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBhc3luY1dyYXBwZXI6IHtcbiAgICAgIExvYWRpbmdDb21wb25lbnQ/OiAoKSA9PiBKU1guRWxlbWVudDtcbiAgICAgIG1lc3NhZ2VzOiB7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICByZXRyeUJ0bjogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9O1xuICAgIHNlbGVjdDoge1xuICAgICAgU3RhdGVJbmRpY2F0b3I6IChwcm9wczogeyBvcGVuOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgICAgY2xhc3NOYW1lPzoge1xuICAgICAgICBkcm9wZG93bj86IHN0cmluZztcbiAgICAgICAgaXRlbT86IHN0cmluZztcbiAgICAgICAgc2VsZWN0ZWRJdGVtPzogc3RyaW5nO1xuICAgICAgICBpbnB1dD86IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBoZWFkZXI6IHtcbiAgICAgIExvZ29JbWFnZTogKCkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgICBNb3JlT3B0aW9uczogKHsgb3BlbiB9OiB7IG9wZW46IGJvb2xlYW4gfSkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgfTtcbiAgICB0YWJsZToge1xuICAgICAgY29udHJvbHM6IHtcbiAgICAgICAgUHJldlBhZ2U6ICh7IGRpc2FibGVkIH06IHsgZGlzYWJsZWQ6IGJvb2xlYW4gfSkgPT4gSlNYLkVsZW1lbnQ7XG4gICAgICAgIE5leHRQYWdlOiAoeyBkaXNhYmxlZCB9OiB7IGRpc2FibGVkOiBib29sZWFuIH0pID0+IEpTWC5FbGVtZW50O1xuICAgICAgfTtcbiAgICB9O1xuICAgIHRvb2x0aXA6IHtcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICB9O1xuICAgIGFkYXB0aXZlRGlhbG9nOiB7XG4gICAgICBkaWFsb2dDbGFzc05hbWU6IHN0cmluZztcbiAgICAgIGJhY2tkcm9wQ2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIFtrIGluIEZyb21PbmVQZXJjZW50VXRpbGl0eTxcIlVJRWxlbWVudHMuQWRhcHRpdmVEaWFsb2dWYXJpYW50c1wiPl06IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgICBhZGFwdGl2ZVNpZGViYXI6IHtcbiAgICAgIGNsYXNzTmFtZTogc3RyaW5nO1xuICAgICAgY29udHJvbENsYXNzTmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgY2hlY2tib3g6IHtcbiAgICAgIENvbXBvbmVudD86IChwcm9wczogQ29tcG9uZW50UHJvcHM8dHlwZW9mIENoZWNrQm94PikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgcmFkaW86IHtcbiAgICAgIENvbXBvbmVudD86IChwcm9wczogQ29tcG9uZW50UHJvcHM8dHlwZW9mIFJhZGlvPikgPT4gUmVhY3RFbGVtZW50O1xuICAgIH07XG4gICAgdGFiczoge1xuICAgICAgaXRlbTogc3RyaW5nO1xuICAgICAgY29udGFpbmVyOiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgaG9vazoge1xuICAgIHVpOiB7XG4gICAgICB1c2VQYWdpbmF0aW9uQ29udHJvbHM6IHtcbiAgICAgICAgTGVmdENvbnRyb2w6ICgpID0+IFJlYWN0RWxlbWVudDtcbiAgICAgICAgUmlnaHRDb250cm9sOiAoKSA9PiBSZWFjdEVsZW1lbnQ7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIH07XG4gICAgfTtcbiAgfTtcbiAgc3RhdGU6IHtcbiAgICBpbWFnZVNjYWxlOiBJbWFnZVNjYWxlcztcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIENvbnRleHRDb25maWdTcGVjcyA9IERlZXBQYXJ0aWFsPE9uZVVJQ29udGV4dFNwZWNzPiAmXG4gIFBhdGhPYmplY3Q8T25lVUlDb250ZXh0U3BlY3MsIFwiY29tcG9uZW50LnRleHRcIj47XG5cbmNvbnN0IENvbnRleHQgPSBjcmVhdGVDb250ZXh0PENvbnRleHRDb25maWdTcGVjcz4obnVsbCBhcyBhbnkpO1xuXG5mdW5jdGlvbiBPbmVVSVByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG4gIGNvbmZpZyxcbn06IFByb3BzV2l0aENoaWxkcmVuPHsgY29uZmlnOiBDb250ZXh0Q29uZmlnU3BlY3MgfT4pIHtcbiAgY29uc3QgcHJldkN0eCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG4gIGNvbnN0IHNjYWxlID0gdXNlQWRhcHRpdmVJbWFnZSgpO1xuICBjb25zdCBtZXJnZWRDb25maWcgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2UoY2xvbmUocHJldkN0eCksIGNvbmZpZywge1xuICAgICAgc3RhdGU6IHtcbiAgICAgICAgaW1hZ2VTY2FsZTogc2NhbGUsXG4gICAgICB9LFxuICAgIH0pO1xuICB9LCBbcHJldkN0eCwgY29uZmlnLCBzY2FsZV0pO1xuXG4gIHJldHVybiA8Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17bWVyZ2VkQ29uZmlnfT57Y2hpbGRyZW59PC9Db250ZXh0LlByb3ZpZGVyPjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT25lVUlQcm92aWRlcjtcblxuZnVuY3Rpb24gcGF0aFRvSnNvbihcbiAgcGF0aDogc3RyaW5nLFxuICBrZXk/OiBzdHJpbmcgfCBTeW1ib2wsXG4gIGV4YW1wbGVDb25maWcgPSBcIlRIRV9NSVNTSU5HX0NPTkZJR1wiLFxuKSB7XG4gIGlmICgha2V5KSB7XG4gICAga2V5ID0gcGF0aC5zcGxpdChcIi5cIikuc2xpY2UoLTEpWzBdO1xuICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoYC4ke2tleX1gLCBcIlwiKTtcbiAgfVxuXG4gIHJldHVybiBwYXRoXG4gICAgLnNwbGl0KFwiLlwiKVxuICAgIC5jb25jYXQoa2V5IGFzIHN0cmluZylcbiAgICAucmVkdWNlKChyZXN1bHQsIGtleSwgaWR4LCBhcnIpID0+IHtcbiAgICAgIChhcnIuc2xpY2UoMCwgaWR4KS5yZWR1Y2UoKHIsIGspID0+IChyIGFzIGFueSlba10sIHJlc3VsdCkgYXMgYW55KVtrZXldID1cbiAgICAgICAgaWR4ID09PSBhcnIubGVuZ3RoIC0gMSA/IGV4YW1wbGVDb25maWcgOiB7fTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBFcnJvcldyYXBwZXIoXG4gIG9yaWdpbmFsT2JqZWN0OiBhbnksXG4gIHBhdGg6IHN0cmluZyA9IFwiY29uZmlnXCIsXG4pOiB0eXBlb2YgUHJveHkge1xuICByZXR1cm4gbmV3IFByb3h5KFxuICAgIHR5cGVvZiBvcmlnaW5hbE9iamVjdCAhPT0gXCJvYmplY3RcIiA/IHt9IDogb3JpZ2luYWxPYmplY3QgfHwge30sXG4gICAge1xuICAgICAgZ2V0KF90YXJnZXQsIGtleSkge1xuICAgICAgICBpZiAoa2V5ID09PSBTeW1ib2wudG9QcmltaXRpdmUgfHwga2V5ID09PSBcIiQkdHlwZW9mXCIpIHtcbiAgICAgICAgICByZXR1cm4gKCkgPT4gX3RhcmdldFtrZXldO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBvcmlnaW5hbE9iamVjdFtrZXldO1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIilcbiAgICAgICAgICAgIHJldHVybiBFcnJvcldyYXBwZXIodmFsdWUsIFtwYXRoLCBrZXldLmZpbHRlcihCb29sZWFuKS5qb2luKFwiLlwiKSk7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgcGF0aEpzb24gPSBwYXRoVG9Kc29uKHBhdGgsIGtleSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEEgY29tcG9uZW50IGlzIHVzaW5nIHRoZSBVSSBjb25maWcgJHtbcGF0aCwga2V5XS5qb2luKFwiLlwiKX0uXG5cblBsZWFzZSBkZWZpbmUgaXQgdXNpbmc6XG5pbXBvcnQgT25lVUlQcm92aWRlciBmcm9tIFwiQG9uZXBlcmNlbnQvb25lLXVpL2Rpc3QvY29udGV4dC9PbmVVSVByb3ZpZGVyXCI7XG5cbiAgLi4uXG4ke2A8T25lVUlQcm92aWRlciBjb25maWc9eyR7SlNPTi5zdHJpbmdpZnkocGF0aEpzb24sIG51bGwsIDQpfX0+XG4uLi5cbjwvT25lVUlQcm92aWRlcj5gLnJlcGxhY2UoL1sgXS9nLCBcIi1cIil9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VPbmVVSUNvbnRleHQoKSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KENvbnRleHQpO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKVxuICAgIHJldHVybiBFcnJvcldyYXBwZXIoY29udGV4dCkgYXMgdW5rbm93biBhcyBPbmVVSUNvbnRleHRTcGVjcztcblxuICByZXR1cm4gY29udGV4dCBhcyBPbmVVSUNvbnRleHRTcGVjcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9uZVVJVmlldzxQIGV4dGVuZHMgRmllbGRQYXRoPE9uZVVJQ29udGV4dFNwZWNzPj4oXG4gIG9uZXVpQ29uZmlnUGF0aDogUCxcbiAgY29tcG9uZW50TmFtZTogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHByb3ZpZGVkVmFsdWUgPSB1c2VPbmVVSUNvbmZpZyhvbmV1aUNvbmZpZ1BhdGgpO1xuICBpZiAoIXByb3ZpZGVkVmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBjb21wb25lbnQgJHtjb21wb25lbnROYW1lfSByZXF1aXJlcyBhIHZpZXcgdG8gYmUgc2V0IG9uIE9uZVVJIGluaXRpYWxpemF0aW9uXG5cblZpZXdzIHJlYWR5IGZvciB1c2Ugd2l0aCB0aGlzIGNvbXBvbmVudCBzaGFsbCBiZSBhdmFpbGFibGUgYXQ6XG5pbXBvcnQgU29tZVZpZXcgZnJvbSBcIkBvbmVwZXJjZW50aW8vb25lLXVpL2Rpc3QvY29tcG9uZW50cy8ke2NvbXBvbmVudE5hbWV9L1ZpZXcvU29tZVZpZXdcIjtcbiAgICBcblBsZWFzZSBkZWZpbmUgaXQgdXNpbmc6XG5pbXBvcnQgT25lVUlQcm92aWRlciBmcm9tIFwiQG9uZXBlcmNlbnRpby9vbmUtdWkvZGlzdC9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcblxuICAuLi5cbiR7YDxPbmVVSVByb3ZpZGVyIGNvbmZpZz17JHtKU09OLnN0cmluZ2lmeShcbiAgcGF0aFRvSnNvbihvbmV1aUNvbmZpZ1BhdGgsIHVuZGVmaW5lZCwgXCJTb21lVmlld1wiKSxcbiAgbnVsbCxcbiAgNCxcbil9fT5cbi4uLlxuPC9PbmVVSVByb3ZpZGVyPmAucmVwbGFjZSgvWyBdL2csIFwiLVwiKX1gKTtcbiAgfVxuXG4gIHJldHVybiBwcm92aWRlZFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlT25lVUlDb25maWc8UCBleHRlbmRzIEZpZWxkUGF0aDxPbmVVSUNvbnRleHRTcGVjcz4+KFxuICBwcm9wOiBQLFxuKTogR2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPjtcbmV4cG9ydCBmdW5jdGlvbiB1c2VPbmVVSUNvbmZpZzxcbiAgUCBleHRlbmRzIEZpZWxkUGF0aDxPbmVVSUNvbnRleHRTcGVjcz4sXG4gIFQgZXh0ZW5kcyBEZWVwUGFydGlhbDxHZXQ8T25lVUlDb250ZXh0U3BlY3MsIFA+Pixcbj4ocHJvcDogUCwgZGVmYXVsdFZhbHVlOiBUKTogTm9uTnVsbGFibGU8R2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPj47XG5leHBvcnQgZnVuY3Rpb24gdXNlT25lVUlDb25maWc8XG4gIFAgZXh0ZW5kcyBGaWVsZFBhdGg8T25lVUlDb250ZXh0U3BlY3M+LFxuICBUIGV4dGVuZHMgR2V0PE9uZVVJQ29udGV4dFNwZWNzLCBQPixcbj4ocHJvcDogUCwgZGVmYXVsdFZhbHVlPzogVCk6IEdldDxPbmVVSUNvbnRleHRTcGVjcywgUD4gfCBUIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKSB7XG4gICAgY29uc3QgdmFsID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gZ2V0KGNvbnRleHQsIHByb3ApO1xuICAgIH0sIFtjb250ZXh0LCBwcm9wXSk7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIiB8fFxuICAgICAgdHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiIHx8XG4gICAgICBwcm9wLmVuZHNXaXRoKFwiLkNvbXBvbmVudFwiKSB8fFxuICAgICAgcHJvcC5lbmRzV2l0aChcIi5WaWV3XCIpXG4gICAgKVxuICAgICAgcmV0dXJuICh2YWwgYXMgYW55KSB8fCBkZWZhdWx0VmFsdWU7XG5cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gXCJib29sZWFuXCIpIHJldHVybiB2YWwgYXMgYW55O1xuICAgIHJldHVybiBFcnJvcldyYXBwZXIodmFsIHx8IGRlZmF1bHRWYWx1ZSkgYXMgdW5rbm93biBhcyBOb25OdWxsYWJsZTxUPjtcbiAgfVxuICBjb25zdCB2YWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBnZXQoY29udGV4dCwgcHJvcCk7XG4gIH0sIFtjb250ZXh0LCBwcm9wXSk7XG4gIHJldHVybiB2YWx1ZSB8fCBkZWZhdWx0VmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VDdXJyZW50SW1hZ2VTY2FsZSgpIHtcbiAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRleHQuc3RhdGUhLmltYWdlU2NhbGUhO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0EsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSixPQUFBO0FBV0EsSUFBQUssaUJBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUE0RCxTQUFBSSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsQ0FBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FB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
@@ -24,7 +24,9 @@ function _Input({ error, placeholder = " ", hideError, icon, Icon, autoFocus, di
24
24
  }
25
25
  }, [autoFocus]);
26
26
  const Component = multiline ? "textarea" : "input";
27
- return (_jsxs("div", { className: `${className.container} ${localClassName}`, children: [_jsxs("div", { className: `${Styles.inputContainer} ${false ? Styles.withIcon : ""}`, ...containerProps, children: [decoration, _jsx(Component, { ref: inputRef, placeholder: placeholder, rows: multiline, className: className.input, ...otherProps, onFocus: (e) => {
27
+ const containerRef = useRef(null);
28
+ const maxWidth = useMemo(() => containerRef.current?.getBoundingClientRect().width, [error, disclaimer]);
29
+ return (_jsxs("div", { className: `${className.container} ${localClassName}`, children: [_jsxs("div", { className: `${Styles.inputContainer} ${false ? Styles.withIcon : ""}`, ref: containerRef, ...containerProps, children: [decoration, _jsx(Component, { ref: inputRef, placeholder: placeholder, rows: multiline, className: className.input, ...otherProps, onFocus: (e) => {
28
30
  setFocused(true);
29
31
  if (otherProps.onFocus)
30
32
  otherProps.onFocus(e);
@@ -32,7 +34,7 @@ function _Input({ error, placeholder = " ", hideError, icon, Icon, autoFocus, di
32
34
  setFocused(false);
33
35
  if (otherProps.onBlur)
34
36
  otherProps.onBlur(e);
35
- } }), Icon && _jsx("div", { className: Styles.icon, children: Icon }), icon && _jsx("img", { className: Styles.icon, ...icon })] }), _jsx(AdaptiveContainer, { direction: "v", children: error && shouldShowError ? (_jsx(Text, { title: typeof error === "string" ? error : "", type: variants.error ?? "error", children: error }, "error")) : disclaimer ? (_jsx(Text, { title: typeof disclaimer === "string" ? disclaimer : "", type: variants.disclaimer ?? "caption", children: disclaimer }, "t")) : (_jsx(Fragment, {}, "e")) })] }));
37
+ } }), Icon && _jsx("div", { className: Styles.icon, children: Icon }), icon && _jsx("img", { className: Styles.icon, ...icon })] }), _jsx(AdaptiveContainer, { direction: "v", style: { maxWidth: maxWidth }, children: error && shouldShowError ? (_jsx(Text, { title: typeof error === "string" ? error : "", type: variants.error ?? "error", children: error }, "error")) : disclaimer ? (_jsx(Text, { title: typeof disclaimer === "string" ? disclaimer : "", type: variants.disclaimer ?? "caption", children: disclaimer }, "t")) : (_jsx(Fragment, {}, "e")) })] }));
36
38
  }
37
39
  /**
38
40
  * A transparent input with some prebuilt states common to the application
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":";AAAA,OAAc,EAIZ,UAAU,EACV,QAAQ,EAER,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAqBrD,SAAS,MAAM,CACb,EACE,KAAK,EACL,WAAW,GAAG,GAAG,EACjB,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,UAAU,EACV,SAAS,EACT,UAAU,GAAG,IAAI,EACjB,cAAc,EACd,SAAS,EAAE,cAAc,EACzB,GAAG,UAAU,EACF,EACb,GAAsB;IAEtB,MAAM,SAAS,GAAG,cAAc,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,cAAc,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAyC,IAAI,CAAC,CAAC;IACtE,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,OAAO,CAAC;QAC7C,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxB,QAAQ,CAAC,OAAQ,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;IACnD,OAAO,CACL,eAAK,SAAS,EAAE,GAAG,SAAS,CAAC,SAAS,IAAI,cAAc,EAAE,aACxD,eACE,SAAS,EAAE,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,KACjE,cAAc,aAEjB,UAAU,EACX,KAAC,SAAS,IACR,GAAG,EAAE,QAAe,EACpB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,CAAC,KAAK,KACtB,UAAU,EACd,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;4BACb,UAAU,CAAC,IAAI,CAAC,CAAC;4BACjB,IAAI,UAAU,CAAC,OAAO;gCAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAChD,CAAC,EACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;4BACZ,UAAU,CAAC,KAAK,CAAC,CAAC;4BAClB,IAAI,UAAU,CAAC,MAAM;gCAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC9C,CAAC,GACD,EACD,IAAI,IAAI,cAAK,SAAS,EAAE,MAAM,CAAC,IAAI,YAAG,IAAI,GAAO,EACjD,IAAI,IAAI,cAAK,SAAS,EAAE,MAAM,CAAC,IAAI,KAAM,IAAI,GAAI,IAC9C,EACN,KAAC,iBAAiB,IAAC,SAAS,EAAC,GAAG,YAC7B,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,CAC1B,KAAC,IAAI,IAEH,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAC7C,IAAI,EAAE,QAAQ,CAAC,KAAK,IAAI,OAAO,YAE9B,KAAK,IAJD,OAAO,CAKP,CACR,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACf,KAAC,IAAI,IAEH,KAAK,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EACvD,IAAI,EAAE,QAAQ,CAAC,UAAU,IAAI,SAAS,YAErC,UAAU,IAJN,GAAG,CAKH,CACR,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,MAAM,GAAG,CAAI,CACvB,GACiB,IAChB,CACP,CAAC;AACJ,CAAC;AAED;;IAEI;AACJ,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AACjC,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/components/Input/Input.tsx"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import CheckBox from "../components/CheckBox";
10
10
  import Radio from "../components/Radio/Radio";
11
11
  import { FileInputViewProps } from "../components/FileInput/View/View.types";
12
12
  import { AnswerByField, FormField, GenericFormFieldProps } from "../components/Form/FormField/FormField.types";
13
- import { BaseQuestion, FormMode } from "../components/Form/Form.types";
13
+ import { FormMode } from "../components/Form/Form.types";
14
14
  type DeepPartial<T> = {
15
15
  [P in keyof T]?: NonNullable<T[P]> extends Function ? T[P] : DeepPartial<T[P]>;
16
16
  };
@@ -47,7 +47,7 @@ export type OneUIContextSpecs = {
47
47
  Input: (props: GenericFormFieldProps<K>) => ReactElement;
48
48
  validator: (answer: AnswerByField<{
49
49
  type: K;
50
- }> | undefined, question: BaseQuestion & (FromOnePercentUtility<"UIElements.FormExtension">["fields"] & {
50
+ }> | undefined, question: FormField & (FromOnePercentUtility<"UIElements.FormExtension">["fields"] & {
51
51
  type: K;
52
52
  })) => {
53
53
  isValid: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onepercentio/one-ui",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "A set of reusable components created through the development of Onepercent projects",
5
5
  "repository": "git@github.com:onepercentio/one-ui.git",
6
6
  "author": "Murilo Oliveira de Araujo <murilo.araujo@onepercent.io>",