payload 2.0.11 → 2.0.13

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 (220) hide show
  1. package/.eslintrc.js +58 -0
  2. package/dist/admin/components/elements/ArrayAction/index.scss +0 -2
  3. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  4. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +3 -1
  5. package/dist/admin/components/elements/DocumentFields/index.d.ts +16 -0
  6. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -0
  7. package/dist/admin/components/elements/DocumentFields/index.js +69 -0
  8. package/dist/admin/components/{views/Global/Default → elements/DocumentFields}/index.scss +10 -13
  9. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  10. package/dist/admin/components/elements/DuplicateDocument/index.js +3 -1
  11. package/dist/admin/components/elements/ListControls/index.d.ts +1 -2
  12. package/dist/admin/components/elements/ListControls/index.d.ts.map +1 -1
  13. package/dist/admin/components/elements/ListControls/index.js +14 -25
  14. package/dist/admin/components/elements/ListControls/types.d.ts +3 -0
  15. package/dist/admin/components/elements/ListControls/types.d.ts.map +1 -1
  16. package/dist/admin/components/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +60 -15
  18. package/dist/admin/components/elements/Localizer/index.d.ts.map +1 -1
  19. package/dist/admin/components/elements/Localizer/index.js +21 -13
  20. package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts +1 -0
  21. package/dist/admin/components/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  22. package/dist/admin/components/elements/Popup/PopupButtonList/index.js +3 -2
  23. package/dist/admin/components/elements/Popup/PopupButtonList/index.scss +6 -1
  24. package/dist/admin/components/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/ReactSelect/MultiValue/index.js +4 -3
  26. package/dist/admin/components/elements/ReactSelect/index.js +3 -3
  27. package/dist/admin/components/elements/ReactSelect/types.d.ts +0 -4
  28. package/dist/admin/components/elements/ReactSelect/types.d.ts.map +1 -1
  29. package/dist/admin/components/elements/SaveDraft/index.d.ts.map +1 -1
  30. package/dist/admin/components/elements/SaveDraft/index.js +4 -3
  31. package/dist/admin/components/elements/SearchFilter/index.d.ts.map +1 -1
  32. package/dist/admin/components/elements/SearchFilter/index.js +4 -32
  33. package/dist/admin/components/elements/SearchFilter/types.d.ts +1 -2
  34. package/dist/admin/components/elements/SearchFilter/types.d.ts.map +1 -1
  35. package/dist/admin/components/elements/Status/index.d.ts.map +1 -1
  36. package/dist/admin/components/elements/Status/index.js +3 -1
  37. package/dist/admin/components/elements/TableColumns/index.d.ts.map +1 -1
  38. package/dist/admin/components/elements/TableColumns/index.js +8 -13
  39. package/dist/admin/components/elements/WhereBuilder/Condition/index.js +2 -2
  40. package/dist/admin/components/forms/RenderFields/index.d.ts.map +1 -1
  41. package/dist/admin/components/forms/RenderFields/index.js +1 -1
  42. package/dist/admin/components/forms/field-types/RichText/types.d.ts +6 -1
  43. package/dist/admin/components/forms/field-types/RichText/types.d.ts.map +1 -1
  44. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  45. package/dist/admin/components/forms/field-types/Row/index.js +9 -5
  46. package/dist/admin/components/forms/field-types/Row/index.scss +22 -18
  47. package/dist/admin/components/utilities/DocumentInfo/index.d.ts.map +1 -1
  48. package/dist/admin/components/utilities/DocumentInfo/index.js +19 -11
  49. package/dist/admin/components/utilities/Preferences/index.d.ts +6 -1
  50. package/dist/admin/components/utilities/Preferences/index.d.ts.map +1 -1
  51. package/dist/admin/components/utilities/Preferences/index.js +55 -5
  52. package/dist/admin/components/views/Account/Default.d.ts +5 -1
  53. package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
  54. package/dist/admin/components/views/Account/Default.js +29 -72
  55. package/dist/admin/components/views/Account/Settings/index.d.ts +6 -0
  56. package/dist/admin/components/views/Account/Settings/index.d.ts.map +1 -0
  57. package/dist/admin/components/views/Account/Settings/index.js +48 -0
  58. package/dist/admin/components/views/Account/Settings/index.scss +45 -0
  59. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  60. package/dist/admin/components/views/Account/index.js +18 -12
  61. package/dist/admin/components/views/Account/index.scss +7 -35
  62. package/dist/admin/components/views/Global/Default/index.d.ts +4 -2
  63. package/dist/admin/components/views/Global/Default/index.d.ts.map +1 -1
  64. package/dist/admin/components/views/Global/Default/index.js +16 -58
  65. package/dist/admin/components/views/Global/Default.d.ts +5 -2
  66. package/dist/admin/components/views/Global/Default.d.ts.map +1 -1
  67. package/dist/admin/components/views/Global/Default.js +6 -3
  68. package/dist/admin/components/views/Global/Routes/CustomComponent.d.ts.map +1 -1
  69. package/dist/admin/components/views/Global/Routes/CustomComponent.js +3 -2
  70. package/dist/admin/components/views/Global/Routes/index.d.ts +4 -1
  71. package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
  72. package/dist/admin/components/views/Global/Routes/index.js +1 -1
  73. package/dist/admin/components/views/Global/index.d.ts.map +1 -1
  74. package/dist/admin/components/views/Global/index.js +3 -1
  75. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  76. package/dist/admin/components/views/LivePreview/Context/index.js +6 -4
  77. package/dist/admin/components/views/LivePreview/index.d.ts +4 -1
  78. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  79. package/dist/admin/components/views/LivePreview/index.js +20 -13
  80. package/dist/admin/components/views/Version/SelectLocales/index.js +3 -9
  81. package/dist/admin/components/views/Version/SelectLocales/types.d.ts +4 -4
  82. package/dist/admin/components/views/Version/SelectLocales/types.d.ts.map +1 -1
  83. package/dist/admin/components/views/Version/Version.d.ts.map +1 -1
  84. package/dist/admin/components/views/Version/Version.js +11 -3
  85. package/dist/admin/components/views/Version/types.d.ts +0 -4
  86. package/dist/admin/components/views/Version/types.d.ts.map +1 -1
  87. package/dist/admin/components/views/collections/Edit/Default/index.d.ts +4 -1
  88. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  89. package/dist/admin/components/views/collections/Edit/Default/index.js +27 -61
  90. package/dist/admin/components/views/collections/Edit/Default/index.scss +5 -158
  91. package/dist/admin/components/views/collections/Edit/Default.d.ts +5 -2
  92. package/dist/admin/components/views/collections/Edit/Default.d.ts.map +1 -1
  93. package/dist/admin/components/views/collections/Edit/Default.js +6 -3
  94. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts +4 -1
  95. package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
  96. package/dist/admin/components/views/collections/Edit/Routes/index.js +1 -1
  97. package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
  98. package/dist/admin/components/views/collections/Edit/index.js +3 -1
  99. package/dist/admin/components/views/collections/List/Default.d.ts.map +1 -1
  100. package/dist/admin/components/views/collections/List/Default.js +7 -5
  101. package/dist/admin/components/views/collections/List/index.d.ts.map +1 -1
  102. package/dist/admin/components/views/collections/List/index.js +68 -17
  103. package/dist/admin/components/views/collections/List/types.d.ts +4 -0
  104. package/dist/admin/components/views/collections/List/types.d.ts.map +1 -1
  105. package/dist/admin/hooks/useUseAsTitle.d.ts +3 -0
  106. package/dist/admin/hooks/useUseAsTitle.d.ts.map +1 -0
  107. package/dist/admin/hooks/useUseAsTitle.js +24 -0
  108. package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
  109. package/dist/auth/operations/forgotPassword.js +4 -1
  110. package/dist/auth/operations/local/forgotPassword.js +2 -2
  111. package/dist/auth/operations/local/login.js +2 -2
  112. package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
  113. package/dist/auth/operations/local/resetPassword.js +2 -2
  114. package/dist/auth/operations/local/unlock.js +2 -2
  115. package/dist/auth/operations/local/verifyEmail.js +2 -2
  116. package/dist/auth/operations/login.d.ts.map +1 -1
  117. package/dist/auth/operations/login.js +9 -2
  118. package/dist/auth/operations/logout.d.ts.map +1 -1
  119. package/dist/auth/operations/logout.js +2 -1
  120. package/dist/auth/operations/me.d.ts.map +1 -1
  121. package/dist/auth/operations/me.js +2 -1
  122. package/dist/auth/operations/refresh.d.ts.map +1 -1
  123. package/dist/auth/operations/refresh.js +4 -1
  124. package/dist/collections/config/types.d.ts +33 -1
  125. package/dist/collections/config/types.d.ts.map +1 -1
  126. package/dist/collections/config/types.js +1 -1
  127. package/dist/collections/operations/create.d.ts.map +1 -1
  128. package/dist/collections/operations/create.js +21 -32
  129. package/dist/collections/operations/delete.d.ts.map +1 -1
  130. package/dist/collections/operations/delete.js +8 -2
  131. package/dist/collections/operations/deleteByID.d.ts.map +1 -1
  132. package/dist/collections/operations/deleteByID.js +8 -2
  133. package/dist/collections/operations/find.d.ts.map +1 -1
  134. package/dist/collections/operations/find.js +7 -2
  135. package/dist/collections/operations/findByID.d.ts.map +1 -1
  136. package/dist/collections/operations/findByID.js +7 -2
  137. package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
  138. package/dist/collections/operations/findVersionByID.js +5 -2
  139. package/dist/collections/operations/findVersions.d.ts.map +1 -1
  140. package/dist/collections/operations/findVersions.js +5 -2
  141. package/dist/collections/operations/local/find.js +2 -2
  142. package/dist/collections/operations/local/findByID.js +2 -2
  143. package/dist/collections/operations/local/findVersionByID.js +2 -2
  144. package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
  145. package/dist/collections/operations/restoreVersion.js +7 -3
  146. package/dist/collections/operations/update.d.ts.map +1 -1
  147. package/dist/collections/operations/update.js +17 -6
  148. package/dist/collections/operations/updateByID.d.ts.map +1 -1
  149. package/dist/collections/operations/updateByID.js +17 -6
  150. package/dist/collections/operations/utils.d.ts +21 -1
  151. package/dist/collections/operations/utils.d.ts.map +1 -1
  152. package/dist/collections/operations/utils.js +3 -2
  153. package/dist/config/schema.d.ts.map +1 -1
  154. package/dist/config/schema.js +4 -3
  155. package/dist/exports/types.d.ts +1 -0
  156. package/dist/exports/types.d.ts.map +1 -1
  157. package/dist/exports/types.js +19 -15
  158. package/dist/express/middleware/errorHandler.d.ts.map +1 -1
  159. package/dist/express/middleware/errorHandler.js +3 -3
  160. package/dist/fields/config/schema.d.ts.map +1 -1
  161. package/dist/fields/config/schema.js +5 -4
  162. package/dist/fields/config/types.d.ts +8 -1
  163. package/dist/fields/config/types.d.ts.map +1 -1
  164. package/dist/fields/config/types.js +1 -1
  165. package/dist/fields/hooks/afterChange/index.d.ts +3 -2
  166. package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
  167. package/dist/fields/hooks/afterChange/index.js +5 -3
  168. package/dist/fields/hooks/afterChange/promise.d.ts +5 -1
  169. package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
  170. package/dist/fields/hooks/afterChange/promise.js +17 -2
  171. package/dist/fields/hooks/afterChange/traverseFields.d.ts +5 -1
  172. package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
  173. package/dist/fields/hooks/afterChange/traverseFields.js +4 -2
  174. package/dist/fields/hooks/afterRead/index.d.ts +2 -1
  175. package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
  176. package/dist/fields/hooks/afterRead/index.js +5 -3
  177. package/dist/fields/hooks/afterRead/promise.d.ts +5 -1
  178. package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
  179. package/dist/fields/hooks/afterRead/promise.js +38 -4
  180. package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -1
  181. package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
  182. package/dist/fields/hooks/afterRead/traverseFields.js +4 -2
  183. package/dist/fields/hooks/beforeChange/index.d.ts +3 -2
  184. package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
  185. package/dist/fields/hooks/beforeChange/index.js +5 -3
  186. package/dist/fields/hooks/beforeChange/promise.d.ts +5 -1
  187. package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
  188. package/dist/fields/hooks/beforeChange/promise.js +17 -2
  189. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +5 -1
  190. package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
  191. package/dist/fields/hooks/beforeChange/traverseFields.js +4 -2
  192. package/dist/fields/hooks/beforeValidate/index.d.ts +3 -2
  193. package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
  194. package/dist/fields/hooks/beforeValidate/index.js +5 -3
  195. package/dist/fields/hooks/beforeValidate/promise.d.ts +5 -1
  196. package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
  197. package/dist/fields/hooks/beforeValidate/promise.js +19 -4
  198. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +5 -1
  199. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
  200. package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -2
  201. package/dist/globals/config/types.d.ts +16 -0
  202. package/dist/globals/config/types.d.ts.map +1 -1
  203. package/dist/globals/operations/findOne.d.ts.map +1 -1
  204. package/dist/globals/operations/findOne.js +7 -2
  205. package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
  206. package/dist/globals/operations/findVersionByID.js +7 -2
  207. package/dist/globals/operations/findVersions.d.ts.map +1 -1
  208. package/dist/globals/operations/findVersions.js +5 -2
  209. package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
  210. package/dist/globals/operations/restoreVersion.js +9 -3
  211. package/dist/globals/operations/update.d.ts.map +1 -1
  212. package/dist/globals/operations/update.js +19 -6
  213. package/dist/graphql/errorHandler.js +2 -2
  214. package/dist/graphql/schema/buildMutationInputType.js +2 -2
  215. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  216. package/dist/graphql/schema/buildObjectType.js +8 -3
  217. package/dist/preferences/operations/update.js +7 -7
  218. package/package.json +2 -2
  219. package/types.d.ts +1 -0
  220. package/types.js +19 -15
package/.eslintrc.js ADDED
@@ -0,0 +1,58 @@
1
+ module.exports = {
2
+ extends: ['@payloadcms'],
3
+ ignorePatterns: ['**/payload-types.ts'],
4
+ overrides: [
5
+ {
6
+ extends: ['plugin:@typescript-eslint/disable-type-checked'],
7
+ files: [
8
+ '*.js',
9
+ '*.cjs',
10
+ 'playwright.config.ts',
11
+ 'playwright.bail.config.ts',
12
+ 'bin-cks.cjs',
13
+ 'bin-esm.mjs',
14
+ 'esm-loader.mjs',
15
+ 'esm-loader-playwright.mjs',
16
+ '*.json',
17
+ '*.md',
18
+ '*.yml',
19
+ '*.yaml',
20
+ ],
21
+ },
22
+ {
23
+ files: ['*.e2e.ts'],
24
+ rules: {
25
+ '@typescript-eslint/no-unsafe-assignment': 'off',
26
+ '@typescript-eslint/no-use-before-define': 'off',
27
+ 'jest/expect-expect': 'off',
28
+ },
29
+ },
30
+ {
31
+ files: ['package.json', 'tsconfig.json'],
32
+ rules: {
33
+ 'perfectionist/sort-array-includes': 'off',
34
+ 'perfectionist/sort-astro-attributes': 'off',
35
+ 'perfectionist/sort-classes': 'off',
36
+ 'perfectionist/sort-enums': 'off',
37
+ 'perfectionist/sort-exports': 'off',
38
+ 'perfectionist/sort-imports': 'off',
39
+ 'perfectionist/sort-interfaces': 'off',
40
+ 'perfectionist/sort-jsx-props': 'off',
41
+ 'perfectionist/sort-keys': 'off',
42
+ 'perfectionist/sort-maps': 'off',
43
+ 'perfectionist/sort-named-exports': 'off',
44
+ 'perfectionist/sort-named-imports': 'off',
45
+ 'perfectionist/sort-object-types': 'off',
46
+ 'perfectionist/sort-objects': 'off',
47
+ 'perfectionist/sort-svelte-attributes': 'off',
48
+ 'perfectionist/sort-union-types': 'off',
49
+ 'perfectionist/sort-vue-attributes': 'off',
50
+ },
51
+ },
52
+ ],
53
+ parserOptions: {
54
+ project: ['./tsconfig.json'],
55
+ tsconfigRootDir: __dirname,
56
+ },
57
+ root: true,
58
+ }
@@ -18,14 +18,12 @@
18
18
  }
19
19
 
