@payloadcms/richtext-lexical 0.1.0-beta.2 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/field/Field.d.ts.map +1 -1
  2. package/dist/field/Field.js +19 -4
  3. package/dist/field/features/Blocks/component/BlockContent.d.ts.map +1 -1
  4. package/dist/field/features/Blocks/component/BlockContent.js +49 -23
  5. package/dist/field/features/Blocks/component/FormSavePlugin.d.ts +3 -2
  6. package/dist/field/features/Blocks/component/FormSavePlugin.d.ts.map +1 -1
  7. package/dist/field/features/Blocks/component/FormSavePlugin.js +4 -2
  8. package/dist/field/features/Blocks/component/index.d.ts.map +1 -1
  9. package/dist/field/features/Blocks/component/index.js +6 -3
  10. package/dist/field/features/Blocks/drawer/index.d.ts.map +1 -1
  11. package/dist/field/features/Blocks/drawer/index.js +1 -3
  12. package/dist/field/features/Blocks/index.d.ts.map +1 -1
  13. package/dist/field/features/Blocks/index.js +6 -3
  14. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts +2 -2
  15. package/dist/field/features/Blocks/nodes/BlocksNode.d.ts.map +1 -1
  16. package/dist/field/features/Blocks/nodes/BlocksNode.js +9 -2
  17. package/dist/field/features/Blocks/validate.d.ts +5 -0
  18. package/dist/field/features/Blocks/validate.d.ts.map +1 -0
  19. package/dist/field/features/Blocks/validate.js +53 -0
  20. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.d.ts.map +1 -1
  21. package/dist/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.js +11 -2
  22. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.d.ts.map +1 -1
  23. package/dist/field/features/Upload/component/ExtraFieldsDrawer/index.js +20 -3
  24. package/dist/field/features/types.d.ts +15 -2
  25. package/dist/field/features/types.d.ts.map +1 -1
  26. package/dist/field/index.scss +38 -0
  27. package/dist/field/lexical/LexicalEditor.scss +28 -26
  28. package/dist/field/lexical/config/sanitize.d.ts.map +1 -1
  29. package/dist/field/lexical/config/sanitize.js +6 -2
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +6 -2
  32. package/dist/populate/defaultValue.d.ts +17 -0
  33. package/dist/populate/defaultValue.d.ts.map +1 -1
  34. package/dist/populate/defaultValue.js +31 -4
  35. package/dist/validate/index.d.ts +7 -0
  36. package/dist/validate/index.d.ts.map +1 -0
  37. package/dist/validate/index.js +40 -0
  38. package/dist/validate/validateNodes.d.ts +14 -0
  39. package/dist/validate/validateNodes.d.ts.map +1 -0
  40. package/dist/validate/validateNodes.js +44 -0
  41. package/package.json +4 -3
  42. package/src/index.ts +4 -0
  43. package/dist/populate/validation.d.ts +0 -4
  44. package/dist/populate/validation.d.ts.map +0 -1
  45. package/dist/populate/validation.js +0 -21
@@ -0,0 +1,5 @@
1
+ import type { BlocksFeatureProps } from '.';
2
+ import type { NodeValidation } from '../types';
3
+ import type { SerializedBlockNode } from './nodes/BlocksNode';
4
+ export declare const blockValidationHOC: (props: BlocksFeatureProps) => NodeValidation<SerializedBlockNode>;
5
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/field/features/Blocks/validate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,eAAO,MAAM,kBAAkB,UACtB,kBAAkB,KACxB,eAAe,mBAAmB,CAmDpC,CAAA"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "blockValidationHOC", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return blockValidationHOC;
9
+ }
10
+ });
11
+ const _config = require("payload/config");
12
+ const blockValidationHOC = (props)=>{
13
+ const blockValidation = async ({ node, nodeValidations, payloadConfig, validation })=>{
14
+ const blockFieldValues = node.fields.data;
15
+ const blocks = props.blocks;
16
+ // Sanitize block's fields here. This is done here and not in the feature, because the payload config is available here
17
+ blocks.forEach((block)=>{
18
+ const validRelationships = payloadConfig.collections.map((c)=>c.slug) || [];
19
+ block.fields = (0, _config.sanitizeFields)({
20
+ config: payloadConfig,
21
+ fields: block.fields,
22
+ validRelationships
23
+ });
24
+ });
25
+ // find block
26
+ const block = props.blocks.find((block)=>block.slug === blockFieldValues.blockType);
27
+ // validate block
28
+ if (!block) {
29
+ return 'Block not found';
30
+ }
31
+ for (const field of block.fields){
32
+ if ('validate' in field && typeof field.validate === 'function' && field.validate) {
33
+ const fieldValue = 'name' in field ? node.fields.data[field.name] : null;
34
+ const validationResult = await field.validate(fieldValue, {
35
+ id: validation.options.id,
36
+ config: payloadConfig,
37
+ data: fieldValue,
38
+ operation: validation.options.operation,
39
+ siblingData: validation.options.siblingData,
40
+ t: validation.options.t,
41
+ user: validation.options.user
42
+ });
43
+ if (validationResult !== true) {
44
+ return validationResult;
45
+ }
46
+ }
47
+ }
48
+ return true;
49
+ };
50
+ return blockValidation;
51
+ };
52
+
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9CbG9ja3MvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCbG9jayB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHNhbml0aXplRmllbGRzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5cbmltcG9ydCB0eXBlIHsgQmxvY2tzRmVhdHVyZVByb3BzIH0gZnJvbSAnLidcbmltcG9ydCB0eXBlIHsgTm9kZVZhbGlkYXRpb24gfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXplZEJsb2NrTm9kZSB9IGZyb20gJy4vbm9kZXMvQmxvY2tzTm9kZSdcblxuZXhwb3J0IGNvbnN0IGJsb2NrVmFsaWRhdGlvbkhPQyA9IChcbiAgcHJvcHM6IEJsb2Nrc0ZlYXR1cmVQcm9wcyxcbik6IE5vZGVWYWxpZGF0aW9uPFNlcmlhbGl6ZWRCbG9ja05vZGU+ID0+IHtcbiAgY29uc3QgYmxvY2tWYWxpZGF0aW9uOiBOb2RlVmFsaWRhdGlvbjxTZXJpYWxpemVkQmxvY2tOb2RlPiA9IGFzeW5jICh7XG4gICAgbm9kZSxcbiAgICBub2RlVmFsaWRhdGlvbnMsXG4gICAgcGF5bG9hZENvbmZpZyxcbiAgICB2YWxpZGF0aW9uLFxuICB9KSA9PiB7XG4gICAgY29uc3QgYmxvY2tGaWVsZFZhbHVlcyA9IG5vZGUuZmllbGRzLmRhdGFcblxuICAgIGNvbnN0IGJsb2NrczogQmxvY2tbXSA9IHByb3BzLmJsb2Nrc1xuICAgIC8vIFNhbml0aXplIGJsb2NrJ3MgZmllbGRzIGhlcmUuIFRoaXMgaXMgZG9uZSBoZXJlIGFuZCBub3QgaW4gdGhlIGZlYXR1cmUsIGJlY2F1c2UgdGhlIHBheWxvYWQgY29uZmlnIGlzIGF2YWlsYWJsZSBoZXJlXG4gICAgYmxvY2tzLmZvckVhY2goKGJsb2NrKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZFJlbGF0aW9uc2hpcHMgPSBwYXlsb2FkQ29uZmlnLmNvbGxlY3Rpb25zLm1hcCgoYykgPT4gYy5zbHVnKSB8fCBbXVxuICAgICAgYmxvY2suZmllbGRzID0gc2FuaXRpemVGaWVsZHMoe1xuICAgICAgICBjb25maWc6IHBheWxvYWRDb25maWcsXG4gICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICB2YWxpZFJlbGF0aW9uc2hpcHMsXG4gICAgICB9KVxuICAgIH0pXG5cbiAgICAvLyBmaW5kIGJsb2NrXG4gICAgY29uc3QgYmxvY2sgPSBwcm9wcy5ibG9ja3MuZmluZCgoYmxvY2spID0+IGJsb2NrLnNsdWcgPT09IGJsb2NrRmllbGRWYWx1ZXMuYmxvY2tUeXBlKVxuXG4gICAgLy8gdmFsaWRhdGUgYmxvY2tcbiAgICBpZiAoIWJsb2NrKSB7XG4gICAgICByZXR1cm4gJ0Jsb2NrIG5vdCBmb3VuZCdcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGJsb2NrLmZpZWxkcykge1xuICAgICAgaWYgKCd2YWxpZGF0ZScgaW4gZmllbGQgJiYgdHlwZW9mIGZpZWxkLnZhbGlkYXRlID09PSAnZnVuY3Rpb24nICYmIGZpZWxkLnZhbGlkYXRlKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSAnbmFtZScgaW4gZmllbGQgPyBub2RlLmZpZWxkcy5kYXRhW2ZpZWxkLm5hbWVdIDogbnVsbFxuICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgZmllbGQudmFsaWRhdGUoZmllbGRWYWx1ZSwge1xuICAgICAgICAgIGlkOiB2YWxpZGF0aW9uLm9wdGlvbnMuaWQsXG4gICAgICAgICAgY29uZmlnOiBwYXlsb2FkQ29uZmlnLFxuICAgICAgICAgIGRhdGE6IGZpZWxkVmFsdWUsXG4gICAgICAgICAgb3BlcmF0aW9uOiB2YWxpZGF0aW9uLm9wdGlvbnMub3BlcmF0aW9uLFxuICAgICAgICAgIHNpYmxpbmdEYXRhOiB2YWxpZGF0aW9uLm9wdGlvbnMuc2libGluZ0RhdGEsXG4gICAgICAgICAgdDogdmFsaWRhdGlvbi5vcHRpb25zLnQsXG4gICAgICAgICAgdXNlcjogdmFsaWRhdGlvbi5vcHRpb25zLnVzZXIsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQgIT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiBibG9ja1ZhbGlkYXRpb25cbn1cbiJdLCJuYW1lcyI6WyJibG9ja1ZhbGlkYXRpb25IT0MiLCJwcm9wcyIsImJsb2NrVmFsaWRhdGlvbiIsIm5vZGUiLCJub2RlVmFsaWRhdGlvbnMiLCJwYXlsb2FkQ29uZmlnIiwidmFsaWRhdGlvbiIsImJsb2NrRmllbGRWYWx1ZXMiLCJmaWVsZHMiLCJkYXRhIiwiYmxvY2tzIiwiZm9yRWFjaCIsImJsb2NrIiwidmFsaWRSZWxhdGlvbnNoaXBzIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjIiwic2x1ZyIsInNhbml0aXplRmllbGRzIiwiY29uZmlnIiwiZmluZCIsImJsb2NrVHlwZSIsImZpZWxkIiwidmFsaWRhdGUiLCJmaWVsZFZhbHVlIiwibmFtZSIsInZhbGlkYXRpb25SZXN1bHQiLCJpZCIsIm9wdGlvbnMiLCJvcGVyYXRpb24iLCJzaWJsaW5nRGF0YSIsInQiLCJ1c2VyIl0sIm1hcHBpbmdzIjoiOzs7OytCQVFhQTs7O2VBQUFBOzs7d0JBTmtCO0FBTXhCLE1BQU1BLHFCQUFxQixDQUNoQ0M7SUFFQSxNQUFNQyxrQkFBdUQsT0FBTyxFQUNsRUMsSUFBSSxFQUNKQyxlQUFlLEVBQ2ZDLGFBQWEsRUFDYkMsVUFBVSxFQUNYO1FBQ0MsTUFBTUMsbUJBQW1CSixLQUFLSyxNQUFNLENBQUNDLElBQUk7UUFFekMsTUFBTUMsU0FBa0JULE1BQU1TLE1BQU07UUFDcEMsdUhBQXVIO1FBQ3ZIQSxPQUFPQyxPQUFPLENBQUMsQ0FBQ0M7WUFDZCxNQUFNQyxxQkFBcUJSLGNBQWNTLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLElBQUksS0FBSyxFQUFFO1lBQzdFTCxNQUFNSixNQUFNLEdBQUdVLElBQUFBLHNCQUFjLEVBQUM7Z0JBQzVCQyxRQUFRZDtnQkFDUkcsUUFBUUksTUFBTUosTUFBTTtnQkFDcEJLO1lBQ0Y7UUFDRjtRQUVBLGFBQWE7UUFDYixNQUFNRCxRQUFRWCxNQUFNUyxNQUFNLENBQUNVLElBQUksQ0FBQyxDQUFDUixRQUFVQSxNQUFNSyxJQUFJLEtBQUtWLGlCQUFpQmMsU0FBUztRQUVwRixpQkFBaUI7UUFDakIsSUFBSSxDQUFDVCxPQUFPO1lBQ1YsT0FBTztRQUNUO1FBRUEsS0FBSyxNQUFNVSxTQUFTVixNQUFNSixNQUFNLENBQUU7WUFDaEMsSUFBSSxjQUFjYyxTQUFTLE9BQU9BLE1BQU1DLFFBQVEsS0FBSyxjQUFjRCxNQUFNQyxRQUFRLEVBQUU7Z0JBQ2pGLE1BQU1DLGFBQWEsVUFBVUYsUUFBUW5CLEtBQUtLLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDYSxNQUFNRyxJQUFJLENBQUMsR0FBRztnQkFDcEUsTUFBTUMsbUJBQW1CLE1BQU1KLE1BQU1DLFFBQVEsQ0FBQ0MsWUFBWTtvQkFDeERHLElBQUlyQixXQUFXc0IsT0FBTyxDQUFDRCxFQUFFO29CQUN6QlIsUUFBUWQ7b0JBQ1JJLE1BQU1lO29CQUNOSyxXQUFXdkIsV0FBV3NCLE9BQU8sQ0FBQ0MsU0FBUztvQkFDdkNDLGFBQWF4QixXQUFXc0IsT0FBTyxDQUFDRSxXQUFXO29CQUMzQ0MsR0FBR3pCLFdBQVdzQixPQUFPLENBQUNHLENBQUM7b0JBQ3ZCQyxNQUFNMUIsV0FBV3NCLE9BQU8sQ0FBQ0ksSUFBSTtnQkFDL0I7Z0JBRUEsSUFBSU4scUJBQXFCLE1BQU07b0JBQzdCLE9BQU9BO2dCQUNUO1lBQ0Y7UUFDRjtRQUVBLE9BQU87SUFDVDtJQUVBLE9BQU94QjtBQUNUIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA6B7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAmR9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/field/features/Link/plugins/floatingLinkEditor/LinkEditor/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AA8B7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAS3C,eAAO,MAAM,8BAA8B,EAAE,cAAc,CAAC,WAAW,GAAG,IAAI,CAE7E,CAAA;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,MAAM,EAAE,iBAAiB,GAC1B,EAAE;IAAE,UAAU,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA2R9D"}
@@ -23,6 +23,7 @@ const _lexical = require("lexical");
23
23
  const _elements = require("payload/components/elements");