20
20
  &__action {
21
- @extend %btn-reset;
22
21
  display: flex;
23
22
  gap: calc(var(--base) / 2);
24
23
  align-items: center;
25
24
 
26
25
  svg {
27
26
  position: relative;
28
- top: -1px;
29
27
 
30
28
  .stroke {
31
29
  stroke-width: 1px;
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAMvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AA+KlD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwB/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAMvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAiLlD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwB/D,CAAA"}
@@ -17,6 +17,7 @@ const _ = require(".");
17
17
  const _getTranslation = require("../../../../utilities/getTranslation");
18
18
  const _usePayloadAPI = /*#__PURE__*/ _interop_require_default(require("../../../hooks/usePayloadAPI"));
19
19
  const _buildStateFromSchema = /*#__PURE__*/ _interop_require_default(require("../../forms/Form/buildStateFromSchema"));
20
+ const _fieldtypes = require("../../forms/field-types");
20
21
  const _useRelatedCollections = require("../../forms/field-types/Relationship/AddNew/useRelatedCollections");
21
22
  const _X = /*#__PURE__*/ _interop_require_default(require("../../icons/X"));
22
23
  const _Auth = require("../../utilities/Auth");
@@ -199,6 +200,7 @@ const Content = ({ collectionSlug, customHeader, drawerSlug, onSave })=>{
199
200
  disableActions: true,
200
201
  disableLeaveWithoutSaving: true,
201
202
  disableRoutes: true,
203
+ fieldTypes: _fieldtypes.fieldTypes,
202
204
  hasSavePermission,
203
205
  internalState,
204
206
  isEditing,
@@ -234,4 +236,4 @@ const DocumentDrawerContent = (props)=>{
234
236
  }));
235
237
  };
236
238
 
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0RvY3VtZW50RHJhd2VyL0RyYXdlckNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvblBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZHMgfSBmcm9tICcuLi8uLi9mb3Jtcy9Gb3JtL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudERyYXdlclByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgYmFzZUNsYXNzIH0gZnJvbSAnLidcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHVzZVBheWxvYWRBUEkgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmltcG9ydCBidWlsZFN0YXRlRnJvbVNjaGVtYSBmcm9tICcuLi8uLi9mb3Jtcy9Gb3JtL2J1aWxkU3RhdGVGcm9tU2NoZW1hJ1xuaW1wb3J0IHsgdXNlUmVsYXRlZENvbGxlY3Rpb25zIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGQtdHlwZXMvUmVsYXRpb25zaGlwL0FkZE5ldy91c2VSZWxhdGVkQ29sbGVjdGlvbnMnXG5pbXBvcnQgWCBmcm9tICcuLi8uLi9pY29ucy9YJ1xuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BdXRoJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0NvbmZpZydcbmltcG9ydCB7IERvY3VtZW50SW5mb1Byb3ZpZGVyLCB1c2VEb2N1bWVudEluZm8gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRG9jdW1lbnRJbmZvJ1xuaW1wb3J0IHsgdXNlRm9ybVF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0Zvcm1RdWVyeVBhcmFtcydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgUmVuZGVyQ3VzdG9tQ29tcG9uZW50IGZyb20gJy4uLy4uL3V0aWxpdGllcy9SZW5kZXJDdXN0b21Db21wb25lbnQnXG5pbXBvcnQgRGVmYXVsdEVkaXQgZnJvbSAnLi4vLi4vdmlld3MvY29sbGVjdGlvbnMvRWRpdC9EZWZhdWx0J1xuaW1wb3J0IGZvcm1hdEZpZWxkcyBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L2Zvcm1hdEZpZWxkcydcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0IElETGFiZWwgZnJvbSAnLi4vSURMYWJlbCdcblxuY29uc3QgQ29udGVudDogUmVhY3QuRkM8RG9jdW1lbnREcmF3ZXJQcm9wcz4gPSAoe1xuICBjb2xsZWN0aW9uU2x1ZyxcbiAgY3VzdG9tSGVhZGVyLFxuICBkcmF3ZXJTbHVnLFxuICBvblNhdmUsXG59KSA9PiB7XG4gIGNvbnN0IHtcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyBjbG9zZU1vZGFsLCBtb2RhbFN0YXRlLCB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgW2ludGVybmFsU3RhdGUsIHNldEludGVybmFsU3RhdGVdID0gdXNlU3RhdGU8RmllbGRzPigpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydmaWVsZHMnLCAnZ2VuZXJhbCddKVxuICBjb25zdCBoYXNJbml0aWFsaXplZFN0YXRlID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtjb2xsZWN0aW9uQ29uZmlnXSA9IHVzZVJlbGF0ZWRDb2xsZWN0aW9ucyhjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG4gIGNvbnN0IGZvcm1hdHRlZFF1ZXJ5UGFyYW1zID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KGZvcm1RdWVyeVBhcmFtcylcblxuICBjb25zdCB7IGFkbWluOiB7IGNvbXBvbmVudHM6IHsgdmlld3M6IHsgRWRpdCB9ID0ge30gfSA9IHt9IH0gPSB7fSB9ID0gY29sbGVjdGlvbkNvbmZpZ1xuXG4gIGNvbnN0IHsgaWQsIGRvY1Blcm1pc3Npb25zLCBnZXREb2NQcmVmZXJlbmNlcyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICAvLyBUaGUgY29tcG9uZW50IGRlZmluaXRpb24gY291bGQgY29tZSBmcm9tIG11bHRpcGxlIHBsYWNlcyBpbiB0aGUgY29uZmlnXG4gIC8vIHdlIG5lZWQgdG8gY2FzY2FkZSBpbnRvIHRoZSBwcm9wZXIgY29tcG9uZW50IGZyb20gdGhlIHRvcC1kb3duXG4gIC8vIDEuIFwiY29tcG9uZW50cy5FZGl0XCJcbiAgLy8gMi4gXCJjb21wb25lbnRzLkVkaXQuRGVmYXVsdFwiXG4gIC8vIDMuIFwiY29tcG9uZW50cy5FZGl0LkRlZmF1bHQuQ29tcG9uZW50XCJcbiAgY29uc3QgQ3VzdG9tRWRpdFZpZXcgPVxuICAgIHR5cGVvZiBFZGl0ID09PSAnZnVuY3Rpb24nXG4gICAgICA/IEVkaXRcbiAgICAgIDogdHlwZW9mIEVkaXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBFZGl0LkRlZmF1bHQgPT09ICdmdW5jdGlvbidcbiAgICAgID8gRWRpdC5EZWZhdWx0XG4gICAgICA6IHR5cGVvZiBFZGl0Py5EZWZhdWx0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgRWRpdC5EZWZhdWx0LkNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBFZGl0LkRlZmF1bHQuQ29tcG9uZW50XG4gICAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IFtmaWVsZHMsIHNldEZpZWxkc10gPSB1c2VTdGF0ZSgoKSA9PiBmb3JtYXRGaWVsZHMoY29sbGVjdGlvbkNvbmZpZywgdHJ1ZSkpXG5cbiAgLy8gbm8gbmVlZCB0byBhbiBhZGRpdGlvbmFsIHJlcXVlc3RzIHdoZW4gY3JlYXRpbmcgbmV3IGRvY3VtZW50c1xuICBjb25zdCBpbml0aWFsSUQgPSB1c2VSZWYoaWQpXG4gIGNvbnN0IFt7IGRhdGEsIGlzRXJyb3IsIGlzTG9hZGluZzogaXNMb2FkaW5nRG9jdW1lbnQgfV0gPSB1c2VQYXlsb2FkQVBJKFxuICAgIGluaXRpYWxJRC5jdXJyZW50ID8gYCR7c2VydmVyVVJMfSR7YXBpfS8ke2NvbGxlY3Rpb25TbHVnfS8ke2luaXRpYWxJRC5jdXJyZW50fWAgOiBudWxsLFxuICAgIHsgaW5pdGlhbFBhcmFtczogeyBkZXB0aDogMCwgZHJhZnQ6ICd0cnVlJywgJ2ZhbGxiYWNrLWxvY2FsZSc6ICdudWxsJyB9IH0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEZpZWxkcyhmb3JtYXRGaWVsZHMoY29sbGVjdGlvbkNvbmZpZywgdHJ1ZSkpXG4gIH0sIFtjb2xsZWN0aW9uU2x1ZywgY29sbGVjdGlvbkNvbmZpZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nRG9jdW1lbnQgfHwgaGFzSW5pdGlhbGl6ZWRTdGF0ZS5jdXJyZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBhd2FpdEluaXRpYWxTdGF0ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGZpZWxkU2NoZW1hOiBmaWVsZHMsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiBpZCA/ICd1cGRhdGUnIDogJ2NyZWF0ZScsXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIHNldEludGVybmFsU3RhdGUoc3RhdGUpXG4gICAgfVxuXG4gICAgYXdhaXRJbml0aWFsU3RhdGUoKVxuICAgIGhhc0luaXRpYWxpemVkU3RhdGUuY3VycmVudCA9IHRydWVcbiAgfSwgW2RhdGEsIGZpZWxkcywgaWQsIHVzZXIsIGxvY2FsZSwgaXNMb2FkaW5nRG9jdW1lbnQsIHQsIGdldERvY1ByZWZlcmVuY2VzLCBjb25maWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0SXNPcGVuKEJvb2xlYW4obW9kYWxTdGF0ZVtkcmF3ZXJTbHVnXT8uaXNPcGVuKSlcbiAgfSwgW21vZGFsU3RhdGUsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3BlbiAmJiAhaXNMb2FkaW5nRG9jdW1lbnQgJiYgaXNFcnJvcikge1xuICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgdG9hc3QuZXJyb3IoZGF0YS5lcnJvcnM/LlswXS5tZXNzYWdlIHx8IHQoJ2Vycm9yOnVuc3BlY2lmaWMnKSlcbiAgICB9XG4gIH0sIFtpc0Vycm9yLCB0LCBpc09wZW4sIGRhdGEsIGRyYXdlclNsdWcsIGNsb3NlTW9kYWwsIGlzTG9hZGluZ0RvY3VtZW50XSlcblxuICBpZiAoaXNFcnJvcikgcmV0dXJuIG51bGxcblxuICBjb25zdCBpc0VkaXRpbmcgPSBCb29sZWFuKGlkKVxuXG4gIGNvbnN0IGFwaVVSTCA9IGlkID8gYCR7c2VydmVyVVJMfSR7YXBpfS8ke2NvbGxlY3Rpb25TbHVnfS8ke2lkfT9sb2NhbGU9JHtsb2NhbGV9YCA6IG51bGxcblxuICBjb25zdCBhY3Rpb24gPSBgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7Y29sbGVjdGlvblNsdWd9JHtcbiAgICBpc0VkaXRpbmcgPyBgLyR7aWR9YCA6ICcnXG4gIH0/JHtmb3JtYXR0ZWRRdWVyeVBhcmFtc31gXG5cbiAgY29uc3QgaGFzU2F2ZVBlcm1pc3Npb24gPVxuICAgIChpc0VkaXRpbmcgJiYgZG9jUGVybWlzc2lvbnM/LnVwZGF0ZT8ucGVybWlzc2lvbikgfHxcbiAgICAoIWlzRWRpdGluZyAmJiAoZG9jUGVybWlzc2lvbnMgYXMgQ29sbGVjdGlvblBlcm1pc3Npb24pPy5jcmVhdGU/LnBlcm1pc3Npb24pXG5cbiAgY29uc3QgaXNMb2FkaW5nID0gIWludGVybmFsU3RhdGUgfHwgIWRvY1Blcm1pc3Npb25zIHx8IGlzTG9hZGluZ0RvY3VtZW50XG5cbiAgcmV0dXJuIChcbiAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICBDdXN0b21Db21wb25lbnQ9e0N1c3RvbUVkaXRWaWV3fVxuICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdEVkaXR9XG4gICAgICBjb21wb25lbnRQcm9wcz17e1xuICAgICAgICBpZCxcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBhcGlVUkwsXG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGN1c3RvbUhlYWRlcjogKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXJgfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItY29udGVudGB9PlxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItdGV4dGB9PlxuICAgICAgICAgICAgICAgIHshY3VzdG9tSGVhZGVyXG4gICAgICAgICAgICAgICAgICA/IHQoIWlkID8gJ2ZpZWxkczphZGROZXdMYWJlbCcgOiAnZ2VuZXJhbDplZGl0TGFiZWwnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGNvbGxlY3Rpb25Db25maWcubGFiZWxzLnNpbmd1bGFyLCBpMThuKSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY3VzdG9tSGVhZGVyfVxuICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnZ2VuZXJhbDpjbG9zZScpfVxuICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItY2xvc2VgfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFggLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtpZCAmJiA8SURMYWJlbCBpZD17aWQudG9TdHJpbmcoKX0gLz59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICksXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRpc2FibGVBY3Rpb25zOiB0cnVlLFxuICAgICAgICBkaXNhYmxlTGVhdmVXaXRob3V0U2F2aW5nOiB0cnVlLFxuICAgICAgICBkaXNhYmxlUm91dGVzOiB0cnVlLFxuICAgICAgICBoYXNTYXZlUGVybWlzc2lvbixcbiAgICAgICAgaW50ZXJuYWxTdGF0ZSxcbiAgICAgICAgaXNFZGl0aW5nLFxuICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgIG1lOiB0cnVlLFxuICAgICAgICBvblNhdmUsXG4gICAgICAgIHBlcm1pc3Npb25zOiBkb2NQZXJtaXNzaW9ucyxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuXG4vLyBGaXJzdCBwcm92aWRlIHRoZSBkb2N1bWVudCBjb250ZXh0IHVzaW5nIGBEb2N1bWVudEluZm9Qcm92aWRlcmBcbi8vIHRoaXMgaXMgc28gd2UgY2FuIHV0aWxpemUgdGhlIGB1c2VEb2N1bWVudEluZm9gIGhvb2sgaW4gdGhlIGBDb250ZW50YCBjb21wb25lbnRcbi8vIHRoaXMgZHJhd2VyIGlzIHVzZWQgZm9yIGJvdGggY3JlYXRpbmcgYW5kIGVkaXRpbmcgZG9jdW1lbnRzXG4vLyB0aGlzIG1lYW5zIHRoYXQgdGhlIGBpZGAgbWF5IGJlIHVua25vd24gdW50aWwgdGhlIGRvY3VtZW50IGlzIGNyZWF0ZWRcbmV4cG9ydCBjb25zdCBEb2N1bWVudERyYXdlckNvbnRlbnQ6IFJlYWN0LkZDPERvY3VtZW50RHJhd2VyUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaWQ6IGlkRnJvbVByb3BzLCBjb2xsZWN0aW9uU2x1Zywgb25TYXZlOiBvblNhdmVGcm9tUHJvcHMgfSA9IHByb3BzXG4gIGNvbnN0IFtjb2xsZWN0aW9uQ29uZmlnXSA9IHVzZVJlbGF0ZWRDb2xsZWN0aW9ucyhjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3QgW2lkLCBzZXRJZF0gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihpZEZyb21Qcm9wcylcblxuICBjb25zdCBvblNhdmUgPSB1c2VDYWxsYmFjazxEb2N1bWVudERyYXdlclByb3BzWydvblNhdmUnXT4oXG4gICAgKGFyZ3MpID0+IHtcbiAgICAgIHNldElkKGFyZ3MuZG9jLmlkKVxuXG4gICAgICBpZiAodHlwZW9mIG9uU2F2ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvblNhdmVGcm9tUHJvcHMoe1xuICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvblNhdmVGcm9tUHJvcHMsIGNvbGxlY3Rpb25Db25maWddLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8RG9jdW1lbnRJbmZvUHJvdmlkZXIgY29sbGVjdGlvbj17Y29sbGVjdGlvbkNvbmZpZ30gaWQ9e2lkfT5cbiAgICAgIDxDb250ZW50IHsuLi5wcm9wc30gb25TYXZlPXtvblNhdmV9IC8+XG4gICAgPC9Eb2N1bWVudEluZm9Qcm92aWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkRvY3VtZW50RHJhd2VyQ29udGVudCIsIkNvbnRlbnQiLCJjb2xsZWN0aW9uU2x1ZyIsImN1c3RvbUhlYWRlciIsImRyYXdlclNsdWciLCJvblNhdmUiLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJjbG9zZU1vZGFsIiwibW9kYWxTdGF0ZSIsInRvZ2dsZU1vZGFsIiwidXNlTW9kYWwiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwidXNlciIsInVzZUF1dGgiLCJpbnRlcm5hbFN0YXRlIiwic2V0SW50ZXJuYWxTdGF0ZSIsInVzZVN0YXRlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImhhc0luaXRpYWxpemVkU3RhdGUiLCJ1c2VSZWYiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJjb2xsZWN0aW9uQ29uZmlnIiwidXNlUmVsYXRlZENvbGxlY3Rpb25zIiwiY29uZmlnIiwiZm9ybVF1ZXJ5UGFyYW1zIiwidXNlRm9ybVF1ZXJ5UGFyYW1zIiwiZm9ybWF0dGVkUXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsInN0cmluZ2lmeSIsImFkbWluIiwiY29tcG9uZW50cyIsInZpZXdzIiwiRWRpdCIsImlkIiwiZG9jUGVybWlzc2lvbnMiLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsIkN1c3RvbUVkaXRWaWV3IiwiRGVmYXVsdCIsIkNvbXBvbmVudCIsInVuZGVmaW5lZCIsImZpZWxkcyIsInNldEZpZWxkcyIsImZvcm1hdEZpZWxkcyIsImluaXRpYWxJRCIsImRhdGEiLCJpc0Vycm9yIiwiaXNMb2FkaW5nIiwiaXNMb2FkaW5nRG9jdW1lbnQiLCJ1c2VQYXlsb2FkQVBJIiwiY3VycmVudCIsImluaXRpYWxQYXJhbXMiLCJkZXB0aCIsImRyYWZ0IiwidXNlRWZmZWN0IiwiYXdhaXRJbml0aWFsU3RhdGUiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJmaWVsZFNjaGVtYSIsIm9wZXJhdGlvbiIsIkJvb2xlYW4iLCJ0b2FzdCIsImVycm9yIiwiZXJyb3JzIiwibWVzc2FnZSIsImlzRWRpdGluZyIsImFwaVVSTCIsImFjdGlvbiIsImhhc1NhdmVQZXJtaXNzaW9uIiwidXBkYXRlIiwicGVybWlzc2lvbiIsImNyZWF0ZSIsIlJlbmRlckN1c3RvbUNvbXBvbmVudCIsIkN1c3RvbUNvbXBvbmVudCIsIkRlZmF1bHRDb21wb25lbnQiLCJEZWZhdWx0RWRpdCIsImNvbXBvbmVudFByb3BzIiwiY29sbGVjdGlvbiIsImRpdiIsImNsYXNzTmFtZSIsImJhc2VDbGFzcyIsImgyIiwibGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVscyIsInNpbmd1bGFyIiwiQnV0dG9uIiwiYXJpYS1sYWJlbCIsImJ1dHRvblN0eWxlIiwib25DbGljayIsIlgiLCJJRExhYmVsIiwidG9TdHJpbmciLCJkaXNhYmxlQWN0aW9ucyIsImRpc2FibGVMZWF2ZVdpdGhvdXRTYXZpbmciLCJkaXNhYmxlUm91dGVzIiwibWUiLCJwZXJtaXNzaW9ucyIsInByb3BzIiwiaWRGcm9tUHJvcHMiLCJvblNhdmVGcm9tUHJvcHMiLCJzZXRJZCIsInVzZUNhbGxiYWNrIiwiYXJncyIsImRvYyIsIkRvY3Vt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
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0RvY3VtZW50RHJhd2VyL0RyYXdlckNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZU1vZGFsIH0gZnJvbSAnQGZhY2VsZXNzLXVpL21vZGFsJ1xuaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvblBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZHMgfSBmcm9tICcuLi8uLi9mb3Jtcy9Gb3JtL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudERyYXdlclByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgYmFzZUNsYXNzIH0gZnJvbSAnLidcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHVzZVBheWxvYWRBUEkgZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUGF5bG9hZEFQSSdcbmltcG9ydCBidWlsZFN0YXRlRnJvbVNjaGVtYSBmcm9tICcuLi8uLi9mb3Jtcy9Gb3JtL2J1aWxkU3RhdGVGcm9tU2NoZW1hJ1xuaW1wb3J0IHsgZmllbGRUeXBlcyB9IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkLXR5cGVzJ1xuaW1wb3J0IHsgdXNlUmVsYXRlZENvbGxlY3Rpb25zIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGQtdHlwZXMvUmVsYXRpb25zaGlwL0FkZE5ldy91c2VSZWxhdGVkQ29sbGVjdGlvbnMnXG5pbXBvcnQgWCBmcm9tICcuLi8uLi9pY29ucy9YJ1xuaW1wb3J0IHsgdXNlQXV0aCB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9BdXRoJ1xuaW1wb3J0IHsgdXNlQ29uZmlnIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0NvbmZpZydcbmltcG9ydCB7IERvY3VtZW50SW5mb1Byb3ZpZGVyLCB1c2VEb2N1bWVudEluZm8gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvRG9jdW1lbnRJbmZvJ1xuaW1wb3J0IHsgdXNlRm9ybVF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0Zvcm1RdWVyeVBhcmFtcydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgUmVuZGVyQ3VzdG9tQ29tcG9uZW50IGZyb20gJy4uLy4uL3V0aWxpdGllcy9SZW5kZXJDdXN0b21Db21wb25lbnQnXG5pbXBvcnQgRGVmYXVsdEVkaXQgZnJvbSAnLi4vLi4vdmlld3MvY29sbGVjdGlvbnMvRWRpdC9EZWZhdWx0J1xuaW1wb3J0IGZvcm1hdEZpZWxkcyBmcm9tICcuLi8uLi92aWV3cy9jb2xsZWN0aW9ucy9FZGl0L2Zvcm1hdEZpZWxkcydcbmltcG9ydCBCdXR0b24gZnJvbSAnLi4vQnV0dG9uJ1xuaW1wb3J0IElETGFiZWwgZnJvbSAnLi4vSURMYWJlbCdcblxuY29uc3QgQ29udGVudDogUmVhY3QuRkM8RG9jdW1lbnREcmF3ZXJQcm9wcz4gPSAoe1xuICBjb2xsZWN0aW9uU2x1ZyxcbiAgY3VzdG9tSGVhZGVyLFxuICBkcmF3ZXJTbHVnLFxuICBvblNhdmUsXG59KSA9PiB7XG4gIGNvbnN0IHtcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyBjbG9zZU1vZGFsLCBtb2RhbFN0YXRlLCB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyB1c2VyIH0gPSB1c2VBdXRoKClcbiAgY29uc3QgW2ludGVybmFsU3RhdGUsIHNldEludGVybmFsU3RhdGVdID0gdXNlU3RhdGU8RmllbGRzPigpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oWydmaWVsZHMnLCAnZ2VuZXJhbCddKVxuICBjb25zdCBoYXNJbml0aWFsaXplZFN0YXRlID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtjb2xsZWN0aW9uQ29uZmlnXSA9IHVzZVJlbGF0ZWRDb2xsZWN0aW9ucyhjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyBmb3JtUXVlcnlQYXJhbXMgfSA9IHVzZUZvcm1RdWVyeVBhcmFtcygpXG4gIGNvbnN0IGZvcm1hdHRlZFF1ZXJ5UGFyYW1zID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KGZvcm1RdWVyeVBhcmFtcylcblxuICBjb25zdCB7IGFkbWluOiB7IGNvbXBvbmVudHM6IHsgdmlld3M6IHsgRWRpdCB9ID0ge30gfSA9IHt9IH0gPSB7fSB9ID0gY29sbGVjdGlvbkNvbmZpZ1xuXG4gIGNvbnN0IHsgaWQsIGRvY1Blcm1pc3Npb25zLCBnZXREb2NQcmVmZXJlbmNlcyB9ID0gdXNlRG9jdW1lbnRJbmZvKClcblxuICAvLyBUaGUgY29tcG9uZW50IGRlZmluaXRpb24gY291bGQgY29tZSBmcm9tIG11bHRpcGxlIHBsYWNlcyBpbiB0aGUgY29uZmlnXG4gIC8vIHdlIG5lZWQgdG8gY2FzY2FkZSBpbnRvIHRoZSBwcm9wZXIgY29tcG9uZW50IGZyb20gdGhlIHRvcC1kb3duXG4gIC8vIDEuIFwiY29tcG9uZW50cy5FZGl0XCJcbiAgLy8gMi4gXCJjb21wb25lbnRzLkVkaXQuRGVmYXVsdFwiXG4gIC8vIDMuIFwiY29tcG9uZW50cy5FZGl0LkRlZmF1bHQuQ29tcG9uZW50XCJcbiAgY29uc3QgQ3VzdG9tRWRpdFZpZXcgPVxuICAgIHR5cGVvZiBFZGl0ID09PSAnZnVuY3Rpb24nXG4gICAgICA/IEVkaXRcbiAgICAgIDogdHlwZW9mIEVkaXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBFZGl0LkRlZmF1bHQgPT09ICdmdW5jdGlvbidcbiAgICAgID8gRWRpdC5EZWZhdWx0XG4gICAgICA6IHR5cGVvZiBFZGl0Py5EZWZhdWx0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgRWRpdC5EZWZhdWx0LkNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBFZGl0LkRlZmF1bHQuQ29tcG9uZW50XG4gICAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IFtmaWVsZHMsIHNldEZpZWxkc10gPSB1c2VTdGF0ZSgoKSA9PiBmb3JtYXRGaWVsZHMoY29sbGVjdGlvbkNvbmZpZywgdHJ1ZSkpXG5cbiAgLy8gbm8gbmVlZCB0byBhbiBhZGRpdGlvbmFsIHJlcXVlc3RzIHdoZW4gY3JlYXRpbmcgbmV3IGRvY3VtZW50c1xuICBjb25zdCBpbml0aWFsSUQgPSB1c2VSZWYoaWQpXG4gIGNvbnN0IFt7IGRhdGEsIGlzRXJyb3IsIGlzTG9hZGluZzogaXNMb2FkaW5nRG9jdW1lbnQgfV0gPSB1c2VQYXlsb2FkQVBJKFxuICAgIGluaXRpYWxJRC5jdXJyZW50ID8gYCR7c2VydmVyVVJMfSR7YXBpfS8ke2NvbGxlY3Rpb25TbHVnfS8ke2luaXRpYWxJRC5jdXJyZW50fWAgOiBudWxsLFxuICAgIHsgaW5pdGlhbFBhcmFtczogeyBkZXB0aDogMCwgZHJhZnQ6ICd0cnVlJywgJ2ZhbGxiYWNrLWxvY2FsZSc6ICdudWxsJyB9IH0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldEZpZWxkcyhmb3JtYXRGaWVsZHMoY29sbGVjdGlvbkNvbmZpZywgdHJ1ZSkpXG4gIH0sIFtjb2xsZWN0aW9uU2x1ZywgY29sbGVjdGlvbkNvbmZpZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nRG9jdW1lbnQgfHwgaGFzSW5pdGlhbGl6ZWRTdGF0ZS5jdXJyZW50KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBhd2FpdEluaXRpYWxTdGF0ZSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHByZWZlcmVuY2VzID0gYXdhaXQgZ2V0RG9jUHJlZmVyZW5jZXMoKVxuICAgICAgY29uc3Qgc3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGZpZWxkU2NoZW1hOiBmaWVsZHMsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uOiBpZCA/ICd1cGRhdGUnIDogJ2NyZWF0ZScsXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIHNldEludGVybmFsU3RhdGUoc3RhdGUpXG4gICAgfVxuXG4gICAgYXdhaXRJbml0aWFsU3RhdGUoKVxuICAgIGhhc0luaXRpYWxpemVkU3RhdGUuY3VycmVudCA9IHRydWVcbiAgfSwgW2RhdGEsIGZpZWxkcywgaWQsIHVzZXIsIGxvY2FsZSwgaXNMb2FkaW5nRG9jdW1lbnQsIHQsIGdldERvY1ByZWZlcmVuY2VzLCBjb25maWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0SXNPcGVuKEJvb2xlYW4obW9kYWxTdGF0ZVtkcmF3ZXJTbHVnXT8uaXNPcGVuKSlcbiAgfSwgW21vZGFsU3RhdGUsIGRyYXdlclNsdWddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3BlbiAmJiAhaXNMb2FkaW5nRG9jdW1lbnQgJiYgaXNFcnJvcikge1xuICAgICAgY2xvc2VNb2RhbChkcmF3ZXJTbHVnKVxuICAgICAgdG9hc3QuZXJyb3IoZGF0YS5lcnJvcnM/LlswXS5tZXNzYWdlIHx8IHQoJ2Vycm9yOnVuc3BlY2lmaWMnKSlcbiAgICB9XG4gIH0sIFtpc0Vycm9yLCB0LCBpc09wZW4sIGRhdGEsIGRyYXdlclNsdWcsIGNsb3NlTW9kYWwsIGlzTG9hZGluZ0RvY3VtZW50XSlcblxuICBpZiAoaXNFcnJvcikgcmV0dXJuIG51bGxcblxuICBjb25zdCBpc0VkaXRpbmcgPSBCb29sZWFuKGlkKVxuXG4gIGNvbnN0IGFwaVVSTCA9IGlkID8gYCR7c2VydmVyVVJMfSR7YXBpfS8ke2NvbGxlY3Rpb25TbHVnfS8ke2lkfT9sb2NhbGU9JHtsb2NhbGV9YCA6IG51bGxcblxuICBjb25zdCBhY3Rpb24gPSBgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7Y29sbGVjdGlvblNsdWd9JHtcbiAgICBpc0VkaXRpbmcgPyBgLyR7aWR9YCA6ICcnXG4gIH0/JHtmb3JtYXR0ZWRRdWVyeVBhcmFtc31gXG5cbiAgY29uc3QgaGFzU2F2ZVBlcm1pc3Npb24gPVxuICAgIChpc0VkaXRpbmcgJiYgZG9jUGVybWlzc2lvbnM/LnVwZGF0ZT8ucGVybWlzc2lvbikgfHxcbiAgICAoIWlzRWRpdGluZyAmJiAoZG9jUGVybWlzc2lvbnMgYXMgQ29sbGVjdGlvblBlcm1pc3Npb24pPy5jcmVhdGU/LnBlcm1pc3Npb24pXG5cbiAgY29uc3QgaXNMb2FkaW5nID0gIWludGVybmFsU3RhdGUgfHwgIWRvY1Blcm1pc3Npb25zIHx8IGlzTG9hZGluZ0RvY3VtZW50XG5cbiAgcmV0dXJuIChcbiAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICBDdXN0b21Db21wb25lbnQ9e0N1c3RvbUVkaXRWaWV3fVxuICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdEVkaXR9XG4gICAgICBjb21wb25lbnRQcm9wcz17e1xuICAgICAgICBpZCxcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBhcGlVUkwsXG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGN1c3RvbUhlYWRlcjogKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXJgfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItY29udGVudGB9PlxuICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItdGV4dGB9PlxuICAgICAgICAgICAgICAgIHshY3VzdG9tSGVhZGVyXG4gICAgICAgICAgICAgICAgICA/IHQoIWlkID8gJ2ZpZWxkczphZGROZXdMYWJlbCcgOiAnZ2VuZXJhbDplZGl0TGFiZWwnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGNvbGxlY3Rpb25Db25maWcubGFiZWxzLnNpbmd1bGFyLCBpMThuKSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIDogY3VzdG9tSGVhZGVyfVxuICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnZ2VuZXJhbDpjbG9zZScpfVxuICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19oZWFkZXItY2xvc2VgfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZU1vZGFsKGRyYXdlclNsdWcpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFggLz5cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtpZCAmJiA8SURMYWJlbCBpZD17aWQudG9TdHJpbmcoKX0gLz59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICksXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRpc2FibGVBY3Rpb25zOiB0cnVlLFxuICAgICAgICBkaXNhYmxlTGVhdmVXaXRob3V0U2F2aW5nOiB0cnVlLFxuICAgICAgICBkaXNhYmxlUm91dGVzOiB0cnVlLFxuICAgICAgICBmaWVsZFR5cGVzLFxuICAgICAgICBoYXNTYXZlUGVybWlzc2lvbixcbiAgICAgICAgaW50ZXJuYWxTdGF0ZSxcbiAgICAgICAgaXNFZGl0aW5nLFxuICAgICAgICBpc0xvYWRpbmcsXG4gICAgICAgIG1lOiB0cnVlLFxuICAgICAgICBvblNhdmUsXG4gICAgICAgIHBlcm1pc3Npb25zOiBkb2NQZXJtaXNzaW9ucyxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuXG4vLyBGaXJzdCBwcm92aWRlIHRoZSBkb2N1bWVudCBjb250ZXh0IHVzaW5nIGBEb2N1bWVudEluZm9Qcm92aWRlcmBcbi8vIHRoaXMgaXMgc28gd2UgY2FuIHV0aWxpemUgdGhlIGB1c2VEb2N1bWVudEluZm9gIGhvb2sgaW4gdGhlIGBDb250ZW50YCBjb21wb25lbnRcbi8vIHRoaXMgZHJhd2VyIGlzIHVzZWQgZm9yIGJvdGggY3JlYXRpbmcgYW5kIGVkaXRpbmcgZG9jdW1lbnRzXG4vLyB0aGlzIG1lYW5zIHRoYXQgdGhlIGBpZGAgbWF5IGJlIHVua25vd24gdW50aWwgdGhlIGRvY3VtZW50IGlzIGNyZWF0ZWRcbmV4cG9ydCBjb25zdCBEb2N1bWVudERyYXdlckNvbnRlbnQ6IFJlYWN0LkZDPERvY3VtZW50RHJhd2VyUHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgaWQ6IGlkRnJvbVByb3BzLCBjb2xsZWN0aW9uU2x1Zywgb25TYXZlOiBvblNhdmVGcm9tUHJvcHMgfSA9IHByb3BzXG4gIGNvbnN0IFtjb2xsZWN0aW9uQ29uZmlnXSA9IHVzZVJlbGF0ZWRDb2xsZWN0aW9ucyhjb2xsZWN0aW9uU2x1ZylcbiAgY29uc3QgW2lkLCBzZXRJZF0gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihpZEZyb21Qcm9wcylcblxuICBjb25zdCBvblNhdmUgPSB1c2VDYWxsYmFjazxEb2N1bWVudERyYXdlclByb3BzWydvblNhdmUnXT4oXG4gICAgKGFyZ3MpID0+IHtcbiAgICAgIHNldElkKGFyZ3MuZG9jLmlkKVxuXG4gICAgICBpZiAodHlwZW9mIG9uU2F2ZUZyb21Qcm9wcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvblNhdmVGcm9tUHJvcHMoe1xuICAgICAgICAgIC4uLmFyZ3MsXG4gICAgICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvblNhdmVGcm9tUHJvcHMsIGNvbGxlY3Rpb25Db25maWddLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8RG9jdW1lbnRJbmZvUHJvdmlkZXIgY29sbGVjdGlvbj17Y29sbGVjdGlvbkNvbmZpZ30gaWQ9e2lkfT5cbiAgICAgIDxDb250ZW50IHsuLi5wcm9wc30gb25TYXZlPXtvblNhdmV9IC8+XG4gICAgPC9Eb2N1bWVudEluZm9Qcm92aWRlcj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkRvY3VtZW50RHJhd2VyQ29udGVudCIsIkNvbnRlbnQiLCJjb2xsZWN0aW9uU2x1ZyIsImN1c3RvbUhlYWRlciIsImRyYXdlclNsdWciLCJvblNhdmUiLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJjbG9zZU1vZGFsIiwibW9kYWxTdGF0ZSIsInRvZ2dsZU1vZGFsIiwidXNlTW9kYWwiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwidXNlciIsInVzZUF1dGgiLCJpbnRlcm5hbFN0YXRlIiwic2V0SW50ZXJuYWxTdGF0ZSIsInVzZVN0YXRlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImhhc0luaXRpYWxpemVkU3RhdGUiLCJ1c2VSZWYiLCJpc09wZW4iLCJzZXRJc09wZW4iLCJjb2xsZWN0aW9uQ29uZmlnIiwidXNlUmVsYXRlZENvbGxlY3Rpb25zIiwiY29uZmlnIiwiZm9ybVF1ZXJ5UGFyYW1zIiwidXNlRm9ybVF1ZXJ5UGFyYW1zIiwiZm9ybWF0dGVkUXVlcnlQYXJhbXMiLCJxdWVyeVN0cmluZyIsInN0cmluZ2lmeSIsImFkbWluIiwiY29tcG9uZW50cyIsInZpZXdzIiwiRWRpdCIsImlkIiwiZG9jUGVybWlzc2lvbnMiLCJnZXREb2NQcmVmZXJlbmNlcyIsInVzZURvY3VtZW50SW5mbyIsIkN1c3RvbUVkaXRWaWV3IiwiRGVmYXVsdCIsIkNvbXBvbmVudCIsInVuZGVmaW5lZCIsImZpZWxkcyIsInNldEZpZWxkcyIsImZvcm1hdEZpZWxkcyIsImluaXRpYWxJRCIsImRhdGEiLCJpc0Vycm9yIiwiaXNMb2FkaW5nIiwiaXNMb2FkaW5nRG9jdW1lbnQiLCJ1c2VQYXlsb2FkQVBJIiwiY3VycmVudCIsImluaXRpYWxQYXJhbXMiLCJkZXB0aCIsImRyYWZ0IiwidXNlRWZmZWN0IiwiYXdhaXRJbml0aWFsU3RhdGUiLCJwcmVmZXJlbmNlcyIsInN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJmaWVsZFNjaGVtYSIsIm9wZXJhdGlvbiIsIkJvb2xlYW4iLCJ0b2FzdCIsImVycm9yIiwiZXJyb3JzIiwibWVzc2FnZSIsImlzRWRpdGluZyIsImFwaVVSTCIsImFjdGlvbiIsImhhc1NhdmVQZXJtaXNzaW9uIiwidXBkYXRlIiwicGVybWlzc2lvbiIsImNyZWF0ZSIsIlJlbmRlckN1c3RvbUNvbXBvbmVudCIsIkN1c3RvbUNvbXBvbmVudCIsIkRlZmF1bHRDb21wb25lbnQiLCJEZWZhdWx0RWRpdCIsImNvbXBvbmVudFByb3BzIiwiY29sbGVjdGlvbiIsImRpdiIsImNsYXNzTmFtZSIsImJhc2VDbGFzcyIsImgyIiwibGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVscyIsInNpbmd1bGFyIiwiQnV0dG9uIiwiYXJpYS1sYWJlbCIsImJ1dHRvblN0eWxlIiwib25DbGljayIsIlgiLCJJRExhYmVsIiwidG9TdHJpbmciLCJkaXNhYmxlQWN0aW9ucyIsImRpc2FibGVMZWF2ZVdpdGhvdXRTYXZpbmciLCJkaXNhYmxlUm91dGVzIiwiZmllbGRUeXBlcyIsIm1lIiwicGVybWlzc2lvbnMiLCJwcm9wcyIsImlkRnJvbVByb3BzIiwib25TYXZlRnJvbVByb3BzIiwic2V0SWQiLCJ1c2VDYWxsYmFjayIsImFyZ3MiLCJkb2MiLCJEb2N1bWVudEluZm9Qcm92aWRlciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF5TGFBOzs7ZUFBQUE7Ozt1QkF6TFk7MkRBQ0Q7K0RBQ3dDOzhCQUNqQzsrQkFDVDtrQkFNSTtnQ0FDSztzRUFDTDs2RUFDTzs0QkFDTjt1Q0FDVzswREFDeEI7c0JBQ1U7d0JBQ0U7OEJBQzRCO2lDQUNuQjt3QkFDVDs4RUFDUTtnRUFDVjtxRUFDQzsrREFDTjtnRUFDQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBCLE1BQU1DLFVBQXlDLENBQUMsRUFDOUNDLGNBQWMsRUFDZEMsWUFBWSxFQUNaQyxVQUFVLEVBQ1ZDLE1BQU0sRUFDUDtJQUNDLE1BQU0sRUFDSkMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsRUFDZkMsU0FBUyxFQUNWLEdBQUdDLElBQUFBLGlCQUFTO0lBQ2IsTUFBTSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxFQUFFLEdBQUdDLElBQUFBLGVBQVE7SUFDeEQsTUFBTSxFQUFFQyxNQUFNQyxNQUFNLEVBQUUsR0FBR0MsSUFBQUEsaUJBQVM7SUFDbEMsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsSUFBQUEsYUFBTztJQUN4QixNQUFNLENBQUNDLGVBQWVDLGlCQUFpQixHQUFHQyxJQUFBQSxlQUFRO0lBQ2xELE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWMsRUFBQztRQUFDO1FBQVU7S0FBVTtJQUN4RCxNQUFNQyxzQkFBc0JDLElBQUFBLGFBQU0sRUFBQztJQUNuQyxNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR1AsSUFBQUEsZUFBUSxFQUFDO0lBQ3JDLE1BQU0sQ0FBQ1EsaUJBQWlCLEdBQUdDLElBQUFBLDRDQUFxQixFQUFDNUI7SUFDakQsTUFBTTZCLFNB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
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { CollectionPermission, GlobalPermission } from '../../../../auth';
3
+ import type { FieldWithPath } from '../../../../fields/config/types';
4
+ import type { Description } from '../../forms/FieldDescription/types';
5
+ import type { FieldTypes } from '../../forms/field-types';
6
+ import './index.scss';
7
+ export declare const DocumentFields: React.FC<{
8
+ AfterFields?: React.ReactNode;
9
+ BeforeFields?: React.ReactNode;
10
+ description?: Description;
11
+ fieldTypes: FieldTypes;
12
+ fields: FieldWithPath[];
13
+ hasSavePermission: boolean;
14
+ permissions: CollectionPermission | GlobalPermission;
15
+ }>;
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAMzD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,CAAA;CACrD,CAwEA,CAAA"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "DocumentFields", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return DocumentFields;
9
+ }
10
+ });
11
+ const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
+ const _RenderFields = /*#__PURE__*/ _interop_require_default(require("../../forms/RenderFields"));
13
+ const _filterFields = require("../../forms/RenderFields/filterFields");
14
+ const _Gutter = require("../Gutter");
15
+ const _ViewDescription = /*#__PURE__*/ _interop_require_default(require("../ViewDescription"));
16
+ require("./index.scss");
17
+ function _interop_require_default(obj) {
18
+ return obj && obj.__esModule ? obj : {
19
+ default: obj
20
+ };
21
+ }
22
+ const baseClass = 'document-fields';
23
+ const DocumentFields = (props)=>{
24
+ const { AfterFields, BeforeFields, description, fieldTypes, fields, hasSavePermission, permissions } = props;
25
+ const sidebarFields = (0, _filterFields.filterFields)({
26
+ fieldSchema: fields,
27
+ fieldTypes,
28
+ filter: (field)=>field?.admin?.position === 'sidebar',
29
+ permissions: permissions.fields,
30
+ readOnly: !hasSavePermission
31
+ });
32
+ const hasSidebar = sidebarFields && sidebarFields.length > 0;
33
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement("div", {
34
+ className: [
35
+ baseClass,
36
+ hasSidebar ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`
37
+ ].filter(Boolean).join(' ')
38
+ }, /*#__PURE__*/ _react.default.createElement("div", {
39
+ className: `${baseClass}__main`
40
+ }, /*#__PURE__*/ _react.default.createElement(_Gutter.Gutter, {
41
+ className: `${baseClass}__edit`
42
+ }, /*#__PURE__*/ _react.default.createElement("header", {
43
+ className: `${baseClass}__header`
44
+ }, description && /*#__PURE__*/ _react.default.createElement("div", {
45
+ className: `${baseClass}__sub-header`
46
+ }, /*#__PURE__*/ _react.default.createElement(_ViewDescription.default, {
47
+ description: description
48
+ }))), BeforeFields || null, /*#__PURE__*/ _react.default.createElement(_RenderFields.default, {
49
+ className: `${baseClass}__fields`,
50
+ fieldSchema: fields,
51
+ fieldTypes: fieldTypes,
52
+ filter: (field)=>!field.admin.position || field.admin.position && field.admin.position !== 'sidebar',
53
+ permissions: permissions.fields,
54
+ readOnly: !hasSavePermission
55
+ }), AfterFields || null)), hasSidebar && /*#__PURE__*/ _react.default.createElement("div", {
56
+ className: `${baseClass}__sidebar-wrap`
57
+ }, /*#__PURE__*/ _react.default.createElement("div", {
58
+ className: `${baseClass}__sidebar`
59
+ }, /*#__PURE__*/ _react.default.createElement("div", {
60
+ className: `${baseClass}__sidebar-fields`
61
+ }, /*#__PURE__*/ _react.default.createElement(_RenderFields.default, {
62
+ fieldTypes: fieldTypes,
63
+ fields: sidebarFields,
64
+ permissions: permissions.fields,
65
+ readOnly: !hasSavePermission
66
+ }))))));
67
+ };
68
+
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0RvY3VtZW50RmllbGRzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvblBlcm1pc3Npb24sIEdsb2JhbFBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZFdpdGhQYXRoIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRGVzY3JpcHRpb24gfSBmcm9tICcuLi8uLi9mb3Jtcy9GaWVsZERlc2NyaXB0aW9uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZFR5cGVzIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGQtdHlwZXMnXG5cbmltcG9ydCBSZW5kZXJGaWVsZHMgZnJvbSAnLi4vLi4vZm9ybXMvUmVuZGVyRmllbGRzJ1xuaW1wb3J0IHsgZmlsdGVyRmllbGRzIH0gZnJvbSAnLi4vLi4vZm9ybXMvUmVuZGVyRmllbGRzL2ZpbHRlckZpZWxkcydcbmltcG9ydCB7IEd1dHRlciB9IGZyb20gJy4uL0d1dHRlcidcbmltcG9ydCBWaWV3RGVzY3JpcHRpb24gZnJvbSAnLi4vVmlld0Rlc2NyaXB0aW9uJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdkb2N1bWVudC1maWVsZHMnXG5cbmV4cG9ydCBjb25zdCBEb2N1bWVudEZpZWxkczogUmVhY3QuRkM8e1xuICBBZnRlckZpZWxkcz86IFJlYWN0LlJlYWN0Tm9kZVxuICBCZWZvcmVGaWVsZHM/OiBSZWFjdC5SZWFjdE5vZGVcbiAgZGVzY3JpcHRpb24/OiBEZXNjcmlwdGlvblxuICBmaWVsZFR5cGVzOiBGaWVsZFR5cGVzXG4gIGZpZWxkczogRmllbGRXaXRoUGF0aFtdXG4gIGhhc1NhdmVQZXJtaXNzaW9uOiBib29sZWFuXG4gIHBlcm1pc3Npb25zOiBDb2xsZWN0aW9uUGVybWlzc2lvbiB8IEdsb2JhbFBlcm1pc3Npb25cbn0+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBBZnRlckZpZWxkcyxcbiAgICBCZWZvcmVGaWVsZHMsXG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmllbGRUeXBlcyxcbiAgICBmaWVsZHMsXG4gICAgaGFzU2F2ZVBlcm1pc3Npb24sXG4gICAgcGVybWlzc2lvbnMsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHNpZGViYXJGaWVsZHMgPSBmaWx0ZXJGaWVsZHMoe1xuICAgIGZpZWxkU2NoZW1hOiBmaWVsZHMsXG4gICAgZmllbGRUeXBlcyxcbiAgICBmaWx0ZXI6IChmaWVsZCkgPT4gZmllbGQ/LmFkbWluPy5wb3NpdGlvbiA9PT0gJ3NpZGViYXInLFxuICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9ucy5maWVsZHMsXG4gICAgcmVhZE9ubHk6ICFoYXNTYXZlUGVybWlzc2lvbixcbiAgfSlcblxuICBjb25zdCBoYXNTaWRlYmFyID0gc2lkZWJhckZpZWxkcyAmJiBzaWRlYmFyRmllbGRzLmxlbmd0aCA+IDBcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgICAgYmFzZUNsYXNzLFxuICAgICAgICAgIGhhc1NpZGViYXIgPyBgJHtiYXNlQ2xhc3N9LS1oYXMtc2lkZWJhcmAgOiBgJHtiYXNlQ2xhc3N9LS1uby1zaWRlYmFyYCxcbiAgICAgICAgXVxuICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAuam9pbignICcpfVxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbWFpbmB9PlxuICAgICAgICAgIDxHdXR0ZXIgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lZGl0YH0+XG4gICAgICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9faGVhZGVyYH0+XG4gICAgICAgICAgICAgIHtkZXNjcmlwdGlvbiAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3N1Yi1oZWFkZXJgfT5cbiAgICAgICAgICAgICAgICAgIDxWaWV3RGVzY3JpcHRpb24gZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufSAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgICAgICB7QmVmb3JlRmllbGRzIHx8IG51bGx9XG4gICAgICAgICAgICA8UmVuZGVyRmllbGRzXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmllbGRzYH1cbiAgICAgICAgICAgICAgZmllbGRTY2hlbWE9e2ZpZWxkc31cbiAgICAgICAgICAgICAgZmllbGRUeXBlcz17ZmllbGRUeXBlc31cbiAgICAgICAgICAgICAgZmlsdGVyPXsoZmllbGQpID0+XG4gICAgICAgICAgICAgICAgIWZpZWxkLmFkbWluLnBvc2l0aW9uIHx8XG4gICAgICAgICAgICAgICAgKGZpZWxkLmFkbWluLnBvc2l0aW9uICYmIGZpZWxkLmFkbWluLnBvc2l0aW9uICE9PSAnc2lkZWJhcicpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcGVybWlzc2lvbnM9e3Blcm1pc3Npb25zLmZpZWxkc31cbiAgICAgICAgICAgICAgcmVhZE9ubHk9eyFoYXNTYXZlUGVybWlzc2lvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB7QWZ0ZXJGaWVsZHMgfHwgbnVsbH1cbiAgICAgICAgICA8L0d1dHRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtoYXNTaWRlYmFyICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhci13cmFwYH0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhcmB9PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2lkZWJhci1maWVsZHNgfT5cbiAgICAgICAgICAgICAgICA8UmVuZGVyRmllbGRzXG4gICAgICAgICAgICAgICAgICBmaWVsZFR5cGVzPXtmaWVsZFR5cGVzfVxuICAgICAgICAgICAgICAgICAgZmllbGRzPXtzaWRlYmFyRmllbGRzfVxuICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM9e3Blcm1pc3Npb25zLmZpZWxkc31cbiAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXshaGFzU2F2ZVBlcm1pc3Npb259XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJEb2N1bWVudEZpZWxkcyIsImJhc2VDbGFzcyIsInByb3BzIiwiQWZ0ZXJGaWVsZHMiLCJCZWZvcmVGaWVsZHMiLCJkZXNjcmlwdGlvbiIsImZpZWxkVHlwZXMiLCJmaWVsZHMiLCJoYXNTYXZlUGVybWlzc2lvbiIsInBlcm1pc3Npb25zIiwic2lkZWJhckZpZWxkcyIsImZpbHRlckZpZWxkcyIsImZpZWxkU2NoZW1hIiwiZmlsdGVyIiwiZmllbGQiLCJhZG1pbiIsInBvc2l0aW9uIiwicmVhZE9ubHkiLCJoYXNTaWRlYmFyIiwibGVuZ3RoIiwiUmVhY3QiLCJGcmFnbWVudCIsImRpdiIsImNsYXNzTmFtZSIsIkJvb2xlYW4iLCJqb2luIiwiR3V0dGVyIiwiaGVhZGVyIiwiVmlld0Rlc2NyaXB0aW9uIiwiUmVuZGVyRmllbGRzIl0sIm1hcHBpbmdzIjoiOzs7OytCQWVhQTs7O2VBQUFBOzs7OERBZks7cUVBT087OEJBQ0k7d0JBQ047d0VBQ0s7UUFDckI7Ozs7OztBQUVQLE1BQU1DLFlBQVk7QUFFWCxNQUFNRCxpQkFRUixDQUFDRTtJQUNKLE1BQU0sRUFDSkMsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLGlCQUFpQixFQUNqQkMsV0FBVyxFQUNaLEdBQUdQO0lBRUosTUFBTVEsZ0JBQWdCQyxJQUFBQSwwQkFBWSxFQUFDO1FBQ2pDQyxhQUFhTDtRQUNiRDtRQUNBTyxRQUFRLENBQUNDLFFBQVVBLE9BQU9DLE9BQU9DLGFBQWE7UUFDOUNQLGFBQWFBLFlBQVlGLE1BQU07UUFDL0JVLFVBQVUsQ0FBQ1Q7SUFDYjtJQUVBLE1BQU1VLGFBQWFSLGlCQUFpQkEsY0FBY1MsTUFBTSxHQUFHO0lBRTNELHFCQUNFLDZCQUFDQyxjQUFLLENBQUNDLFFBQVEsc0JBQ2IsNkJBQUNDO1FBQ0NDLFdBQVc7WUFDVHRCO1lBQ0FpQixhQUFhLENBQUMsRUFBRWpCLFVBQVUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxVQUFVLFlBQVksQ0FBQztTQUN0RSxDQUNFWSxNQUFNLENBQUNXLFNBQ1BDLElBQUksQ0FBQztxQkFFUiw2QkFBQ0g7UUFBSUMsV0FBVyxDQUFDLEVBQUV0QixVQUFVLE1BQU0sQ0FBQztxQkFDbEMsNkJBQUN5QixjQUFNO1FBQUNILFdBQVcsQ0FBQyxFQUFFdEIsVUFBVSxNQUFNLENBQUM7cUJBQ3JDLDZCQUFDMEI7UUFBT0osV0FBVyxDQUFDLEVBQUV0QixVQUFVLFFBQVEsQ0FBQztPQUN0Q0ksNkJBQ0MsNkJBQUNpQjtRQUFJQyxXQUFXLENBQUMsRUFBRXRCLFVBQVUsWUFBWSxDQUFDO3FCQUN4Qyw2QkFBQzJCLHdCQUFlO1FBQUN2QixhQUFhQTtVQUluQ0QsZ0JBQWdCLG9CQUNqQiw2QkFBQ3lCLHFCQUFZO1FBQ1hOLFdBQVcsQ0FBQyxFQUFFdEIsVUFBVSxRQUFRLENBQUM7UUFDakNXLGFBQWFMO1FBQ2JELFlBQVlBO1FBQ1pPLFFBQVEsQ0FBQ0MsUUFDUCxDQUFDQSxNQUFNQyxLQUFLLENBQUNDLFFBQVEsSUFDcEJGLE1BQU1DLEtBQUssQ0FBQ0MsUUFBUSxJQUFJRixNQUFNQyxLQUFLLENBQUNDLFFBQVEsS0FBSztRQUVwRFAsYUFBYUEsWUFBWUYsTUFBTTtRQUMvQlUsVUFBVSxDQUFDVDtRQUVaTCxlQUFlLFFBR25CZSw0QkFDQyw2QkFBQ0k7UUFBSUMsV0FBVyxDQUFDLEVBQUV0QixVQUFVLGNBQWMsQ0FBQztxQkFDMUMsNkJBQUNxQjtRQUFJQyxXQUFXLENBQUMsRUFBRXRCLFVBQVUsU0FBUyxDQUFDO3FCQUNyQyw2QkFBQ3FCO1FBQUlDLFdBQVcsQ0FBQyxFQUFFdEIsVUFBVSxnQkFBZ0IsQ0FBQztxQkFDNUMsNkJBQUM0QixxQkFBWTtRQUNYdkIsWUFBWUE7UUFDWkMsUUFBUUc7UUFDUkQsYUFBYUEsWUFBWUYsTUFBTTtRQUMvQlUsVUFBVSxDQUFDVDs7QUFTN0IifQ==
@@ -1,12 +1,16 @@
1
- @import '../../../../scss/styles.scss';
1
+ @import '../../../scss/styles.scss';
2
2
 
3
- .global-default-edit {
3
+ .document-fields {
4
4
  width: 100%;
5
5
  display: flex;
6
6
  --doc-sidebar-width: 325px;
7
7
 
8
8
  &--has-sidebar {
9
- .global-default-edit {
9
+ .document-fields {
10
+ &__main {
11
+ width: 66.66%;
12
+ }
13
+
10
14
  &__edit {
11
15
  [dir='ltr'] & {
12
16
  top: 0;
@@ -46,25 +50,19 @@
46
50
  flex-grow: 1;
47
51
  }
48
52
 
49
- &__auth {
50
- margin-bottom: var(--base);
51
- }
52
-
53
53
  &__sidebar-wrap {
54
54
  position: sticky;
55
55
  top: var(--doc-controls-height);
56
56
  width: 33.33%;
57
57
  height: calc(100vh - var(--doc-controls-height));
58
58
  min-width: var(--doc-sidebar-width);
59
+ flex-shrink: 0;
59
60
  }
60
61
 
61
62
  &__sidebar {
62
63
  width: 100%;
63
64
  height: 100%;
64
65
  overflow-y: auto;
65
- }
66
-
67
- &__sidebar-sticky-wrap {
68
66
  display: flex;
69
67
  flex-direction: column;
70
68
  min-height: 100%;
@@ -88,7 +86,7 @@
88
86
  display: block;
89
87
 
90
88
  &--has-sidebar {
91
- .global-default-edit {
89
+ .document-fields {
92
90
  &__main {
93
91
  width: 100%;
94
92
  }
@@ -124,8 +122,6 @@
124
122
  width: 100%;
125
123
  height: initial;
126
124
  border-left: 0;
127
- margin-top: calc(var(--base) / 2);
128
- width: var(--doc-sidebar-width);
129
125
  }
130
126
 
131
127
  &__form {
@@ -136,6 +132,7 @@
136
132
  padding-top: 0;
137
133
  padding-left: var(--gutter-h);
138
134
  padding-right: var(--gutter-h);
135
+ padding-bottom: 0;
139
136
  gap: base(0.5);
140
137
 
141
138
  [dir='ltr'] & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASpC,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4L9B,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASpC,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8L9B,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -98,6 +98,7 @@ const Duplicate = ({ id, collection, slug })=>{
98
98
  if ('updatedAt' in data) delete data.updatedAt;
99
99
  if (typeof collection.admin.hooks?.beforeDuplicate === 'function') {
100
100
  data = await collection.admin.hooks.beforeDuplicate({
101
+ collection,
101
102
  data,
102
103
  locale
103
104
  });
@@ -135,6 +136,7 @@ const Duplicate = ({ id, collection, slug })=>{
135
136
  let localizedDoc = await res.json();
136
137
  if (typeof collection.admin.hooks?.beforeDuplicate === 'function') {
137
138
  localizedDoc = await collection.admin.hooks.beforeDuplicate({
139
+ collection,
138
140
  data: localizedDoc,
139
141
  locale
140
142
  });
@@ -217,4 +219,4 @@ const Duplicate = ({ id, collection, slug })=>{
217
219
  };
218
220
  const _default = Duplicate;
219
221
 
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0R1cGxpY2F0ZURvY3VtZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RhbCwgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9nZXRUcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHsgdXNlRm9ybSwgdXNlRm9ybU1vZGlmaWVkIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS9jb250ZXh0J1xuaW1wb3J0IE1pbmltYWxUZW1wbGF0ZSBmcm9tICcuLi8uLi90ZW1wbGF0ZXMvTWluaW1hbCdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Db25maWcnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCAqIGFzIFBvcHVwTGlzdCBmcm9tICcuLi9Qb3B1cC9Qb3B1cEJ1dHRvbkxpc3QnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2R1cGxpY2F0ZSdcblxuY29uc3QgRHVwbGljYXRlOiBSZWFjdC5GQzxQcm9wcz4gPSAoeyBpZCwgY29sbGVjdGlvbiwgc2x1ZyB9KSA9PiB7XG4gIGNvbnN0IHsgcHVzaCB9ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IG1vZGlmaWVkID0gdXNlRm9ybU1vZGlmaWVkKClcbiAgY29uc3QgeyB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHNldE1vZGlmaWVkIH0gPSB1c2VGb3JtKClcbiAgY29uc3Qge1xuICAgIGxvY2FsaXphdGlvbixcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhZG1pbiB9LFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgW2hhc0NsaWNrZWQsIHNldEhhc0NsaWNrZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2dlbmVyYWwnKVxuXG4gIGNvbnN0IG1vZGFsU2x1ZyA9IGBkdXBsaWNhdGUtJHtpZH1gXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAob3ZlcnJpZGUgPSBmYWxzZSkgPT4ge1xuICAgICAgc2V0SGFzQ2xpY2tlZCh0cnVlKVxuXG4gICAgICBpZiAobW9kaWZpZWQgJiYgIW92ZXJyaWRlKSB7XG4gICAgICAgIHRvZ2dsZU1vZGFsKG1vZGFsU2x1ZylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZSA9IGFzeW5jIChsb2NhbGUgPSAnJyk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4gPT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RzLmdldChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z30vJHtpZH1gLCB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgZHJhZnQ6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgICBpZiAoJ2NyZWF0ZWRBdCcgaW4gZGF0YSkgZGVsZXRlIGRhdGEuY3JlYXRlZEF0XG4gICAgICAgIGlmICgndXBkYXRlZEF0JyBpbiBkYXRhKSBkZWxldGUgZGF0YS51cGRhdGVkQXRcblxuICAgICAgICBpZiAodHlwZW9mIGNvbGxlY3Rpb24uYWRtaW4uaG9va3M/LmJlZm9yZUR1cGxpY2F0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRhdGEgPSBhd2FpdCBjb2xsZWN0aW9uLmFkbWluLmhvb2tzLmJlZm9yZUR1cGxpY2F0ZSh7XG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfWAsIHtcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlc3VsdC5qc29uKClcblxuICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gMjAxKSB7XG4gICAgICAgICAgcmV0dXJuIGpzb24uZG9jLmlkXG4gICAgICAgIH1cbiAgICAgICAganNvbi5lcnJvcnMuZm9yRWFjaCgoZXJyb3IpID0+IHRvYXN0LmVycm9yKGVycm9yLm1lc3NhZ2UpKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICBsZXQgZHVwbGljYXRlSURcblxuICAgICAgaWYgKGxvY2FsaXphdGlvbikge1xuICAgICAgICBkdXBsaWNhdGVJRCA9IGF3YWl0IGNyZWF0ZShsb2NhbGl6YXRpb24uZGVmYXVsdExvY2FsZSlcbiAgICAgICAgbGV0IGFib3J0ID0gZmFsc2VcblxuICAgICAgICBhd2FpdCBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXNcbiAgICAgICAgICAuZmlsdGVyKChsb2NhbGUpID0+IGxvY2FsZSAhPT0gbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGUpXG4gICAgICAgICAgLnJlZHVjZShhc3luYyAocHJpb3JMb2NhbGVQYXRjaCwgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCBwcmlvckxvY2FsZVBhdGNoXG5cbiAgICAgICAgICAgIGlmICghYWJvcnQpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgcmVxdWVzdHMuZ2V0KGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS8ke2lkfWAsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgbGV0IGxvY2FsaXplZERvYyA9IGF3YWl0IHJlcy5qc29uKClcblxuICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbGxlY3Rpb24uYWRtaW4uaG9va3M/LmJlZm9yZUR1cGxpY2F0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGxvY2FsaXplZERvYyA9IGF3YWl0IGNvbGxlY3Rpb24uYWRtaW4uaG9va3MuYmVmb3JlRHVwbGljYXRlKHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IGxvY2FsaXplZERvYyxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgcGF0Y2hSZXN1bHQgPSBhd2FpdCByZXF1ZXN0cy5wYXRjaChcbiAgICAgICAgICAgICAgICBgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z30vJHtkdXBsaWNhdGVJRH0/bG9jYWxlPSR7bG9jYWxlfWAsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkobG9jYWxpemVkRG9jKSxcbiAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKHBhdGNoUmVzdWx0LnN0YXR1cyA+IDQwMCkge1xuICAgICAgICAgICAgICAgIGFib3J0ID0gdHJ1ZVxuICAgICAgICAgICAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCBwYXRjaFJlc3VsdC5qc29uKClcbiAgICAgICAgICAgICAgICBqc29uLmVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4gdG9hc3QuZXJyb3IoZXJyb3IubWVzc2FnZSkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICBpZiAoYWJvcnQpIHtcbiAgICAgICAgICAvLyBkZWxldGUgdGhlIGR1cGxpY2F0ZSBkb2MgdG8gcHJldmVudCBpbmNvbXBsZXRlXG4gICAgICAgICAgYXdhaXQgcmVxdWVzdHMuZGVsZXRlKGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS8ke2lkfWAsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGR1cGxpY2F0ZUlEID0gYXdhaXQgY3JlYXRlKClcbiAgICAgIH1cblxuICAgICAgdG9hc3Quc3VjY2VzcyhcbiAgICAgICAgdCgnc3VjY2Vzc2Z1bGx5RHVwbGljYXRlZCcsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGNvbGxlY3Rpb24ubGFiZWxzLnNpbmd1bGFyLCBpMThuKSB9KSxcbiAgICAgICAgeyBhdXRvQ2xvc2U6IDMwMDAgfSxcbiAgICAgIClcblxuICAgICAgc2V0TW9kaWZpZWQoZmFsc2UpXG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBwdXNoKHtcbiAgICAgICAgICBwYXRobmFtZTogYCR7YWRtaW59L2NvbGxlY3Rpb25zLyR7c2x1Z30vJHtkdXBsaWNhdGVJRH1gLFxuICAgICAgICB9KVxuICAgICAgfSwgMTApXG4gICAgfSxcbiAgICBbXG4gICAgICBtb2RpZmllZCxcbiAgICAgIGxvY2FsaXphdGlvbixcbiAgICAgIHQsXG4gICAgICBpMThuLFxuICAgICAgY29sbGVjdGlvbixcbiAgICAgIHNldE1vZGlmaWVkLFxuICAgICAgdG9nZ2xlTW9kYWwsXG4gICAgICBtb2RhbFNsdWcsXG4gICAgICBzZXJ2ZXJVUkwsXG4gICAgICBhcGksXG4gICAgICBzbHVnLFxuICAgICAgaWQsXG4gICAgICBwdXNoLFxuICAgICAgYWRtaW4sXG4gICAgXSxcbiAgKVxuXG4gIGNvbnN0IGNvbmZpcm0gPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgc2V0SGFzQ2xpY2tlZChmYWxzZSlcbiAgICBhd2FpdCBoYW5kbGVDbGljayh0cnVlKVxuICB9LCBbaGFuZGxlQ2xpY2tdKVxuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPFBvcHVwTGlzdC5CdXR0b24gaWQ9XCJhY3Rpb24tZHVwbGljYXRlXCIgb25DbGljaz17KCkgPT4gaGFuZGxlQ2xpY2soZmFsc2UpfT5cbiAgICAgICAge3QoJ2R1cGxpY2F0ZScpfVxuICAgICAgPC9Qb3B1cExpc3QuQnV0dG9uPlxuICAgICAge21vZGlmaWVkICYmIGhhc0NsaWNrZWQgJiYgKFxuICAgICAgICA8TW9kYWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19tb2RhbGB9IHNsdWc9e21vZGFsU2x1Z30+XG4gICAgICAgICAgPE1pbmltYWxUZW1wbGF0ZSBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX21vZGFsLXRlbXBsYXRlYH0+XG4gICAgICAgICAgICA8aDE+e3QoJ2NvbmZpcm1EdXBsaWNhdGlvbicpfTwvaDE+XG4gICAgICAgICAgICA8cD57dCgndW5zYXZlZENoYW5nZXNEdXBsaWNhdGUnKX08L3A+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgaWQ9XCJjb25maXJtLWNhbmNlbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZU1vZGFsKG1vZGFsU2x1Zyl9XG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDxCdXR0b24gaWQ9XCJjb25maXJtLWR1cGxpY2F0ZVwiIG9uQ2xpY2s9e2NvbmZpcm19PlxuICAgICAgICAgICAgICB7dCgnZHVwbGljYXRlV2l0aG91dFNhdmluZycpfVxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9NaW5pbWFsVGVtcGxhdGU+XG4gICAgICAgIDwvTW9kYWw+XG4gICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRHVwbGljYXRlXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiRHVwbGljYXRlIiwiaWQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsInB1c2giLCJ1c2VIaXN0b3J5IiwibW9kaWZpZWQiLCJ1c2VGb3JtTW9kaWZpZWQiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwic2V0TW9kaWZpZWQiLCJ1c2VGb3JtIiwibG9jYWxpemF0aW9uIiwicm91dGVzIiwiYXBpIiwic2VydmVyVVJMIiwidXNlQ29uZmlnIiwiYWRtaW4iLCJoYXNDbGlja2VkIiwic2V0SGFzQ2xpY2tlZCIsInVzZVN0YXRlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsIm1vZGFsU2x1ZyIsImhhbmRsZUNsaWNrIiwidXNlQ2FsbGJhY2siLCJvdmVycmlkZSIsImNyZWF0ZSIsImxvY2FsZSIsInJlc3BvbnNlIiwicmVxdWVzdHMiLCJnZXQiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJwYXJhbXMiLCJkZXB0aCIsImRyYWZ0IiwiZGF0YSIsImpzb24iLCJjcmVhdGVkQXQiLCJ1cGRhdGVkQXQiLCJob29rcyIsImJlZm9yZUR1cGxpY2F0ZSIsInJlc3VsdCIsInBvc3QiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXR1cyIsImRvYyIsImVycm9ycyIsImZvckVhY2giLCJlcnJvciIsInRvYXN0IiwibWVzc2FnZSIsImR1cGxpY2F0ZUlEIiwiZGVmYXVsdExvY2FsZSIsImFib3J0IiwibG9jYWxlQ29kZXMiLCJmaWx0ZXIiLCJyZWR1Y2UiLCJwcmlvckxvY2FsZVBhdGNoIiwicmVzIiwibG9jYWxpemVkRG9jIiwicGF0Y2hSZXN1bHQiLCJwYXRjaCIsIlByb21pc2UiLCJyZXNvbHZlIiwiZGVsZXRlIiwic3VjY2VzcyIsImxhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsImF1dG9DbG9zZSIsInNldFRpbWVvdXQiLCJwYXRobmFtZSIsImNvbmZpcm0iLCJSZWFjdCIsIkZyYWdtZW50IiwiUG9wdXBMaXN0IiwiQnV0dG9uIiwib25DbGljayIsIk1vZGFsIiwiY2xhc3NOYW1lIiwiTWluaW1hbFRlbXBsYXRlIiwiaDEiLCJwIiwiYnV0dG9uU3R5bGUiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7OytCQWlOQTs7O2VBQUE7Ozt1QkFqTmdDOytEQUNhOzhCQUNkO2dDQUNKOytCQUNMO2dDQUlTO3FCQUNOO3lCQUNnQjtnRUFDYjt3QkFDRjsrREFDUDt5RUFDUTtRQUNwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxZQUE2QixDQUFDLEVBQUVDLEVBQUUsRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUU7SUFDMUQsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsSUFBQUEsMEJBQVU7SUFDM0IsTUFBTUMsV0FBV0MsSUFBQUEsd0JBQWU7SUFDaEMsTUFBTSxFQUFFQyxXQUFXLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUNoQyxNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxJQUFBQSxnQkFBTztJQUMvQixNQUFNLEVBQ0pDLFlBQVksRUFDWkMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsRUFDZkMsU0FBUyxFQUNWLEdBQUdDLElBQUFBLGlCQUFTO0lBQ2IsTUFBTSxFQUNKSCxRQUFRLEVBQUVJLEtBQUssRUFBRSxFQUNsQixHQUFHRCxJQUFBQSxpQkFBUztJQUNiLE1BQU0sQ0FBQ0UsWUFBWUMsY0FBYyxHQUFHQyxJQUFBQSxlQUFRLEVBQVU7SUFDdEQsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLENBQUMsRUFBRSxHQUFHQyxJQUFBQSw0QkFBYyxFQUFDO0lBRW5DLE1BQU1DLFlBQVksQ0FBQyxVQUFVLEVBQUV2QixHQUFHLENBQUM7SUFFbkMsTUFB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
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0R1cGxpY2F0ZURvY3VtZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RhbCwgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9nZXRUcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHsgdXNlRm9ybSwgdXNlRm9ybU1vZGlmaWVkIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS9jb250ZXh0J1xuaW1wb3J0IE1pbmltYWxUZW1wbGF0ZSBmcm9tICcuLi8uLi90ZW1wbGF0ZXMvTWluaW1hbCdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Db25maWcnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCAqIGFzIFBvcHVwTGlzdCBmcm9tICcuLi9Qb3B1cC9Qb3B1cEJ1dHRvbkxpc3QnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2R1cGxpY2F0ZSdcblxuY29uc3QgRHVwbGljYXRlOiBSZWFjdC5GQzxQcm9wcz4gPSAoeyBpZCwgY29sbGVjdGlvbiwgc2x1ZyB9KSA9PiB7XG4gIGNvbnN0IHsgcHVzaCB9ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IG1vZGlmaWVkID0gdXNlRm9ybU1vZGlmaWVkKClcbiAgY29uc3QgeyB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHNldE1vZGlmaWVkIH0gPSB1c2VGb3JtKClcbiAgY29uc3Qge1xuICAgIGxvY2FsaXphdGlvbixcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhZG1pbiB9LFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgW2hhc0NsaWNrZWQsIHNldEhhc0NsaWNrZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2dlbmVyYWwnKVxuXG4gIGNvbnN0IG1vZGFsU2x1ZyA9IGBkdXBsaWNhdGUtJHtpZH1gXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAob3ZlcnJpZGUgPSBmYWxzZSkgPT4ge1xuICAgICAgc2V0SGFzQ2xpY2tlZCh0cnVlKVxuXG4gICAgICBpZiAobW9kaWZpZWQgJiYgIW92ZXJyaWRlKSB7XG4gICAgICAgIHRvZ2dsZU1vZGFsKG1vZGFsU2x1ZylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNyZWF0ZSA9IGFzeW5jIChsb2NhbGUgPSAnJyk6IFByb21pc2U8bnVsbCB8IHN0cmluZz4gPT4ge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RzLmdldChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z30vJHtpZH1gLCB7XG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgZHJhZnQ6IHRydWUsXG4gICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgICBpZiAoJ2NyZWF0ZWRBdCcgaW4gZGF0YSkgZGVsZXRlIGRhdGEuY3JlYXRlZEF0XG4gICAgICAgIGlmICgndXBkYXRlZEF0JyBpbiBkYXRhKSBkZWxldGUgZGF0YS51cGRhdGVkQXRcblxuICAgICAgICBpZiAodHlwZW9mIGNvbGxlY3Rpb24uYWRtaW4uaG9va3M/LmJlZm9yZUR1cGxpY2F0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGRhdGEgPSBhd2FpdCBjb2xsZWN0aW9uLmFkbWluLmhvb2tzLmJlZm9yZUR1cGxpY2F0ZSh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdHMucG9zdChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z31gLCB7XG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZXN1bHQuanNvbigpXG5cbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09IDIwMSkge1xuICAgICAgICAgIHJldHVybiBqc29uLmRvYy5pZFxuICAgICAgICB9XG4gICAgICAgIGpzb24uZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiB0b2FzdC5lcnJvcihlcnJvci5tZXNzYWdlKSlcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgbGV0IGR1cGxpY2F0ZUlEXG5cbiAgICAgIGlmIChsb2NhbGl6YXRpb24pIHtcbiAgICAgICAgZHVwbGljYXRlSUQgPSBhd2FpdCBjcmVhdGUobG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGUpXG4gICAgICAgIGxldCBhYm9ydCA9IGZhbHNlXG5cbiAgICAgICAgYXdhaXQgbG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzXG4gICAgICAgICAgLmZpbHRlcigobG9jYWxlKSA9PiBsb2NhbGUgIT09IGxvY2FsaXphdGlvbi5kZWZhdWx0TG9jYWxlKVxuICAgICAgICAgIC5yZWR1Y2UoYXN5bmMgKHByaW9yTG9jYWxlUGF0Y2gsIGxvY2FsZSkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgcHJpb3JMb2NhbGVQYXRjaFxuXG4gICAgICAgICAgICBpZiAoIWFib3J0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlcXVlc3RzLmdldChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7c2x1Z30vJHtpZH1gLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIGxldCBsb2NhbGl6ZWREb2MgPSBhd2FpdCByZXMuanNvbigpXG5cbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb2xsZWN0aW9uLmFkbWluLmhvb2tzPy5iZWZvcmVEdXBsaWNhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBsb2NhbGl6ZWREb2MgPSBhd2FpdCBjb2xsZWN0aW9uLmFkbWluLmhvb2tzLmJlZm9yZUR1cGxpY2F0ZSh7XG4gICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgZGF0YTogbG9jYWxpemVkRG9jLFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBwYXRjaFJlc3VsdCA9IGF3YWl0IHJlcXVlc3RzLnBhdGNoKFxuICAgICAgICAgICAgICAgIGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS8ke2R1cGxpY2F0ZUlEfT9sb2NhbGU9JHtsb2NhbGV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShsb2NhbGl6ZWREb2MpLFxuICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAocGF0Y2hSZXN1bHQuc3RhdHVzID4gNDAwKSB7XG4gICAgICAgICAgICAgICAgYWJvcnQgPSB0cnVlXG4gICAgICAgICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHBhdGNoUmVzdWx0Lmpzb24oKVxuICAgICAgICAgICAgICAgIGpzb24uZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiB0b2FzdC5lcnJvcihlcnJvci5tZXNzYWdlKSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIGlmIChhYm9ydCkge1xuICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgZHVwbGljYXRlIGRvYyB0byBwcmV2ZW50IGluY29tcGxldGVcbiAgICAgICAgICBhd2FpdCByZXF1ZXN0cy5kZWxldGUoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3NsdWd9LyR7aWR9YCwge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHVwbGljYXRlSUQgPSBhd2FpdCBjcmVhdGUoKVxuICAgICAgfVxuXG4gICAgICB0b2FzdC5zdWNjZXNzKFxuICAgICAgICB0KCdzdWNjZXNzZnVsbHlEdXBsaWNhdGVkJywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24oY29sbGVjdGlvbi5sYWJlbHMuc2luZ3VsYXIsIGkxOG4pIH0pLFxuICAgICAgICB7IGF1dG9DbG9zZTogMzAwMCB9LFxuICAgICAgKVxuXG4gICAgICBzZXRNb2RpZmllZChmYWxzZSlcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHB1c2goe1xuICAgICAgICAgIHBhdGhuYW1lOiBgJHthZG1pbn0vY29sbGVjdGlvbnMvJHtzbHVnfS8ke2R1cGxpY2F0ZUlEfWAsXG4gICAgICAgIH0pXG4gICAgICB9LCAxMClcbiAgICB9LFxuICAgIFtcbiAgICAgIG1vZGlmaWVkLFxuICAgICAgbG9jYWxpemF0aW9uLFxuICAgICAgdCxcbiAgICAgIGkxOG4sXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgc2V0TW9kaWZpZWQsXG4gICAgICB0b2dnbGVNb2RhbCxcbiAgICAgIG1vZGFsU2x1ZyxcbiAgICAgIHNlcnZlclVSTCxcbiAgICAgIGFwaSxcbiAgICAgIHNsdWcsXG4gICAgICBpZCxcbiAgICAgIHB1c2gsXG4gICAgICBhZG1pbixcbiAgICBdLFxuICApXG5cbiAgY29uc3QgY29uZmlybSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBzZXRIYXNDbGlja2VkKGZhbHNlKVxuICAgIGF3YWl0IGhhbmRsZUNsaWNrKHRydWUpXG4gIH0sIFtoYW5kbGVDbGlja10pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8UG9wdXBMaXN0LkJ1dHRvbiBpZD1cImFjdGlvbi1kdXBsaWNhdGVcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVDbGljayhmYWxzZSl9PlxuICAgICAgICB7dCgnZHVwbGljYXRlJyl9XG4gICAgICA8L1BvcHVwTGlzdC5CdXR0b24+XG4gICAgICB7bW9kaWZpZWQgJiYgaGFzQ2xpY2tlZCAmJiAoXG4gICAgICAgIDxNb2RhbCBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX21vZGFsYH0gc2x1Zz17bW9kYWxTbHVnfT5cbiAgICAgICAgICA8TWluaW1hbFRlbXBsYXRlIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbW9kYWwtdGVtcGxhdGVgfT5cbiAgICAgICAgICAgIDxoMT57dCgnY29uZmlybUR1cGxpY2F0aW9uJyl9PC9oMT5cbiAgICAgICAgICAgIDxwPnt0KCd1bnNhdmVkQ2hhbmdlc0R1cGxpY2F0ZScpfTwvcD5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICBpZD1cImNvbmZpcm0tY2FuY2VsXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdG9nZ2xlTW9kYWwobW9kYWxTbHVnKX1cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt0KCdjYW5jZWwnKX1cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPEJ1dHRvbiBpZD1cImNvbmZpcm0tZHVwbGljYXRlXCIgb25DbGljaz17Y29uZmlybX0+XG4gICAgICAgICAgICAgIHt0KCdkdXBsaWNhdGVXaXRob3V0U2F2aW5nJyl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L01pbmltYWxUZW1wbGF0ZT5cbiAgICAgICAgPC9Nb2RhbD5cbiAgICAgICl9XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBEdXBsaWNhdGVcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJEdXBsaWNhdGUiLCJpZCIsImNvbGxlY3Rpb24iLCJzbHVnIiwicHVzaCIsInVzZUhpc3RvcnkiLCJtb2RpZmllZCIsInVzZUZvcm1Nb2RpZmllZCIsInRvZ2dsZU1vZGFsIiwidXNlTW9kYWwiLCJzZXRNb2RpZmllZCIsInVzZUZvcm0iLCJsb2NhbGl6YXRpb24iLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJ1c2VDb25maWciLCJhZG1pbiIsImhhc0NsaWNrZWQiLCJzZXRIYXNDbGlja2VkIiwidXNlU3RhdGUiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwibW9kYWxTbHVnIiwiaGFuZGxlQ2xpY2siLCJ1c2VDYWxsYmFjayIsIm92ZXJyaWRlIiwiY3JlYXRlIiwibG9jYWxlIiwicmVzcG9uc2UiLCJyZXF1ZXN0cyIsImdldCIsImhlYWRlcnMiLCJsYW5ndWFnZSIsInBhcmFtcyIsImRlcHRoIiwiZHJhZnQiLCJkYXRhIiwianNvbiIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsImhvb2tzIiwiYmVmb3JlRHVwbGljYXRlIiwicmVzdWx0IiwicG9zdCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdHVzIiwiZG9jIiwiZXJyb3JzIiwiZm9yRWFjaCIsImVycm9yIiwidG9hc3QiLCJtZXNzYWdlIiwiZHVwbGljYXRlSUQiLCJkZWZhdWx0TG9jYWxlIiwiYWJvcnQiLCJsb2NhbGVDb2RlcyIsImZpbHRlciIsInJlZHVjZSIsInByaW9yTG9jYWxlUGF0Y2giLCJyZXMiLCJsb2NhbGl6ZWREb2MiLCJwYXRjaFJlc3VsdCIsInBhdGNoIiwiUHJvbWlzZSIsInJlc29sdmUiLCJkZWxldGUiLCJzdWNjZXNzIiwibGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVscyIsInNpbmd1bGFyIiwiYXV0b0Nsb3NlIiwic2V0VGltZW91dCIsInBhdGhuYW1lIiwiY29uZmlybSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJQb3B1cExpc3QiLCJCdXR0b24iLCJvbkNsaWNrIiwiTW9kYWwiLCJjbGFzc05hbWUiLCJNaW5pbWFsVGVtcGxhdGUiLCJoMSIsInAiLCJidXR0b25TdHlsZSIsInR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBbU5BOzs7ZUFBQTs7O3VCQW5OZ0M7K0RBQ2E7OEJBQ2Q7Z0NBQ0o7K0JBQ0w7Z0NBSVM7cUJBQ047eUJBQ2dCO2dFQUNiO3dCQUNGOytEQUNQO3lFQUNRO1FBQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFUCxNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLFlBQTZCLENBQUMsRUFBRUMsRUFBRSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRTtJQUMxRCxNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyxJQUFBQSwwQkFBVTtJQUMzQixNQUFNQyxXQUFXQyxJQUFBQSx3QkFBZTtJQUNoQyxNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxJQUFBQSxlQUFRO0lBQ2hDLE1BQU0sRUFBRUMsV0FBVyxFQUFFLEdBQUdDLElBQUFBLGdCQUFPO0lBQy9CLE1BQU0sRUFDSkMsWUFBWSxFQUNaQyxRQUFRLEVBQUVDLEdBQUcsRUFBRSxFQUNmQyxTQUFTLEVBQ1YsR0FBR0MsSUFBQUEsaUJBQVM7SUFDYixNQUFNLEVBQ0pILFFBQVEsRUFBRUksS0FBSyxFQUFFLEVBQ2xCLEdBQUdELElBQUFBLGlCQUFTO0lBQ2IsTUFBTSxDQUFDRSxZQUFZQyxjQUFjLEdBQUdDLElBQUFBLGVBQVEsRUFBVTtJQUN0RCxNQUFNLEVBQUVDLElBQUksRUFBRUMsQ0FBQyxFQUFFLEdBQUdDLElBQUFBLDRCQUFjLEVB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
@@ -6,6 +6,5 @@ import './index.scss';
6
6
  * for a collection's list view. You can find those directly above the table which lists
7
7
  * the collection's documents.
8
8
  */
9
- declare const ListControls: React.FC<Props>;
10
- export default ListControls;
9
+ export declare const ListControls: React.FC<Props>;
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAKlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAmBpC,OAAO,cAAc,CAAA;AAcrB;;;;GAIG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwIjC,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAkBpC,OAAO,cAAc,CAAA;AAIrB;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwIxC,CAAA"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
5
+ Object.defineProperty(exports, "ListControls", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return _default;
8
+ return ListControls;
9
9
  }
10
10
  });
11
11
  const _windowinfo = require("@faceless-ui/window-info");
@@ -13,7 +13,6 @@ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
13
  const _reactanimateheight = /*#__PURE__*/ _interop_require_default(require("react-animate-height"));
14
14
  const _reacti18next = require("react-i18next");
15
15
  const _types = require("../../../../fields/config/types");
16
- const _flattenTopLevelFields = /*#__PURE__*/ _interop_require_default(require("../../../../utilities/flattenTopLevelFields"));
17
16
  const _getTranslation = require("../../../../utilities/getTranslation");
18
17
  const _Chevron = /*#__PURE__*/ _interop_require_default(require("../../icons/Chevron"));
19
18
  const _SearchParams = require("../../utilities/SearchParams");
@@ -75,37 +74,28 @@ function _interop_require_wildcard(obj, nodeInterop) {
75
74
  return newObj;
76
75
  }
77
76
  const baseClass = 'list-controls';
78
- const getUseAsTitle = (collection)=>{
79
- const { admin: { useAsTitle }, fields } = collection;
80
- const topLevelFields = (0, _flattenTopLevelFields.default)(fields);
81
- return topLevelFields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === useAsTitle);
82
- };
83
- /**
84
- * The ListControls component is used to render the controls (search, filter, where)
85
- * for a collection's list view. You can find those directly above the table which lists
86
- * the collection's documents.
87
- */ const ListControls = (props)=>{
88
- const { collection: { admin: { listSearchableFields }, fields }, collection, enableColumns = true, enableSort = false, handleSortChange, handleWhereChange, modifySearchQuery = true, resetParams } = props;
77
+ const ListControls = (props)=>{
78
+ const { collection: { admin: { listSearchableFields }, fields }, collection, enableColumns = true, enableSort = false, handleSearchChange, handleSortChange, handleWhereChange, modifySearchQuery = true, resetParams, titleField } = props;
89
79
  const params = (0, _SearchParams.useSearchParams)();
90
80
  const shouldInitializeWhereOpened = (0, _validateWhereQuery.default)(params?.where);
91
- const [titleField, setTitleField] = (0, _react.useState)(getUseAsTitle(collection));
92
- (0, _react.useEffect)(()=>{
93
- setTitleField(getUseAsTitle(collection));
94
- }, [
95
- collection
96
- ]);
97
- const [textFieldsToBeSearched] = (0, _react.useState)((0, _getTextFieldsToBeSearched.getTextFieldsToBeSearched)(listSearchableFields, fields));
81
+ const [textFieldsToBeSearched, setFieldsToBeSearched] = (0, _react.useState)((0, _getTextFieldsToBeSearched.getTextFieldsToBeSearched)(listSearchableFields, fields));
98
82
  const [visibleDrawer, setVisibleDrawer] = (0, _react.useState)(shouldInitializeWhereOpened ? 'where' : undefined);
99
83
  const { i18n, t } = (0, _reacti18next.useTranslation)('general');
100
84
  const { breakpoints: { s: smallBreak } } = (0, _windowinfo.useWindowInfo)();
85
+ _react.default.useEffect(()=>{
86
+ setFieldsToBeSearched((0, _getTextFieldsToBeSearched.getTextFieldsToBeSearched)(listSearchableFields, fields));
87
+ }, [
88
+ listSearchableFields,
89
+ fields
90
+ ]);
101
91
  return /*#__PURE__*/ _react.default.createElement("div", {
102
92
  className: baseClass
103
93
  }, /*#__PURE__*/ _react.default.createElement("div", {
104
94
  className: `${baseClass}__wrap`
105
95
  }, /*#__PURE__*/ _react.default.createElement(_SearchFilter.default, {
106
- fieldLabel: (titleField && (0, _types.fieldAffectsData)(titleField) && (0, _getTranslation.getTranslation)(titleField.label || titleField.name, i18n)) ?? undefined,
96
+ fieldLabel: (titleField && (0, _getTranslation.getTranslation)(titleField.label || titleField.name, i18n)) ?? undefined,
107
97
  fieldName: titleField && (0, _types.fieldAffectsData)(titleField) ? titleField.name : undefined,
108
- handleChange: handleWhereChange,
98
+ handleChange: handleSearchChange,
109
99
  listSearchableFields: textFieldsToBeSearched,
110
100
  modifySearchQuery: modifySearchQuery
111
101
  }), /*#__PURE__*/ _react.default.createElement("div", {
@@ -170,6 +160,5 @@ const getUseAsTitle = (collection)=>{
170
160
  modifySearchQuery: modifySearchQuery
171
161
  })));
172
162
  };
173
- const _default = ListControls;
174
163
 
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0xpc3RDb250cm9scy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlV2luZG93SW5mbyB9IGZyb20gJ0BmYWNlbGVzcy11aS93aW5kb3ctaW5mbydcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgQW5pbWF0ZUhlaWdodCBmcm9tICdyZWFjdC1hbmltYXRlLWhlaWdodCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGZsYXR0ZW5GaWVsZHMgZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2ZsYXR0ZW5Ub3BMZXZlbEZpZWxkcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IENoZXZyb24gZnJvbSAnLi4vLi4vaWNvbnMvQ2hldnJvbidcbmltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9TZWFyY2hQYXJhbXMnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCBDb2x1bW5TZWxlY3RvciBmcm9tICcuLi9Db2x1bW5TZWxlY3RvcidcbmltcG9ydCBEZWxldGVNYW55IGZyb20gJy4uL0RlbGV0ZU1hbnknXG5pbXBvcnQgRWRpdE1hbnkgZnJvbSAnLi4vRWRpdE1hbnknXG5pbXBvcnQgUGlsbCBmcm9tICcuLi9QaWxsJ1xuaW1wb3J0IFB1Ymxpc2hNYW55IGZyb20gJy4uL1B1Ymxpc2hNYW55J1xuaW1wb3J0IFNlYXJjaEZpbHRlciBmcm9tICcuLi9TZWFyY2hGaWx0ZXInXG5pbXBvcnQgU29ydENvbXBsZXggZnJvbSAnLi4vU29ydENvbXBsZXgnXG5pbXBvcnQgVW5wdWJsaXNoTWFueSBmcm9tICcuLi9VbnB1Ymxpc2hNYW55J1xuaW1wb3J0IFdoZXJlQnVpbGRlciBmcm9tICcuLi9XaGVyZUJ1aWxkZXInXG5pbXBvcnQgdmFsaWRhdGVXaGVyZVF1ZXJ5IGZyb20gJy4uL1doZXJlQnVpbGRlci92YWxpZGF0ZVdoZXJlUXVlcnknXG5pbXBvcnQgeyBnZXRUZXh0RmllbGRzVG9CZVNlYXJjaGVkIH0gZnJvbSAnLi9nZXRUZXh0RmllbGRzVG9CZVNlYXJjaGVkJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdsaXN0LWNvbnRyb2xzJ1xuXG5jb25zdCBnZXRVc2VBc1RpdGxlID0gKGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcpID0+IHtcbiAgY29uc3Qge1xuICAgIGFkbWluOiB7IHVzZUFzVGl0bGUgfSxcbiAgICBmaWVsZHMsXG4gIH0gPSBjb2xsZWN0aW9uXG5cbiAgY29uc3QgdG9wTGV2ZWxGaWVsZHMgPSBmbGF0dGVuRmllbGRzKGZpZWxkcylcbiAgcmV0dXJuIHRvcExldmVsRmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSB1c2VBc1RpdGxlKVxufVxuXG4vKipcbiAqIFRoZSBMaXN0Q29udHJvbHMgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBjb250cm9scyAoc2VhcmNoLCBmaWx0ZXIsIHdoZXJlKVxuICogZm9yIGEgY29sbGVjdGlvbidzIGxpc3Qgdmlldy4gWW91IGNhbiBmaW5kIHRob3NlIGRpcmVjdGx5IGFib3ZlIHRoZSB0YWJsZSB3aGljaCBsaXN0c1xuICogdGhlIGNvbGxlY3Rpb24ncyBkb2N1bWVudHMuXG4gKi9cbmNvbnN0IExpc3RDb250cm9sczogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9uOiB7XG4gICAgICBhZG1pbjogeyBsaXN0U2VhcmNoYWJsZUZpZWxkcyB9LFxuICAgICAgZmllbGRzLFxuICAgIH0sXG4gICAgY29sbGVjdGlvbixcbiAgICBlbmFibGVDb2x1bW5zID0gdHJ1ZSxcbiAgICBlbmFibGVTb3J0ID0gZmFsc2UsXG4gICAgaGFuZGxlU29ydENoYW5nZSxcbiAgICBoYW5kbGVXaGVyZUNoYW5nZSxcbiAgICBtb2RpZnlTZWFyY2hRdWVyeSA9IHRydWUsXG4gICAgcmVzZXRQYXJhbXMsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IHBhcmFtcyA9IHVzZVNlYXJjaFBhcmFtcygpXG4gIGNvbnN0IHNob3VsZEluaXRpYWxpemVXaGVyZU9wZW5lZCA9IHZhbGlkYXRlV2hlcmVRdWVyeShwYXJhbXM/LndoZXJlKVxuXG4gIGNvbnN0IFt0aXRsZUZpZWxkLCBzZXRUaXRsZUZpZWxkXSA9IHVzZVN0YXRlKGdldFVzZUFzVGl0bGUoY29sbGVjdGlvbikpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0VGl0bGVGaWVsZChnZXRVc2VBc1RpdGxlKGNvbGxlY3Rpb24pKVxuICB9LCBbY29sbGVjdGlvbl0pXG5cbiAgY29uc3QgW3RleHRGaWVsZHNUb0JlU2VhcmNoZWRdID0gdXNlU3RhdGUoZ2V0VGV4dEZpZWxkc1RvQmVTZWFyY2hlZChsaXN0U2VhcmNoYWJsZUZpZWxkcywgZmllbGRzKSlcbiAgY29uc3QgW3Zpc2libGVEcmF3ZXIsIHNldFZpc2libGVEcmF3ZXJdID0gdXNlU3RhdGU8J2NvbHVtbnMnIHwgJ3NvcnQnIHwgJ3doZXJlJz4oXG4gICAgc2hvdWxkSW5pdGlhbGl6ZVdoZXJlT3BlbmVkID8gJ3doZXJlJyA6IHVuZGVmaW5lZCxcbiAgKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcbiAgY29uc3Qge1xuICAgIGJyZWFrcG9pbnRzOiB7IHM6IHNtYWxsQnJlYWsgfSxcbiAgfSA9IHVzZVdpbmRvd0luZm8oKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcGB9PlxuICAgICAgICA8U2VhcmNoRmlsdGVyXG4gICAgICAgICAgZmllbGRMYWJlbD17XG4gICAgICAgICAgICAodGl0bGVGaWVsZCAmJlxuICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKHRpdGxlRmllbGQpICYmXG4gICAgICAgICAgICAgIGdldFRyYW5zbGF0aW9uKHRpdGxlRmllbGQubGFiZWwgfHwgdGl0bGVGaWVsZC5uYW1lLCBpMThuKSkgPz9cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBmaWVsZE5hbWU9e3RpdGxlRmllbGQgJiYgZmllbGRBZmZlY3RzRGF0YSh0aXRsZUZpZWxkKSA/IHRpdGxlRmllbGQubmFtZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVdoZXJlQ2hhbmdlfVxuICAgICAgICAgIGxpc3RTZWFyY2hhYmxlRmllbGRzPXt0ZXh0RmllbGRzVG9CZVNlYXJjaGVkfVxuICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2J1dHRvbnNgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYnV0dG9ucy13cmFwYH0+XG4gICAgICAgICAgICB7IXNtYWxsQnJlYWsgJiYgKFxuICAgICAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgPEVkaXRNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IHJlc2V0UGFyYW1zPXtyZXNldFBhcmFtc30gLz5cbiAgICAgICAgICAgICAgICA8UHVibGlzaE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfSAvPlxuICAgICAgICAgICAgICAgIDxVbnB1Ymxpc2hNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IHJlc2V0UGFyYW1zPXtyZXNldFBhcmFtc30gLz5cbiAgICAgICAgICAgICAgICA8RGVsZXRlTWFueSBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufSByZXNldFBhcmFtcz17cmVzZXRQYXJhbXN9IC8+XG4gICAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge2VuYWJsZUNvbHVtbnMgJiYgKFxuICAgICAgICAgICAgICA8UGlsbFxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9e2Ake2Jhc2VDbGFzc30tY29sdW1uc2B9XG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZURyYXdlciA9PT0gJ2NvbHVtbnMnfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9nZ2xlLWNvbHVtbnMgJHtcbiAgICAgICAgICAgICAgICAgIHZpc2libGVEcmF3ZXIgPT09ICdjb2x1bW5zJyA/IGAke2Jhc2VDbGFzc31fX2J1dHRvbnMtYWN0aXZlYCA6ICcnXG4gICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgaWNvbj17PENoZXZyb24gLz59XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT5cbiAgICAgICAgICAgICAgICAgIHNldFZpc2libGVEcmF3ZXIodmlzaWJsZURyYXdlciAhPT0gJ2NvbHVtbnMnID8gJ2NvbHVtbnMnIDogdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwaWxsU3R5bGU9XCJsaWdodFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnY29sdW1ucycpfVxuICAgICAgICAgICAgICA8L1BpbGw+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFBpbGxcbiAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17YCR7YmFzZUNsYXNzfS13aGVyZWB9XG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3Zpc2libGVEcmF3ZXIgPT09ICd3aGVyZSd9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9nZ2xlLXdoZXJlICR7XG4gICAgICAgICAgICAgICAgdmlzaWJsZURyYXdlciA9PT0gJ3doZXJlJyA/IGAke2Jhc2VDbGFzc31fX2J1dHRvbnMtYWN0aXZlYCA6ICcnXG4gICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICBpY29uPXs8Q2hldnJvbiAvPn1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0VmlzaWJsZURyYXdlcih2aXNpYmxlRHJhd2VyICE9PSAnd2hlcmUnID8gJ3doZXJlJyA6IHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgIHBpbGxTdHlsZT1cImxpZ2h0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoJ2ZpbHRlcnMnKX1cbiAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgIHtlbmFibGVTb3J0ICYmIChcbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9e2Ake2Jhc2VDbGFzc30tc29ydGB9XG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZURyYXdlciA9PT0gJ3NvcnQnfVxuICAgICAgICAgICAgICAgIGJ1dHRvblN0eWxlPXt2aXNpYmxlRHJhd2VyID09PSAnc29ydCcgPyB1bmRlZmluZWQgOiAnc2Vjb25kYXJ5J31cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3RvZ2dsZS1zb3J0YH1cbiAgICAgICAgICAgICAgICBpY29uPVwiY2hldnJvblwiXG4gICAgICAgICAgICAgICAgaWNvblN0eWxlPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0VmlzaWJsZURyYXdlcih2aXNpYmxlRHJhd2VyICE9PSAnc29ydCcgPyAnc29ydCcgOiB1bmRlZmluZWQpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3QoJ3NvcnQnKX1cbiAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAge2VuYWJsZUNvbHVtbnMgJiYgKFxuICAgICAgICA8QW5pbWF0ZUhlaWdodFxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fY29sdW1uc2B9XG4gICAgICAgICAgaGVpZ2h0PXt2aXNpYmxlRHJhd2VyID09PSAnY29sdW1ucycgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGlkPXtgJHtiYXNlQ2xhc3N9LWNvbHVtbnNgfVxuICAgICAgICA+XG4gICAgICAgICAgPENvbHVtblNlbGVjdG9yIGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IC8+XG4gICAgICAgIDwvQW5pbWF0ZUhlaWdodD5cbiAgICAgICl9XG4gICAgICA8QW5pbWF0ZUhlaWdodFxuICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3doZXJlYH1cbiAgICAgICAgaGVpZ2h0PXt2aXNpYmxlRHJhd2VyID09PSAnd2hlcmUnID8gJ2F1dG8nIDogMH1cbiAgICAgICAgaWQ9e2Ake2Jhc2VDbGFzc30td2hlcmVgfVxuICAgICAgPlxuICAgICAgICA8V2hlcmVCdWlsZGVyXG4gICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICBoYW5kbGVDaGFuZ2U9e2hhbmRsZVdoZXJlQ2hhbmdlfVxuICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgLz5cbiAgICAgIDwvQW5pbWF0ZUhlaWdodD5cbiAgICAgIHtlbmFibGVTb3J0ICYmIChcbiAgICAgICAgPEFuaW1hdGVIZWlnaHRcbiAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NvcnRgfVxuICAgICAgICAgIGhlaWdodD17dmlzaWJsZURyYXdlciA9PT0gJ3NvcnQnID8gJ2F1dG8nIDogMH1cbiAgICAgICAgICBpZD17YCR7YmFzZUNsYXNzfS1zb3J0YH1cbiAgICAgICAgPlxuICAgICAgICAgIDxTb3J0Q29tcGxleFxuICAgICAgICAgICAgY29sbGVjdGlvbj17Y29sbGVjdGlvbn1cbiAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlU29ydENoYW5nZX1cbiAgICAgICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5PXttb2RpZnlTZWFyY2hRdWVyeX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FuaW1hdGVIZWlnaHQ+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IExpc3RDb250cm9sc1xuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsImdldFVzZUFzVGl0bGUiLCJjb2xsZWN0aW9uIiwiYWRtaW4iLCJ1c2VBc1RpdGxlIiwiZmllbGRzIiwidG9wTGV2ZWxGaWVsZHMiLCJmbGF0dGVuRmllbGRzIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJMaXN0Q29udHJvbHMiLCJwcm9wcyIsImxpc3RTZWFyY2hhYmxlRmllbGRzIiwiZW5hYmxlQ29sdW1ucyIsImVuYWJsZVNvcnQiLCJoYW5kbGVTb3J0Q2hhbmdlIiwiaGFuZGxlV2hlcmVDaGFuZ2UiLCJtb2RpZnlTZWFyY2hRdWVyeSIsInJlc2V0UGFyYW1zIiwicGFyYW1zIiwidXNlU2VhcmNoUGFyYW1zIiwic2hvdWxkSW5pdGlhbGl6ZVdoZXJlT3BlbmVkIiwidmFsaWRhdGVXaGVyZVF1ZXJ5Iiwid2hlcmUiLCJ0aXRsZUZpZWxkIiwic2V0VGl0bGVGaWVsZCIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwidGV4dEZpZWxkc1RvQmVTZWFyY2hlZCIsImdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQiLCJ2aXNpYmxlRHJhd2VyIiwic2V0VmlzaWJsZURyYXdlciIsInVuZGVmaW5lZCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJicmVha3BvaW50cyIsInMiLCJzbWFsbEJyZWFrIiwidXNlV2luZG93SW5mbyIsImRpdiIsImNsYXNzTmFtZSIsIlNlYXJjaEZpbHRlciIsImZpZWxkTGFiZWwiLCJnZXRUcmFuc2xhdGlvbiIsImxhYmVsIiwiZmllbGROYW1lIiwiaGFuZGxlQ2hhbmdlIiwiUmVhY3QiLCJGcmFnbWVudCIsIkVkaXRNYW55IiwiUHVibGlzaE1hbnkiLCJVbnB1Ymxpc2hNYW55IiwiRGVsZXRlTWFueSIsIlBpbGwiLCJhcmlhLWNvbnRyb2xzIiwiYXJpYS1leHBhbmRlZCIsImljb24iLCJDaGV2cm9uIiwib25DbGljayIsInBpbGxTdHlsZSIsIkJ1dHRvbiIsImJ1dHRvblN0eWxlIiwiaWNvblN0eWxlIiwiQW5pbWF0ZUhlaWdodCIsImhlaWdodCIsImlkIiwiQ29sdW1uU2VsZWN0b3IiLCJXaGVyZUJ1aWxkZXIiLCJTb3J0Q29tcGxleCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFzTEE7OztlQUFBOzs7NEJBdEw4QjsrREFDYTsyRUFDakI7OEJBQ0s7dUJBS0U7OEVBQ1A7Z0NBQ0s7Z0VBQ1g7OEJBQ1k7K0RBQ2I7dUVBQ1E7bUVBQ0o7aUVBQ0Y7NkRBQ0o7b0VBQ087cUVBQ0M7b0VBQ0Q7c0VBQ0U7cUVBQ0Q7MkVBQ007MkNBQ1c7UUFDbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsZ0JBQWdCLENBQUNDO0lBQ3JCLE1BQU0sRUFD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
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0xpc3RDb250cm9scy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlV2luZG93SW5mbyB9IGZyb20gJ0BmYWNlbGVzcy11aS93aW5kb3ctaW5mbydcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IEFuaW1hdGVIZWlnaHQgZnJvbSAncmVhY3QtYW5pbWF0ZS1oZWlnaHQnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IENoZXZyb24gZnJvbSAnLi4vLi4vaWNvbnMvQ2hldnJvbidcbmltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9TZWFyY2hQYXJhbXMnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCBDb2x1bW5TZWxlY3RvciBmcm9tICcuLi9Db2x1bW5TZWxlY3RvcidcbmltcG9ydCBEZWxldGVNYW55IGZyb20gJy4uL0RlbGV0ZU1hbnknXG5pbXBvcnQgRWRpdE1hbnkgZnJvbSAnLi4vRWRpdE1hbnknXG5pbXBvcnQgUGlsbCBmcm9tICcuLi9QaWxsJ1xuaW1wb3J0IFB1Ymxpc2hNYW55IGZyb20gJy4uL1B1Ymxpc2hNYW55J1xuaW1wb3J0IFNlYXJjaEZpbHRlciBmcm9tICcuLi9TZWFyY2hGaWx0ZXInXG5pbXBvcnQgU29ydENvbXBsZXggZnJvbSAnLi4vU29ydENvbXBsZXgnXG5pbXBvcnQgVW5wdWJsaXNoTWFueSBmcm9tICcuLi9VbnB1Ymxpc2hNYW55J1xuaW1wb3J0IFdoZXJlQnVpbGRlciBmcm9tICcuLi9XaGVyZUJ1aWxkZXInXG5pbXBvcnQgdmFsaWRhdGVXaGVyZVF1ZXJ5IGZyb20gJy4uL1doZXJlQnVpbGRlci92YWxpZGF0ZVdoZXJlUXVlcnknXG5pbXBvcnQgeyBnZXRUZXh0RmllbGRzVG9CZVNlYXJjaGVkIH0gZnJvbSAnLi9nZXRUZXh0RmllbGRzVG9CZVNlYXJjaGVkJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdsaXN0LWNvbnRyb2xzJ1xuXG4vKipcbiAqIFRoZSBMaXN0Q29udHJvbHMgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBjb250cm9scyAoc2VhcmNoLCBmaWx0ZXIsIHdoZXJlKVxuICogZm9yIGEgY29sbGVjdGlvbidzIGxpc3Qgdmlldy4gWW91IGNhbiBmaW5kIHRob3NlIGRpcmVjdGx5IGFib3ZlIHRoZSB0YWJsZSB3aGljaCBsaXN0c1xuICogdGhlIGNvbGxlY3Rpb24ncyBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBjb25zdCBMaXN0Q29udHJvbHM6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgY29sbGVjdGlvbjoge1xuICAgICAgYWRtaW46IHsgbGlzdFNlYXJjaGFibGVGaWVsZHMgfSxcbiAgICAgIGZpZWxkcyxcbiAgICB9LFxuICAgIGNvbGxlY3Rpb24sXG4gICAgZW5hYmxlQ29sdW1ucyA9IHRydWUsXG4gICAgZW5hYmxlU29ydCA9IGZhbHNlLFxuICAgIGhhbmRsZVNlYXJjaENoYW5nZSxcbiAgICBoYW5kbGVTb3J0Q2hhbmdlLFxuICAgIGhhbmRsZVdoZXJlQ2hhbmdlLFxuICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ID0gdHJ1ZSxcbiAgICByZXNldFBhcmFtcyxcbiAgICB0aXRsZUZpZWxkLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBwYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKVxuICBjb25zdCBzaG91bGRJbml0aWFsaXplV2hlcmVPcGVuZWQgPSB2YWxpZGF0ZVdoZXJlUXVlcnkocGFyYW1zPy53aGVyZSlcblxuICBjb25zdCBbdGV4dEZpZWxkc1RvQmVTZWFyY2hlZCwgc2V0RmllbGRzVG9CZVNlYXJjaGVkXSA9IHVzZVN0YXRlKFxuICAgIGdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQobGlzdFNlYXJjaGFibGVGaWVsZHMsIGZpZWxkcyksXG4gIClcbiAgY29uc3QgW3Zpc2libGVEcmF3ZXIsIHNldFZpc2libGVEcmF3ZXJdID0gdXNlU3RhdGU8J2NvbHVtbnMnIHwgJ3NvcnQnIHwgJ3doZXJlJz4oXG4gICAgc2hvdWxkSW5pdGlhbGl6ZVdoZXJlT3BlbmVkID8gJ3doZXJlJyA6IHVuZGVmaW5lZCxcbiAgKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcbiAgY29uc3Qge1xuICAgIGJyZWFrcG9pbnRzOiB7IHM6IHNtYWxsQnJlYWsgfSxcbiAgfSA9IHVzZVdpbmRvd0luZm8oKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0RmllbGRzVG9CZVNlYXJjaGVkKGdldFRleHRGaWVsZHNUb0JlU2VhcmNoZWQobGlzdFNlYXJjaGFibGVGaWVsZHMsIGZpZWxkcykpXG4gIH0sIFtsaXN0U2VhcmNoYWJsZUZpZWxkcywgZmllbGRzXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3dyYXBgfT5cbiAgICAgICAgPFNlYXJjaEZpbHRlclxuICAgICAgICAgIGZpZWxkTGFiZWw9e1xuICAgICAgICAgICAgKHRpdGxlRmllbGQgJiYgZ2V0VHJhbnNsYXRpb24odGl0bGVGaWVsZC5sYWJlbCB8fCB0aXRsZUZpZWxkLm5hbWUsIGkxOG4pKSA/PyB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgZmllbGROYW1lPXt0aXRsZUZpZWxkICYmIGZpZWxkQWZmZWN0c0RhdGEodGl0bGVGaWVsZCkgPyB0aXRsZUZpZWxkLm5hbWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVTZWFyY2hDaGFuZ2V9XG4gICAgICAgICAgbGlzdFNlYXJjaGFibGVGaWVsZHM9e3RleHRGaWVsZHNUb0JlU2VhcmNoZWR9XG4gICAgICAgICAgbW9kaWZ5U2VhcmNoUXVlcnk9e21vZGlmeVNlYXJjaFF1ZXJ5fVxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYnV0dG9uc2B9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19idXR0b25zLXdyYXBgfT5cbiAgICAgICAgICAgIHshc21hbGxCcmVhayAmJiAoXG4gICAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICA8RWRpdE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfSAvPlxuICAgICAgICAgICAgICAgIDxQdWJsaXNoTWFueSBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufSByZXNldFBhcmFtcz17cmVzZXRQYXJhbXN9IC8+XG4gICAgICAgICAgICAgICAgPFVucHVibGlzaE1hbnkgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gcmVzZXRQYXJhbXM9e3Jlc2V0UGFyYW1zfSAvPlxuICAgICAgICAgICAgICAgIDxEZWxldGVNYW55IGNvbGxlY3Rpb249e2NvbGxlY3Rpb259IHJlc2V0UGFyYW1zPXtyZXNldFBhcmFtc30gLz5cbiAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7ZW5hYmxlQ29sdW1ucyAmJiAoXG4gICAgICAgICAgICAgIDxQaWxsXG4gICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17YCR7YmFzZUNsYXNzfS1jb2x1bW5zYH1cbiAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt2aXNpYmxlRHJhd2VyID09PSAnY29sdW1ucyd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b2dnbGUtY29sdW1ucyAke1xuICAgICAgICAgICAgICAgICAgdmlzaWJsZURyYXdlciA9PT0gJ2NvbHVtbnMnID8gYCR7YmFzZUNsYXNzfV9fYnV0dG9ucy1hY3RpdmVgIDogJydcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICBpY29uPXs8Q2hldnJvbiAvPn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PlxuICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZURyYXdlcih2aXNpYmxlRHJhd2VyICE9PSAnY29sdW1ucycgPyAnY29sdW1ucycgOiB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBpbGxTdHlsZT1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0KCdjb2x1bW5zJyl9XG4gICAgICAgICAgICAgIDwvUGlsbD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8UGlsbFxuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtgJHtiYXNlQ2xhc3N9LXdoZXJlYH1cbiAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17dmlzaWJsZURyYXdlciA9PT0gJ3doZXJlJ31cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X190b2dnbGUtd2hlcmUgJHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlRHJhd2VyID09PSAnd2hlcmUnID8gYCR7YmFzZUNsYXNzfV9fYnV0dG9ucy1hY3RpdmVgIDogJydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgIGljb249ezxDaGV2cm9uIC8+fVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaXNpYmxlRHJhd2VyKHZpc2libGVEcmF3ZXIgIT09ICd3aGVyZScgPyAnd2hlcmUnIDogdW5kZWZpbmVkKX1cbiAgICAgICAgICAgICAgcGlsbFN0eWxlPVwibGlnaHRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnZmlsdGVycycpfVxuICAgICAgICAgICAgPC9QaWxsPlxuICAgICAgICAgICAge2VuYWJsZVNvcnQgJiYgKFxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17YCR7YmFzZUNsYXNzfS1zb3J0YH1cbiAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt2aXNpYmxlRHJhd2VyID09PSAnc29ydCd9XG4gICAgICAgICAgICAgICAgYnV0dG9uU3R5bGU9e3Zpc2libGVEcmF3ZXIgPT09ICdzb3J0JyA/IHVuZGVmaW5lZCA6ICdzZWNvbmRhcnknfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9nZ2xlLXNvcnRgfVxuICAgICAgICAgICAgICAgIGljb249XCJjaGV2cm9uXCJcbiAgICAgICAgICAgICAgICBpY29uU3R5bGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaXNpYmxlRHJhd2VyKHZpc2libGVEcmF3ZXIgIT09ICdzb3J0JyA/ICdzb3J0JyA6IHVuZGVmaW5lZCl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dCgnc29ydCcpfVxuICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7ZW5hYmxlQ29sdW1ucyAmJiAoXG4gICAgICAgIDxBbmltYXRlSGVpZ2h0XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19jb2x1bW5zYH1cbiAgICAgICAgICBoZWlnaHQ9e3Zpc2libGVEcmF3ZXIgPT09ICdjb2x1bW5zJyA/ICdhdXRvJyA6IDB9XG4gICAgICAgICAgaWQ9e2Ake2Jhc2VDbGFzc30tY29sdW1uc2B9XG4gICAgICAgID5cbiAgICAgICAgICA8Q29sdW1uU2VsZWN0b3IgY29sbGVjdGlvbj17Y29sbGVjdGlvbn0gLz5cbiAgICAgICAgPC9BbmltYXRlSGVpZ2h0PlxuICAgICAgKX1cbiAgICAgIDxBbmltYXRlSGVpZ2h0XG4gICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd2hlcmVgfVxuICAgICAgICBoZWlnaHQ9e3Zpc2libGVEcmF3ZXIgPT09ICd3aGVyZScgPyAnYXV0bycgOiAwfVxuICAgICAgICBpZD17YCR7YmFzZUNsYXNzfS13aGVyZWB9XG4gICAgICA+XG4gICAgICAgIDxXaGVyZUJ1aWxkZXJcbiAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgIGhhbmRsZUNoYW5nZT17aGFuZGxlV2hlcmVDaGFuZ2V9XG4gICAgICAgICAgbW9kaWZ5U2VhcmNoUXVlcnk9e21vZGlmeVNlYXJjaFF1ZXJ5fVxuICAgICAgICAvPlxuICAgICAgPC9BbmltYXRlSGVpZ2h0PlxuICAgICAge2VuYWJsZVNvcnQgJiYgKFxuICAgICAgICA8QW5pbWF0ZUhlaWdodFxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc29ydGB9XG4gICAgICAgICAgaGVpZ2h0PXt2aXNpYmxlRHJhd2VyID09PSAnc29ydCcgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGlkPXtgJHtiYXNlQ2xhc3N9LXNvcnRgfVxuICAgICAgICA+XG4gICAgICAgICAgPFNvcnRDb21wbGV4XG4gICAgICAgICAgICBjb2xsZWN0aW9uPXtjb2xsZWN0aW9ufVxuICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXtoYW5kbGVTb3J0Q2hhbmdlfVxuICAgICAgICAgICAgbW9kaWZ5U2VhcmNoUXVlcnk9e21vZGlmeVNlYXJjaFF1ZXJ5fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvQW5pbWF0ZUhlaWdodD5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJMaXN0Q29udHJvbHMiLCJiYXNlQ2xhc3MiLCJwcm9wcyIsImNvbGxlY3Rpb24iLCJhZG1pbiIsImxpc3RTZWFyY2hhYmxlRmllbGRzIiwiZmllbGRzIiwiZW5hYmxlQ29sdW1ucyIsImVuYWJsZVNvcnQiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJoYW5kbGVTb3J0Q2hhbmdlIiwiaGFuZGxlV2hlcmVDaGFuZ2UiLCJtb2RpZnlTZWFyY2hRdWVyeSIsInJlc2V0UGFyYW1zIiwidGl0bGVGaWVsZCIsInBhcmFtcyIsInVzZVNlYXJjaFBhcmFtcyIsInNob3VsZEluaXRpYWxpemVXaGVyZU9wZW5lZCIsInZhbGlkYXRlV2hlcmVRdWVyeSIsIndoZXJlIiwidGV4dEZpZWxkc1RvQmVTZWFyY2hlZCIsInNldEZpZWxkc1RvQmVTZWFyY2hlZCIsInVzZVN0YXRlIiwiZ2V0VGV4dEZpZWxkc1RvQmVTZWFyY2hlZCIsInZpc2libGVEcmF3ZXIiLCJzZXRWaXNpYmxlRHJhd2VyIiwidW5kZWZpbmVkIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsImJyZWFrcG9pbnRzIiwicyIsInNtYWxsQnJlYWsiLCJ1c2VXaW5kb3dJbmZvIiwiUmVhY3QiLCJ1c2VFZmZlY3QiLCJkaXYiLCJjbGFzc05hbWUiLCJTZWFyY2hGaWx0ZXIiLCJmaWVsZExhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbCIsIm5hbWUiLCJmaWVsZE5hbWUiLCJmaWVsZEFmZmVjdHNEYXRhIiwiaGFuZGxlQ2hhbmdlIiwiRnJhZ21lbnQiLCJFZGl0TWFueSIsIlB1Ymxpc2hNYW55IiwiVW5wdWJsaXNoTWFueSIsIkRlbGV0ZU1hbnkiLCJQaWxsIiwiYXJpYS1jb250cm9scyIsImFyaWEtZXhwYW5kZWQiLCJpY29uIiwiQ2hldnJvbiIsIm9uQ2xpY2siLCJwaWxsU3R5bGUiLCJCdXR0b24iLCJidXR0b25TdHlsZSIsImljb25TdHlsZSIsIkFuaW1hdGVIZWlnaHQiLCJoZWlnaHQiLCJpZCIsIkNvbHVtblNlbGVjdG9yIiwiV2hlcmVCdWlsZGVyIiwiU29ydENvbXBsZXgiXSwibWFwcGluZ3MiOiI7Ozs7K0JBZ0NhQTs7O2VBQUFBOzs7NEJBaENpQjsrREFDRTsyRUFDTjs4QkFDSzt1QkFJRTtnQ0FDRjtnRUFDWDs4QkFDWTsrREFDYjt1RUFDUTttRUFDSjtpRUFDRjs2REFDSjtvRUFDTztxRUFDQztvRUFDRDtzRUFDRTtxRUFDRDsyRUFDTTsyQ0FDVztRQUNuQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUMsWUFBWTtBQU9YLE1BQU1ELGVBQWdDLENBQUNFO0lBQzVDLE1BQU0sRUFDSkMsWUFBWSxFQUNWQyxPQUFPLEVBQUVDLG9CQUFvQixFQUFFLEVBQy9CQyxNQUFNLEVBQ1AsRUFDREgsVUFBVSxFQUNWSSxnQkFBZ0IsSUFBSSxFQUNwQkMsYUFBYSxLQUFLLEVBQ2xCQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMsaUJBQWlCLEVBQ2pCQyxvQkFBb0IsSUFBSSxFQUN4QkMsV0FBVyxFQUNYQyxVQUFVLEVBQ1gsR0FBR1o7SUFFSixNQUFNYSxTQUFTQyxJQUFBQSw2QkFBZTtJQUM5QixNQUFNQyw4QkFBOEJDLElBQUFBLDJCQUFrQixFQUFDSCxRQUFRSTtJQUUvRCxNQUFNLENBQUNDLHdCQUF3QkMsc0JBQXNCLEdBQUdDLElBQUFBLGVBQVEsRUFDOURDLElBQUFBLG9EQUF5QixFQUFDbEIsc0JBQXNCQztJQUVsRCxNQUFNLENBQUNrQixlQUFlQyxpQkFBaUIsR0FBR0gsSUFBQUEsZUFBUSxFQUNoREwsOEJBQThCLFVBQVVTO0lBRTFDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxDQUFDLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWMsRUFBQztJQUNuQyxNQUFNLEVBQ0pDLGFBQWEsRUFBRUMsR0FBR0MsVUFBVSxFQUFFLEVBQy9CLEdBQUdDLElBQUFBLHlCQUFh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