24
24
  const _forms = require("payload/components/forms");
25
25
  const _utilities = require("payload/components/utilities");
26
+ const _config = require("payload/config");
26
27
  const _utilities1 = require("payload/utilities");
27
28
  const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
28
29
  const _reacti18next = require("react-i18next");
@@ -89,7 +90,14 @@ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
89
90
  const { getDocPreferences } = (0, _utilities.useDocumentInfo)();
90
91
  const [initialState, setInitialState] = (0, _react.useState)({});
91
92
  const [fieldSchema] = (0, _react.useState)(()=>{
92
- const fields = (0, _utilities2.transformExtraFields)(customFieldSchema, config, i18n);
93
+ const fieldsUnsanitized = (0, _utilities2.transformExtraFields)(customFieldSchema, config, i18n);
94
+ // Sanitize custom fields here
95
+ const validRelationships = config.collections.map((c)=>c.slug) || [];
96
+ const fields = (0, _config.sanitizeFields)({
97
+ config: config,
98
+ fields: fieldsUnsanitized,
99
+ validRelationships
100
+ });
93
101
  return fields;
94
102
  });
95
103
  const { closeModal, toggleModal } = (0, _modal.useModal)();
@@ -142,6 +150,7 @@ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
142
150
  // values saved in the link node you clicked on.
143
151
  const preferences = await getDocPreferences();
144
152
  const state = await (0, _utilities.buildStateFromSchema)({
153
+ config,
145
154
  data,
146
155
  fieldSchema,
147
156
  locale,
@@ -303,4 +312,4 @@ function LinkEditor({ anchorElem, fields: customFieldSchema }) {
303
312
  }));
304
313
  }
305
314
 
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7IHJlZHVjZUZpZWxkc1RvVmFsdWVzIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgYnVpbGRTdGF0ZUZyb21TY2hlbWEsXG4gIHVzZUF1dGgsXG4gIHVzZUNvbmZpZyxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VFZGl0RGVwdGgsXG4gIHVzZUxvY2FsZSxcbn0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL3V0aWxpdGllcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgdHlwZSB7IExpbmtGZWF0dXJlUHJvcHMgfSBmcm9tICcuLi8uLi8uLidcbmltcG9ydCB0eXBlIHsgTGlua05vZGUgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB0eXBlIHsgTGlua1BheWxvYWQgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgdXNlRWRpdG9yQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvY29uZmlnL0VkaXRvckNvbmZpZ1Byb3ZpZGVyJ1xuaW1wb3J0IHsgZ2V0U2VsZWN0ZWROb2RlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9nZXRTZWxlY3RlZE5vZGUnXG5pbXBvcnQgeyBzZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL3V0aWxzL3NldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcidcbmltcG9ydCB7IExpbmtEcmF3ZXIgfSBmcm9tICcuLi8uLi8uLi9kcmF3ZXInXG5pbXBvcnQgeyAkaXNMaW5rTm9kZSwgVE9HR0xFX0xJTktfQ09NTUFORCB9IGZyb20gJy4uLy4uLy4uL25vZGVzL0xpbmtOb2RlJ1xuaW1wb3J0IHsgdHJhbnNmb3JtRXh0cmFGaWVsZHMgfSBmcm9tICcuLi91dGlsaXRpZXMnXG5cbmV4cG9ydCBjb25zdCBUT0dHTEVfTElOS19XSVRIX01PREFMX0NPTU1BTkQ6IExleGljYWxDb21tYW5kPExpbmtQYXlsb2FkIHwgbnVsbD4gPSBjcmVhdGVDb21tYW5kKFxuICAnVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EJyxcbilcblxuZXhwb3J0IGZ1bmN0aW9uIExpbmtFZGl0b3Ioe1xuICBhbmNob3JFbGVtLFxuICBmaWVsZHM6IGN1c3RvbUZpZWxkU2NoZW1hLFxufTogeyBhbmNob3JFbGVtOiBIVE1MRWxlbWVudCB9ICYgTGlua0ZlYXR1cmVQcm9wcyk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgW2VkaXRvcl0gPSB1c2VMZXhpY2FsQ29tcG9zZXJDb250ZXh0KClcblxuICBjb25zdCBlZGl0b3JSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbbGlua1VybCwgc2V0TGlua1VybF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2xpbmtMYWJlbCwgc2V0TGlua0xhYmVsXSA9IHVzZVN0YXRlKCcnKVxuXG4gIGNvbnN0IHsgdXVpZCB9ID0gdXNlRWRpdG9yQ29uZmlnQ29udGV4dCgpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7IHVzZXIgfSA9IHVzZUF1dGgoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbihbJ2ZpZWxkcycsICd1cGxvYWQnLCAnZ2VuZXJhbCddKVxuXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG5cbiAgY29uc3QgW2luaXRpYWxTdGF0ZSwgc2V0SW5pdGlhbFN0YXRlXSA9IHVzZVN0YXRlPEZpZWxkcz4oe30pXG5cbiAgY29uc3QgW2ZpZWxkU2NoZW1hXSA9IHVzZVN0YXRlKCgpID0+IHtcbiAgICBjb25zdCBmaWVsZHMgPSB0cmFuc2Zvcm1FeHRyYUZpZWxkcyhjdXN0b21GaWVsZFNjaGVtYSwgY29uZmlnLCBpMThuKVxuXG4gICAgcmV0dXJuIGZpZWxkc1xuICB9KVxuXG4gIGNvbnN0IHsgY2xvc2VNb2RhbCwgdG9nZ2xlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgZWRpdERlcHRoID0gdXNlRWRpdERlcHRoKClcbiAgY29uc3QgW2lzTGluaywgc2V0SXNMaW5rXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGRyYXdlclNsdWcgPSBmb3JtYXREcmF3ZXJTbHVnKHtcbiAgICBkZXB0aDogZWRpdERlcHRoLFxuICAgIHNsdWc6IGBsZXhpY2FsLXJpY2gtdGV4dC1saW5rLWAgKyB1dWlkLFxuICB9KVxuXG4gIGNvbnN0IHVwZGF0ZUxpbmtFZGl0b3IgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gJGdldFNlbGVjdGlvbigpXG4gICAgbGV0IHNlbGVjdGVkTm9kZURvbVJlY3Q6IERPTVJlY3QgfCB1bmRlZmluZWQgPSBudWxsXG5cbiAgICAvLyBIYW5kbGUgdGhlIGRhdGEgZGlzcGxheWVkIGluIHRoZSBmbG9hdGluZyBsaW5rIGVkaXRvciAmIGRyYXdlciB3aGVuIHlvdSBjbGljayBvbiBhIGxpbmsgbm9kZVxuICAgIGlmICgkaXNSYW5nZVNlbGVjdGlvbihzZWxlY3Rpb24pKSB7XG4gICAgICBjb25zdCBub2RlID0gZ2V0U2VsZWN0ZWROb2RlKHNlbGVjdGlvbilcbiAgICAgIHNlbGVjdGVkTm9kZURvbVJlY3QgPSBlZGl0b3IuZ2V0RWxlbWVudEJ5S2V5KG5vZGUuZ2V0S2V5KCkpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgbGlua1BhcmVudDogTGlua05vZGUgPSAkZmluZE1hdGNoaW5nUGFyZW50KG5vZGUsICRpc0xpbmtOb2RlKSBhcyBMaW5rTm9kZVxuICAgICAgaWYgKGxpbmtQYXJlbnQgPT0gbnVsbCkge1xuICAgICAgICBzZXRJc0xpbmsoZmFsc2UpXG4gICAgICAgIHNldExpbmtVcmwoJycpXG4gICAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIEluaXRpYWwgc3RhdGU6XG4gICAgICBjb25zdCBkYXRhOiBMaW5rUGF5bG9hZCA9IHtcbiAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgZG9jOiB1bmRlZmluZWQsXG4gICAgICAgICAgbGlua1R5cGU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdUYWI6IHVuZGVmaW5lZCxcbiAgICAgICAgICBub2ZvbGxvdzogdW5kZWZpbmVkLFxuICAgICAgICAgIHNwb25zb3JlZDogdW5kZWZpbmVkLFxuICAgICAgICAgIHVybDogJycsXG4gICAgICAgICAgLi4ubGlua1BhcmVudC5nZXRGaWVsZHMoKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGV4dDogbGlua1BhcmVudC5nZXRUZXh0Q29udGVudCgpLFxuICAgICAgfVxuXG4gICAgICBpZiAobGlua1BhcmVudC5nZXRGaWVsZHMoKT8ubGlua1R5cGUgPT09ICdjdXN0b20nKSB7XG4gICAgICAgIHNldExpbmtVcmwobGlua1BhcmVudC5nZXRGaWVsZHMoKT8udXJsID8/ICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBpbnRlcm5hbCBsaW5rXG4gICAgICAgIHNldExpbmtVcmwoXG4gICAgICAgICAgYC9hZG1pbi9jb2xsZWN0aW9ucy8ke2xpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25Ub30vJHtsaW5rUGFyZW50LmdldEZpZWxkcygpXG4gICAgICAgICAgICA/LmRvYz8udmFsdWV9YCxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IHJlbGF0ZWRGaWVsZCA9IGNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgIChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmRvYz8ucmVsYXRpb25UbyxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBsYWJlbCA9IHQoJ2ZpZWxkczpsaW5rZWRUbycsIHtcbiAgICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24ocmVsYXRlZEZpZWxkLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICAgIH0pLnJlcGxhY2UoLzxbXj5dKj4/L2csICcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwobGFiZWwpXG4gICAgICB9XG5cbiAgICAgIC8vIFNldCBpbml0aWFsIHN0YXRlIG9mIHRoZSBkcmF3ZXIuIFRoaXMgd2lsbCBiYXNpY2FsbHkgcHJlLWZpbGwgdGhlIGRyYXdlciBmaWVsZHMgd2l0aCB0aGVcbiAgICAgIC8vIHZhbHVlcyBzYXZlZCBpbiB0aGUgbGluayBub2RlIHlvdSBjbGlja2VkIG9uLlxuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiAnY3JlYXRlJyxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXI6IHVzZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIHNldEluaXRpYWxTdGF0ZShzdGF0ZSlcbiAgICAgIHNldElzTGluayh0cnVlKVxuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvckVsZW0gPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHsgYWN0aXZlRWxlbWVudCB9ID0gZG9jdW1lbnRcblxuICAgIGlmIChlZGl0b3JFbGVtID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSAmJlxuICAgICAgZWRpdG9yLmlzRWRpdGFibGUoKVxuICAgICkge1xuICAgICAgaWYgKCFzZWxlY3RlZE5vZGVEb21SZWN0KSB7XG4gICAgICAgIC8vIEdldCB0aGUgRE9NIHJlY3Qgb2YgdGhlIHNlbGVjdGVkIG5vZGUgdXNpbmcgdGhlIG5hdGl2ZSBzZWxlY3Rpb24uIFRoaXMgc29tZXRpbWVzIHByb2R1Y2VzIHRoZSB3cm9uZ1xuICAgICAgICAvLyByZXN1bHQsIHdoaWNoIGlzIHdoeSB3ZSB1c2UgbGV4aWNhbCdzIHNlbGVjdGlvbiBwcmVmZXJhYmx5LlxuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gbmF0aXZlU2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkTm9kZURvbVJlY3QgIT0gbnVsbCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0LnkgKz0gNDBcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKHNlbGVjdGVkTm9kZURvbVJlY3QsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhY3RpdmVFbGVtZW50ID09IG51bGwgfHwgYWN0aXZlRWxlbWVudC5jbGFzc05hbWUgIT09ICdsaW5rLWlucHV0Jykge1xuICAgICAgaWYgKHJvb3RFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihudWxsLCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9LCBbYW5jaG9yRWxlbSwgZWRpdG9yLCBmaWVsZFNjaGVtYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgdG9nZ2xlTW9kYWwsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpbmsgJiYgZWRpdG9yUmVmKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC0xMDAwMHB4LCAtMTAwMDBweCknXG4gICAgfVxuICB9LCBbaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgIHNjcm9sbGVyRWxlbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0ucGFyZW50RWxlbWVudCwgZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstZWRpdFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgbGlua1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLXRyYXNoXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBudWxsKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxMaW5rRHJhd2VyXG4gICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZFNjaGVtYX1cbiAgICAgICAgaGFuZGxlTW9kYWxTdWJtaXQ9eyhmaWVsZHM6IEZpZWxkcykgPT4ge1xuICAgICAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcblxuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpXG5cbiAgICAgICAgICBjb25zdCBuZXdMaW5rUGF5bG9hZDogTGlua1BheWxvYWQgPSBkYXRhIGFzIExpbmtQYXlsb2FkXG5cbiAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG5ld0xpbmtQYXlsb2FkKVxuICAgICAgICB9fVxuICAgICAgICBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsIkxpbmtFZGl0b3IiLCJjcmVhdGVDb21tYW5kIiwiYW5jaG9yRWxlbSIsImZpZWxkcyIsImN1c3RvbUZpZWxkU2NoZW1hIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvclJlZiIsInVzZVJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwidXNlU3RhdGUiLCJsaW5rTGFiZWwiLCJzZXRMaW5rTGFiZWwiLCJ1dWlkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNvbmZpZyIsInVzZUNvbmZpZyIsInVzZXIiLCJ1c2VBdXRoIiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsImZpZWxkU2NoZW1hIiwidHJhbnNmb3JtRXh0cmFGaWVsZHMiLCJjbG9zZU1vZGFsIiwidG9nZ2xlTW9kYWwiLCJ1c2VNb2RhbCIsImVkaXREZXB0aCIsInVzZUVkaXREZXB0aCIsImlzTGluayIsInNldElzTGluayIsImRyYXdlclNsdWciLCJmb3JtYXREcmF3ZXJTbHVnIiwiZGVwdGgiLCJzbHVnIiwidXBkYXRlTGlua0VkaXRvciIsInVzZUNhbGxiYWNrIiwic2VsZWN0aW9uIiwiJGdldFNlbGVjdGlvbiIsInNlbGVjdGVkTm9kZURvbVJlY3QiLCIkaXNSYW5nZVNlbGVjdGlvbiIsIm5vZGUiLCJnZXRTZWxlY3RlZE5vZGUiLCJnZXRFbGVtZW50QnlLZXkiLCJnZXRLZXkiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsaW5rUGFyZW50IiwiJGZpbmRNYXRjaGluZ1BhcmVudCIsIiRpc0xpbmtOb2RlIiwiZGF0YSIsImRvYyIsInVuZGVmaW5lZCIsImxpbmtUeXBlIiwibmV3VGFiIiwibm9mb2xsb3ciLCJzcG9uc29yZWQiLCJ1cmwiLCJnZXRGaWVsZHMiLCJ0ZXh0IiwiZ2V0VGV4dENvbnRlbnQiLCJyZWxhdGlvblRvIiwidmFsdWUiLCJyZWxhdGVkRmllbGQiLCJjb2xsZWN0aW9ucyIsImZpbmQiLCJjb2xsIiwibGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVscyIsInNpbmd1bGFyIiwicmVwbGFjZSIsInByZWZlcmVuY2VzIiwic3RhdGUiLCJidWlsZFN0YXRlRnJvbVNjaGVtYSIsIm9wZXJhdGlvbiIsImVkaXRvckVsZW0iLCJjdXJyZW50IiwibmF0aXZlU2VsZWN0aW9uIiwid2luZG93IiwiZ2V0U2VsZWN0aW9uIiwiYWN0aXZlRWxlbWVudCIsImRvY3VtZW50Iiwicm9vdEVsZW1lbnQiLCJnZXRSb290RWxlbWVudCIsImNvbnRhaW5zIiwiYW5jaG9yTm9kZSIsImlzRWRpdGFibGUiLCJnZXRSYW5nZUF0IiwieSIsInNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvciIsImNsYXNzTmFtZSIsInVzZUVmZmVjdCIsIm1lcmdlUmVnaXN0ZXIiLCJyZWdpc3RlckNvbW1hbmQiLCJwYXlsb2FkIiwiZGlzcGF0Y2hDb21tYW5kIiwiVE9HR0xFX0xJTktfQ09NTUFORCIsInRoZW4iLCJjYXRjaCIsImVycm9yIiwiQ09NTUFORF9QUklPUklUWV9MT1ciLCJzdHlsZSIsIm9wYWNpdHkiLCJ0cmFuc2Zvcm0iLCJzY3JvbGxlckVsZW0iLCJwYXJlbnRFbGVtZW50IiwidXBkYXRlIiwiZ2V0RWRpdG9yU3RhdGUiLCJyZWFkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZWdpc3RlclVwZGF0ZUxpc3RlbmVyIiwiZWRpdG9yU3RhdGUiLCJTRUxFQ1RJT05fQ0hBTkdFX0NPTU1BTkQiLCJLRVlfRVNDQVBFX0NPTU1BTkQiLCJDT01NQU5EX1BSSU9SSVRZX0hJR0giLCJSZWFjdCIsIkZyYWdtZW50IiwiZGl2IiwicmVmIiwiYSIsImhyZWYiLCJyZWwiLCJ0YXJnZXQiLCJsZW5ndGgiLCJidXR0b24iLCJhcmlhLWxhYmVsIiwib25DbGljayIsIm9uTW91c2VEb3duIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhYkluZGV4IiwidHlwZSIsIkxpbmtEcmF3ZXIiLCJoYW5kbGVNb2RhbFN1Ym1pdCIsInJlZHVjZUZpZWxkc1RvVmFsdWVzIiwibmV3TGlua1BheWxvYWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBd0NhQSw4QkFBOEI7ZUFBOUJBOztJQUlHQyxVQUFVO2VBQVZBOzs7dUJBekNTO3dDQUNpQjt1QkFDUzt5QkFTNUM7MEJBQzBCO3VCQUNJOzJCQVE5Qjs0QkFDd0I7K0RBQ2lDOzhCQUNqQztzQ0FNUTtpQ0FDUDtzREFDcUI7d0JBQzFCOzBCQUNzQjs0QkFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5QixNQUFNRCxpQ0FBcUVFLElBQUFBLHNCQUFhLEVBQzdGO0FBR0ssU0FBU0QsV0FBVyxFQUN6QkUsVUFBVSxFQUNWQyxRQUFRQyxpQkFBaUIsRUFDc0I7SUFDL0MsTUFBTSxDQUFDQyxPQUFPLEdBQUdDLElBQUFBLGlEQUF5QjtJQUUxQyxNQUFNQyxZQUFZQyxJQUFBQSxhQUFNLEVBQXdCO0lBQ2hELE1BQU0sQ0FBQ0MsU0FBU0MsV0FBVyxHQUFHQyxJQUFBQSxlQUFRLEVBQUM7SUFDdkMsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdGLElBQUFBLGVBQVEsRUFBQztJQUUzQyxNQUFNLEVBQUVHLElBQUksRUFBRSxHQUFHQyxJQUFBQSw0Q0FBc0I7SUFFdkMsTUFBTUMsU0FBU0MsSUFBQUEs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
315
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9MaW5rL3BsdWdpbnMvZmxvYXRpbmdMaW5rRWRpdG9yL0xpbmtFZGl0b3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTGV4aWNhbENvbW1hbmQgfSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGZpbmRNYXRjaGluZ1BhcmVudCwgbWVyZ2VSZWdpc3RlciB9IGZyb20gJ0BsZXhpY2FsL3V0aWxzJ1xuaW1wb3J0IHtcbiAgJGdldFNlbGVjdGlvbixcbiAgJGlzUmFuZ2VTZWxlY3Rpb24sXG4gIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gIEtFWV9FU0NBUEVfQ09NTUFORCxcbiAgU0VMRUNUSU9OX0NIQU5HRV9DT01NQU5ELFxuICBjcmVhdGVDb21tYW5kLFxufSBmcm9tICdsZXhpY2FsJ1xuaW1wb3J0IHsgZm9ybWF0RHJhd2VyU2x1ZyB9IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy9lbGVtZW50cydcbmltcG9ydCB7IHJlZHVjZUZpZWxkc1RvVmFsdWVzIH0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgYnVpbGRTdGF0ZUZyb21TY2hlbWEsXG4gIHVzZUF1dGgsXG4gIHVzZUNvbmZpZyxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VFZGl0RGVwdGgsXG4gIHVzZUxvY2FsZSxcbn0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL3V0aWxpdGllcydcbmltcG9ydCB7IHNhbml0aXplRmllbGRzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJ3BheWxvYWQvdXRpbGl0aWVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBMaW5rRmVhdHVyZVByb3BzIH0gZnJvbSAnLi4vLi4vLi4nXG5pbXBvcnQgdHlwZSB7IExpbmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vbm9kZXMvTGlua05vZGUnXG5pbXBvcnQgdHlwZSB7IExpbmtQYXlsb2FkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcbmltcG9ydCB7IGdldFNlbGVjdGVkTm9kZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xleGljYWwvdXRpbHMvZ2V0U2VsZWN0ZWROb2RlJ1xuaW1wb3J0IHsgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbGV4aWNhbC91dGlscy9zZXRGbG9hdGluZ0VsZW1Qb3NpdGlvbkZvckxpbmtFZGl0b3InXG5pbXBvcnQgeyBMaW5rRHJhd2VyIH0gZnJvbSAnLi4vLi4vLi4vZHJhd2VyJ1xuaW1wb3J0IHsgJGlzTGlua05vZGUsIFRPR0dMRV9MSU5LX0NPTU1BTkQgfSBmcm9tICcuLi8uLi8uLi9ub2Rlcy9MaW5rTm9kZSdcbmltcG9ydCB7IHRyYW5zZm9ybUV4dHJhRmllbGRzIH0gZnJvbSAnLi4vdXRpbGl0aWVzJ1xuXG5leHBvcnQgY29uc3QgVE9HR0xFX0xJTktfV0lUSF9NT0RBTF9DT01NQU5EOiBMZXhpY2FsQ29tbWFuZDxMaW5rUGF5bG9hZCB8IG51bGw+ID0gY3JlYXRlQ29tbWFuZChcbiAgJ1RPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCcsXG4pXG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rRWRpdG9yKHtcbiAgYW5jaG9yRWxlbSxcbiAgZmllbGRzOiBjdXN0b21GaWVsZFNjaGVtYSxcbn06IHsgYW5jaG9yRWxlbTogSFRNTEVsZW1lbnQgfSAmIExpbmtGZWF0dXJlUHJvcHMpOiBKU1guRWxlbWVudCB7XG4gIGNvbnN0IFtlZGl0b3JdID0gdXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCgpXG5cbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2xpbmtVcmwsIHNldExpbmtVcmxdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtsaW5rTGFiZWwsIHNldExpbmtMYWJlbF0gPSB1c2VTdGF0ZSgnJylcblxuICBjb25zdCB7IHV1aWQgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUNvbmZpZygpXG5cbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgeyBjb2RlOiBsb2NhbGUgfSA9IHVzZUxvY2FsZSgpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydmaWVsZHMnLCAndXBsb2FkJywgJ2dlbmVyYWwnXSlcblxuICBjb25zdCB7IGdldERvY1ByZWZlcmVuY2VzIH0gPSB1c2VEb2N1bWVudEluZm8oKVxuXG4gIGNvbnN0IFtpbml0aWFsU3RhdGUsIHNldEluaXRpYWxTdGF0ZV0gPSB1c2VTdGF0ZTxGaWVsZHM+KHt9KVxuXG4gIGNvbnN0IFtmaWVsZFNjaGVtYV0gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgY29uc3QgZmllbGRzVW5zYW5pdGl6ZWQgPSB0cmFuc2Zvcm1FeHRyYUZpZWxkcyhjdXN0b21GaWVsZFNjaGVtYSwgY29uZmlnLCBpMThuKVxuICAgIC8vIFNhbml0aXplIGN1c3RvbSBmaWVsZHMgaGVyZVxuICAgIGNvbnN0IHZhbGlkUmVsYXRpb25zaGlwcyA9IGNvbmZpZy5jb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgICBjb25zdCBmaWVsZHMgPSBzYW5pdGl6ZUZpZWxkcyh7XG4gICAgICBjb25maWc6IGNvbmZpZyxcbiAgICAgIGZpZWxkczogZmllbGRzVW5zYW5pdGl6ZWQsXG4gICAgICB2YWxpZFJlbGF0aW9uc2hpcHMsXG4gICAgfSlcblxuICAgIHJldHVybiBmaWVsZHNcbiAgfSlcblxuICBjb25zdCB7IGNsb3NlTW9kYWwsIHRvZ2dsZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IGVkaXREZXB0aCA9IHVzZUVkaXREZXB0aCgpXG4gIGNvbnN0IFtpc0xpbmssIHNldElzTGlua10gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBkcmF3ZXJTbHVnID0gZm9ybWF0RHJhd2VyU2x1Zyh7XG4gICAgZGVwdGg6IGVkaXREZXB0aCxcbiAgICBzbHVnOiBgbGV4aWNhbC1yaWNoLXRleHQtbGluay1gICsgdXVpZCxcbiAgfSlcblxuICBjb25zdCB1cGRhdGVMaW5rRWRpdG9yID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9ICRnZXRTZWxlY3Rpb24oKVxuICAgIGxldCBzZWxlY3RlZE5vZGVEb21SZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkID0gbnVsbFxuXG4gICAgLy8gSGFuZGxlIHRoZSBkYXRhIGRpc3BsYXllZCBpbiB0aGUgZmxvYXRpbmcgbGluayBlZGl0b3IgJiBkcmF3ZXIgd2hlbiB5b3UgY2xpY2sgb24gYSBsaW5rIG5vZGVcbiAgICBpZiAoJGlzUmFuZ2VTZWxlY3Rpb24oc2VsZWN0aW9uKSkge1xuICAgICAgY29uc3Qgbm9kZSA9IGdldFNlbGVjdGVkTm9kZShzZWxlY3Rpb24pXG4gICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gZWRpdG9yLmdldEVsZW1lbnRCeUtleShub2RlLmdldEtleSgpKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIGNvbnN0IGxpbmtQYXJlbnQ6IExpbmtOb2RlID0gJGZpbmRNYXRjaGluZ1BhcmVudChub2RlLCAkaXNMaW5rTm9kZSkgYXMgTGlua05vZGVcbiAgICAgIGlmIChsaW5rUGFyZW50ID09IG51bGwpIHtcbiAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICBzZXRMaW5rVXJsKCcnKVxuICAgICAgICBzZXRMaW5rTGFiZWwoJycpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBJbml0aWFsIHN0YXRlOlxuICAgICAgY29uc3QgZGF0YTogTGlua1BheWxvYWQgPSB7XG4gICAgICAgIGZpZWxkczoge1xuICAgICAgICAgIGRvYzogdW5kZWZpbmVkLFxuICAgICAgICAgIGxpbmtUeXBlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VGFiOiB1bmRlZmluZWQsXG4gICAgICAgICAgbm9mb2xsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzcG9uc29yZWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgIC4uLmxpbmtQYXJlbnQuZ2V0RmllbGRzKCksXG4gICAgICAgIH0sXG4gICAgICAgIHRleHQ6IGxpbmtQYXJlbnQuZ2V0VGV4dENvbnRlbnQoKSxcbiAgICAgIH1cblxuICAgICAgaWYgKGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LmxpbmtUeXBlID09PSAnY3VzdG9tJykge1xuICAgICAgICBzZXRMaW5rVXJsKGxpbmtQYXJlbnQuZ2V0RmllbGRzKCk/LnVybCA/PyAnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKCcnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaW50ZXJuYWwgbGlua1xuICAgICAgICBzZXRMaW5rVXJsKFxuICAgICAgICAgIGAvYWRtaW4vY29sbGVjdGlvbnMvJHtsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG99LyR7bGlua1BhcmVudC5nZXRGaWVsZHMoKVxuICAgICAgICAgICAgPy5kb2M/LnZhbHVlfWAsXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCByZWxhdGVkRmllbGQgPSBjb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAoY29sbCkgPT4gY29sbC5zbHVnID09PSBsaW5rUGFyZW50LmdldEZpZWxkcygpPy5kb2M/LnJlbGF0aW9uVG8sXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0KCdmaWVsZHM6bGlua2VkVG8nLCB7XG4gICAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHJlbGF0ZWRGaWVsZC5sYWJlbHMuc2luZ3VsYXIsIGkxOG4pLFxuICAgICAgICB9KS5yZXBsYWNlKC88W14+XSo+Py9nLCAnJylcbiAgICAgICAgc2V0TGlua0xhYmVsKGxhYmVsKVxuICAgICAgfVxuXG4gICAgICAvLyBTZXQgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZHJhd2VyLiBUaGlzIHdpbGwgYmFzaWNhbGx5IHByZS1maWxsIHRoZSBkcmF3ZXIgZmllbGRzIHdpdGggdGhlXG4gICAgICAvLyB2YWx1ZXMgc2F2ZWQgaW4gdGhlIGxpbmsgbm9kZSB5b3UgY2xpY2tlZCBvbi5cbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiAnY3JlYXRlJyxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXI6IHVzZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgfSlcbiAgICAgIHNldEluaXRpYWxTdGF0ZShzdGF0ZSlcbiAgICAgIHNldElzTGluayh0cnVlKVxuICAgIH1cblxuICAgIGNvbnN0IGVkaXRvckVsZW0gPSBlZGl0b3JSZWYuY3VycmVudFxuICAgIGNvbnN0IG5hdGl2ZVNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKVxuICAgIGNvbnN0IHsgYWN0aXZlRWxlbWVudCB9ID0gZG9jdW1lbnRcblxuICAgIGlmIChlZGl0b3JFbGVtID09PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCByb290RWxlbWVudCA9IGVkaXRvci5nZXRSb290RWxlbWVudCgpXG5cbiAgICBpZiAoXG4gICAgICBzZWxlY3Rpb24gIT09IG51bGwgJiZcbiAgICAgIG5hdGl2ZVNlbGVjdGlvbiAhPT0gbnVsbCAmJlxuICAgICAgcm9vdEVsZW1lbnQgIT09IG51bGwgJiZcbiAgICAgIHJvb3RFbGVtZW50LmNvbnRhaW5zKG5hdGl2ZVNlbGVjdGlvbi5hbmNob3JOb2RlKSAmJlxuICAgICAgZWRpdG9yLmlzRWRpdGFibGUoKVxuICAgICkge1xuICAgICAgaWYgKCFzZWxlY3RlZE5vZGVEb21SZWN0KSB7XG4gICAgICAgIC8vIEdldCB0aGUgRE9NIHJlY3Qgb2YgdGhlIHNlbGVjdGVkIG5vZGUgdXNpbmcgdGhlIG5hdGl2ZSBzZWxlY3Rpb24uIFRoaXMgc29tZXRpbWVzIHByb2R1Y2VzIHRoZSB3cm9uZ1xuICAgICAgICAvLyByZXN1bHQsIHdoaWNoIGlzIHdoeSB3ZSB1c2UgbGV4aWNhbCdzIHNlbGVjdGlvbiBwcmVmZXJhYmx5LlxuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0ID0gbmF0aXZlU2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgIH1cblxuICAgICAgaWYgKHNlbGVjdGVkTm9kZURvbVJlY3QgIT0gbnVsbCkge1xuICAgICAgICBzZWxlY3RlZE5vZGVEb21SZWN0LnkgKz0gNDBcbiAgICAgICAgc2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yKHNlbGVjdGVkTm9kZURvbVJlY3QsIGVkaXRvckVsZW0sIGFuY2hvckVsZW0pXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChhY3RpdmVFbGVtZW50ID09IG51bGwgfHwgYWN0aXZlRWxlbWVudC5jbGFzc05hbWUgIT09ICdsaW5rLWlucHV0Jykge1xuICAgICAgaWYgKHJvb3RFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHNldEZsb2F0aW5nRWxlbVBvc2l0aW9uRm9yTGlua0VkaXRvcihudWxsLCBlZGl0b3JFbGVtLCBhbmNob3JFbGVtKVxuICAgICAgfVxuICAgICAgc2V0TGlua1VybCgnJylcbiAgICAgIHNldExpbmtMYWJlbCgnJylcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9LCBbYW5jaG9yRWxlbSwgZWRpdG9yLCBmaWVsZFNjaGVtYV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gbWVyZ2VSZWdpc3RlcihcbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCxcbiAgICAgICAgKHBheWxvYWQ6IExpbmtQYXlsb2FkKSA9PiB7XG4gICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBwYXlsb2FkKVxuXG4gICAgICAgICAgLy8gTm93LCBvcGVuIHRoZSBtb2RhbFxuICAgICAgICAgIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0b2dnbGVNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgIClcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvciwgdG9nZ2xlTW9kYWwsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0xpbmsgJiYgZWRpdG9yUmVmKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzAnXG4gICAgICBlZGl0b3JSZWYuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlKC0xMDAwMHB4LCAtMTAwMDBweCknXG4gICAgfVxuICB9LCBbaXNMaW5rXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNjcm9sbGVyRWxlbSA9IGFuY2hvckVsZW0ucGFyZW50RWxlbWVudFxuXG4gICAgY29uc3QgdXBkYXRlID0gKCk6IHZvaWQgPT4ge1xuICAgICAgZWRpdG9yLmdldEVkaXRvclN0YXRlKCkucmVhZCgoKSA9PiB7XG4gICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICBpZiAoc2Nyb2xsZXJFbGVtICE9IG51bGwpIHtcbiAgICAgIHNjcm9sbGVyRWxlbS5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGUpXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB1cGRhdGUpXG5cbiAgICAgIGlmIChzY3JvbGxlckVsZW0gIT0gbnVsbCkge1xuICAgICAgICBzY3JvbGxlckVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdXBkYXRlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2FuY2hvckVsZW0ucGFyZW50RWxlbWVudCwgZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBtZXJnZVJlZ2lzdGVyKFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIoKHsgZWRpdG9yU3RhdGUgfSkgPT4ge1xuICAgICAgICBlZGl0b3JTdGF0ZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICB2b2lkIHVwZGF0ZUxpbmtFZGl0b3IoKVxuICAgICAgICB9KVxuICAgICAgfSksXG5cbiAgICAgIGVkaXRvci5yZWdpc3RlckNvbW1hbmQoXG4gICAgICAgIFNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ09NTUFORF9QUklPUklUWV9MT1csXG4gICAgICApLFxuICAgICAgZWRpdG9yLnJlZ2lzdGVyQ29tbWFuZChcbiAgICAgICAgS0VZX0VTQ0FQRV9DT01NQU5ELFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTGluaykge1xuICAgICAgICAgICAgc2V0SXNMaW5rKGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIENPTU1BTkRfUFJJT1JJVFlfSElHSCxcbiAgICAgICksXG4gICAgKVxuICB9LCBbZWRpdG9yLCB1cGRhdGVMaW5rRWRpdG9yLCBzZXRJc0xpbmssIGlzTGlua10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBlZGl0b3IuZ2V0RWRpdG9yU3RhdGUoKS5yZWFkKCgpID0+IHtcbiAgICAgIHZvaWQgdXBkYXRlTGlua0VkaXRvcigpXG4gICAgfSlcbiAgfSwgW2VkaXRvciwgdXBkYXRlTGlua0VkaXRvcl0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstZWRpdG9yXCIgcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxpbmstaW5wdXRcIj5cbiAgICAgICAgICA8YSBocmVmPXtsaW5rVXJsfSByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XG4gICAgICAgICAgICB7bGlua0xhYmVsICE9IG51bGwgJiYgbGlua0xhYmVsLmxlbmd0aCA+IDAgPyBsaW5rTGFiZWwgOiBsaW5rVXJsfVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiRWRpdCBsaW5rXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxpbmstZWRpdFwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmUgbGlua1wiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsaW5rLXRyYXNoXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoQ29tbWFuZChUT0dHTEVfTElOS19DT01NQU5ELCBudWxsKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxMaW5rRHJhd2VyXG4gICAgICAgIGRyYXdlclNsdWc9e2RyYXdlclNsdWd9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZFNjaGVtYX1cbiAgICAgICAgaGFuZGxlTW9kYWxTdWJtaXQ9eyhmaWVsZHM6IEZpZWxkcykgPT4ge1xuICAgICAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcblxuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhmaWVsZHMsIHRydWUpXG5cbiAgICAgICAgICBjb25zdCBuZXdMaW5rUGF5bG9hZDogTGlua1BheWxvYWQgPSBkYXRhIGFzIExpbmtQYXlsb2FkXG5cbiAgICAgICAgICBlZGl0b3IuZGlzcGF0Y2hDb21tYW5kKFRPR0dMRV9MSU5LX0NPTU1BTkQsIG5ld0xpbmtQYXlsb2FkKVxuICAgICAgICB9fVxuICAgICAgICBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX1cbiAgICAgIC8+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRPR0dMRV9MSU5LX1dJVEhfTU9EQUxfQ09NTUFORCIsIkxpbmtFZGl0b3IiLCJjcmVhdGVDb21tYW5kIiwiYW5jaG9yRWxlbSIsImZpZWxkcyIsImN1c3RvbUZpZWxkU2NoZW1hIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvclJlZiIsInVzZVJlZiIsImxpbmtVcmwiLCJzZXRMaW5rVXJsIiwidXNlU3RhdGUiLCJsaW5rTGFiZWwiLCJzZXRMaW5rTGFiZWwiLCJ1dWlkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImNvbmZpZyIsInVzZUNvbmZpZyIsInVzZXIiLCJ1c2VBdXRoIiwiY29kZSIsImxvY2FsZSIsInVzZUxvY2FsZSIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsImZpZWxkU2NoZW1hIiwiZmllbGRzVW5zYW5pdGl6ZWQiLCJ0cmFuc2Zvcm1FeHRyYUZpZWxkcyIsInZhbGlkUmVsYXRpb25zaGlwcyIsImNvbGxlY3Rpb25zIiwibWFwIiwiYyIsInNsdWciLCJzYW5pdGl6ZUZpZWxkcyIsImNsb3NlTW9kYWwiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwiZWRpdERlcHRoIiwidXNlRWRpdERlcHRoIiwiaXNMaW5rIiwic2V0SXNMaW5rIiwiZHJhd2VyU2x1ZyIsImZvcm1hdERyYXdlclNsdWciLCJkZXB0aCIsInVwZGF0ZUxpbmtFZGl0b3IiLCJ1c2VDYWxsYmFjayIsInNlbGVjdGlvbiIsIiRnZXRTZWxlY3Rpb24iLCJzZWxlY3RlZE5vZGVEb21SZWN0IiwiJGlzUmFuZ2VTZWxlY3Rpb24iLCJub2RlIiwiZ2V0U2VsZWN0ZWROb2RlIiwiZ2V0RWxlbWVudEJ5S2V5IiwiZ2V0S2V5IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGlua1BhcmVudCIsIiRmaW5kTWF0Y2hpbmdQYXJlbnQiLCIkaXNMaW5rTm9kZSIsImRhdGEiLCJkb2MiLCJ1bmRlZmluZWQiLCJsaW5rVHlwZSIsIm5ld1RhYiIsIm5vZm9sbG93Iiwic3BvbnNvcmVkIiwidXJsIiwiZ2V0RmllbGRzIiwidGV4dCIsImdldFRleHRDb250ZW50IiwicmVsYXRpb25UbyIsInZhbHVlIiwicmVsYXRlZEZpZWxkIiwiZmluZCIsImNvbGwiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJyZXBsYWNlIiwicHJlZmVyZW5jZXMiLCJzdGF0ZSIsImJ1aWxkU3RhdGVGcm9tU2NoZW1hIiwib3BlcmF0aW9uIiwiZWRpdG9yRWxlbSIsImN1cnJlbnQiLCJuYXRpdmVTZWxlY3Rpb24iLCJ3aW5kb3ciLCJnZXRTZWxlY3Rpb24iLCJhY3RpdmVFbGVtZW50IiwiZG9jdW1lbnQiLCJyb290RWxlbWVudCIsImdldFJvb3RFbGVtZW50IiwiY29udGFpbnMiLCJhbmNob3JOb2RlIiwiaXNFZGl0YWJsZSIsImdldFJhbmdlQXQiLCJ5Iiwic2V0RmxvYXRpbmdFbGVtUG9zaXRpb25Gb3JMaW5rRWRpdG9yIiwiY2xhc3NOYW1lIiwidXNlRWZmZWN0IiwibWVyZ2VSZWdpc3RlciIsInJlZ2lzdGVyQ29tbWFuZCIsInBheWxvYWQiLCJkaXNwYXRjaENvbW1hbmQiLCJUT0dHTEVfTElOS19DT01NQU5EIiwidGhlbiIsImNhdGNoIiwiZXJyb3IiLCJDT01NQU5EX1BSSU9SSVRZX0xPVyIsInN0eWxlIiwib3BhY2l0eSIsInRyYW5zZm9ybSIsInNjcm9sbGVyRWxlbSIsInBhcmVudEVsZW1lbnQiLCJ1cGRhdGUiLCJnZXRFZGl0b3JTdGF0ZSIsInJlYWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlZ2lzdGVyVXBkYXRlTGlzdGVuZXIiLCJlZGl0b3JTdGF0ZSIsIlNFTEVDVElPTl9DSEFOR0VfQ09NTUFORCIsIktFWV9FU0NBUEVfQ09NTUFORCIsIkNPTU1BTkRfUFJJT1JJVFlfSElHSCIsIlJlYWN0IiwiRnJhZ21lbnQiLCJkaXYiLCJyZWYiLCJhIiwiaHJlZiIsInJlbCIsInRhcmdldCIsImxlbmd0aCIsImJ1dHRvbiIsImFyaWEtbGFiZWwiLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwidGFiSW5kZXgiLCJ0eXBlIiwiTGlua0RyYXdlciIsImhhbmRsZU1vZGFsU3VibWl0IiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJuZXdMaW5rUGF5bG9hZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUF5Q2FBLDhCQUE4QjtlQUE5QkE7O0lBSUdDLFVBQVU7ZUFBVkE7Ozt1QkExQ1M7d0NBQ2lCO3VCQUNTO3lCQVM1QzswQkFDMEI7dUJBQ0k7MkJBUTlCO3dCQUN3Qjs0QkFDQTsrREFDaUM7OEJBQ2pDO3NDQU1RO2lDQUNQO3NEQUNxQjt3QkFD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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Upload/component/ExtraFieldsDrawer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAe9D,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAMtC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAC5C,YAAY,GAAG;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,yBAAyB,CAAA;CAC7C,CAwEF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/field/features/Upload/component/ExtraFieldsDrawer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAgB9D,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAMtC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAC5C,YAAY,GAAG;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,yBAAyB,CAAA;CAC7C,CA2FF,CAAA"}
@@ -68,7 +68,15 @@ const ExtraFieldsUploadDrawer = (props)=>{
68
68
  const { closeModal } = (0, _modal.useModal)();
69
69
  const { getDocPreferences } = (0, _utilities.useDocumentInfo)();
70
70
  const [initialState, setInitialState] = (0, _react.useState)({});
71
- const fieldSchema = (editorConfig?.resolvedFeatureMap.get('upload')?.props)?.collections?.[relatedCollection.slug]?.fields;
71
+ const fieldSchemaUnsanitized = (editorConfig?.resolvedFeatureMap.get('upload')?.props)?.collections?.[relatedCollection.slug]?.fields;
72
+ const config = (0, _utilities.useConfig)();
73
+ // Sanitize custom fields here
74
+ const validRelationships = config.collections.map((c)=>c.slug) || [];
75
+ const fieldSchema = (0, _config.sanitizeFields)({
76
+ config: config,
77
+ fields: fieldSchemaUnsanitized,
78
+ validRelationships
79
+ });
72
80
  const handleUpdateEditData = (0, _react.useCallback)((_, data)=>{
73
81
  // Update lexical node (with key nodeKey) with new data
74
82
  editor.update(()=>{
@@ -89,9 +97,17 @@ const ExtraFieldsUploadDrawer = (props)=>{
89
97
  nodeKey
90
98
  ]);
91
99
  (0, _react.useEffect)(()=>{
100
+ // Sanitize custom fields here
101
+ const validRelationships = config.collections.map((c)=>c.slug) || [];
102
+ const fieldSchema = (0, _config.sanitizeFields)({
103
+ config: config,
104
+ fields: fieldSchemaUnsanitized,
105
+ validRelationships
106
+ });
92
107
  const awaitInitialState = async ()=>{
93
108
  const preferences = await getDocPreferences();
94
109
  const state = await (0, _utilities.buildStateFromSchema)({
110
+ config,
95
111
  data: (0, _utilities1.deepCopyObject)(fields || {}),
96
112
  fieldSchema,
97
113
  locale,
@@ -109,7 +125,8 @@ const ExtraFieldsUploadDrawer = (props)=>{
109
125
  t,
110
126
  getDocPreferences,
111
127
  fields,
112
- fieldSchema
128
+ fieldSchemaUnsanitized,
129
+ config
113
130
  ]);
114
131
  return /*#__PURE__*/ _react.default.createElement(_elements.Drawer, {
115
132
  slug: drawerSlug,
@@ -126,4 +143,4 @@ const ExtraFieldsUploadDrawer = (props)=>{
126
143
  }), /*#__PURE__*/ _react.default.createElement(_forms.FormSubmit, null, t('fields:saveChanges'))));
127
144
  };
128
145
 
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9VcGxvYWQvY29tcG9uZW50L0V4dHJhRmllbGRzRHJhd2VyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGdldE5vZGVCeUtleSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyBEcmF3ZXIgfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvZWxlbWVudHMnXG5pbXBvcnQgeyBGb3JtLCBGb3JtU3VibWl0LCBSZW5kZXJGaWVsZHMgfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvZm9ybXMnXG5pbXBvcnQge1xuICBidWlsZFN0YXRlRnJvbVNjaGVtYSxcbiAgdXNlQXV0aCxcbiAgdXNlRG9jdW1lbnRJbmZvLFxuICB1c2VMb2NhbGUsXG59IGZyb20gJ3BheWxvYWQvY29tcG9uZW50cy91dGlsaXRpZXMnXG5pbXBvcnQgeyBmaWVsZFR5cGVzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgeyBkZWVwQ29weU9iamVjdCwgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgdHlwZSB7IEVsZW1lbnRQcm9wcyB9IGZyb20gJy4uJ1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRGZWF0dXJlUHJvcHMgfSBmcm9tICcuLi8uLidcbmltcG9ydCB0eXBlIHsgVXBsb2FkTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL1VwbG9hZE5vZGUnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcblxuLyoqXG4gKiBUaGlzIGhhbmRsZXMgdGhlIGV4dHJhIGZpZWxkcywgZS5nLiBjYXB0aW9ucyBvciBhbHQgdGV4dCwgd2hpY2ggYXJlXG4gKiBwb3RlbnRpYWxseSBhZGRlZCB0byB0aGUgdXBsb2FkIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBFeHRyYUZpZWxkc1VwbG9hZERyYXdlcjogUmVhY3QuRkM8XG4gIEVsZW1lbnRQcm9wcyAmIHtcbiAgICBkcmF3ZXJTbHVnOiBzdHJpbmdcbiAgICByZWxhdGVkQ29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICB9XG4+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBkcmF3ZXJTbHVnLFxuICAgIGZpZWxkczogeyByZWxhdGlvblRvLCB2YWx1ZSB9LFxuICAgIGZpZWxkcyxcbiAgICBub2RlS2V5LFxuICAgIHJlbGF0ZWRDb2xsZWN0aW9uLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZywgZmllbGQgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgeyBjbG9zZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IFtpbml0aWFsU3RhdGUsIHNldEluaXRpYWxTdGF0ZV0gPSB1c2VTdGF0ZSh7fSlcbiAgY29uc3QgZmllbGRTY2hlbWEgPSAoZWRpdG9yQ29uZmlnPy5yZXNvbHZlZEZlYXR1cmVNYXAuZ2V0KCd1cGxvYWQnKT8ucHJvcHMgYXMgVXBsb2FkRmVhdHVyZVByb3BzKVxuICAgID8uY29sbGVjdGlvbnM/LltyZWxhdGVkQ29sbGVjdGlvbi5zbHVnXT8uZmllbGRzXG5cbiAgY29uc3QgaGFuZGxlVXBkYXRlRWRpdERhdGEgPSB1c2VDYWxsYmFjayhcbiAgICAoXywgZGF0YSkgPT4ge1xuICAgICAgLy8gVXBkYXRlIGxleGljYWwgbm9kZSAod2l0aCBrZXkgbm9kZUtleSkgd2l0aCBuZXcgZGF0YVxuICAgICAgZWRpdG9yLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwbG9hZE5vZGU6IFVwbG9hZE5vZGUgfCBudWxsID0gJGdldE5vZGVCeUtleShub2RlS2V5KVxuICAgICAgICBpZiAodXBsb2FkTm9kZSkge1xuICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkcyA9IHtcbiAgICAgICAgICAgIC4uLnVwbG9hZE5vZGUuZ2V0RmllbGRzKCksXG4gICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgIH1cbiAgICAgICAgICB1cGxvYWROb2RlLnNldEZpZWxkcyhuZXdGaWVsZHMpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGNsb3NlTW9kYWwoZHJhd2VyU2x1ZylcbiAgICB9LFxuICAgIFtjbG9zZU1vZGFsLCBlZGl0b3IsIGRyYXdlclNsdWcsIG5vZGVLZXldLFxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhd2FpdEluaXRpYWxTdGF0ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgIGRhdGE6IGRlZXBDb3B5T2JqZWN0KGZpZWxkcyB8fCB7fSksXG4gICAgICAgIGZpZWxkU2NoZW1hLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIHNldEluaXRpYWxTdGF0ZShzdGF0ZSlcbiAgICB9XG5cbiAgICB2b2lkIGF3YWl0SW5pdGlhbFN0YXRlKClcbiAgfSwgW3VzZXIsIGxvY2FsZSwgdCwgZ2V0RG9jUHJlZmVyZW5jZXMsIGZpZWxkcywgZmllbGRTY2hlbWFdKVxuXG4gIHJldHVybiAoXG4gICAgPERyYXdlclxuICAgICAgc2x1Zz17ZHJhd2VyU2x1Z31cbiAgICAgIHRpdGxlPXt0KCdnZW5lcmFsOmVkaXRMYWJlbCcsIHtcbiAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHJlbGF0ZWRDb2xsZWN0aW9uLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8Rm9ybSBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX0gb25TdWJtaXQ9e2hhbmRsZVVwZGF0ZUVkaXREYXRhfT5cbiAgICAgICAgPFJlbmRlckZpZWxkcyBmaWVsZFNjaGVtYT17ZmllbGRTY2hlbWF9IGZpZWxkVHlwZXM9e2ZpZWxkVHlwZXN9IHJlYWRPbmx5PXtmYWxzZX0gLz5cbiAgICAgICAgPEZvcm1TdWJtaXQ+e3QoJ2ZpZWxkczpzYXZlQ2hhbmdlcycpfTwvRm9ybVN1Ym1pdD5cbiAgICAgIDwvRm9ybT5cbiAgICA8L0RyYXdlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkV4dHJhRmllbGRzVXBsb2FkRHJhd2VyIiwicHJvcHMiLCJkcmF3ZXJTbHVnIiwiZmllbGRzIiwicmVsYXRpb25UbyIsInZhbHVlIiwibm9kZUtleSIsInJlbGF0ZWRDb2xsZWN0aW9uIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvckNvbmZpZyIsImZpZWxkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwidXNlciIsInVzZUF1dGgiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInVzZVN0YXRlIiwiZmllbGRTY2hlbWEiLCJyZXNvbHZlZEZlYXR1cmVNYXAiLCJnZXQiLCJjb2xsZWN0aW9ucyIsInNsdWciLCJoYW5kbGVVcGRhdGVFZGl0RGF0YSIsInVzZUNhbGxiYWNrIiwiXyIsImRhdGEiLCJ1cGRhdGUiLCJ1cGxvYWROb2RlIiwiJGdldE5vZGVCeUtleSIsIm5ld0ZpZWxkcyIsImdldEZpZWxkcyIsInNldEZpZWxkcyIsInVzZUVmZmVjdCIsImF3YWl0SW5pdGlhbFN0YXRlIiwicHJlZmVyZW5jZXMiLCJzdGF0ZSIsImJ1aWxkU3RhdGVGcm9tU2NoZW1hIiwiZGVlcENvcHlPYmplY3QiLCJvcGVyYXRpb24iLCJEcmF3ZXIiLCJ0aXRsZSIsImxhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsIkZvcm0iLCJvblN1Ym1pdCIsIlJlbmRlckZpZWxkcyIsImZpZWxkVHlwZXMiLCJyZWFkT25seSIsIkZvcm1TdWJtaXQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBNEJhQTs7O2VBQUFBOzs7dUJBMUJZO3dDQUNpQjt5QkFDWjswQkFDUDt1QkFDd0I7MkJBTXhDO3dCQUNvQjs0QkFDb0I7K0RBQ1M7OEJBQ3pCO3NDQU1ROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWhDLE1BQU1BLDBCQUtULENBQUNDO0lBQ0gsTUFBTSxFQUNKQyxVQUFVLEVBQ1ZDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUUsRUFDN0JGLE1BQU0sRUFDTkcsT0FBTyxFQUNQQyxpQkFBaUIsRUFDbEIsR0FBR047SUFFSixNQUFNLENBQUNPLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBQzFDLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsSUFBQUEsNENBQXNCO0lBRXRELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWM7SUFDbEMsTUFBTSxFQUFFQyxNQUFNQyxNQUFNLEVBQUUsR0FBR0MsSUFBQUEsb0JBQVM7SUFDbEMsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsSUFBQUEsa0JBQU87SUFDeEIsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUMvQixNQUFNLEVBQUVDLGlCQUFpQixFQUFFLEdBQUdDLElBQUFBLDBCQUFlO0lBQzdDLE1BQU0sQ0FBQ0MsY0FBY0MsZ0JBQWdCLEdBQUdDLElBQUFBLGVBQVEsRUFBQyxDQUFDO0lBQ2xELE1BQU1DLGNBQWMsQ0FBQ2xCLGNBQWNtQixtQkFBbUJDLElBQUksV0FBVzdCLEtBQTJCLEdBQzVGOEIsYUFBYSxDQUFDeEIsa0JBQWtCeUIsSUFBSSxDQUFDLEVBQUU3QjtJQUUzQyxNQUFNOEIsdUJBQXVCQyxJQUFBQSxrQkFBVyxFQUN0QyxDQUFDQyxHQUFHQztRQUNGLHVEQUF1RDtRQUN2RDVCLE9BQU82QixNQUFNLENBQUM7WUFDWixNQUFNQyxhQUFnQ0MsSUFBQUEsc0JBQWEsRUFBQ2pDO1lBQ3BELElBQUlnQyxZQUFZO2dCQUNkLE1BQU1FLFlBQVk7b0JBQ2hCLEdBQUdGLFdBQVdHLFNBQVMsRUFBRTtvQkFDekIsR0FBR0wsSUFBSTtnQkFDVDtnQkFDQUUsV0FBV0ksU0FBUyxDQUFDRjtZQUN2QjtRQUNGO1FBRUFuQixXQUFXbkI7SUFDYixHQUNBO1FBQUNtQjtRQUFZYjtRQUFRTjtRQUFZSTtLQUFRO0lBRzNDcUMsSUFBQUEsZ0JBQVMsRUFBQztRQUNSLE1BQU1DLG9CQUFvQjtZQUN4QixNQUFNQyxjQUFjLE1BQU10QjtZQUMxQixNQUFNdUIsUUFBUSxNQUFNQyxJQUFBQSwrQkFBb0IsRUFBQztnQkFDdkNYLE1BQU1ZLElBQUFBLDBCQUFjLEVBQUM3QyxVQUFVLENBQUM7Z0JBQ2hDeUI7Z0JBQ0FYO2dCQUNBZ0MsV0FBVztnQkFDWEo7Z0JBQ0EvQjtnQkFDQUs7WUFDRjtZQUNBTyxnQkFBZ0JvQjtRQUNsQjtRQUVBLEtBQUtGO0lBQ1AsR0FBRztRQUFDekI7UUFBTUY7UUFBUUg7UUFBR1M7UUFBbUJwQjtRQUFReUI7S0FBWTtJQUU1RCxxQkFDRSw2QkFBQ3NCLGdCQUFNO1FBQ0xsQixNQUFNOUI7UUFDTmlELE9BQU9yQyxFQUFFLHFCQUFxQjtZQUM1QnNDLE9BQU9DLElBQUFBLDBCQUFjLEVBQUM5QyxrQkFBa0IrQyxNQUFNLENBQUNDLFFBQVEsRUFBRTFDO1FBQzNEO3FCQUVBLDZCQUFDMkMsV0FBSTtRQUFDL0IsY0FBY0E7UUFBY2dDLFVBQVV4QjtxQkFDMUMsNkJBQUN5QixtQkFBWTtRQUFDOUIsYUFBYUE7UUFBYStCLFlBQVlBLGtCQUFVO1FBQUVDLFVBQVU7c0JBQzFFLDZCQUFDQyxpQkFBVSxRQUFFL0MsRUFBRTtBQUl2QiJ9
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9maWVsZC9mZWF0dXJlcy9VcGxvYWQvY29tcG9uZW50L0V4dHJhRmllbGRzRHJhd2VyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQgfSBmcm9tICdAbGV4aWNhbC9yZWFjdC9MZXhpY2FsQ29tcG9zZXJDb250ZXh0J1xuaW1wb3J0IHsgJGdldE5vZGVCeUtleSB9IGZyb20gJ2xleGljYWwnXG5pbXBvcnQgeyBEcmF3ZXIgfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvZWxlbWVudHMnXG5pbXBvcnQgeyBGb3JtLCBGb3JtU3VibWl0LCBSZW5kZXJGaWVsZHMgfSBmcm9tICdwYXlsb2FkL2NvbXBvbmVudHMvZm9ybXMnXG5pbXBvcnQge1xuICBidWlsZFN0YXRlRnJvbVNjaGVtYSxcbiAgdXNlQXV0aCxcbiAgdXNlQ29uZmlnLFxuICB1c2VEb2N1bWVudEluZm8sXG4gIHVzZUxvY2FsZSxcbn0gZnJvbSAncGF5bG9hZC9jb21wb25lbnRzL3V0aWxpdGllcydcbmltcG9ydCB7IGZpZWxkVHlwZXMsIHNhbml0aXplRmllbGRzIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgeyBkZWVwQ29weU9iamVjdCwgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICdwYXlsb2FkL3V0aWxpdGllcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuXG5pbXBvcnQgdHlwZSB7IEVsZW1lbnRQcm9wcyB9IGZyb20gJy4uJ1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRGZWF0dXJlUHJvcHMgfSBmcm9tICcuLi8uLidcbmltcG9ydCB0eXBlIHsgVXBsb2FkTm9kZSB9IGZyb20gJy4uLy4uL25vZGVzL1VwbG9hZE5vZGUnXG5cbmltcG9ydCB7IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9sZXhpY2FsL2NvbmZpZy9FZGl0b3JDb25maWdQcm92aWRlcidcblxuLyoqXG4gKiBUaGlzIGhhbmRsZXMgdGhlIGV4dHJhIGZpZWxkcywgZS5nLiBjYXB0aW9ucyBvciBhbHQgdGV4dCwgd2hpY2ggYXJlXG4gKiBwb3RlbnRpYWxseSBhZGRlZCB0byB0aGUgdXBsb2FkIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBFeHRyYUZpZWxkc1VwbG9hZERyYXdlcjogUmVhY3QuRkM8XG4gIEVsZW1lbnRQcm9wcyAmIHtcbiAgICBkcmF3ZXJTbHVnOiBzdHJpbmdcbiAgICByZWxhdGVkQ29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICB9XG4+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBkcmF3ZXJTbHVnLFxuICAgIGZpZWxkczogeyByZWxhdGlvblRvLCB2YWx1ZSB9LFxuICAgIGZpZWxkcyxcbiAgICBub2RlS2V5LFxuICAgIHJlbGF0ZWRDb2xsZWN0aW9uLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBbZWRpdG9yXSA9IHVzZUxleGljYWxDb21wb3NlckNvbnRleHQoKVxuICBjb25zdCB7IGVkaXRvckNvbmZpZywgZmllbGQgfSA9IHVzZUVkaXRvckNvbmZpZ0NvbnRleHQoKVxuXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgeyBjbG9zZU1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IHsgZ2V0RG9jUHJlZmVyZW5jZXMgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IFtpbml0aWFsU3RhdGUsIHNldEluaXRpYWxTdGF0ZV0gPSB1c2VTdGF0ZSh7fSlcbiAgY29uc3QgZmllbGRTY2hlbWFVbnNhbml0aXplZCA9IChcbiAgICBlZGl0b3JDb25maWc/LnJlc29sdmVkRmVhdHVyZU1hcC5nZXQoJ3VwbG9hZCcpPy5wcm9wcyBhcyBVcGxvYWRGZWF0dXJlUHJvcHNcbiAgKT8uY29sbGVjdGlvbnM/LltyZWxhdGVkQ29sbGVjdGlvbi5zbHVnXT8uZmllbGRzXG4gIGNvbnN0IGNvbmZpZyA9IHVzZUNvbmZpZygpXG5cbiAgLy8gU2FuaXRpemUgY3VzdG9tIGZpZWxkcyBoZXJlXG4gIGNvbnN0IHZhbGlkUmVsYXRpb25zaGlwcyA9IGNvbmZpZy5jb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgY29uc3QgZmllbGRTY2hlbWEgPSBzYW5pdGl6ZUZpZWxkcyh7XG4gICAgY29uZmlnOiBjb25maWcsXG4gICAgZmllbGRzOiBmaWVsZFNjaGVtYVVuc2FuaXRpemVkLFxuICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgfSlcblxuICBjb25zdCBoYW5kbGVVcGRhdGVFZGl0RGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgIChfLCBkYXRhKSA9PiB7XG4gICAgICAvLyBVcGRhdGUgbGV4aWNhbCBub2RlICh3aXRoIGtleSBub2RlS2V5KSB3aXRoIG5ldyBkYXRhXG4gICAgICBlZGl0b3IudXBkYXRlKCgpID0+IHtcbiAgICAgICAgY29uc3QgdXBsb2FkTm9kZTogVXBsb2FkTm9kZSB8IG51bGwgPSAkZ2V0Tm9kZUJ5S2V5KG5vZGVLZXkpXG4gICAgICAgIGlmICh1cGxvYWROb2RlKSB7XG4gICAgICAgICAgY29uc3QgbmV3RmllbGRzID0ge1xuICAgICAgICAgICAgLi4udXBsb2FkTm9kZS5nZXRGaWVsZHMoKSxcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgfVxuICAgICAgICAgIHVwbG9hZE5vZGUuc2V0RmllbGRzKG5ld0ZpZWxkcylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuICAgIH0sXG4gICAgW2Nsb3NlTW9kYWwsIGVkaXRvciwgZHJhd2VyU2x1Zywgbm9kZUtleV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFNhbml0aXplIGN1c3RvbSBmaWVsZHMgaGVyZVxuICAgIGNvbnN0IHZhbGlkUmVsYXRpb25zaGlwcyA9IGNvbmZpZy5jb2xsZWN0aW9ucy5tYXAoKGMpID0+IGMuc2x1ZykgfHwgW11cbiAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHNhbml0aXplRmllbGRzKHtcbiAgICAgIGNvbmZpZzogY29uZmlnLFxuICAgICAgZmllbGRzOiBmaWVsZFNjaGVtYVVuc2FuaXRpemVkLFxuICAgICAgdmFsaWRSZWxhdGlvbnNoaXBzLFxuICAgIH0pXG5cbiAgICBjb25zdCBhd2FpdEluaXRpYWxTdGF0ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGF0YTogZGVlcENvcHlPYmplY3QoZmllbGRzIHx8IHt9KSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgIHQsXG4gICAgICAgIHVzZXIsXG4gICAgICB9KVxuICAgICAgc2V0SW5pdGlhbFN0YXRlKHN0YXRlKVxuICAgIH1cblxuICAgIHZvaWQgYXdhaXRJbml0aWFsU3RhdGUoKVxuICB9LCBbdXNlciwgbG9jYWxlLCB0LCBnZXREb2NQcmVmZXJlbmNlcywgZmllbGRzLCBmaWVsZFNjaGVtYVVuc2FuaXRpemVkLCBjb25maWddKVxuXG4gIHJldHVybiAoXG4gICAgPERyYXdlclxuICAgICAgc2x1Zz17ZHJhd2VyU2x1Z31cbiAgICAgIHRpdGxlPXt0KCdnZW5lcmFsOmVkaXRMYWJlbCcsIHtcbiAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHJlbGF0ZWRDb2xsZWN0aW9uLmxhYmVscy5zaW5ndWxhciwgaTE4biksXG4gICAgICB9KX1cbiAgICA+XG4gICAgICA8Rm9ybSBpbml0aWFsU3RhdGU9e2luaXRpYWxTdGF0ZX0gb25TdWJtaXQ9e2hhbmRsZVVwZGF0ZUVkaXREYXRhfT5cbiAgICAgICAgPFJlbmRlckZpZWxkcyBmaWVsZFNjaGVtYT17ZmllbGRTY2hlbWF9IGZpZWxkVHlwZXM9e2ZpZWxkVHlwZXN9IHJlYWRPbmx5PXtmYWxzZX0gLz5cbiAgICAgICAgPEZvcm1TdWJtaXQ+e3QoJ2ZpZWxkczpzYXZlQ2hhbmdlcycpfTwvRm9ybVN1Ym1pdD5cbiAgICAgIDwvRm9ybT5cbiAgICA8L0RyYXdlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkV4dHJhRmllbGRzVXBsb2FkRHJhd2VyIiwicHJvcHMiLCJkcmF3ZXJTbHVnIiwiZmllbGRzIiwicmVsYXRpb25UbyIsInZhbHVlIiwibm9kZUtleSIsInJlbGF0ZWRDb2xsZWN0aW9uIiwiZWRpdG9yIiwidXNlTGV4aWNhbENvbXBvc2VyQ29udGV4dCIsImVkaXRvckNvbmZpZyIsImZpZWxkIiwidXNlRWRpdG9yQ29uZmlnQ29udGV4dCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwidXNlciIsInVzZUF1dGgiLCJjbG9zZU1vZGFsIiwidXNlTW9kYWwiLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsImluaXRpYWxTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInVzZVN0YXRlIiwiZmllbGRTY2hlbWFVbnNhbml0aXplZCIsInJlc29sdmVkRmVhdHVyZU1hcCIsImdldCIsImNvbGxlY3Rpb25zIiwic2x1ZyIsImNvbmZpZyIsInVzZUNvbmZpZyIsInZhbGlkUmVsYXRpb25zaGlwcyIsIm1hcCIsImMiLCJmaWVsZFNjaGVtYSIsInNhbml0aXplRmllbGRzIiwiaGFuZGxlVXBkYXRlRWRpdERhdGEiLCJ1c2VDYWxsYmFjayIsIl8iLCJkYXRhIiwidXBkYXRlIiwidXBsb2FkTm9kZSIsIiRnZXROb2RlQnlLZXkiLCJuZXdGaWVsZHMiLCJnZXRGaWVsZHMiLCJzZXRGaWVsZHMiLCJ1c2VFZmZlY3QiLCJhd2FpdEluaXRpYWxTdGF0ZSIsInByZWZlcmVuY2VzIiwic3RhdGUiLCJidWlsZFN0YXRlRnJvbVNjaGVtYSIsImRlZXBDb3B5T2JqZWN0Iiwib3BlcmF0aW9uIiwiRHJhd2VyIiwidGl0bGUiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJGb3JtIiwib25TdWJtaXQiLCJSZW5kZXJGaWVsZHMiLCJmaWVsZFR5cGVzIiwicmVhZE9ubHkiLCJGb3JtU3VibWl0Il0sIm1hcHBpbmdzIjoiOzs7OytCQTZCYUE7OztlQUFBQTs7O3VCQTNCWTt3Q0FDaUI7eUJBQ1o7MEJBQ1A7dUJBQ3dCOzJCQU94Qzt3QkFDb0M7NEJBQ0k7K0RBQ1M7OEJBQ3pCO3NDQU1ROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTWhDLE1BQU1BLDBCQUtULENBQUNDO0lBQ0gsTUFBTSxFQUNKQyxVQUFVLEVBQ1ZDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUUsRUFDN0JGLE1BQU0sRUFDTkcsT0FBTyxFQUNQQyxpQkFBaUIsRUFDbEIsR0FBR047SUFFSixNQUFNLENBQUNPLE9BQU8sR0FBR0MsSUFBQUEsaURBQXlCO0lBQzFDLE1BQU0sRUFBRUMsWUFBWSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsSUFBQUEsNENBQXNCO0lBRXRELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWM7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
@@ -1,7 +1,8 @@
1
1
  import type { Transformer } from '@lexical/markdown';
2
- import type { Klass, LexicalEditor, LexicalNode } from 'lexical';
2
+ import type { Klass, LexicalEditor, LexicalNode, SerializedEditorState } from 'lexical';
3
3
  import type { SerializedLexicalNode } from 'lexical';
4
- import type { PayloadRequest, RichTextField } from 'payload/types';
4
+ import type { SanitizedConfig } from 'payload/config';
5
+ import type { PayloadRequest, RichTextField, ValidateOptions } from 'payload/types';
5
6
  import type React from 'react';
6
7
  import type { AdapterProps } from '../../types';
7
8
  import type { EditorConfig } from '..//lexical/config/types';
@@ -17,6 +18,15 @@ export type AfterReadPromise<T extends SerializedLexicalNode = SerializedLexical
17
18
  req: PayloadRequest;
18
19
  showHiddenFields: boolean;
19
20
  }) => Promise<void>[];
21
+ export type NodeValidation<T extends SerializedLexicalNode = SerializedLexicalNode> = ({ node, nodeValidations, payloadConfig, validation, }: {
22
+ node: T;
23
+ nodeValidations: Map<string, Array<NodeValidation>>;
24
+ payloadConfig: SanitizedConfig;
25
+ validation: {
26
+ options: ValidateOptions<SerializedEditorState, unknown, RichTextField>;
27
+ value: SerializedEditorState;
28
+ };
29
+ }) => Promise<string | true> | string | true;
20
30
  export type Feature = {
21
31
  floatingSelectToolbar?: {
22
32
  sections: FloatingToolbarSection[];
@@ -26,6 +36,7 @@ export type Feature = {
26
36
  afterReadPromises?: Array<AfterReadPromise>;
27
37
  node: Klass<LexicalNode>;
28
38
  type: string;
39
+ validations?: Array<NodeValidation>;
29
40
  }>;
30
41
  plugins?: Array<{
31
42
  Component: React.FC;
@@ -91,5 +102,7 @@ export type SanitizedFeatures = Required<Pick<ResolvedFeature, 'markdownTransfor
91
102
  }) => SlashMenuGroup[]>;
92
103
  groupsWithOptions: SlashMenuGroup[];
93
104
  };
105
+ /** The node types mapped to their validations */
106
+ validations: Map<string, Array<NodeValidation>>;
94
107
  };
95
108
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/field/features/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/field/features/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1,39 @@
1
1
  @import 'payload/scss';
2
+
3
+ .rich-text-lexical {
4
+ display: flex;
5
+ isolation: isolate;
6
+
7
+ &__wrap {
8
+ width: 100%;
9
+ position: relative;
10
+ }
11
+
12
+ &--read-only {
13
+ .editor-shell {
14
+ background: var(--theme-elevation-200);
15
+ color: var(--theme-elevation-450);
16
+ padding: base(0.5);
17
+ }
18
+ }
19
+ }
20
+
21
+ html[data-theme='light'] {
22
+ .rich-text-lexical {
23
+ &.error {
24
+ .editor-shell {
25
+ @include lightInputError;
26
+ }
27
+ }
28
+ }
29
+ }
30
+
31
+ html[data-theme='dark'] {
32
+ .rich-text-lexical {
33
+ &.error {
34
+ .editor-shell {
35
+ @include darkInputError;
36
+ }
37
+ }
38
+ }
39
+ }
@@ -1,34 +1,36 @@
1
1
  @import 'payload/scss';
2
2
 
3
- .editor-shell {
4
- position: relative;
3
+ .rich-text-lexical {
4
+ .editor-shell {
5
+ position: relative;
5
6
 
6
- font-family: var(--font-serif);
7
- font-size: base(0.625);
7
+ font-family: var(--font-serif);
8
+ font-size: base(0.625);
8
9
 
9
- h1,
10
- h2,
11
- h3,
12
- h4,
13
- h5,
14
- h6 {
15
- font-family: var(--font-body);
16
- line-height: 1.125;
10
+ h1,
11
+ h2,
12
+ h3,
13
+ h4,
14
+ h5,
15
+ h6 {
16
+ font-family: var(--font-body);
17
+ line-height: 1.125;
18
+ }
17
19
  }
18
- }
19
20
 
20
- .editor-placeholder {
21
- position: absolute;
22
- top: 8px;
23
- left: 0px;
24
- font-size: 15px;
25
- color: var(--theme-elevation-500);
26
- /* Prevent text selection */
27
- user-select: none;
28
- -webkit-user-select: none;
29
- -moz-user-select: none;
30
- -ms-user-select: none;
21
+ .editor-placeholder {
22
+ position: absolute;
23
+ top: 8px;
24
+ left: 0px;
25
+ font-size: 15px;
26
+ color: var(--theme-elevation-500);
27
+ /* Prevent text selection */
28
+ user-select: none;
29
+ -webkit-user-select: none;
30
+ -moz-user-select: none;
31
+ -ms-user-select: none;
31
32
 
32
- /* Make it behave more like a background element (no interaction) */
33
- pointer-events: none;
33
+ /* Make it behave more like a background element (no interaction) */
34
+ pointer-events: none;
35
+ }
34
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/field/lexical/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlE,eAAO,MAAM,gBAAgB,oCAAmC,iBAiI/D,CAAA;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,qBAAqB,CAUtF"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../../../src/field/lexical/config/sanitize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAIlE,eAAO,MAAM,gBAAgB,oCAAmC,iBAqI/D,CAAA;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,qBAAqB,CAUtF"}
@@ -30,7 +30,8 @@ const sanitizeFeatures = (features)=>{
30
30
  slashMenu: {
31
31
  dynamicOptions: [],
32
32
  groupsWithOptions: []
33
- }
33
+ },
34
+ validations: new Map()
34
35
  };
35
36
  features.forEach((feature)=>{
36
37
  if (feature.nodes?.length) {
@@ -39,6 +40,9 @@ const sanitizeFeatures = (features)=>{
39
40
  if (node?.afterReadPromises?.length) {
40
41
  sanitized.afterReadPromises.set(node.type, node.afterReadPromises);
41
42
  }
43
+ if (node?.validations?.length) {
44
+ sanitized.validations.set(node.type, node.validations);
45
+ }
42
46
  });
43
47
  }
44
48
  if (feature.plugins?.length) {
@@ -135,4 +139,4 @@ function sanitizeEditorConfig(editorConfig) {
135
139
  };
136
140
  }
137
141
 
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL2NvbmZpZy9zYW5pdGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc29sdmVkRmVhdHVyZU1hcCwgU2FuaXRpemVkRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9mZWF0dXJlcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRWRpdG9yQ29uZmlnLCBTYW5pdGl6ZWRFZGl0b3JDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBsb2FkRmVhdHVyZXMgfSBmcm9tICcuL2xvYWRlcidcblxuZXhwb3J0IGNvbnN0IHNhbml0aXplRmVhdHVyZXMgPSAoZmVhdHVyZXM6IFJlc29sdmVkRmVhdHVyZU1hcCk6IFNhbml0aXplZEZlYXR1cmVzID0+IHtcbiAgY29uc3Qgc2FuaXRpemVkOiBTYW5pdGl6ZWRGZWF0dXJlcyA9IHtcbiAgICBhZnRlclJlYWRQcm9taXNlczogbmV3IE1hcCgpLFxuICAgIGVuYWJsZWRGZWF0dXJlczogW10sXG4gICAgZmxvYXRpbmdTZWxlY3RUb29sYmFyOiB7XG4gICAgICBzZWN0aW9uczogW10sXG4gICAgfSxcbiAgICBtYXJrZG93blRyYW5zZm9ybWVyczogW10sXG4gICAgbm9kZXM6IFtdLFxuICAgIHBsdWdpbnM6IFtdLFxuICAgIHNsYXNoTWVudToge1xuICAgICAgZHluYW1pY09wdGlvbnM6IFtdLFxuICAgICAgZ3JvdXBzV2l0aE9wdGlvbnM6IFtdLFxuICAgIH0sXG4gIH1cblxuICBmZWF0dXJlcy5mb3JFYWNoKChmZWF0dXJlKSA9PiB7XG4gICAgaWYgKGZlYXR1cmUubm9kZXM/Lmxlbmd0aCkge1xuICAgICAgc2FuaXRpemVkLm5vZGVzID0gc2FuaXRpemVkLm5vZGVzLmNvbmNhdChmZWF0dXJlLm5vZGVzKVxuICAgICAgZmVhdHVyZS5ub2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIGlmIChub2RlPy5hZnRlclJlYWRQcm9taXNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgc2FuaXRpemVkLmFmdGVyUmVhZFByb21pc2VzLnNldChub2RlLnR5cGUsIG5vZGUuYWZ0ZXJSZWFkUHJvbWlzZXMpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChmZWF0dXJlLnBsdWdpbnM/Lmxlbmd0aCkge1xuICAgICAgZmVhdHVyZS5wbHVnaW5zLmZvckVhY2goKHBsdWdpbiwgaSkgPT4ge1xuICAgICAgICBzYW5pdGl6ZWQucGx1Z2lucy5wdXNoKHtcbiAgICAgICAgICBDb21wb25lbnQ6IHBsdWdpbi5Db21wb25lbnQsXG4gICAgICAgICAga2V5OiBmZWF0dXJlLmtleSArIGksXG4gICAgICAgICAgcG9zaXRpb246IHBsdWdpbi5wb3NpdGlvbixcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmIChmZWF0dXJlLm1hcmtkb3duVHJhbnNmb3JtZXJzPy5sZW5ndGgpIHtcbiAgICAgIHNhbml0aXplZC5tYXJrZG93blRyYW5zZm9ybWVycyA9IHNhbml0aXplZC5tYXJrZG93blRyYW5zZm9ybWVycy5jb25jYXQoXG4gICAgICAgIGZlYXR1cmUubWFya2Rvd25UcmFuc2Zvcm1lcnMsXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKGZlYXR1cmUuZmxvYXRpbmdTZWxlY3RUb29sYmFyPy5zZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICBmb3IgKGNvbnN0IHNlY3Rpb24gb2YgZmVhdHVyZS5mbG9hdGluZ1NlbGVjdFRvb2xiYXI/LnNlY3Rpb25zKSB7XG4gICAgICAgIC8vIDEuIGZpbmQgdGhlIHNlY3Rpb24gd2l0aCB0aGUgc2FtZSBrZXkgb3IgY3JlYXRlIG5ldyBvbmVcbiAgICAgICAgbGV0IGZvdW5kU2VjdGlvbiA9IHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMuZmluZChcbiAgICAgICAgICAoc2FuaXRpemVkU2VjdGlvbikgPT4gc2FuaXRpemVkU2VjdGlvbi5rZXkgPT09IHNlY3Rpb24ua2V5LFxuICAgICAgICApXG4gICAgICAgIGlmICghZm91bmRTZWN0aW9uKSB7XG4gICAgICAgICAgZm91bmRTZWN0aW9uID0ge1xuICAgICAgICAgICAgLi4uc2VjdGlvbixcbiAgICAgICAgICAgIGVudHJpZXM6IFtdLFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zID1cbiAgICAgICAgICAgIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgICAoc2FuaXRpemVkU2VjdGlvbikgPT4gc2FuaXRpemVkU2VjdGlvbi5rZXkgIT09IHNlY3Rpb24ua2V5LFxuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKHNlY3Rpb24/LmVudHJpZXM/Lmxlbmd0aCkge1xuICAgICAgICAgIGZvdW5kU2VjdGlvbi5lbnRyaWVzID0gZm91bmRTZWN0aW9uLmVudHJpZXMuY29uY2F0KHNlY3Rpb24uZW50cmllcylcbiAgICAgICAgfVxuICAgICAgICBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyPy5zZWN0aW9ucy5wdXNoKGZvdW5kU2VjdGlvbilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmVhdHVyZS5zbGFzaE1lbnU/Lm9wdGlvbnMpIHtcbiAgICAgIGlmIChmZWF0dXJlLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgIHNhbml0aXplZC5zbGFzaE1lbnUuZHluYW1pY09wdGlvbnMgPSBzYW5pdGl6ZWQuc2xhc2hNZW51LmR5bmFtaWNPcHRpb25zLmNvbmNhdChcbiAgICAgICAgICBmZWF0dXJlLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbkdyb3VwIG9mIGZlYXR1cmUuc2xhc2hNZW51Lm9wdGlvbnMpIHtcbiAgICAgICAgLy8gMS4gZmluZCB0aGUgZ3JvdXAgd2l0aCB0aGUgc2FtZSBuYW1lIG9yIGNyZWF0ZSBuZXcgb25lXG4gICAgICAgIGxldCBncm91cCA9IHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMuZmluZChcbiAgICAgICAgICAoZ3JvdXApID0+IGdyb3VwLnRpdGxlID09PSBvcHRpb25Hcm91cC50aXRsZSxcbiAgICAgICAgKVxuICAgICAgICBpZiAoIWdyb3VwKSB7XG4gICAgICAgICAgZ3JvdXAgPSB7XG4gICAgICAgICAgICAuLi5vcHRpb25Hcm91cCxcbiAgICAgICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzYW5pdGl6ZWQuc2xhc2hNZW51Lmdyb3Vwc1dpdGhPcHRpb25zID0gc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9ucy5maWx0ZXIoXG4gICAgICAgICAgICAoZ3JvdXApID0+IGdyb3VwLnRpdGxlICE9PSBvcHRpb25Hcm91cC50aXRsZSxcbiAgICAgICAgICApXG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBBZGQgb3B0aW9ucyB0byBncm91cCBvcHRpb25zIGFycmF5IGFuZCBhZGQgdG8gc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9uc1xuICAgICAgICBpZiAob3B0aW9uR3JvdXA/Lm9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGdyb3VwLm9wdGlvbnMgPSBncm91cC5vcHRpb25zLmNvbmNhdChvcHRpb25Hcm91cC5vcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMucHVzaChncm91cClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzYW5pdGl6ZWQuZW5hYmxlZEZlYXR1cmVzLnB1c2goZmVhdHVyZS5rZXkpXG4gIH0pXG5cbiAgLy8gU29ydCBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zIGJ5IG9yZGVyIHByb3BlcnR5XG4gIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMuc29ydCgoYSwgYikgPT4ge1xuICAgIGlmIChhLm9yZGVyICYmIGIub3JkZXIpIHtcbiAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlclxuICAgIH0gZWxzZSBpZiAoYS5vcmRlcikge1xuICAgICAgcmV0dXJuIC0xXG4gICAgfSBlbHNlIGlmIChiLm9yZGVyKSB7XG4gICAgICByZXR1cm4gMVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgfSlcblxuICAvLyBTb3J0IHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMuW3NlY3Rpb25dLmVudHJpZXMgYnkgb3JkZXIgcHJvcGVydHlcbiAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNhbml0aXplZC5mbG9hdGluZ1NlbGVjdFRvb2xiYXIuc2VjdGlvbnMpIHtcbiAgICBzZWN0aW9uLmVudHJpZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEub3JkZXIgJiYgYi5vcmRlcikge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXJcbiAgICAgIH0gZWxzZSBpZiAoYS5vcmRlcikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH0gZWxzZSBpZiAoYi5vcmRlcikge1xuICAgICAgICByZXR1cm4gMVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHNhbml0aXplZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVFZGl0b3JDb25maWcoZWRpdG9yQ29uZmlnOiBFZGl0b3JDb25maWcpOiBTYW5pdGl6ZWRFZGl0b3JDb25maWcge1xuICBjb25zdCByZXNvbHZlZEZlYXR1cmVNYXAgPSBsb2FkRmVhdHVyZXMoe1xuICAgIHVuc2FuaXRpemVkRWRpdG9yQ29uZmlnOiBlZGl0b3JDb25maWcsXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBmZWF0dXJlczogc2FuaXRpemVGZWF0dXJlcyhyZXNvbHZlZEZlYXR1cmVNYXApLFxuICAgIGxleGljYWw6IGVkaXRvckNvbmZpZy5sZXhpY2FsLFxuICAgIHJlc29sdmVkRmVhdHVyZU1hcDogcmVzb2x2ZWRGZWF0dXJlTWFwLFxuICB9XG59XG4iXSwibmFtZXMiOlsic2FuaXRpemVGZWF0dXJlcyIsInNhbml0aXplRWRpdG9yQ29uZmlnIiwiZmVhdHVyZXMiLCJzYW5pdGl6ZWQiLCJhZnRlclJlYWRQcm9taXNlcyIsIk1hcCIsImVuYWJsZWRGZWF0dXJlcyIsImZsb2F0aW5nU2VsZWN0VG9vbGJhciIsInNlY3Rpb25zIiwibWFya2Rvd25UcmFuc2Zvcm1lcnMiLCJub2RlcyIsInBsdWdpbnMiLCJzbGFzaE1lbnUiLCJkeW5hbWljT3B0aW9ucyIsImdyb3Vwc1dpdGhPcHRpb25zIiwiZm9yRWFjaCIsImZlYXR1cmUiLCJsZW5ndGgiLCJjb25jYXQiLCJub2RlIiwic2V0IiwidHlwZSIsInBsdWdpbiIsImkiLCJwdXNoIiwiQ29tcG9uZW50Iiwia2V5IiwicG9zaXRpb24iLCJzZWN0aW9uIiwiZm91bmRTZWN0aW9uIiwiZmluZCIsInNhbml0aXplZFNlY3Rpb24iLCJlbnRyaWVzIiwiZmlsdGVyIiwib3B0aW9ucyIsIm9wdGlvbkdyb3VwIiwiZ3JvdXAiLCJ0aXRsZSIsInNvcnQiLCJhIiwiYiIsIm9yZGVyIiwiZWRpdG9yQ29uZmlnIiwicmVzb2x2ZWRGZWF0dXJlTWFwIiwibG9hZEZlYXR1cmVzIiwidW5zYW5pdGl6ZWRFZGl0b3JDb25maWciLCJsZXhpY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUthQSxnQkFBZ0I7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
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZC9sZXhpY2FsL2NvbmZpZy9zYW5pdGl6ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJlc29sdmVkRmVhdHVyZU1hcCwgU2FuaXRpemVkRmVhdHVyZXMgfSBmcm9tICcuLi8uLi9mZWF0dXJlcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRWRpdG9yQ29uZmlnLCBTYW5pdGl6ZWRFZGl0b3JDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBsb2FkRmVhdHVyZXMgfSBmcm9tICcuL2xvYWRlcidcblxuZXhwb3J0IGNvbnN0IHNhbml0aXplRmVhdHVyZXMgPSAoZmVhdHVyZXM6IFJlc29sdmVkRmVhdHVyZU1hcCk6IFNhbml0aXplZEZlYXR1cmVzID0+IHtcbiAgY29uc3Qgc2FuaXRpemVkOiBTYW5pdGl6ZWRGZWF0dXJlcyA9IHtcbiAgICBhZnRlclJlYWRQcm9taXNlczogbmV3IE1hcCgpLFxuICAgIGVuYWJsZWRGZWF0dXJlczogW10sXG4gICAgZmxvYXRpbmdTZWxlY3RUb29sYmFyOiB7XG4gICAgICBzZWN0aW9uczogW10sXG4gICAgfSxcbiAgICBtYXJrZG93blRyYW5zZm9ybWVyczogW10sXG4gICAgbm9kZXM6IFtdLFxuICAgIHBsdWdpbnM6IFtdLFxuICAgIHNsYXNoTWVudToge1xuICAgICAgZHluYW1pY09wdGlvbnM6IFtdLFxuICAgICAgZ3JvdXBzV2l0aE9wdGlvbnM6IFtdLFxuICAgIH0sXG4gICAgdmFsaWRhdGlvbnM6IG5ldyBNYXAoKSxcbiAgfVxuXG4gIGZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmUpID0+IHtcbiAgICBpZiAoZmVhdHVyZS5ub2Rlcz8ubGVuZ3RoKSB7XG4gICAgICBzYW5pdGl6ZWQubm9kZXMgPSBzYW5pdGl6ZWQubm9kZXMuY29uY2F0KGZlYXR1cmUubm9kZXMpXG4gICAgICBmZWF0dXJlLm5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgaWYgKG5vZGU/LmFmdGVyUmVhZFByb21pc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBzYW5pdGl6ZWQuYWZ0ZXJSZWFkUHJvbWlzZXMuc2V0KG5vZGUudHlwZSwgbm9kZS5hZnRlclJlYWRQcm9taXNlcylcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZT8udmFsaWRhdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgIHNhbml0aXplZC52YWxpZGF0aW9ucy5zZXQobm9kZS50eXBlLCBub2RlLnZhbGlkYXRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoZmVhdHVyZS5wbHVnaW5zPy5sZW5ndGgpIHtcbiAgICAgIGZlYXR1cmUucGx1Z2lucy5mb3JFYWNoKChwbHVnaW4sIGkpID0+IHtcbiAgICAgICAgc2FuaXRpemVkLnBsdWdpbnMucHVzaCh7XG4gICAgICAgICAgQ29tcG9uZW50OiBwbHVnaW4uQ29tcG9uZW50LFxuICAgICAgICAgIGtleTogZmVhdHVyZS5rZXkgKyBpLFxuICAgICAgICAgIHBvc2l0aW9uOiBwbHVnaW4ucG9zaXRpb24sXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoZmVhdHVyZS5tYXJrZG93blRyYW5zZm9ybWVycz8ubGVuZ3RoKSB7XG4gICAgICBzYW5pdGl6ZWQubWFya2Rvd25UcmFuc2Zvcm1lcnMgPSBzYW5pdGl6ZWQubWFya2Rvd25UcmFuc2Zvcm1lcnMuY29uY2F0KFxuICAgICAgICBmZWF0dXJlLm1hcmtkb3duVHJhbnNmb3JtZXJzLFxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChmZWF0dXJlLmZsb2F0aW5nU2VsZWN0VG9vbGJhcj8uc2VjdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIGZlYXR1cmUuZmxvYXRpbmdTZWxlY3RUb29sYmFyPy5zZWN0aW9ucykge1xuICAgICAgICAvLyAxLiBmaW5kIHRoZSBzZWN0aW9uIHdpdGggdGhlIHNhbWUga2V5IG9yIGNyZWF0ZSBuZXcgb25lXG4gICAgICAgIGxldCBmb3VuZFNlY3Rpb24gPSBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgKHNhbml0aXplZFNlY3Rpb24pID0+IHNhbml0aXplZFNlY3Rpb24ua2V5ID09PSBzZWN0aW9uLmtleSxcbiAgICAgICAgKVxuICAgICAgICBpZiAoIWZvdW5kU2VjdGlvbikge1xuICAgICAgICAgIGZvdW5kU2VjdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLnNlY3Rpb24sXG4gICAgICAgICAgICBlbnRyaWVzOiBbXSxcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2FuaXRpemVkLmZsb2F0aW5nU2VsZWN0VG9vbGJhci5zZWN0aW9ucyA9XG4gICAgICAgICAgICBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zLmZpbHRlcihcbiAgICAgICAgICAgICAgKHNhbml0aXplZFNlY3Rpb24pID0+IHNhbml0aXplZFNlY3Rpb24ua2V5ICE9PSBzZWN0aW9uLmtleSxcbiAgICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIEFkZCBvcHRpb25zIHRvIGdyb3VwIG9wdGlvbnMgYXJyYXkgYW5kIGFkZCB0byBzYW5pdGl6ZWQuc2xhc2hNZW51Lmdyb3Vwc1dpdGhPcHRpb25zXG4gICAgICAgIGlmIChzZWN0aW9uPy5lbnRyaWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICBmb3VuZFNlY3Rpb24uZW50cmllcyA9IGZvdW5kU2VjdGlvbi5lbnRyaWVzLmNvbmNhdChzZWN0aW9uLmVudHJpZXMpXG4gICAgICAgIH1cbiAgICAgICAgc2FuaXRpemVkLmZsb2F0aW5nU2VsZWN0VG9vbGJhcj8uc2VjdGlvbnMucHVzaChmb3VuZFNlY3Rpb24pXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZlYXR1cmUuc2xhc2hNZW51Py5vcHRpb25zKSB7XG4gICAgICBpZiAoZmVhdHVyZS5zbGFzaE1lbnUuZHluYW1pY09wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICBzYW5pdGl6ZWQuc2xhc2hNZW51LmR5bmFtaWNPcHRpb25zID0gc2FuaXRpemVkLnNsYXNoTWVudS5keW5hbWljT3B0aW9ucy5jb25jYXQoXG4gICAgICAgICAgZmVhdHVyZS5zbGFzaE1lbnUuZHluYW1pY09wdGlvbnMsXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcHRpb25Hcm91cCBvZiBmZWF0dXJlLnNsYXNoTWVudS5vcHRpb25zKSB7XG4gICAgICAgIC8vIDEuIGZpbmQgdGhlIGdyb3VwIHdpdGggdGhlIHNhbWUgbmFtZSBvciBjcmVhdGUgbmV3IG9uZVxuICAgICAgICBsZXQgZ3JvdXAgPSBzYW5pdGl6ZWQuc2xhc2hNZW51Lmdyb3Vwc1dpdGhPcHRpb25zLmZpbmQoXG4gICAgICAgICAgKGdyb3VwKSA9PiBncm91cC50aXRsZSA9PT0gb3B0aW9uR3JvdXAudGl0bGUsXG4gICAgICAgIClcbiAgICAgICAgaWYgKCFncm91cCkge1xuICAgICAgICAgIGdyb3VwID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9uR3JvdXAsXG4gICAgICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2FuaXRpemVkLnNsYXNoTWVudS5ncm91cHNXaXRoT3B0aW9ucyA9IHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgKGdyb3VwKSA9PiBncm91cC50aXRsZSAhPT0gb3B0aW9uR3JvdXAudGl0bGUsXG4gICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gQWRkIG9wdGlvbnMgdG8gZ3JvdXAgb3B0aW9ucyBhcnJheSBhbmQgYWRkIHRvIHNhbml0aXplZC5zbGFzaE1lbnUuZ3JvdXBzV2l0aE9wdGlvbnNcbiAgICAgICAgaWYgKG9wdGlvbkdyb3VwPy5vcHRpb25zPy5sZW5ndGgpIHtcbiAgICAgICAgICBncm91cC5vcHRpb25zID0gZ3JvdXAub3B0aW9ucy5jb25jYXQob3B0aW9uR3JvdXAub3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBzYW5pdGl6ZWQuc2xhc2hNZW51Lmdyb3Vwc1dpdGhPcHRpb25zLnB1c2goZ3JvdXApXG4gICAgICB9XG4gICAgfVxuXG4gICAgc2FuaXRpemVkLmVuYWJsZWRGZWF0dXJlcy5wdXNoKGZlYXR1cmUua2V5KVxuICB9KVxuXG4gIC8vIFNvcnQgc2FuaXRpemVkLmZsb2F0aW5nU2VsZWN0VG9vbGJhci5zZWN0aW9ucyBieSBvcmRlciBwcm9wZXJ0eVxuICBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zLnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoYS5vcmRlciAmJiBiLm9yZGVyKSB7XG4gICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXJcbiAgICB9IGVsc2UgaWYgKGEub3JkZXIpIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH0gZWxzZSBpZiAoYi5vcmRlcikge1xuICAgICAgcmV0dXJuIDFcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDBcbiAgICB9XG4gIH0pXG5cbiAgLy8gU29ydCBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zLltzZWN0aW9uXS5lbnRyaWVzIGJ5IG9yZGVyIHByb3BlcnR5XG4gIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzYW5pdGl6ZWQuZmxvYXRpbmdTZWxlY3RUb29sYmFyLnNlY3Rpb25zKSB7XG4gICAgc2VjdGlvbi5lbnRyaWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLm9yZGVyICYmIGIub3JkZXIpIHtcbiAgICAgICAgcmV0dXJuIGEub3JkZXIgLSBiLm9yZGVyXG4gICAgICB9IGVsc2UgaWYgKGEub3JkZXIpIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgICB9IGVsc2UgaWYgKGIub3JkZXIpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBzYW5pdGl6ZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplRWRpdG9yQ29uZmlnKGVkaXRvckNvbmZpZzogRWRpdG9yQ29uZmlnKTogU2FuaXRpemVkRWRpdG9yQ29uZmlnIHtcbiAgY29uc3QgcmVzb2x2ZWRGZWF0dXJlTWFwID0gbG9hZEZlYXR1cmVzKHtcbiAgICB1bnNhbml0aXplZEVkaXRvckNvbmZpZzogZWRpdG9yQ29uZmlnLFxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgZmVhdHVyZXM6IHNhbml0aXplRmVhdHVyZXMocmVzb2x2ZWRGZWF0dXJlTWFwKSxcbiAgICBsZXhpY2FsOiBlZGl0b3JDb25maWcubGV4aWNhbCxcbiAgICByZXNvbHZlZEZlYXR1cmVNYXA6IHJlc29sdmVkRmVhdHVyZU1hcCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInNhbml0aXplRmVhdHVyZXMiLCJzYW5pdGl6ZUVkaXRvckNvbmZpZyIsImZlYXR1cmVzIiwic2FuaXRpemVkIiwiYWZ0ZXJSZWFkUHJvbWlzZXMiLCJNYXAiLCJlbmFibGVkRmVhdHVyZXMiLCJmbG9hdGluZ1NlbGVjdFRvb2xiYXIiLCJzZWN0aW9ucyIsIm1hcmtkb3duVHJhbnNmb3JtZXJzIiwibm9kZXMiLCJwbHVnaW5zIiwic2xhc2hNZW51IiwiZHluYW1pY09wdGlvbnMiLCJncm91cHNXaXRoT3B0aW9ucyIsInZhbGlkYXRpb25zIiwiZm9yRWFjaCIsImZlYXR1cmUiLCJsZW5ndGgiLCJjb25jYXQiLCJub2RlIiwic2V0IiwidHlwZSIsInBsdWdpbiIsImkiLCJwdXNoIiwiQ29tcG9uZW50Iiwia2V5IiwicG9zaXRpb24iLCJzZWN0aW9uIiwiZm91bmRTZWN0aW9uIiwiZmluZCIsInNhbml0aXplZFNlY3Rpb24iLCJlbnRyaWVzIiwiZmlsdGVyIiwib3B0aW9ucyIsIm9wdGlvbkdyb3VwIiwiZ3JvdXAiLCJ0aXRsZSIsInNvcnQiLCJhIiwiYiIsIm9yZGVyIiwiZWRpdG9yQ29uZmlnIiwicmVzb2x2ZWRGZWF0dXJlTWFwIiwibG9hZEZlYXR1cmVzIiwidW5zYW5pdGl6ZWRFZGl0b3JDb25maWciLCJsZXhpY2FsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUthQSxnQkFBZ0I7ZUFBaEJBOztJQXVJR0Msb0JBQW9CO2VBQXBCQTs7O3dCQXpJYTtBQUV0QixNQUFNRCxtQkFBbUIsQ0FBQ0U7SUFDL0IsTUFBTUMsWUFBK0I7UUFDbkNDLG1CQUFtQixJQUFJQztRQUN2QkMsaUJBQWlCLEVBQUU7UUFDbkJDLHVCQUF1QjtZQUNyQkMsVUFBVSxFQUFFO1FBQ2Q7UUFDQUMsc0JBQXNCLEVBQUU7UUFDeEJDLE9BQU8sRUFBRTtRQUNUQyxTQUFTLEVBQUU7UUFDWEMsV0FBVztZQUNUQyxnQkFBZ0IsRUFBRTtZQUNsQkMsbUJBQW1CLEVBQUU7UUFDdkI7UUFDQUMsYUFBYSxJQUFJVjtJQUNuQjtJQUVBSCxTQUFTYyxPQUFPLENBQUMsQ0FBQ0M7UUFDaEIsSUFBSUEsUUFBUVAsS0FBSyxFQUFFUSxRQUFRO1lBQ3pCZixVQUFVTyxLQUFLLEdBQUdQLFVBQVVPLEtBQUssQ0FBQ1MsTUFBTSxDQUFDRixRQUFRUCxLQUFLO1lBQ3RETyxRQUFRUCxLQUFLLENBQUNNLE9BQU8sQ0FBQyxDQUFDSTtnQkFDckIsSUFBSUEsTUFBTWhCLG1CQUFtQmMsUUFBUTtvQkFDbkNmLFVBQVVDLGlCQUFpQixDQUFDaUIsR0FBRyxDQUFDRCxLQUFLRSxJQUFJLEVBQUVGLEtBQUtoQixpQkFBaUI7Z0JBQ25FO2dCQUNBLElBQUlnQixNQUFNTCxhQUFhRyxRQUFRO29CQUM3QmYsVUFBVVksV0FBVyxDQUFDTSxHQUFHLENBQUNELEtBQUtFLElBQUksRUFBRUYsS0FBS0wsV0FBVztnQkFDdkQ7WUFDRjtRQUNGO1FBQ0EsSUFBSUUsUUFBUU4sT0FBTyxFQUFFTyxRQUFRO1lBQzNCRCxRQUFRTixPQUFPLENBQUNLLE9BQU8sQ0FBQyxD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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}