@payloadcms/ui 3.0.0-alpha.2 → 3.0.0-alpha.21

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 (530) hide show
  1. package/dist/@types/assets.d.js +0 -1
  2. package/dist/config.js +2 -12
  3. package/dist/elements/ArrayAction/index.js +25 -81
  4. package/dist/elements/ArrayAction/types.js +2 -5
  5. package/dist/elements/Autosave/index.js +37 -92
  6. package/dist/elements/Autosave/types.js +2 -5
  7. package/dist/elements/Banner/index.js +10 -34
  8. package/dist/elements/Banner/types.js +2 -5
  9. package/dist/elements/Button/index.js +34 -93
  10. package/dist/elements/Button/types.js +2 -5
  11. package/dist/elements/Card/index.js +9 -24
  12. package/dist/elements/Card/types.js +2 -5
  13. package/dist/elements/CodeEditor/CodeEditor.js +10 -25
  14. package/dist/elements/CodeEditor/index.js +8 -59
  15. package/dist/elements/CodeEditor/types.js +2 -5
  16. package/dist/elements/Collapsible/index.js +26 -82
  17. package/dist/elements/Collapsible/provider.js +7 -66
  18. package/dist/elements/Collapsible/types.js +2 -5
  19. package/dist/elements/ColumnSelector/index.js +20 -76
  20. package/dist/elements/ColumnSelector/types.js +2 -5
  21. package/dist/elements/CopyToClipboard/index.js +14 -65
  22. package/dist/elements/CopyToClipboard/types.js +2 -5
  23. package/dist/elements/DatePicker/DatePicker.js +19 -75
  24. package/dist/elements/DatePicker/index.js +8 -59
  25. package/dist/elements/DatePicker/types.js +2 -5
  26. package/dist/elements/DeleteDocument/index.js +36 -86
  27. package/dist/elements/DeleteDocument/types.js +2 -5
  28. package/dist/elements/DeleteMany/index.js +38 -102
  29. package/dist/elements/DeleteMany/types.js +2 -5
  30. package/dist/elements/DocumentControls/index.js +46 -102
  31. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  32. package/dist/elements/DocumentDrawer/DrawerContent.js +62 -114
  33. package/dist/elements/DocumentDrawer/index.js +33 -98
  34. package/dist/elements/DocumentDrawer/types.js +2 -5
  35. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  36. package/dist/elements/DocumentFields/index.js +16 -31
  37. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +4 -14
  38. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  39. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +17 -26
  40. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +9 -68
  41. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +5 -15
  42. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +2 -12
  43. package/dist/elements/DocumentHeader/Tabs/index.js +18 -33
  44. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +8 -23
  45. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +5 -23
  46. package/dist/elements/DocumentHeader/index.js +10 -66
  47. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -66
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +2 -5
  49. package/dist/elements/DraggableSortable/index.js +15 -66
  50. package/dist/elements/DraggableSortable/types.js +2 -5
  51. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +4 -14
  52. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +2 -5
  53. package/dist/elements/Drawer/index.d.ts +1 -1
  54. package/dist/elements/Drawer/index.js +32 -94
  55. package/dist/elements/Drawer/types.js +2 -5
  56. package/dist/elements/Drawer/useDrawerSlug.js +8 -18
  57. package/dist/elements/Dropzone/index.js +20 -35
  58. package/dist/elements/DuplicateDocument/index.js +33 -83
  59. package/dist/elements/DuplicateDocument/types.js +2 -5
  60. package/dist/elements/EditMany/index.d.ts.map +1 -1
  61. package/dist/elements/EditMany/index.js +72 -125
  62. package/dist/elements/EditMany/types.js +2 -5
  63. package/dist/elements/EditUpload/index.js +66 -122
  64. package/dist/elements/ErrorPill/index.js +7 -22
  65. package/dist/elements/ErrorPill/types.js +2 -5
  66. package/dist/elements/FieldSelect/index.js +23 -79
  67. package/dist/elements/FileDetails/FileMeta/index.js +19 -75
  68. package/dist/elements/FileDetails/FileMeta/types.js +2 -5
  69. package/dist/elements/FileDetails/index.js +15 -30
  70. package/dist/elements/FileDetails/types.js +2 -5
  71. package/dist/elements/GenerateConfirmation/index.js +22 -37
  72. package/dist/elements/GenerateConfirmation/types.js +2 -5
  73. package/dist/elements/GetFilterOptions/index.js +18 -33
  74. package/dist/elements/Gutter/index.js +5 -56
  75. package/dist/elements/Hamburger/index.js +18 -33
  76. package/dist/elements/Header/index.js +39 -95
  77. package/dist/elements/HydrateClientUser/index.js +6 -16
  78. package/dist/elements/IDLabel/index.js +5 -20
  79. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +6 -16
  80. package/dist/elements/ListControls/index.js +52 -104
  81. package/dist/elements/ListControls/types.js +2 -5
  82. package/dist/elements/ListDrawer/DrawerContent.js +72 -128
  83. package/dist/elements/ListDrawer/index.js +32 -100
  84. package/dist/elements/ListDrawer/types.js +2 -5
  85. package/dist/elements/ListSelection/index.js +11 -62
  86. package/dist/elements/Loading/index.js +25 -51
  87. package/dist/elements/LoadingOverlay/index.js +17 -79
  88. package/dist/elements/LoadingOverlay/reducer.js +3 -21
  89. package/dist/elements/LoadingOverlay/types.js +2 -5
  90. package/dist/elements/Localizer/LocalizerLabel/index.js +15 -30
  91. package/dist/elements/Localizer/index.d.ts.map +1 -1
  92. package/dist/elements/Localizer/index.js +37 -95
  93. package/dist/elements/Logout/index.js +13 -28
  94. package/dist/elements/Nav/NavHamburger/index.js +8 -23
  95. package/dist/elements/Nav/NavToggler/index.js +13 -28
  96. package/dist/elements/Nav/NavWrapper/index.js +8 -23
  97. package/dist/elements/Nav/context.js +20 -82
  98. package/dist/elements/Nav/index.js +36 -51
  99. package/dist/elements/NavGroup/index.js +21 -77
  100. package/dist/elements/Pagination/ClickableArrow/index.js +7 -22
  101. package/dist/elements/Pagination/ClickableArrow/types.js +2 -5
  102. package/dist/elements/Pagination/Page/index.js +4 -19
  103. package/dist/elements/Pagination/Page/types.js +2 -5
  104. package/dist/elements/Pagination/Separator/index.js +4 -19
  105. package/dist/elements/Pagination/index.js +20 -35
  106. package/dist/elements/Pagination/types.js +2 -5
  107. package/dist/elements/PerPage/index.js +28 -83
  108. package/dist/elements/Pill/index.js +16 -40
  109. package/dist/elements/Pill/types.js +2 -5
  110. package/dist/elements/Popup/PopupButtonList/index.js +10 -75
  111. package/dist/elements/Popup/PopupTrigger/index.js +6 -21
  112. package/dist/elements/Popup/PopupTrigger/types.js +2 -5
  113. package/dist/elements/Popup/index.js +29 -80
  114. package/dist/elements/Popup/types.js +2 -5
  115. package/dist/elements/PreviewButton/index.js +22 -73
  116. package/dist/elements/PreviewSizes/index.js +24 -80
  117. package/dist/elements/Publish/index.js +23 -79
  118. package/dist/elements/PublishMany/index.js +37 -93
  119. package/dist/elements/PublishMany/types.js +2 -5
  120. package/dist/elements/ReactSelect/ClearIndicator/index.js +7 -22
  121. package/dist/elements/ReactSelect/Control/index.js +5 -20
  122. package/dist/elements/ReactSelect/MultiValue/index.js +8 -23
  123. package/dist/elements/ReactSelect/MultiValueLabel/index.js +7 -22
  124. package/dist/elements/ReactSelect/MultiValueRemove/index.js +12 -27
  125. package/dist/elements/ReactSelect/SingleValue/index.js +5 -20
  126. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -22
  127. package/dist/elements/ReactSelect/index.js +45 -60
  128. package/dist/elements/ReactSelect/types.js +2 -5
  129. package/dist/elements/RenderCustomComponent/index.js +5 -20
  130. package/dist/elements/RenderCustomComponent/types.js +2 -5
  131. package/dist/elements/RenderTitle/index.js +9 -24
  132. package/dist/elements/RenderTitle/types.js +2 -5
  133. package/dist/elements/Save/index.js +16 -72
  134. package/dist/elements/SaveDraft/index.js +24 -80
  135. package/dist/elements/SearchFilter/index.js +31 -86
  136. package/dist/elements/SearchFilter/types.js +2 -5
  137. package/dist/elements/SelectAll/index.d.ts.map +1 -1
  138. package/dist/elements/SelectAll/index.js +13 -26
  139. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  140. package/dist/elements/SelectRow/index.js +10 -23
  141. package/dist/elements/ShimmerEffect/index.js +12 -71
  142. package/dist/elements/SortColumn/index.js +27 -90
  143. package/dist/elements/SortColumn/types.js +2 -5
  144. package/dist/elements/SortComplex/index.js +35 -90
  145. package/dist/elements/SortComplex/types.js +2 -5
  146. package/dist/elements/Status/index.js +38 -88
  147. package/dist/elements/StayLoggedIn/index.js +20 -34
  148. package/dist/elements/StayLoggedIn/types.js +2 -5
  149. package/dist/elements/StepNav/SetStepNav.js +6 -16
  150. package/dist/elements/StepNav/index.js +27 -93
  151. package/dist/elements/StepNav/types.js +2 -5
  152. package/dist/elements/Table/TableCellProvider/index.js +9 -32
  153. package/dist/elements/Table/index.js +15 -38
  154. package/dist/elements/Table/types.js +2 -5
  155. package/dist/elements/TableColumns/buildColumns.d.ts.map +1 -1
  156. package/dist/elements/TableColumns/buildColumns.js +7 -16
  157. package/dist/elements/TableColumns/columnReducer.js +2 -12
  158. package/dist/elements/TableColumns/index.js +24 -86
  159. package/dist/elements/Thumbnail/index.js +12 -68
  160. package/dist/elements/Thumbnail/types.js +2 -5
  161. package/dist/elements/ThumbnailCard/index.js +13 -28
  162. package/dist/elements/ThumbnailCard/types.js +2 -5
  163. package/dist/elements/Tooltip/index.js +14 -65
  164. package/dist/elements/Tooltip/types.js +2 -5
  165. package/dist/elements/Translation/index.js +7 -58
  166. package/dist/elements/UnpublishMany/index.js +37 -93
  167. package/dist/elements/UnpublishMany/types.js +2 -5
  168. package/dist/elements/Upload/index.js +57 -127
  169. package/dist/elements/Upload/types.d.ts +1 -2
  170. package/dist/elements/Upload/types.d.ts.map +1 -1
  171. package/dist/elements/Upload/types.js +2 -5
  172. package/dist/elements/ViewDescription/index.js +12 -27
  173. package/dist/elements/ViewDescription/types.js +4 -19
  174. package/dist/elements/WhereBuilder/Condition/Date/index.js +6 -21
  175. package/dist/elements/WhereBuilder/Condition/Date/types.js +2 -5
  176. package/dist/elements/WhereBuilder/Condition/Number/index.js +7 -22
  177. package/dist/elements/WhereBuilder/Condition/Number/types.js +2 -5
  178. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +28 -84
  179. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +5 -15
  180. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +2 -5
  181. package/dist/elements/WhereBuilder/Condition/Select/index.js +15 -30
  182. package/dist/elements/WhereBuilder/Condition/Select/types.js +2 -5
  183. package/dist/elements/WhereBuilder/Condition/Text/index.js +7 -22
  184. package/dist/elements/WhereBuilder/Condition/Text/types.js +2 -5
  185. package/dist/elements/WhereBuilder/Condition/index.js +37 -93
  186. package/dist/elements/WhereBuilder/Condition/types.js +2 -5
  187. package/dist/elements/WhereBuilder/field-types.js +2 -12
  188. package/dist/elements/WhereBuilder/index.js +43 -98
  189. package/dist/elements/WhereBuilder/reducer.js +2 -12
  190. package/dist/elements/WhereBuilder/transformWhereQuery.js +6 -12
  191. package/dist/elements/WhereBuilder/types.js +2 -5
  192. package/dist/elements/WhereBuilder/validateWhereQuery.js +4 -14
  193. package/dist/exports/assets.js +3 -26
  194. package/dist/exports/elements.d.ts +6 -0
  195. package/dist/exports/elements.d.ts.map +1 -1
  196. package/dist/exports/elements.js +48 -225
  197. package/dist/exports/forms.d.ts +4 -1
  198. package/dist/exports/forms.d.ts.map +1 -1
  199. package/dist/exports/forms.js +38 -157
  200. package/dist/exports/graphics.js +3 -26
  201. package/dist/exports/hooks.js +10 -54
  202. package/dist/exports/icons.js +18 -81
  203. package/dist/exports/index.js +10 -27
  204. package/dist/exports/providers.d.ts +1 -0
  205. package/dist/exports/providers.d.ts.map +1 -1
  206. package/dist/exports/providers.js +24 -115
  207. package/dist/exports/templates.js +3 -21
  208. package/dist/exports/types.d.ts +1 -0
  209. package/dist/exports/types.d.ts.map +1 -1
  210. package/dist/exports/types.js +2 -5
  211. package/dist/exports/utilities.js +11 -61
  212. package/dist/forms/Error/index.js +11 -26
  213. package/dist/forms/FieldDescription/index.js +9 -24
  214. package/dist/forms/FieldDescription/types.js +2 -5
  215. package/dist/forms/FieldPathProvider/index.d.ts.map +1 -1
  216. package/dist/forms/FieldPathProvider/index.js +7 -30
  217. package/dist/forms/Form/buildFieldSchemaMap.js +14 -14
  218. package/dist/forms/Form/buildInitialState.js +2 -12
  219. package/dist/forms/Form/context.js +17 -67
  220. package/dist/forms/Form/createNestedFieldPath.js +5 -15
  221. package/dist/forms/Form/errorMessages.js +2 -12
  222. package/dist/forms/Form/fieldReducer.d.ts +2 -1
  223. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  224. package/dist/forms/Form/fieldReducer.js +25 -38
  225. package/dist/forms/Form/getDataByPath.d.ts +1 -1
  226. package/dist/forms/Form/getDataByPath.d.ts.map +1 -1
  227. package/dist/forms/Form/getDataByPath.js +4 -14
  228. package/dist/forms/Form/getSiblingData.d.ts +1 -2
  229. package/dist/forms/Form/getSiblingData.d.ts.map +1 -1
  230. package/dist/forms/Form/getSiblingData.js +6 -21
  231. package/dist/forms/Form/index.d.ts.map +1 -1
  232. package/dist/forms/Form/index.js +85 -141
  233. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  234. package/dist/forms/Form/initContextState.js +2 -12
  235. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  236. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  237. package/dist/forms/Form/mergeServerFormState.js +5 -15
  238. package/dist/forms/Form/reduceFieldsToValues.d.ts +1 -2
  239. package/dist/forms/Form/reduceFieldsToValues.d.ts.map +1 -1
  240. package/dist/forms/Form/reduceFieldsToValues.js +4 -14
  241. package/dist/forms/Form/rows.d.ts +1 -1
  242. package/dist/forms/Form/rows.d.ts.map +1 -1
  243. package/dist/forms/Form/rows.js +3 -21
  244. package/dist/forms/Form/types.d.ts +2 -23
  245. package/dist/forms/Form/types.d.ts.map +1 -1
  246. package/dist/forms/Form/types.js +2 -5
  247. package/dist/forms/Label/index.js +9 -24
  248. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  249. package/dist/forms/NullifyField/index.js +16 -72
  250. package/dist/forms/ReadOnlyProvider/index.d.ts +7 -0
  251. package/dist/forms/ReadOnlyProvider/index.d.ts.map +1 -0
  252. package/dist/forms/ReadOnlyProvider/index.js +15 -0
  253. package/dist/forms/RenderFields/RenderField.d.ts +3 -0
  254. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  255. package/dist/forms/RenderFields/RenderField.js +22 -23
  256. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  257. package/dist/forms/RenderFields/index.js +16 -29
  258. package/dist/forms/RenderFields/types.d.ts +2 -0
  259. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  260. package/dist/forms/RenderFields/types.js +2 -5
  261. package/dist/forms/RowLabel/index.js +13 -28
  262. package/dist/forms/RowLabel/types.d.ts +1 -2
  263. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  264. package/dist/forms/RowLabel/types.js +4 -19
  265. package/dist/forms/Submit/index.js +11 -62
  266. package/dist/forms/WatchChildErrors/buildPathSegments.js +2 -12
  267. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.d.ts +1 -1
  268. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +2 -12
  269. package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts +1 -2
  270. package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts.map +1 -1
  271. package/dist/forms/WatchChildErrors/getNestedFieldState.js +5 -14
  272. package/dist/forms/WatchChildErrors/index.js +11 -26
  273. package/dist/forms/fields/Array/ArrayRow.d.ts +1 -2
  274. package/dist/forms/fields/Array/ArrayRow.d.ts.map +1 -1
  275. package/dist/forms/fields/Array/ArrayRow.js +24 -39
  276. package/dist/forms/fields/Array/index.js +59 -115
  277. package/dist/forms/fields/Array/types.js +2 -5
  278. package/dist/forms/fields/Blocks/BlockRow.d.ts +1 -2
  279. package/dist/forms/fields/Blocks/BlockRow.d.ts.map +1 -1
  280. package/dist/forms/fields/Blocks/BlockRow.js +27 -42
  281. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +10 -25
  282. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +29 -85
  283. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +2 -5
  284. package/dist/forms/fields/Blocks/RowActions.js +12 -27
  285. package/dist/forms/fields/Blocks/SectionTitle/index.js +10 -25
  286. package/dist/forms/fields/Blocks/SectionTitle/types.js +2 -5
  287. package/dist/forms/fields/Blocks/index.js +78 -133
  288. package/dist/forms/fields/Blocks/types.js +2 -5
  289. package/dist/forms/fields/Checkbox/Input.d.ts.map +1 -1
  290. package/dist/forms/fields/Checkbox/Input.js +11 -33
  291. package/dist/forms/fields/Checkbox/index.js +19 -75
  292. package/dist/forms/fields/Checkbox/types.js +2 -5
  293. package/dist/forms/fields/Code/index.js +15 -71
  294. package/dist/forms/fields/Code/types.js +2 -5
  295. package/dist/forms/fields/Collapsible/index.js +31 -87
  296. package/dist/forms/fields/Collapsible/types.js +2 -5
  297. package/dist/forms/fields/ConfirmPassword/index.d.ts.map +1 -1
  298. package/dist/forms/fields/ConfirmPassword/index.js +19 -75
  299. package/dist/forms/fields/ConfirmPassword/types.js +2 -5
  300. package/dist/forms/fields/DateTime/index.js +18 -74
  301. package/dist/forms/fields/DateTime/types.js +2 -5
  302. package/dist/forms/fields/Email/index.js +19 -83
  303. package/dist/forms/fields/Email/types.js +2 -5
  304. package/dist/forms/fields/Group/index.js +32 -88
  305. package/dist/forms/fields/Group/provider.js +7 -69
  306. package/dist/forms/fields/Group/types.js +2 -5
  307. package/dist/forms/fields/HiddenInput/index.js +8 -64
  308. package/dist/forms/fields/HiddenInput/types.js +2 -5
  309. package/dist/forms/fields/JSON/index.js +20 -76
  310. package/dist/forms/fields/JSON/types.js +2 -5
  311. package/dist/forms/fields/Number/index.js +26 -82
  312. package/dist/forms/fields/Number/types.js +2 -5
  313. package/dist/forms/fields/Password/index.js +15 -79
  314. package/dist/forms/fields/Password/types.js +2 -5
  315. package/dist/forms/fields/Point/index.js +24 -80
  316. package/dist/forms/fields/Point/types.js +2 -5
  317. package/dist/forms/fields/RadioGroup/Radio/index.js +13 -28
  318. package/dist/forms/fields/RadioGroup/index.js +23 -79
  319. package/dist/forms/fields/RadioGroup/types.js +2 -5
  320. package/dist/forms/fields/Relationship/AddNew/index.js +43 -99
  321. package/dist/forms/fields/Relationship/AddNew/types.js +2 -5
  322. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +6 -16
  323. package/dist/forms/fields/Relationship/createRelationMap.js +2 -12
  324. package/dist/forms/fields/Relationship/findOptionsByValue.js +2 -12
  325. package/dist/forms/fields/Relationship/index.js +64 -120
  326. package/dist/forms/fields/Relationship/optionsReducer.js +7 -17
  327. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +21 -72
  328. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +22 -73
  329. package/dist/forms/fields/Relationship/types.js +2 -5
  330. package/dist/forms/fields/RichText/index.js +2 -12
  331. package/dist/forms/fields/RichText/types.js +2 -5
  332. package/dist/forms/fields/Row/index.js +11 -26
  333. package/dist/forms/fields/Row/provider.js +7 -69
  334. package/dist/forms/fields/Row/types.js +2 -5
  335. package/dist/forms/fields/Select/index.js +24 -88
  336. package/dist/forms/fields/Select/types.js +2 -5
  337. package/dist/forms/fields/Tabs/Tab/index.js +13 -64
  338. package/dist/forms/fields/Tabs/index.d.ts.map +1 -1
  339. package/dist/forms/fields/Tabs/index.js +35 -91
  340. package/dist/forms/fields/Tabs/provider.js +7 -69
  341. package/dist/forms/fields/Tabs/types.js +2 -5
  342. package/dist/forms/fields/Text/Input.d.ts +18 -0
  343. package/dist/forms/fields/Text/Input.d.ts.map +1 -0
  344. package/dist/forms/fields/Text/Input.js +62 -0
  345. package/dist/forms/fields/Text/index.d.ts.map +1 -1
  346. package/dist/forms/fields/Text/index.js +44 -129
  347. package/dist/forms/fields/Text/types.d.ts +2 -2
  348. package/dist/forms/fields/Text/types.d.ts.map +1 -1
  349. package/dist/forms/fields/Text/types.js +2 -5
  350. package/dist/forms/fields/Textarea/Input.d.ts +11 -0
  351. package/dist/forms/fields/Textarea/Input.d.ts.map +1 -0
  352. package/dist/forms/fields/Textarea/Input.js +43 -0
  353. package/dist/forms/fields/Textarea/index.d.ts.map +1 -1
  354. package/dist/forms/fields/Textarea/index.js +39 -104
  355. package/dist/forms/fields/Textarea/types.js +2 -5
  356. package/dist/forms/fields/UI/index.js +2 -12
  357. package/dist/forms/fields/Upload/Input.d.ts +15 -1
  358. package/dist/forms/fields/Upload/Input.d.ts.map +1 -1
  359. package/dist/forms/fields/Upload/Input.js +127 -2
  360. package/dist/forms/fields/Upload/index.d.ts.map +1 -1
  361. package/dist/forms/fields/Upload/index.js +32 -180
  362. package/dist/forms/fields/Upload/types.js +2 -5
  363. package/dist/forms/fields/getFilterOptionsQuery.js +2 -12
  364. package/dist/forms/fields/index.js +50 -65
  365. package/dist/forms/fields/shared.d.ts +3 -3
  366. package/dist/forms/fields/shared.d.ts.map +1 -1
  367. package/dist/forms/fields/shared.js +7 -21
  368. package/dist/forms/useField/index.d.ts.map +1 -1
  369. package/dist/forms/useField/index.js +30 -41
  370. package/dist/forms/useField/types.d.ts +2 -2
  371. package/dist/forms/useField/types.d.ts.map +1 -1
  372. package/dist/forms/useField/types.js +2 -5
  373. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.d.ts +1 -2
  374. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  375. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +21 -33
  376. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +5 -14
  377. package/dist/forms/utilities/buildStateFromSchema/index.d.ts +1 -2
  378. package/dist/forms/utilities/buildStateFromSchema/index.d.ts.map +1 -1
  379. package/dist/forms/utilities/buildStateFromSchema/index.js +4 -14
  380. package/dist/forms/utilities/buildStateFromSchema/iterateFields.d.ts +1 -2
  381. package/dist/forms/utilities/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  382. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +8 -16
  383. package/dist/forms/withCondition/WatchCondition.js +7 -57
  384. package/dist/forms/withCondition/index.js +8 -23
  385. package/dist/graphics/Account/Default/index.js +7 -22
  386. package/dist/graphics/Account/Gravatar/index.js +10 -25
  387. package/dist/graphics/Account/index.js +15 -30
  388. package/dist/graphics/DefaultBlockImage/index.js +11 -62
  389. package/dist/graphics/ExternalLink/index.js +5 -20
  390. package/dist/graphics/File/index.js +7 -22
  391. package/dist/graphics/Icon/index.js +13 -28
  392. package/dist/graphics/Logo/index.js +15 -30
  393. package/dist/graphics/Search/index.js +6 -21
  394. package/dist/hooks/useAdminThumbnail.js +5 -15
  395. package/dist/hooks/useDebounce.js +6 -16
  396. package/dist/hooks/useDebouncedCallback.js +10 -15
  397. package/dist/hooks/useDebouncedEffect.js +6 -16
  398. package/dist/hooks/useDelay.js +7 -58
  399. package/dist/hooks/useDelayedRender.js +11 -62
  400. package/dist/hooks/useHotkey.js +10 -20
  401. package/dist/hooks/useIntersect.js +7 -17
  402. package/dist/hooks/usePayloadAPI.js +17 -32
  403. package/dist/hooks/useResize.js +5 -15
  404. package/dist/hooks/useThrottledEffect.js +5 -15
  405. package/dist/hooks/useThumbnail.js +8 -18
  406. package/dist/hooks/useUseAsTitle.js +6 -16
  407. package/dist/icons/Calendar/index.js +8 -23
  408. package/dist/icons/Check/index.js +6 -21
  409. package/dist/icons/Chevron/index.js +5 -20
  410. package/dist/icons/CloseMenu/index.js +6 -21
  411. package/dist/icons/CodeBlock/index.js +5 -20
  412. package/dist/icons/Copy/index.js +6 -21
  413. package/dist/icons/DragHandle/index.js +10 -25
  414. package/dist/icons/Edit/index.js +7 -22
  415. package/dist/icons/Line/index.js +5 -20
  416. package/dist/icons/Link/index.js +6 -21
  417. package/dist/icons/LogOut/index.js +7 -22
  418. package/dist/icons/Menu/index.js +7 -22
  419. package/dist/icons/MinimizeMaximize/index.js +12 -63
  420. package/dist/icons/More/index.js +7 -22
  421. package/dist/icons/Plus/index.js +6 -21
  422. package/dist/icons/Search/index.js +6 -21
  423. package/dist/icons/Swap/index.js +8 -23
  424. package/dist/icons/X/index.js +6 -21
  425. package/dist/index.js +2 -19
  426. package/dist/providers/ActionsProvider/SetViewActions/index.d.ts +6 -0
  427. package/dist/providers/ActionsProvider/SetViewActions/index.d.ts.map +1 -0
  428. package/dist/providers/ActionsProvider/SetViewActions/index.js +18 -0
  429. package/dist/providers/ActionsProvider/index.d.ts +3 -2
  430. package/dist/providers/ActionsProvider/index.d.ts.map +1 -1
  431. package/dist/providers/ActionsProvider/index.js +13 -72
  432. package/dist/providers/Auth/index.d.ts.map +1 -1
  433. package/dist/providers/Auth/index.js +56 -132
  434. package/dist/providers/Auth/types.js +2 -5
  435. package/dist/providers/ClientFunction/index.js +14 -40
  436. package/dist/providers/ComponentMapProvider/index.d.ts +4 -0
  437. package/dist/providers/ComponentMapProvider/index.d.ts.map +1 -1
  438. package/dist/providers/ComponentMapProvider/index.js +20 -67
  439. package/dist/providers/Config/index.js +6 -65
  440. package/dist/providers/CustomProvider/index.js +9 -24
  441. package/dist/providers/DocumentEvents/index.js +7 -66
  442. package/dist/providers/DocumentEvents/types.d.ts +1 -1
  443. package/dist/providers/DocumentEvents/types.d.ts.map +1 -1
  444. package/dist/providers/DocumentEvents/types.js +2 -5
  445. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +9 -19
  446. package/dist/providers/DocumentInfo/index.js +42 -100
  447. package/dist/providers/DocumentInfo/types.d.ts +1 -2
  448. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  449. package/dist/providers/DocumentInfo/types.js +2 -5
  450. package/dist/providers/EditDepth/index.js +5 -67
  451. package/dist/providers/FormQueryParams/index.js +7 -69
  452. package/dist/providers/ListInfo/index.js +9 -68
  453. package/dist/providers/ListInfo/types.d.ts +2 -2
  454. package/dist/providers/ListInfo/types.d.ts.map +1 -1
  455. package/dist/providers/ListInfo/types.js +2 -5
  456. package/dist/providers/Locale/index.d.ts.map +1 -1
  457. package/dist/providers/Locale/index.js +56 -97
  458. package/dist/providers/OperationProvider/index.js +5 -67
  459. package/dist/providers/Params/index.js +9 -67
  460. package/dist/providers/Portal/index.js +4 -19
  461. package/dist/providers/Preferences/index.js +25 -89
  462. package/dist/providers/Root/index.d.ts +2 -1
  463. package/dist/providers/Root/index.d.ts.map +1 -1
  464. package/dist/providers/Root/index.js +31 -82
  465. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  466. package/dist/providers/SearchParams/index.js +14 -77
  467. package/dist/providers/SearchParams/types.js +2 -5
  468. package/dist/providers/SelectionProvider/index.js +23 -90
  469. package/dist/providers/Theme/index.d.ts +6 -3
  470. package/dist/providers/Theme/index.d.ts.map +1 -1
  471. package/dist/providers/Theme/index.js +42 -106
  472. package/dist/providers/Theme/types.d.ts +1 -0
  473. package/dist/providers/Theme/types.d.ts.map +1 -1
  474. package/dist/providers/Theme/types.js +2 -5
  475. package/dist/providers/Theme/utilities.js +3 -21
  476. package/dist/providers/Translation/index.d.ts +1 -6
  477. package/dist/providers/Translation/index.d.ts.map +1 -1
  478. package/dist/providers/Translation/index.js +12 -69
  479. package/dist/scss/toastify.scss +0 -1
  480. package/dist/templates/Default/NavHamburger/index.js +7 -22
  481. package/dist/templates/Default/Wrapper/index.js +7 -22
  482. package/dist/templates/Default/index.js +17 -68
  483. package/dist/templates/Default/types.js +2 -5
  484. package/dist/templates/Minimal/index.js +6 -21
  485. package/dist/templates/Minimal/types.js +2 -5
  486. package/dist/utilities/api.js +4 -19
  487. package/dist/utilities/arraysHaveSameStrings.js +2 -12
  488. package/dist/utilities/buildComponentMap/index.d.ts +3 -7
  489. package/dist/utilities/buildComponentMap/index.d.ts.map +1 -1
  490. package/dist/utilities/buildComponentMap/index.js +36 -45
  491. package/dist/utilities/buildComponentMap/mapActions.d.ts +7 -0
  492. package/dist/utilities/buildComponentMap/mapActions.d.ts.map +1 -0
  493. package/dist/utilities/buildComponentMap/mapActions.js +39 -0
  494. package/dist/utilities/buildComponentMap/mapFields.d.ts +2 -5
  495. package/dist/utilities/buildComponentMap/mapFields.d.ts.map +1 -1
  496. package/dist/utilities/buildComponentMap/mapFields.js +48 -114
  497. package/dist/utilities/buildComponentMap/types.d.ts +10 -0
  498. package/dist/utilities/buildComponentMap/types.d.ts.map +1 -1
  499. package/dist/utilities/buildComponentMap/types.js +2 -5
  500. package/dist/utilities/buildFieldSchemaMap/index.js +5 -15
  501. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +9 -19
  502. package/dist/utilities/buildFieldSchemaMap/types.js +2 -5
  503. package/dist/utilities/canUseDOM.js +2 -12
  504. package/dist/utilities/findLocaleFromCode.js +4 -12
  505. package/dist/utilities/formatDate/getSupportedDateLocale.js +2 -12
  506. package/dist/utilities/formatDate/index.js +10 -69
  507. package/dist/utilities/formatDocTitle.d.ts +1 -2
  508. package/dist/utilities/formatDocTitle.d.ts.map +1 -1
  509. package/dist/utilities/formatDocTitle.js +6 -16
  510. package/dist/utilities/formatFields.js +3 -13
  511. package/dist/utilities/getFormState.d.ts +1 -2
  512. package/dist/utilities/getFormState.d.ts.map +1 -1
  513. package/dist/utilities/getFormState.js +2 -12
  514. package/dist/utilities/getOffsetTop.js +2 -12
  515. package/dist/utilities/getRequestLanguage.js +2 -12
  516. package/dist/utilities/getSupportedMonacoLocale.js +2 -12
  517. package/dist/utilities/groupNavItems.js +7 -25
  518. package/dist/utilities/scrollToID.js +2 -12
  519. package/dist/utilities/setsAreEqual.js +2 -12
  520. package/dist/utilities/withMergedProps/index.js +23 -21
  521. package/dist/views/Global/RenderCustomView.d.ts +0 -1
  522. package/dist/views/Global/RenderCustomView.js +0 -1
  523. package/package.json +7 -6
  524. package/dist/forms/FieldPathProvider/index.scss +0 -12
  525. package/dist/forms/FieldPathProvider/types.d.ts +0 -7
  526. package/dist/forms/FieldPathProvider/types.d.ts.map +0 -1
  527. package/dist/forms/FieldPathProvider/types.js +0 -6
  528. package/dist/providers/Auth/HydrateClientUser/index.d.ts +0 -7
  529. package/dist/providers/Auth/HydrateClientUser/index.d.ts.map +0 -1
  530. package/dist/providers/Auth/HydrateClientUser/index.js +0 -28
@@ -1,4 +1,4 @@
1
- import type { FieldPermissions } from 'payload/auth';
1
+ import type { CollectionPermission, GlobalPermission } from 'payload/auth';
2
2
  import type { Field, FieldWithPath, SanitizedConfig } from 'payload/types';
3
3
  import React from 'react';
4
4
  import type { FieldMap } from './types';
@@ -7,11 +7,8 @@ export declare const mapFields: (args: {
7
7
  config: SanitizedConfig;
8
8
  fieldSchema: FieldWithPath[];
9
9
  filter?: (field: Field) => boolean;
10
- operation?: 'create' | 'update';
11
10
  parentPath?: string;
12
- permissions?: FieldPermissions | {
13
- [field: string]: FieldPermissions;
14
- };
11
+ permissions?: CollectionPermission['fields'] | GlobalPermission['fields'];
15
12
  readOnly?: boolean;
16
13
  }) => FieldMap;
17
14
  //# sourceMappingURL=mapFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapFields.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildComponentMap/mapFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAa,KAAK,EAAE,aAAa,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAGjG,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,QAAQ,EAAwC,MAAM,SAAS,CAAA;AAU7E,eAAO,MAAM,SAAS;kBACN,MAAM,EAAE,CAAC,GAAG,CAAC;YACnB,eAAe;iBACV,aAAa,EAAE;qBACX,KAAK,KAAK,OAAO;gBACtB,QAAQ,GAAG,QAAQ;iBAClB,MAAM;;;;eAMR,OAAO;cAsWnB,CAAA"}
1
+ {"version":3,"file":"mapFields.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildComponentMap/mapFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAoB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC5F,OAAO,KAAK,EAAa,KAAK,EAAE,aAAa,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAGjG,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,OAAO,KAAK,EAAE,QAAQ,EAAwC,MAAM,SAAS,CAAA;AAU7E,eAAO,MAAM,SAAS;kBACN,MAAM,EAAE,CAAC,GAAG,CAAC;YACnB,eAAe;iBACV,aAAa,EAAE;qBACX,KAAK,KAAK,OAAO;iBACrB,MAAM;kBACL,oBAAoB,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC;eAC9D,OAAO;cAgWnB,CAAA"}
@@ -1,95 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "mapFields", {
6
- enumerable: true,
7
- get: function() {
8
- return mapFields;
9
- }
10
- });
11
- const _types = require("payload/types");
12
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
- const _ = require("../..");
14
- const _RenderCustomComponent = require("../../elements/RenderCustomComponent");
15
- const _SortColumn = require("../../elements/SortColumn");
16
- const _Error = /*#__PURE__*/ _interop_require_default(require("../../forms/Error"));
17
- const _FieldDescription = /*#__PURE__*/ _interop_require_default(require("../../forms/FieldDescription"));
18
- const _Label = /*#__PURE__*/ _interop_require_default(require("../../forms/Label"));
19
- const _fields = require("../../forms/fields");
20
- function _interop_require_default(obj) {
21
- return obj && obj.__esModule ? obj : {
22
- default: obj
23
- };
24
- }
25
- function _getRequireWildcardCache(nodeInterop) {
26
- if (typeof WeakMap !== "function") return null;
27
- var cacheBabelInterop = new WeakMap();
28
- var cacheNodeInterop = new WeakMap();
29
- return (_getRequireWildcardCache = function(nodeInterop) {
30
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
31
- })(nodeInterop);
32
- }
33
- function _interop_require_wildcard(obj, nodeInterop) {
34
- if (!nodeInterop && obj && obj.__esModule) {
35
- return obj;
36
- }
37
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
38
- return {
39
- default: obj
40
- };
41
- }
42
- var cache = _getRequireWildcardCache(nodeInterop);
43
- if (cache && cache.has(obj)) {
44
- return cache.get(obj);
45
- }
46
- var newObj = {
47
- __proto__: null
48
- };
49
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
50
- for(var key in obj){
51
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
52
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
53
- if (desc && (desc.get || desc.set)) {
54
- Object.defineProperty(newObj, key, desc);
55
- } else {
56
- newObj[key] = obj[key];
57
- }
58
- }
59
- }
60
- newObj.default = obj;
61
- if (cache) {
62
- cache.set(obj, newObj);
63
- }
64
- return newObj;
65
- }
66
- const mapFields = (args)=>{
67
- const { DefaultCell, config, fieldSchema, filter, operation = 'update', parentPath, permissions, readOnly: readOnlyOverride } = args;
1
+ import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types';
2
+ import React, { Fragment } from 'react';
3
+ import { RenderCustomComponent } from '../../elements/RenderCustomComponent';
4
+ import { SortColumn } from '../../elements/SortColumn';
5
+ import DefaultError from '../../forms/Error';
6
+ import DefaultDescription from '../../forms/FieldDescription';
7
+ import DefaultLabel from '../../forms/Label';
8
+ import { fieldTypes } from '../../forms/fields';
9
+ import HiddenInput from '../../forms/fields/HiddenInput';
10
+ export const mapFields = (args)=>{
11
+ const { DefaultCell, config, fieldSchema, filter, parentPath, permissions, readOnly: readOnlyOverride } = args;
68
12
  const result = fieldSchema.reduce((acc, field)=>{
69
- const fieldIsPresentational = (0, _types.fieldIsPresentationalOnly)(field);
70
- let FieldComponent = field.admin?.components?.Field || _fields.fieldTypes[field.type];
13
+ const fieldIsPresentational = fieldIsPresentationalOnly(field);
14
+ let FieldComponent = field.admin?.components?.Field || fieldTypes[field.type];
71
15
  if (fieldIsPresentational || !field?.hidden && field?.admin?.disabled !== true) {
72
16
  if (filter && typeof filter === 'function' && filter(field) || !filter) {
73
17
  if (field.admin && 'hidden' in field.admin && field?.admin?.hidden) {
74
- FieldComponent = _fields.fieldTypes.hidden;
18
+ FieldComponent = fieldTypes.hidden;
75
19
  }
76
- const isFieldAffectingData = (0, _types.fieldAffectsData)(field);
20
+ const isFieldAffectingData = fieldAffectsData(field);
77
21
  const path = `${parentPath ? `${parentPath}.` : ''}${field.path || (isFieldAffectingData && 'name' in field ? field.name : '')}`;
78
- const fieldPermissions = isFieldAffectingData ? permissions?.[field.name] : permissions;
22
+ const fieldPermissions = isFieldAffectingData ? permissions?.[field.name] : undefined;
79
23
  // if the user cannot read the field, then filter it out
24
+ // this is different from `admin.readOnly` which is executed on the client based on `operation`
80
25
  if (fieldPermissions?.read?.permission === false) {
81
26
  return acc;
82
27
  }
83
- // readOnly from field config
84
- let readOnly = field.admin && 'readOnly' in field.admin ? field.admin.readOnly : undefined;
85
- // if parent field is readOnly
86
- // but this field is `readOnly: false`
87
- // the field should be editable
88
- if (readOnlyOverride && readOnly !== false) readOnly = true;
89
- // unless the user does not pass access control
90
- if (fieldPermissions?.[operation]?.permission === false) {
91
- readOnly = true;
92
- }
93
28
  const labelProps = {
94
29
  htmlFor: 'TODO',
95
30
  // TODO: fix types
@@ -105,7 +40,6 @@ const mapFields = (args)=>{
105
40
  config,
106
41
  fieldSchema: field.fields,
107
42
  filter,
108
- operation,
109
43
  parentPath: path,
110
44
  permissions,
111
45
  readOnly: readOnlyOverride
@@ -117,7 +51,6 @@ const mapFields = (args)=>{
117
51
  config,
118
52
  fieldSchema: tab.fields,
119
53
  filter,
120
- operation,
121
54
  parentPath: path,
122
55
  permissions,
123
56
  readOnly: readOnlyOverride
@@ -136,7 +69,6 @@ const mapFields = (args)=>{
136
69
  config,
137
70
  fieldSchema: block.fields,
138
71
  filter,
139
- operation,
140
72
  parentPath: `${path}.${block.slug}`,
141
73
  permissions,
142
74
  readOnly: readOnlyOverride
@@ -154,54 +86,56 @@ const mapFields = (args)=>{
154
86
  // i.e. not all fields have `maxRows` or `min` or `max`
155
87
  // but this is labor intensive and requires consuming components to be updated
156
88
  const fieldComponentProps = {
157
- AfterInput: 'components' in field.admin && 'afterInput' in field.admin.components && Array.isArray(field.admin.components.afterInput) && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, field.admin.components.afterInput.map((Component, i)=>/*#__PURE__*/ _react.default.createElement(Component, {
89
+ AfterInput: 'admin' in field && 'components' in field.admin && 'afterInput' in field.admin.components && Array.isArray(field.admin?.components?.afterInput) && /*#__PURE__*/ React.createElement(Fragment, null, field.admin.components.afterInput.map((Component, i)=>/*#__PURE__*/ React.createElement(Component, {
158
90
  key: i
159
91
  }))),
160
- BeforeInput: field.admin?.components && 'beforeInput' in field.admin?.components && Array.isArray(field.admin.components.beforeInput) && /*#__PURE__*/ _react.default.createElement(_react.Fragment, null, field.admin.components.beforeInput.map((Component, i)=>/*#__PURE__*/ _react.default.createElement(Component, {
92
+ BeforeInput: 'admin' in field && field.admin?.components && 'beforeInput' in field.admin.components && Array.isArray(field.admin.components.beforeInput) && /*#__PURE__*/ React.createElement(Fragment, null, field.admin.components.beforeInput.map((Component, i)=>/*#__PURE__*/ React.createElement(Component, {
161
93
  key: i
162
94
  }))),
163
- Description: /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.RenderCustomComponent, {
95
+ Description: /*#__PURE__*/ React.createElement(RenderCustomComponent, {
164
96
  CustomComponent: field.admin && 'description' in field.admin && field.admin.description && typeof field.admin.description === 'function' && field.admin.description,
165
- DefaultComponent: _FieldDescription.default,
97
+ DefaultComponent: DefaultDescription,
166
98
  componentProps: descriptionProps
167
99
  }),
168
- Error: /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.RenderCustomComponent, {
169
- CustomComponent: field.admin?.components && 'Error' in field.admin?.components && field.admin?.components?.Error,
170
- DefaultComponent: _Error.default,
100
+ Error: /*#__PURE__*/ React.createElement(RenderCustomComponent, {
101
+ CustomComponent: 'admin' in field && field.admin.components && 'Error' in field.admin.components && field.admin?.components?.Error,
102
+ DefaultComponent: DefaultError,
171
103
  componentProps: {
172
104
  path
173
105
  }
174
106
  }),
175
- Label: /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.RenderCustomComponent, {
176
- CustomComponent: field.admin?.components && 'Label' in field.admin?.components && field.admin?.components?.Label,
177
- DefaultComponent: _Label.default,
107
+ Label: /*#__PURE__*/ React.createElement(RenderCustomComponent, {
108
+ CustomComponent: 'admin' in field && field.admin?.components && 'Label' in field.admin.components && field.admin?.components?.Label,
109
+ DefaultComponent: DefaultLabel,
178
110
  componentProps: labelProps
179
111
  }),
180
- className: 'className' in field.admin ? field?.admin?.className : undefined,
112
+ className: 'admin' in field && 'className' in field.admin ? field?.admin?.className : undefined,
181
113
  fieldMap: nestedFieldMap,
182
- style: 'style' in field.admin ? field?.admin?.style : undefined,
183
- width: 'width' in field.admin ? field?.admin?.width : undefined,
114
+ style: 'admin' in field && 'style' in field.admin ? field?.admin?.style : undefined,
115
+ width: 'admin' in field && 'width' in field.admin ? field?.admin?.width : undefined,
184
116
  // TODO: fix types
185
117
  // label: 'label' in field ? field.label : undefined,
186
118
  blocks,
119
+ fieldPermissions,
187
120
  hasMany: 'hasMany' in field ? field.hasMany : undefined,
188
121
  max: 'max' in field ? field.max : undefined,
189
122
  maxRows: 'maxRows' in field ? field.maxRows : undefined,
190
123
  min: 'min' in field ? field.min : undefined,
191
124
  options: 'options' in field ? field.options : undefined,
125
+ readOnly: 'admin' in field && 'readOnly' in field.admin ? field.admin.readOnly : undefined,
192
126
  relationTo: 'relationTo' in field ? field.relationTo : undefined,
193
127
  richTextComponentMap: undefined,
194
- step: 'step' in field.admin ? field.admin.step : undefined,
128
+ step: 'admin' in field && 'step' in field.admin ? field.admin.step : undefined,
195
129
  tabs
196
130
  };
197
- let Field = /*#__PURE__*/ _react.default.createElement(FieldComponent, fieldComponentProps);
131
+ let Field = /*#__PURE__*/ React.createElement(FieldComponent, fieldComponentProps);
198
132
  const cellComponentProps = {
199
133
  name: 'name' in field ? field.name : undefined,
200
134
  blocks: 'blocks' in field && field.blocks.map((b)=>({
201
135
  slug: b.slug,
202
136
  labels: b.labels
203
137
  })),
204
- dateDisplayFormat: 'date' in field.admin ? field.admin.date.displayFormat : undefined,
138
+ dateDisplayFormat: 'admin' in field && 'date' in field.admin ? field.admin.date.displayFormat : undefined,
205
139
  fieldType: field.type,
206
140
  isFieldAffectingData,
207
141
  label: 'label' in field && field.label && typeof field.label !== 'function' ? field.label : undefined,
@@ -216,7 +150,7 @@ const mapFields = (args)=>{
216
150
  const isLazyField = 'LazyFieldComponent' in field.editor;
217
151
  const isLazyCell = 'LazyCellComponent' in field.editor;
218
152
  if (isLazyField) {
219
- RichTextFieldComponent = /*#__PURE__*/ _react.default.lazy(()=>{
153
+ RichTextFieldComponent = /*#__PURE__*/ React.lazy(()=>{
220
154
  return 'LazyFieldComponent' in field.editor ? field.editor.LazyFieldComponent().then((resolvedComponent)=>({
221
155
  default: resolvedComponent
222
156
  })) : null;
@@ -225,7 +159,7 @@ const mapFields = (args)=>{
225
159
  RichTextFieldComponent = field.editor.FieldComponent;
226
160
  }
227
161
  if (isLazyCell) {
228
- RichTextCellComponent = /*#__PURE__*/ _react.default.lazy(()=>{
162
+ RichTextCellComponent = /*#__PURE__*/ React.lazy(()=>{
229
163
  return 'LazyCellComponent' in field.editor ? field.editor.LazyCellComponent().then((resolvedComponent)=>({
230
164
  default: resolvedComponent
231
165
  })) : null;
@@ -243,23 +177,23 @@ const mapFields = (args)=>{
243
177
  cellComponentProps.richTextComponentMap = result;
244
178
  }
245
179
  if (RichTextFieldComponent) {
246
- Field = /*#__PURE__*/ _react.default.createElement(RichTextFieldComponent, fieldComponentProps);
180
+ Field = /*#__PURE__*/ React.createElement(RichTextFieldComponent, fieldComponentProps);
247
181
  }
248
182
  if (RichTextCellComponent) {
249
- cellComponentProps.CellComponentOverride = /*#__PURE__*/ _react.default.createElement(RichTextCellComponent, null);
183
+ cellComponentProps.CellComponentOverride = /*#__PURE__*/ React.createElement(RichTextCellComponent, null);
250
184
  }
251
185
  }
252
186
  const reducedField = {
253
187
  name: 'name' in field ? field.name : '',
254
188
  type: field.type,
255
- Cell: /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.RenderCustomComponent, {
189
+ Cell: /*#__PURE__*/ React.createElement(RenderCustomComponent, {
256
190
  CustomComponent: field.admin?.components?.Cell,
257
191
  DefaultComponent: DefaultCell,
258
192
  componentProps: cellComponentProps
259
193
  }),
260
194
  Field,
261
- Heading: /*#__PURE__*/ _react.default.createElement(_SortColumn.SortColumn, {
262
- disable: 'disableSort' in field && Boolean(field.disableSort) || (0, _types.fieldIsPresentationalOnly)(field) || undefined,
195
+ Heading: /*#__PURE__*/ React.createElement(SortColumn, {
196
+ disable: 'disableSort' in field && Boolean(field.disableSort) || fieldIsPresentationalOnly(field) || undefined,
263
197
  label: 'label' in field && field.label && typeof field.label !== 'function' ? field.label : 'name' in field ? field.name : undefined,
264
198
  name: 'name' in field ? field.name : undefined
265
199
  }),
@@ -268,12 +202,12 @@ const mapFields = (args)=>{
268
202
  fieldPermissions,
269
203
  hasMany: 'hasMany' in field ? field.hasMany : undefined,
270
204
  isFieldAffectingData,
271
- isSidebar: field.admin?.position === 'sidebar',
205
+ isSidebar: 'admin' in field && field.admin?.position === 'sidebar',
272
206
  label: 'label' in field && typeof field.label !== 'function' ? field.label : undefined,
273
207
  labels: 'labels' in field ? field.labels : undefined,
274
208
  localized: 'localized' in field ? field.localized : false,
275
209
  options: 'options' in field ? field.options : undefined,
276
- readOnly,
210
+ readOnly: 'admin' in field && 'readOnly' in field.admin ? field.admin.readOnly : undefined,
277
211
  relationTo: 'relationTo' in field ? field.relationTo : undefined,
278
212
  subfields: nestedFieldMap,
279
213
  tabs
@@ -290,13 +224,13 @@ const mapFields = (args)=>{
290
224
  result.push({
291
225
  name: 'id',
292
226
  type: 'text',
293
- Cell: typeof DefaultCell === 'function' ? /*#__PURE__*/ _react.default.createElement(DefaultCell, {
227
+ Cell: typeof DefaultCell === 'function' ? /*#__PURE__*/ React.createElement(DefaultCell, {
294
228
  name: "id"
295
229
  }) : null,
296
- Field: /*#__PURE__*/ _react.default.createElement(_.HiddenInput, {
230
+ Field: /*#__PURE__*/ React.createElement(HiddenInput, {
297
231
  name: "id"
298
232
  }),
299
- Heading: /*#__PURE__*/ _react.default.createElement(_SortColumn.SortColumn, {
233
+ Heading: /*#__PURE__*/ React.createElement(SortColumn, {
300
234
  label: "ID",
301
235
  name: "id"
302
236
  }),
@@ -315,4 +249,4 @@ const mapFields = (args)=>{
315
249
  return result;
316
250
  };
317
251
 
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvYnVpbGRDb21wb25lbnRNYXAvbWFwRmllbGRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkUGVybWlzc2lvbnMgfSBmcm9tICdwYXlsb2FkL2F1dGgnXG5pbXBvcnQgdHlwZSB7IENlbGxQcm9wcywgRmllbGQsIEZpZWxkV2l0aFBhdGgsIExhYmVsUHJvcHMsIFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IFJlYWN0LCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgYXMgRmllbGREZXNjcmlwdGlvbiB9IGZyb20gJy4uLy4uL2Zvcm1zL0ZpZWxkRGVzY3JpcHRpb24vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZvcm1GaWVsZEJhc2UgfSBmcm9tICcuLi8uLi9mb3Jtcy9maWVsZHMvc2hhcmVkJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1hcCwgTWFwcGVkRmllbGQsIE1hcHBlZFRhYiwgUmVkdWNlZEJsb2NrIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgSGlkZGVuSW5wdXQgfSBmcm9tICcuLi8uLidcbmltcG9ydCB7IFJlbmRlckN1c3RvbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL1JlbmRlckN1c3RvbUNvbXBvbmVudCdcbmltcG9ydCB7IFNvcnRDb2x1bW4gfSBmcm9tICcuLi8uLi9lbGVtZW50cy9Tb3J0Q29sdW1uJ1xuaW1wb3J0IERlZmF1bHRFcnJvciBmcm9tICcuLi8uLi9mb3Jtcy9FcnJvcidcbmltcG9ydCBEZWZhdWx0RGVzY3JpcHRpb24gZnJvbSAnLi4vLi4vZm9ybXMvRmllbGREZXNjcmlwdGlvbidcbmltcG9ydCBEZWZhdWx0TGFiZWwgZnJvbSAnLi4vLi4vZm9ybXMvTGFiZWwnXG5pbXBvcnQgeyBmaWVsZFR5cGVzIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGRzJ1xuXG5leHBvcnQgY29uc3QgbWFwRmllbGRzID0gKGFyZ3M6IHtcbiAgRGVmYXVsdENlbGw/OiBSZWFjdC5GQzxhbnk+XG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIGZpZWxkU2NoZW1hOiBGaWVsZFdpdGhQYXRoW11cbiAgZmlsdGVyPzogKGZpZWxkOiBGaWVsZCkgPT4gYm9vbGVhblxuICBvcGVyYXRpb24/OiAnY3JlYXRlJyB8ICd1cGRhdGUnXG4gIHBhcmVudFBhdGg/OiBzdHJpbmdcbiAgcGVybWlzc2lvbnM/OlxuICAgIHwge1xuICAgICAgICBbZmllbGQ6IHN0cmluZ106IEZpZWxkUGVybWlzc2lvbnNcbiAgICAgIH1cbiAgICB8IEZpZWxkUGVybWlzc2lvbnNcbiAgcmVhZE9ubHk/OiBib29sZWFuXG59KTogRmllbGRNYXAgPT4ge1xuICBjb25zdCB7XG4gICAgRGVmYXVsdENlbGwsXG4gICAgY29uZmlnLFxuICAgIGZpZWxkU2NoZW1hLFxuICAgIGZpbHRlcixcbiAgICBvcGVyYXRpb24gPSAndXBkYXRlJyxcbiAgICBwYXJlbnRQYXRoLFxuICAgIHBlcm1pc3Npb25zLFxuICAgIHJlYWRPbmx5OiByZWFkT25seU92ZXJyaWRlLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHJlc3VsdDogRmllbGRNYXAgPSBmaWVsZFNjaGVtYS5yZWR1Y2UoKGFjYywgZmllbGQpOiBGaWVsZE1hcCA9PiB7XG4gICAgY29uc3QgZmllbGRJc1ByZXNlbnRhdGlvbmFsID0gZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZClcbiAgICBsZXQgRmllbGRDb21wb25lbnQgPSBmaWVsZC5hZG1pbj8uY29tcG9uZW50cz8uRmllbGQgfHwgZmllbGRUeXBlc1tmaWVsZC50eXBlXVxuXG4gICAgaWYgKGZpZWxkSXNQcmVzZW50YXRpb25hbCB8fCAoIWZpZWxkPy5oaWRkZW4gJiYgZmllbGQ/LmFkbWluPy5kaXNhYmxlZCAhPT0gdHJ1ZSkpIHtcbiAgICAgIGlmICgoZmlsdGVyICYmIHR5cGVvZiBmaWx0ZXIgPT09ICdmdW5jdGlvbicgJiYgZmlsdGVyKGZpZWxkKSkgfHwgIWZpbHRlcikge1xuICAgICAgICBpZiAoZmllbGQuYWRtaW4gJiYgJ2hpZGRlbicgaW4gZmllbGQuYWRtaW4gJiYgZmllbGQ/LmFkbWluPy5oaWRkZW4pIHtcbiAgICAgICAgICBGaWVsZENvbXBvbmVudCA9IGZpZWxkVHlwZXMuaGlkZGVuXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZpZWxkQWZmZWN0aW5nRGF0YSA9IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpXG5cbiAgICAgICAgY29uc3QgcGF0aCA9IGAke3BhcmVudFBhdGggPyBgJHtwYXJlbnRQYXRofS5gIDogJyd9JHtcbiAgICAgICAgICBmaWVsZC5wYXRoIHx8IChpc0ZpZWxkQWZmZWN0aW5nRGF0YSAmJiAnbmFtZScgaW4gZmllbGQgPyBmaWVsZC5uYW1lIDogJycpXG4gICAgICAgIH1gXG5cbiAgICAgICAgY29uc3QgZmllbGRQZXJtaXNzaW9ucyA9IGlzRmllbGRBZmZlY3RpbmdEYXRhID8gcGVybWlzc2lvbnM/LltmaWVsZC5uYW1lXSA6IHBlcm1pc3Npb25zXG5cbiAgICAgICAgLy8gaWYgdGhlIHVzZXIgY2Fubm90IHJlYWQgdGhlIGZpZWxkLCB0aGVuIGZpbHRlciBpdCBvdXRcbiAgICAgICAgaWYgKGZpZWxkUGVybWlzc2lvbnM/LnJlYWQ/LnBlcm1pc3Npb24gPT09IGZhbHNlKSB7XG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVhZE9ubHkgZnJvbSBmaWVsZCBjb25maWdcbiAgICAgICAgbGV0IHJlYWRPbmx5ID0gZmllbGQuYWRtaW4gJiYgJ3JlYWRPbmx5JyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkLmFkbWluLnJlYWRPbmx5IDogdW5kZWZpbmVkXG5cbiAgICAgICAgLy8gaWYgcGFyZW50IGZpZWxkIGlzIHJlYWRPbmx5XG4gICAgICAgIC8vIGJ1dCB0aGlzIGZpZWxkIGlzIGByZWFkT25seTogZmFsc2VgXG4gICAgICAgIC8vIHRoZSBmaWVsZCBzaG91bGQgYmUgZWRpdGFibGVcbiAgICAgICAgaWYgKHJlYWRPbmx5T3ZlcnJpZGUgJiYgcmVhZE9ubHkgIT09IGZhbHNlKSByZWFkT25seSA9IHRydWVcblxuICAgICAgICAvLyB1bmxlc3MgdGhlIHVzZXIgZG9lcyBub3QgcGFzcyBhY2Nlc3MgY29udHJvbFxuICAgICAgICBpZiAoZmllbGRQZXJtaXNzaW9ucz8uW29wZXJhdGlvbl0/LnBlcm1pc3Npb24gPT09IGZhbHNlKSB7XG4gICAgICAgICAgcmVhZE9ubHkgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbFByb3BzOiBMYWJlbFByb3BzID0ge1xuICAgICAgICAgIGh0bWxGb3I6ICdUT0RPJyxcbiAgICAgICAgICAvLyBUT0RPOiBmaXggdHlwZXNcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yLW5leHQtbGluZVxuICAgICAgICAgIGxhYmVsOiAnbGFiZWwnIGluIGZpZWxkID8gZmllbGQubGFiZWwgOiBudWxsLFxuICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnIGluIGZpZWxkID8gZmllbGQucmVxdWlyZWQgOiB1bmRlZmluZWQsXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvblByb3BzOiBGaWVsZERlc2NyaXB0aW9uID0ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgaW4gZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgIHR5cGVvZiBmaWVsZC5hZG1pbj8uZGVzY3JpcHRpb24gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZmllbGQuYWRtaW4uZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXN0ZWRGaWVsZE1hcCA9XG4gICAgICAgICAgJ2ZpZWxkcycgaW4gZmllbGQgJiZcbiAgICAgICAgICBmaWVsZC5maWVsZHMgJiZcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGZpZWxkLmZpZWxkcykgJiZcbiAgICAgICAgICBtYXBGaWVsZHMoe1xuICAgICAgICAgICAgRGVmYXVsdENlbGwsXG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgcGFyZW50UGF0aDogcGF0aCxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICAgICAgcmVhZE9ubHk6IHJlYWRPbmx5T3ZlcnJpZGUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAvLyBgdGFic2AgZmllbGRzIHJlcXVpcmUgYSBmaWVsZCBtYXAgb2YgZWFjaCBvZiBpdHMgdGFiJ3MgbmVzdGVkIGZpZWxkc1xuICAgICAgICBjb25zdCB0YWJzID1cbiAgICAgICAgICAndGFicycgaW4gZmllbGQgJiZcbiAgICAgICAgICBmaWVsZC50YWJzICYmXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC50YWJzKSAmJlxuICAgICAgICAgIGZpZWxkLnRhYnMubWFwKCh0YWIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhYkZpZWxkTWFwID0gbWFwRmllbGRzKHtcbiAgICAgICAgICAgICAgRGVmYXVsdENlbGwsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWE6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBwYXJlbnRQYXRoOiBwYXRoLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9ucyxcbiAgICAgICAgICAgICAgcmVhZE9ubHk6IHJlYWRPbmx5T3ZlcnJpZGUsXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBjb25zdCByZWR1Y2VkVGFiOiBNYXBwZWRUYWIgPSB7XG4gICAgICAgICAgICAgIG5hbWU6ICduYW1lJyBpbiB0YWIgPyB0YWIubmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHRhYi5sYWJlbCxcbiAgICAgICAgICAgICAgc3ViZmllbGRzOiB0YWJGaWVsZE1hcCxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlZHVjZWRUYWJcbiAgICAgICAgICB9KVxuXG4gICAgICAgIC8vIGBibG9ja3NgIGZpZWxkcyByZXF1aXJlIGEgZmllbGQgbWFwIG9mIGVhY2ggb2YgaXRzIGJsb2NrJ3MgbmVzdGVkIGZpZWxkc1xuICAgICAgICBjb25zdCBibG9ja3MgPVxuICAgICAgICAgICdibG9ja3MnIGluIGZpZWxkICYmXG4gICAgICAgICAgZmllbGQuYmxvY2tzICYmXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5ibG9ja3MpICYmXG4gICAgICAgICAgZmllbGQuYmxvY2tzLm1hcCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2NrRmllbGRNYXAgPSBtYXBGaWVsZHMoe1xuICAgICAgICAgICAgICBEZWZhdWx0Q2VsbCxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICBmaWVsZFNjaGVtYTogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICBmaWx0ZXIsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgcGFyZW50UGF0aDogYCR7cGF0aH0uJHtibG9jay5zbHVnfWAsXG4gICAgICAgICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICAgICAgICByZWFkT25seTogcmVhZE9ubHlPdmVycmlkZSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGNvbnN0IHJlZHVjZWRCbG9jazogUmVkdWNlZEJsb2NrID0ge1xuICAgICAgICAgICAgICBzbHVnOiBibG9jay5zbHVnLFxuICAgICAgICAgICAgICBpbWFnZUFsdFRleHQ6IGJsb2NrLmltYWdlQWx0VGV4dCxcbiAgICAgICAgICAgICAgaW1hZ2VVUkw6IGJsb2NrLmltYWdlVVJMLFxuICAgICAgICAgICAgICBsYWJlbHM6IGJsb2NrLmxhYmVscyxcbiAgICAgICAgICAgICAgc3ViZmllbGRzOiBibG9ja0ZpZWxkTWFwLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVkdWNlZEJsb2NrXG4gICAgICAgICAgfSlcblxuICAgICAgICAvLyBUT0RPOiB0aGVzZSB0eXBlcyBjYW4gZ2V0IGNsZWFuZWQgdXBcbiAgICAgICAgLy8gaS5lLiBub3QgYWxsIGZpZWxkcyBoYXZlIGBtYXhSb3dzYCBvciBgbWluYCBvciBgbWF4YFxuICAgICAgICAvLyBidXQgdGhpcyBpcyBsYWJvciBpbnRlbnNpdmUgYW5kIHJlcXVpcmVzIGNvbnN1bWluZyBjb21wb25lbnRzIHRvIGJlIHVwZGF0ZWRcbiAgICAgICAgY29uc3QgZmllbGRDb21wb25lbnRQcm9wczogRm9ybUZpZWxkQmFzZSA9IHtcbiAgICAgICAgICBBZnRlcklucHV0OiAnY29tcG9uZW50cycgaW4gZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgICdhZnRlcklucHV0JyBpbiBmaWVsZC5hZG1pbi5jb21wb25lbnRzICYmXG4gICAgICAgICAgICBBcnJheS5pc0FycmF5KGZpZWxkLmFkbWluLmNvbXBvbmVudHMuYWZ0ZXJJbnB1dCkgJiYgKFxuICAgICAgICAgICAgICA8RnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAge2ZpZWxkLmFkbWluLmNvbXBvbmVudHMuYWZ0ZXJJbnB1dC5tYXAoKENvbXBvbmVudCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPENvbXBvbmVudCBrZXk9e2l9IC8+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICApLFxuICAgICAgICAgIEJlZm9yZUlucHV0OiBmaWVsZC5hZG1pbj8uY29tcG9uZW50cyAmJlxuICAgICAgICAgICAgJ2JlZm9yZUlucHV0JyBpbiBmaWVsZC5hZG1pbj8uY29tcG9uZW50cyAmJlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5hZG1pbi5jb21wb25lbnRzLmJlZm9yZUlucHV0KSAmJiAoXG4gICAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgICB7ZmllbGQuYWRtaW4uY29tcG9uZW50cy5iZWZvcmVJbnB1dC5tYXAoKENvbXBvbmVudCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPENvbXBvbmVudCBrZXk9e2l9IC8+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICApLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAoXG4gICAgICAgICAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICAgIEN1c3RvbUNvbXBvbmVudD17XG4gICAgICAgICAgICAgICAgZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nIGluIGZpZWxkLmFkbWluICYmXG4gICAgICAgICAgICAgICAgZmllbGQuYWRtaW4uZGVzY3JpcHRpb24gJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgZmllbGQuYWRtaW4uZGVzY3JpcHRpb24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgICAgICAgICAoZmllbGQuYWRtaW4uZGVzY3JpcHRpb24gYXMgUmVhY3QuRkM8YW55PilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBEZWZhdWx0Q29tcG9uZW50PXtEZWZhdWx0RGVzY3JpcHRpb259XG4gICAgICAgICAgICAgIGNvbXBvbmVudFByb3BzPXtkZXNjcmlwdGlvblByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIEVycm9yOiAoXG4gICAgICAgICAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICAgIEN1c3RvbUNvbXBvbmVudD17XG4gICAgICAgICAgICAgICAgZmllbGQuYWRtaW4/LmNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgICAgICAnRXJyb3InIGluIGZpZWxkLmFkbWluPy5jb21wb25lbnRzICYmXG4gICAgICAgICAgICAgICAgZmllbGQuYWRtaW4/LmNvbXBvbmVudHM/LkVycm9yXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdEVycm9yfVxuICAgICAgICAgICAgICBjb21wb25lbnRQcm9wcz17eyBwYXRoIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgTGFiZWw6IChcbiAgICAgICAgICAgIDxSZW5kZXJDdXN0b21Db21wb25lbnRcbiAgICAgICAgICAgICAgQ3VzdG9tQ29tcG9uZW50PXtcbiAgICAgICAgICAgICAgICBmaWVsZC5hZG1pbj8uY29tcG9uZW50cyAmJlxuICAgICAgICAgICAgICAgICdMYWJlbCcgaW4gZmllbGQuYWRtaW4/LmNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgICAgICBmaWVsZC5hZG1pbj8uY29tcG9uZW50cz8uTGFiZWxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBEZWZhdWx0Q29tcG9uZW50PXtEZWZhdWx0TGFiZWx9XG4gICAgICAgICAgICAgIGNvbXBvbmVudFByb3BzPXtsYWJlbFByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScgaW4gZmllbGQuYWRtaW4gPyBmaWVsZD8uYWRtaW4/LmNsYXNzTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBmaWVsZE1hcDogbmVzdGVkRmllbGRNYXAsXG4gICAgICAgICAgc3R5bGU6ICdzdHlsZScgaW4gZmllbGQuYWRtaW4gPyBmaWVsZD8uYWRtaW4/LnN0eWxlIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHdpZHRoOiAnd2lkdGgnIGluIGZpZWxkLmFkbWluID8gZmllbGQ/LmFkbWluPy53aWR0aCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAvLyBUT0RPOiBmaXggdHlwZXNcbiAgICAgICAgICAvLyBsYWJlbDogJ2xhYmVsJyBpbiBmaWVsZCA/IGZpZWxkLmxhYmVsIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBoYXNNYW55OiAnaGFzTWFueScgaW4gZmllbGQgPyBmaWVsZC5oYXNNYW55IDogdW5kZWZpbmVkLFxuICAgICAgICAgIG1heDogJ21heCcgaW4gZmllbGQgPyBmaWVsZC5tYXggOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWF4Um93czogJ21heFJvd3MnIGluIGZpZWxkID8gZmllbGQubWF4Um93cyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtaW46ICdtaW4nIGluIGZpZWxkID8gZmllbGQubWluIDogdW5kZWZpbmVkLFxuICAgICAgICAgIG9wdGlvbnM6ICdvcHRpb25zJyBpbiBmaWVsZCA/IGZpZWxkLm9wdGlvbnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgcmVsYXRpb25UbzogJ3JlbGF0aW9uVG8nIGluIGZpZWxkID8gZmllbGQucmVsYXRpb25UbyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICByaWNoVGV4dENvbXBvbmVudE1hcDogdW5kZWZpbmVkLFxuICAgICAgICAgIHN0ZXA6ICdzdGVwJyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkLmFkbWluLnN0ZXAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGFicyxcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBGaWVsZCA9IDxGaWVsZENvbXBvbmVudCB7Li4uZmllbGRDb21wb25lbnRQcm9wc30gLz5cblxuICAgICAgICBjb25zdCBjZWxsQ29tcG9uZW50UHJvcHM6IENlbGxQcm9wcyA9IHtcbiAgICAgICAgICBuYW1lOiAnbmFtZScgaW4gZmllbGQgPyBmaWVsZC5uYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGJsb2NrczpcbiAgICAgICAgICAgICdibG9ja3MnIGluIGZpZWxkICYmXG4gICAgICAgICAgICBmaWVsZC5ibG9ja3MubWFwKChiKSA9PiAoe1xuICAgICAgICAgICAgICBzbHVnOiBiLnNsdWcsXG4gICAgICAgICAgICAgIGxhYmVsczogYi5sYWJlbHMsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgZGF0ZURpc3BsYXlGb3JtYXQ6ICdkYXRlJyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkLmFkbWluLmRhdGUuZGlzcGxheUZvcm1hdCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBmaWVsZFR5cGU6IGZpZWxkLnR5cGUsXG4gICAgICAgICAgaXNGaWVsZEFmZmVjdGluZ0RhdGEsXG4gICAgICAgICAgbGFiZWw6XG4gICAgICAgICAgICAnbGFiZWwnIGluIGZpZWxkICYmIGZpZWxkLmxhYmVsICYmIHR5cGVvZiBmaWVsZC5sYWJlbCAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICA/IGZpZWxkLmxhYmVsXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGxhYmVsczogJ2xhYmVscycgaW4gZmllbGQgPyBmaWVsZC5sYWJlbHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgb3B0aW9uczogJ29wdGlvbnMnIGluIGZpZWxkID8gZmllbGQub3B0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIYW5kbGUgUmljaFRleHQgRmllbGQgQ29tcG9uZW50cywgQ2VsbCBDb21wb25lbnRzLCBhbmQgY29tcG9uZW50IG1hcHNcbiAgICAgICAgICovXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmljaFRleHQnICYmICdlZGl0b3InIGluIGZpZWxkKSB7XG4gICAgICAgICAgbGV0IFJpY2hUZXh0RmllbGRDb21wb25lbnRcbiAgICAgICAgICBsZXQgUmljaFRleHRDZWxsQ29tcG9uZW50XG5cbiAgICAgICAgICBjb25zdCBpc0xhenlGaWVsZCA9ICdMYXp5RmllbGRDb21wb25lbnQnIGluIGZpZWxkLmVkaXRvclxuICAgICAgICAgIGNvbnN0IGlzTGF6eUNlbGwgPSAnTGF6eUNlbGxDb21wb25lbnQnIGluIGZpZWxkLmVkaXRvclxuXG4gICAgICAgICAgaWYgKGlzTGF6eUZpZWxkKSB7XG4gICAgICAgICAgICBSaWNoVGV4dEZpZWxkQ29tcG9uZW50ID0gUmVhY3QubGF6eSgoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAnTGF6eUZpZWxkQ29tcG9uZW50JyBpbiBmaWVsZC5lZGl0b3JcbiAgICAgICAgICAgICAgICA/IGZpZWxkLmVkaXRvci5MYXp5RmllbGRDb21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICgnRmllbGRDb21wb25lbnQnIGluIGZpZWxkLmVkaXRvcikge1xuICAgICAgICAgICAgUmljaFRleHRGaWVsZENvbXBvbmVudCA9IGZpZWxkLmVkaXRvci5GaWVsZENvbXBvbmVudFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc0xhenlDZWxsKSB7XG4gICAgICAgICAgICBSaWNoVGV4dENlbGxDb21wb25lbnQgPSBSZWFjdC5sYXp5KCgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICdMYXp5Q2VsbENvbXBvbmVudCcgaW4gZmllbGQuZWRpdG9yXG4gICAgICAgICAgICAgICAgPyBmaWVsZC5lZGl0b3IuTGF6eUNlbGxDb21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICgnQ2VsbENvbXBvbmVudCcgaW4gZmllbGQuZWRpdG9yKSB7XG4gICAgICAgICAgICBSaWNoVGV4dENlbGxDb21wb25lbnQgPSBmaWVsZC5lZGl0b3IuQ2VsbENvbXBvbmVudFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQuZWRpdG9yLmdlbmVyYXRlQ29tcG9uZW50TWFwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmaWVsZC5lZGl0b3IuZ2VuZXJhdGVDb21wb25lbnRNYXAoeyBjb25maWcsIHNjaGVtYVBhdGg6IHBhdGggfSlcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3ItbmV4dC1saW5lIC8vIFRPRE86IHRoZSBgcmljaFRleHRDb21wb25lbnRNYXBgIGlzIG5vdCBmb3VuZCBvbiB0aGUgdW5pb24gdHlwZVxuICAgICAgICAgICAgZmllbGRDb21wb25lbnRQcm9wcy5yaWNoVGV4dENvbXBvbmVudE1hcCA9IHJlc3VsdFxuICAgICAgICAgICAgY2VsbENvbXBvbmVudFByb3BzLnJpY2hUZXh0Q29tcG9uZW50TWFwID0gcmVzdWx0XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFJpY2hUZXh0RmllbGRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIEZpZWxkID0gPFJpY2hUZXh0RmllbGRDb21wb25lbnQgey4uLmZpZWxkQ29tcG9uZW50UHJvcHN9IC8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFJpY2hUZXh0Q2VsbENvbXBvbmVudCkge1xuICAgICAgICAgICAgY2VsbENvbXBvbmVudFByb3BzLkNlbGxDb21wb25lbnRPdmVycmlkZSA9IDxSaWNoVGV4dENlbGxDb21wb25lbnQgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWR1Y2VkRmllbGQ6IE1hcHBlZEZpZWxkID0ge1xuICAgICAgICAgIG5hbWU6ICduYW1lJyBpbiBmaWVsZCA/IGZpZWxkLm5hbWUgOiAnJyxcbiAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAgIENlbGw6IChcbiAgICAgICAgICAgIDxSZW5kZXJDdXN0b21Db21wb25lbnRcbiAgICAgICAgICAgICAgQ3VzdG9tQ29tcG9uZW50PXtmaWVsZC5hZG1pbj8uY29tcG9uZW50cz8uQ2VsbH1cbiAgICAgICAgICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdENlbGx9XG4gICAgICAgICAgICAgIGNvbXBvbmVudFByb3BzPXtjZWxsQ29tcG9uZW50UHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgRmllbGQsXG4gICAgICAgICAgSGVhZGluZzogKFxuICAgICAgICAgICAgPFNvcnRDb2x1bW5cbiAgICAgICAgICAgICAgZGlzYWJsZT17XG4gICAgICAgICAgICAgICAgKCdkaXNhYmxlU29ydCcgaW4gZmllbGQgJiYgQm9vbGVhbihmaWVsZC5kaXNhYmxlU29ydCkpIHx8XG4gICAgICAgICAgICAgICAgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkgfHxcbiAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsYWJlbD17XG4gICAgICAgICAgICAgICAgJ2xhYmVsJyBpbiBmaWVsZCAmJiBmaWVsZC5sYWJlbCAmJiB0eXBlb2YgZmllbGQubGFiZWwgIT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgID8gZmllbGQubGFiZWxcbiAgICAgICAgICAgICAgICAgIDogJ25hbWUnIGluIGZpZWxkXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGQubmFtZVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG5hbWU9eyduYW1lJyBpbiBmaWVsZCA/IGZpZWxkLm5hbWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgIGZpZWxkSXNQcmVzZW50YXRpb25hbCxcbiAgICAgICAgICBmaWVsZFBlcm1pc3Npb25zLFxuICAgICAgICAgIGhhc01hbnk6ICdoYXNNYW55JyBpbiBmaWVsZCA/IGZpZWxkLmhhc01hbnkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgaXNGaWVsZEFmZmVjdGluZ0RhdGEsXG4gICAgICAgICAgaXNTaWRlYmFyOiBmaWVsZC5hZG1pbj8ucG9zaXRpb24gPT09ICdzaWRlYmFyJyxcbiAgICAgICAgICBsYWJlbDogJ2xhYmVsJyBpbiBmaWVsZCAmJiB0eXBlb2YgZmllbGQubGFiZWwgIT09ICdmdW5jdGlvbicgPyBmaWVsZC5sYWJlbCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBsYWJlbHM6ICdsYWJlbHMnIGluIGZpZWxkID8gZmllbGQubGFiZWxzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGxvY2FsaXplZDogJ2xvY2FsaXplZCcgaW4gZmllbGQgPyBmaWVsZC5sb2NhbGl6ZWQgOiBmYWxzZSxcbiAgICAgICAgICBvcHRpb25zOiAnb3B0aW9ucycgaW4gZmllbGQgPyBmaWVsZC5vcHRpb25zIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHJlYWRPbmx5LFxuICAgICAgICAgIHJlbGF0aW9uVG86ICdyZWxhdGlvblRvJyBpbiBmaWVsZCA/IGZpZWxkLnJlbGF0aW9uVG8gOiB1bmRlZmluZWQsXG4gICAgICAgICAgc3ViZmllbGRzOiBuZXN0ZWRGaWVsZE1hcCxcbiAgICAgICAgICB0YWJzLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEZpZWxkQ29tcG9uZW50KSB7XG4gICAgICAgICAgYWNjLnB1c2gocmVkdWNlZEZpZWxkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjY1xuICB9LCBbXSlcblxuICBjb25zdCBoYXNJRCA9XG4gICAgcmVzdWx0LmZpbmRJbmRleCgoeyBuYW1lLCBpc0ZpZWxkQWZmZWN0aW5nRGF0YSB9KSA9PiBpc0ZpZWxkQWZmZWN0aW5nRGF0YSAmJiBuYW1lID09PSAnaWQnKSA+IC0xXG5cbiAgaWYgKCFoYXNJRCkge1xuICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgIG5hbWU6ICdpZCcsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBDZWxsOiB0eXBlb2YgRGVmYXVsdENlbGwgPT09ICdmdW5jdGlvbicgPyA8RGVmYXVsdENlbGwgbmFtZT1cImlkXCIgLz4gOiBudWxsLFxuICAgICAgRmllbGQ6IDxIaWRkZW5JbnB1dCBuYW1lPVwiaWRcIiAvPixcbiAgICAgIEhlYWRpbmc6IDxTb3J0Q29sdW1uIGxhYmVsPVwiSURcIiBuYW1lPVwiaWRcIiAvPixcbiAgICAgIGZpZWxkSXNQcmVzZW50YXRpb25hbDogZmFsc2UsXG4gICAgICBmaWVsZFBlcm1pc3Npb25zOiB7fSBhcyBGaWVsZFBlcm1pc3Npb25zLCAvLyBUT0RPOiB3aXJlIHRoaXMgdXBcbiAgICAgIGlzRmllbGRBZmZlY3RpbmdEYXRhOiB0cnVlLFxuICAgICAgaXNTaWRlYmFyOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnSUQnLFxuICAgICAgbGFiZWxzOiB1bmRlZmluZWQsXG4gICAgICBsb2NhbGl6ZWQ6IHVuZGVmaW5lZCxcbiAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgIHN1YmZpZWxkczogW10sXG4gICAgICB0YWJzOiBbXSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbIm1hcEZpZWxkcyIsImFyZ3MiLCJEZWZhdWx0Q2VsbCIsImNvbmZpZyIsImZpZWxkU2NoZW1hIiwiZmlsdGVyIiwib3BlcmF0aW9uIiwicGFyZW50UGF0aCIsInBlcm1pc3Npb25zIiwicmVhZE9ubHkiLCJyZWFkT25seU92ZXJyaWRlIiwicmVzdWx0IiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJmaWVsZElzUHJlc2VudGF0aW9uYWwiLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiRmllbGRDb21wb25lbnQiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJGaWVsZCIsImZpZWxkVHlwZXMiLCJ0eXBlIiwiaGlkZGVuIiwiZGlzYWJsZWQiLCJpc0ZpZWxkQWZmZWN0aW5nRGF0YSIsImZpZWxkQWZmZWN0c0RhdGEiLCJwYXRoIiwibmFtZSIsImZpZWxkUGVybWlzc2lvbnMiLCJyZWFkIiwicGVybWlzc2lvbiIsInVuZGVmaW5lZCIsImxhYmVsUHJvcHMiLCJodG1sRm9yIiwibGFiZWwiLCJyZXF1aXJlZCIsImRlc2NyaXB0aW9uUHJvcHMiLCJkZXNjcmlwdGlvbiIsIm5lc3RlZEZpZWxkTWFwIiwiZmllbGRzIiwiQXJyYXkiLCJpc0FycmF5IiwidGFicyIsIm1hcCIsInRhYiIsInRhYkZpZWxkTWFwIiwicmVkdWNlZFRhYiIsInN1YmZpZWxkcyIsImJsb2NrcyIsImJsb2NrIiwiYmxvY2tGaWVsZE1hcCIsInNsdWciLCJyZWR1Y2VkQmxvY2siLCJpbWFnZUFsdFRleHQiLCJpbWFnZVVSTCIsImxhYmVscyIsImZpZWxkQ29tcG9uZW50UHJvcHMiLCJBZnRlcklucHV0IiwiYWZ0ZXJJbnB1dCIsIkZyYWdtZW50IiwiQ29tcG9uZW50IiwiaSIsImtleSIsIkJlZm9yZUlucHV0IiwiYmVmb3JlSW5wdXQiLCJEZXNjcmlwdGlvbiIsIlJlbmRlckN1c3RvbUNvbXBvbmVudCIsIkN1c3RvbUNvbXBvbmVudCIsIkRlZmF1bHRDb21wb25lbnQiLCJEZWZhdWx0RGVzY3JpcHRpb24iLCJjb21wb25lbnRQcm9wcyIsIkVycm9yIiwiRGVmYXVsdEVycm9yIiwiTGFiZWwiLCJEZWZhdWx0TGFiZWwiLCJjbGFzc05hbWUiLCJmaWVsZE1hcCIsInN0eWxlIiwid2lkdGgiLCJoYXNNYW55IiwibWF4IiwibWF4Um93cyIsIm1pbiIsIm9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmljaFRleHRDb21wb25lbnRNYXAiLCJzdGVwIiwiY2VsbENvbXBvbmVudFByb3BzIiwiYiIsImRhdGVEaXNwbGF5Rm9ybWF0IiwiZGF0ZSIsImRpc3BsYXlGb3JtYXQiLCJmaWVsZFR5cGUiLCJSaWNoVGV4dEZpZWxkQ29tcG9uZW50IiwiUmljaFRleHRDZWxsQ29tcG9uZW50IiwiaXNMYXp5RmllbGQiLCJlZGl0b3IiLCJpc0xhenlDZWxsIiwiUmVhY3QiLCJsYXp5IiwiTGF6eUZpZWxkQ29tcG9uZW50IiwidGhlbiIsInJlc29sdmVkQ29tcG9uZW50IiwiZGVmYXVsdCIsIkxhenlDZWxsQ29tcG9uZW50IiwiQ2VsbENvbXBvbmVudCIsImdlbmVyYXRlQ29tcG9uZW50TWFwIiwic2NoZW1hUGF0aCIsIkNlbGxDb21wb25lbnRPdmVycmlkZSIsInJlZHVjZWRGaWVsZCIsIkNlbGwiLCJIZWFkaW5nIiwiU29ydENvbHVtbiIsImRpc2FibGUiLCJCb29sZWFuIiwiZGlzYWJsZVNvcnQiLCJpc1NpZGViYXIiLCJwb3NpdGlvbiIsImxvY2FsaXplZCIsInB1c2giLCJoYXNJRCIsImZpbmRJbmRleCIsIkhpZGRlbklucHV0Il0sIm1hcHBpbmdzIjoiOzs7OytCQWtCYUE7OztlQUFBQTs7O3VCQWYrQzsrREFDNUI7a0JBTUo7dUNBQ1U7NEJBQ1g7OERBQ0Y7eUVBQ007OERBQ047d0JBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXBCLE1BQU1BLFlBQVksQ0FBQ0M7SUFjeEIsTUFBTSxFQUNKQyxXQUFXLEVBQ1hDLE1BQU0sRUFDTkMsV0FBVyxFQUNYQyxNQUFNLEVBQ05DLFlBQVksUUFBUSxFQUNwQkMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFVBQVVDLGdCQUFnQixFQUMzQixHQUFHVDtJQUVKLE1BQU1VLFNBQW1CUCxZQUFZUSxNQUFNLENBQUMsQ0FBQ0MsS0FBS0M7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
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvYnVpbGRDb21wb25lbnRNYXAvbWFwRmllbGRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25QZXJtaXNzaW9uLCBGaWVsZFBlcm1pc3Npb25zLCBHbG9iYWxQZXJtaXNzaW9uIH0gZnJvbSAncGF5bG9hZC9hdXRoJ1xuaW1wb3J0IHR5cGUgeyBDZWxsUHJvcHMsIEZpZWxkLCBGaWVsZFdpdGhQYXRoLCBMYWJlbFByb3BzLCBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IH0gZnJvbSAncGF5bG9hZC90eXBlcydcbmltcG9ydCBSZWFjdCwgeyBGcmFnbWVudCB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIGFzIEZpZWxkRGVzY3JpcHRpb24gfSBmcm9tICcuLi8uLi9mb3Jtcy9GaWVsZERlc2NyaXB0aW9uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGb3JtRmllbGRCYXNlIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGRzL3NoYXJlZCdcbmltcG9ydCB0eXBlIHsgRmllbGRNYXAsIE1hcHBlZEZpZWxkLCBNYXBwZWRUYWIsIFJlZHVjZWRCbG9jayB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IFJlbmRlckN1c3RvbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL1JlbmRlckN1c3RvbUNvbXBvbmVudCdcbmltcG9ydCB7IFNvcnRDb2x1bW4gfSBmcm9tICcuLi8uLi9lbGVtZW50cy9Tb3J0Q29sdW1uJ1xuaW1wb3J0IERlZmF1bHRFcnJvciBmcm9tICcuLi8uLi9mb3Jtcy9FcnJvcidcbmltcG9ydCBEZWZhdWx0RGVzY3JpcHRpb24gZnJvbSAnLi4vLi4vZm9ybXMvRmllbGREZXNjcmlwdGlvbidcbmltcG9ydCBEZWZhdWx0TGFiZWwgZnJvbSAnLi4vLi4vZm9ybXMvTGFiZWwnXG5pbXBvcnQgeyBmaWVsZFR5cGVzIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGRzJ1xuaW1wb3J0IEhpZGRlbklucHV0IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkcy9IaWRkZW5JbnB1dCdcblxuZXhwb3J0IGNvbnN0IG1hcEZpZWxkcyA9IChhcmdzOiB7XG4gIERlZmF1bHRDZWxsPzogUmVhY3QuRkM8YW55PlxuICBjb25maWc6IFNhbml0aXplZENvbmZpZ1xuICBmaWVsZFNjaGVtYTogRmllbGRXaXRoUGF0aFtdXG4gIGZpbHRlcj86IChmaWVsZDogRmllbGQpID0+IGJvb2xlYW5cbiAgcGFyZW50UGF0aD86IHN0cmluZ1xuICBwZXJtaXNzaW9ucz86IENvbGxlY3Rpb25QZXJtaXNzaW9uWydmaWVsZHMnXSB8IEdsb2JhbFBlcm1pc3Npb25bJ2ZpZWxkcyddXG4gIHJlYWRPbmx5PzogYm9vbGVhblxufSk6IEZpZWxkTWFwID0+IHtcbiAgY29uc3Qge1xuICAgIERlZmF1bHRDZWxsLFxuICAgIGNvbmZpZyxcbiAgICBmaWVsZFNjaGVtYSxcbiAgICBmaWx0ZXIsXG4gICAgcGFyZW50UGF0aCxcbiAgICBwZXJtaXNzaW9ucyxcbiAgICByZWFkT25seTogcmVhZE9ubHlPdmVycmlkZSxcbiAgfSA9IGFyZ3NcblxuICBjb25zdCByZXN1bHQ6IEZpZWxkTWFwID0gZmllbGRTY2hlbWEucmVkdWNlKChhY2MsIGZpZWxkKTogRmllbGRNYXAgPT4ge1xuICAgIGNvbnN0IGZpZWxkSXNQcmVzZW50YXRpb25hbCA9IGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkoZmllbGQpXG4gICAgbGV0IEZpZWxkQ29tcG9uZW50ID0gZmllbGQuYWRtaW4/LmNvbXBvbmVudHM/LkZpZWxkIHx8IGZpZWxkVHlwZXNbZmllbGQudHlwZV1cblxuICAgIGlmIChmaWVsZElzUHJlc2VudGF0aW9uYWwgfHwgKCFmaWVsZD8uaGlkZGVuICYmIGZpZWxkPy5hZG1pbj8uZGlzYWJsZWQgIT09IHRydWUpKSB7XG4gICAgICBpZiAoKGZpbHRlciAmJiB0eXBlb2YgZmlsdGVyID09PSAnZnVuY3Rpb24nICYmIGZpbHRlcihmaWVsZCkpIHx8ICFmaWx0ZXIpIHtcbiAgICAgICAgaWYgKGZpZWxkLmFkbWluICYmICdoaWRkZW4nIGluIGZpZWxkLmFkbWluICYmIGZpZWxkPy5hZG1pbj8uaGlkZGVuKSB7XG4gICAgICAgICAgRmllbGRDb21wb25lbnQgPSBmaWVsZFR5cGVzLmhpZGRlblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNGaWVsZEFmZmVjdGluZ0RhdGEgPSBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKVxuXG4gICAgICAgIGNvbnN0IHBhdGggPSBgJHtwYXJlbnRQYXRoID8gYCR7cGFyZW50UGF0aH0uYCA6ICcnfSR7XG4gICAgICAgICAgZmllbGQucGF0aCB8fCAoaXNGaWVsZEFmZmVjdGluZ0RhdGEgJiYgJ25hbWUnIGluIGZpZWxkID8gZmllbGQubmFtZSA6ICcnKVxuICAgICAgICB9YFxuXG4gICAgICAgIGNvbnN0IGZpZWxkUGVybWlzc2lvbnMgPSBpc0ZpZWxkQWZmZWN0aW5nRGF0YSA/IHBlcm1pc3Npb25zPy5bZmllbGQubmFtZV0gOiB1bmRlZmluZWRcblxuICAgICAgICAvLyBpZiB0aGUgdXNlciBjYW5ub3QgcmVhZCB0aGUgZmllbGQsIHRoZW4gZmlsdGVyIGl0IG91dFxuICAgICAgICAvLyB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIGBhZG1pbi5yZWFkT25seWAgd2hpY2ggaXMgZXhlY3V0ZWQgb24gdGhlIGNsaWVudCBiYXNlZCBvbiBgb3BlcmF0aW9uYFxuICAgICAgICBpZiAoZmllbGRQZXJtaXNzaW9ucz8ucmVhZD8ucGVybWlzc2lvbiA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsYWJlbFByb3BzOiBMYWJlbFByb3BzID0ge1xuICAgICAgICAgIGh0bWxGb3I6ICdUT0RPJyxcbiAgICAgICAgICAvLyBUT0RPOiBmaXggdHlwZXNcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yLW5leHQtbGluZVxuICAgICAgICAgIGxhYmVsOiAnbGFiZWwnIGluIGZpZWxkID8gZmllbGQubGFiZWwgOiBudWxsLFxuICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnIGluIGZpZWxkID8gZmllbGQucmVxdWlyZWQgOiB1bmRlZmluZWQsXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvblByb3BzOiBGaWVsZERlc2NyaXB0aW9uID0ge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgICdkZXNjcmlwdGlvbicgaW4gZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgIHR5cGVvZiBmaWVsZC5hZG1pbj8uZGVzY3JpcHRpb24gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gZmllbGQuYWRtaW4uZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBuZXN0ZWRGaWVsZE1hcCA9XG4gICAgICAgICAgJ2ZpZWxkcycgaW4gZmllbGQgJiZcbiAgICAgICAgICBmaWVsZC5maWVsZHMgJiZcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGZpZWxkLmZpZWxkcykgJiZcbiAgICAgICAgICBtYXBGaWVsZHMoe1xuICAgICAgICAgICAgRGVmYXVsdENlbGwsXG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICBmaWVsZFNjaGVtYTogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgICAgcGFyZW50UGF0aDogcGF0aCxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICAgICAgcmVhZE9ubHk6IHJlYWRPbmx5T3ZlcnJpZGUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAvLyBgdGFic2AgZmllbGRzIHJlcXVpcmUgYSBmaWVsZCBtYXAgb2YgZWFjaCBvZiBpdHMgdGFiJ3MgbmVzdGVkIGZpZWxkc1xuICAgICAgICBjb25zdCB0YWJzID1cbiAgICAgICAgICAndGFicycgaW4gZmllbGQgJiZcbiAgICAgICAgICBmaWVsZC50YWJzICYmXG4gICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC50YWJzKSAmJlxuICAgICAgICAgIGZpZWxkLnRhYnMubWFwKCh0YWIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhYkZpZWxkTWFwID0gbWFwRmllbGRzKHtcbiAgICAgICAgICAgICAgRGVmYXVsdENlbGwsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWE6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgIGZpbHRlcixcbiAgICAgICAgICAgICAgcGFyZW50UGF0aDogcGF0aCxcbiAgICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICAgIHJlYWRPbmx5OiByZWFkT25seU92ZXJyaWRlLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgcmVkdWNlZFRhYjogTWFwcGVkVGFiID0ge1xuICAgICAgICAgICAgICBuYW1lOiAnbmFtZScgaW4gdGFiID8gdGFiLm5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIGxhYmVsOiB0YWIubGFiZWwsXG4gICAgICAgICAgICAgIHN1YmZpZWxkczogdGFiRmllbGRNYXAsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZWR1Y2VkVGFiXG4gICAgICAgICAgfSlcblxuICAgICAgICAvLyBgYmxvY2tzYCBmaWVsZHMgcmVxdWlyZSBhIGZpZWxkIG1hcCBvZiBlYWNoIG9mIGl0cyBibG9jaydzIG5lc3RlZCBmaWVsZHNcbiAgICAgICAgY29uc3QgYmxvY2tzID1cbiAgICAgICAgICAnYmxvY2tzJyBpbiBmaWVsZCAmJlxuICAgICAgICAgIGZpZWxkLmJsb2NrcyAmJlxuICAgICAgICAgIEFycmF5LmlzQXJyYXkoZmllbGQuYmxvY2tzKSAmJlxuICAgICAgICAgIGZpZWxkLmJsb2Nrcy5tYXAoKGJsb2NrKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBibG9ja0ZpZWxkTWFwID0gbWFwRmllbGRzKHtcbiAgICAgICAgICAgICAgRGVmYXVsdENlbGwsXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWE6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgICAgICBwYXJlbnRQYXRoOiBgJHtwYXRofS4ke2Jsb2NrLnNsdWd9YCxcbiAgICAgICAgICAgICAgcGVybWlzc2lvbnMsXG4gICAgICAgICAgICAgIHJlYWRPbmx5OiByZWFkT25seU92ZXJyaWRlLFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgY29uc3QgcmVkdWNlZEJsb2NrOiBSZWR1Y2VkQmxvY2sgPSB7XG4gICAgICAgICAgICAgIHNsdWc6IGJsb2NrLnNsdWcsXG4gICAgICAgICAgICAgIGltYWdlQWx0VGV4dDogYmxvY2suaW1hZ2VBbHRUZXh0LFxuICAgICAgICAgICAgICBpbWFnZVVSTDogYmxvY2suaW1hZ2VVUkwsXG4gICAgICAgICAgICAgIGxhYmVsczogYmxvY2subGFiZWxzLFxuICAgICAgICAgICAgICBzdWJmaWVsZHM6IGJsb2NrRmllbGRNYXAsXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZWR1Y2VkQmxvY2tcbiAgICAgICAgICB9KVxuXG4gICAgICAgIC8vIFRPRE86IHRoZXNlIHR5cGVzIGNhbiBnZXQgY2xlYW5lZCB1cFxuICAgICAgICAvLyBpLmUuIG5vdCBhbGwgZmllbGRzIGhhdmUgYG1heFJvd3NgIG9yIGBtaW5gIG9yIGBtYXhgXG4gICAgICAgIC8vIGJ1dCB0aGlzIGlzIGxhYm9yIGludGVuc2l2ZSBhbmQgcmVxdWlyZXMgY29uc3VtaW5nIGNvbXBvbmVudHMgdG8gYmUgdXBkYXRlZFxuICAgICAgICBjb25zdCBmaWVsZENvbXBvbmVudFByb3BzOiBGb3JtRmllbGRCYXNlID0ge1xuICAgICAgICAgIEFmdGVySW5wdXQ6ICdhZG1pbicgaW4gZmllbGQgJiZcbiAgICAgICAgICAgICdjb21wb25lbnRzJyBpbiBmaWVsZC5hZG1pbiAmJlxuICAgICAgICAgICAgJ2FmdGVySW5wdXQnIGluIGZpZWxkLmFkbWluLmNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoZmllbGQuYWRtaW4/LmNvbXBvbmVudHM/LmFmdGVySW5wdXQpICYmIChcbiAgICAgICAgICAgICAgPEZyYWdtZW50PlxuICAgICAgICAgICAgICAgIHtmaWVsZC5hZG1pbi5jb21wb25lbnRzLmFmdGVySW5wdXQubWFwKChDb21wb25lbnQsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgIDxDb21wb25lbnQga2V5PXtpfSAvPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L0ZyYWdtZW50PlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBCZWZvcmVJbnB1dDogJ2FkbWluJyBpbiBmaWVsZCAmJlxuICAgICAgICAgICAgZmllbGQuYWRtaW4/LmNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgICdiZWZvcmVJbnB1dCcgaW4gZmllbGQuYWRtaW4uY29tcG9uZW50cyAmJlxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5hZG1pbi5jb21wb25lbnRzLmJlZm9yZUlucHV0KSAmJiAoXG4gICAgICAgICAgICAgIDxGcmFnbWVudD5cbiAgICAgICAgICAgICAgICB7ZmllbGQuYWRtaW4uY29tcG9uZW50cy5iZWZvcmVJbnB1dC5tYXAoKENvbXBvbmVudCwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPENvbXBvbmVudCBrZXk9e2l9IC8+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgIDwvRnJhZ21lbnQ+XG4gICAgICAgICAgICApLFxuICAgICAgICAgIERlc2NyaXB0aW9uOiAoXG4gICAgICAgICAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICAgIEN1c3RvbUNvbXBvbmVudD17XG4gICAgICAgICAgICAgICAgZmllbGQuYWRtaW4gJiZcbiAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nIGluIGZpZWxkLmFkbWluICYmXG4gICAgICAgICAgICAgICAgZmllbGQuYWRtaW4uZGVzY3JpcHRpb24gJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgZmllbGQuYWRtaW4uZGVzY3JpcHRpb24gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgICAgICAgICAoZmllbGQuYWRtaW4uZGVzY3JpcHRpb24gYXMgUmVhY3QuRkM8YW55PilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBEZWZhdWx0Q29tcG9uZW50PXtEZWZhdWx0RGVzY3JpcHRpb259XG4gICAgICAgICAgICAgIGNvbXBvbmVudFByb3BzPXtkZXNjcmlwdGlvblByb3BzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApLFxuICAgICAgICAgIEVycm9yOiAoXG4gICAgICAgICAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICAgIEN1c3RvbUNvbXBvbmVudD17XG4gICAgICAgICAgICAgICAgJ2FkbWluJyBpbiBmaWVsZCAmJlxuICAgICAgICAgICAgICAgIGZpZWxkLmFkbWluLmNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgICAgICAnRXJyb3InIGluIGZpZWxkLmFkbWluLmNvbXBvbmVudHMgJiZcbiAgICAgICAgICAgICAgICBmaWVsZC5hZG1pbj8uY29tcG9uZW50cz8uRXJyb3JcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBEZWZhdWx0Q29tcG9uZW50PXtEZWZhdWx0RXJyb3J9XG4gICAgICAgICAgICAgIGNvbXBvbmVudFByb3BzPXt7IHBhdGggfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSxcbiAgICAgICAgICBMYWJlbDogKFxuICAgICAgICAgICAgPFJlbmRlckN1c3RvbUNvbXBvbmVudFxuICAgICAgICAgICAgICBDdXN0b21Db21wb25lbnQ9e1xuICAgICAgICAgICAgICAgICdhZG1pbicgaW4gZmllbGQgJiZcbiAgICAgICAgICAgICAgICBmaWVsZC5hZG1pbj8uY29tcG9uZW50cyAmJlxuICAgICAgICAgICAgICAgICdMYWJlbCcgaW4gZmllbGQuYWRtaW4uY29tcG9uZW50cyAmJlxuICAgICAgICAgICAgICAgIGZpZWxkLmFkbWluPy5jb21wb25lbnRzPy5MYWJlbFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIERlZmF1bHRDb21wb25lbnQ9e0RlZmF1bHRMYWJlbH1cbiAgICAgICAgICAgICAgY29tcG9uZW50UHJvcHM9e2xhYmVsUHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgY2xhc3NOYW1lOlxuICAgICAgICAgICAgJ2FkbWluJyBpbiBmaWVsZCAmJiAnY2xhc3NOYW1lJyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkPy5hZG1pbj8uY2xhc3NOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGZpZWxkTWFwOiBuZXN0ZWRGaWVsZE1hcCxcbiAgICAgICAgICBzdHlsZTogJ2FkbWluJyBpbiBmaWVsZCAmJiAnc3R5bGUnIGluIGZpZWxkLmFkbWluID8gZmllbGQ/LmFkbWluPy5zdHlsZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB3aWR0aDogJ2FkbWluJyBpbiBmaWVsZCAmJiAnd2lkdGgnIGluIGZpZWxkLmFkbWluID8gZmllbGQ/LmFkbWluPy53aWR0aCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAvLyBUT0RPOiBmaXggdHlwZXNcbiAgICAgICAgICAvLyBsYWJlbDogJ2xhYmVsJyBpbiBmaWVsZCA/IGZpZWxkLmxhYmVsIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGJsb2NrcyxcbiAgICAgICAgICBmaWVsZFBlcm1pc3Npb25zLFxuICAgICAgICAgIGhhc01hbnk6ICdoYXNNYW55JyBpbiBmaWVsZCA/IGZpZWxkLmhhc01hbnkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbWF4OiAnbWF4JyBpbiBmaWVsZCA/IGZpZWxkLm1heCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBtYXhSb3dzOiAnbWF4Um93cycgaW4gZmllbGQgPyBmaWVsZC5tYXhSb3dzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIG1pbjogJ21pbicgaW4gZmllbGQgPyBmaWVsZC5taW4gOiB1bmRlZmluZWQsXG4gICAgICAgICAgb3B0aW9uczogJ29wdGlvbnMnIGluIGZpZWxkID8gZmllbGQub3B0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICByZWFkT25seTpcbiAgICAgICAgICAgICdhZG1pbicgaW4gZmllbGQgJiYgJ3JlYWRPbmx5JyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkLmFkbWluLnJlYWRPbmx5IDogdW5kZWZpbmVkLFxuICAgICAgICAgIHJlbGF0aW9uVG86ICdyZWxhdGlvblRvJyBpbiBmaWVsZCA/IGZpZWxkLnJlbGF0aW9uVG8gOiB1bmRlZmluZWQsXG4gICAgICAgICAgcmljaFRleHRDb21wb25lbnRNYXA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzdGVwOiAnYWRtaW4nIGluIGZpZWxkICYmICdzdGVwJyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkLmFkbWluLnN0ZXAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGFicyxcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBGaWVsZCA9IDxGaWVsZENvbXBvbmVudCB7Li4uZmllbGRDb21wb25lbnRQcm9wc30gLz5cblxuICAgICAgICBjb25zdCBjZWxsQ29tcG9uZW50UHJvcHM6IENlbGxQcm9wcyA9IHtcbiAgICAgICAgICBuYW1lOiAnbmFtZScgaW4gZmllbGQgPyBmaWVsZC5uYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGJsb2NrczpcbiAgICAgICAgICAgICdibG9ja3MnIGluIGZpZWxkICYmXG4gICAgICAgICAgICBmaWVsZC5ibG9ja3MubWFwKChiKSA9PiAoe1xuICAgICAgICAgICAgICBzbHVnOiBiLnNsdWcsXG4gICAgICAgICAgICAgIGxhYmVsczogYi5sYWJlbHMsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgZGF0ZURpc3BsYXlGb3JtYXQ6XG4gICAgICAgICAgICAnYWRtaW4nIGluIGZpZWxkICYmICdkYXRlJyBpbiBmaWVsZC5hZG1pbiA/IGZpZWxkLmFkbWluLmRhdGUuZGlzcGxheUZvcm1hdCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBmaWVsZFR5cGU6IGZpZWxkLnR5cGUsXG4gICAgICAgICAgaXNGaWVsZEFmZmVjdGluZ0RhdGEsXG4gICAgICAgICAgbGFiZWw6XG4gICAgICAgICAgICAnbGFiZWwnIGluIGZpZWxkICYmIGZpZWxkLmxhYmVsICYmIHR5cGVvZiBmaWVsZC5sYWJlbCAhPT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICA/IGZpZWxkLmxhYmVsXG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGxhYmVsczogJ2xhYmVscycgaW4gZmllbGQgPyBmaWVsZC5sYWJlbHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgb3B0aW9uczogJ29wdGlvbnMnIGluIGZpZWxkID8gZmllbGQub3B0aW9ucyA6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIYW5kbGUgUmljaFRleHQgRmllbGQgQ29tcG9uZW50cywgQ2VsbCBDb21wb25lbnRzLCBhbmQgY29tcG9uZW50IG1hcHNcbiAgICAgICAgICovXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmljaFRleHQnICYmICdlZGl0b3InIGluIGZpZWxkKSB7XG4gICAgICAgICAgbGV0IFJpY2hUZXh0RmllbGRDb21wb25lbnRcbiAgICAgICAgICBsZXQgUmljaFRleHRDZWxsQ29tcG9uZW50XG5cbiAgICAgICAgICBjb25zdCBpc0xhenlGaWVsZCA9ICdMYXp5RmllbGRDb21wb25lbnQnIGluIGZpZWxkLmVkaXRvclxuICAgICAgICAgIGNvbnN0IGlzTGF6eUNlbGwgPSAnTGF6eUNlbGxDb21wb25lbnQnIGluIGZpZWxkLmVkaXRvclxuXG4gICAgICAgICAgaWYgKGlzTGF6eUZpZWxkKSB7XG4gICAgICAgICAgICBSaWNoVGV4dEZpZWxkQ29tcG9uZW50ID0gUmVhY3QubGF6eSgoKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAnTGF6eUZpZWxkQ29tcG9uZW50JyBpbiBmaWVsZC5lZGl0b3JcbiAgICAgICAgICAgICAgICA/IGZpZWxkLmVkaXRvci5MYXp5RmllbGRDb21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICgnRmllbGRDb21wb25lbnQnIGluIGZpZWxkLmVkaXRvcikge1xuICAgICAgICAgICAgUmljaFRleHRGaWVsZENvbXBvbmVudCA9IGZpZWxkLmVkaXRvci5GaWVsZENvbXBvbmVudFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChpc0xhenlDZWxsKSB7XG4gICAgICAgICAgICBSaWNoVGV4dENlbGxDb21wb25lbnQgPSBSZWFjdC5sYXp5KCgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuICdMYXp5Q2VsbENvbXBvbmVudCcgaW4gZmllbGQuZWRpdG9yXG4gICAgICAgICAgICAgICAgPyBmaWVsZC5lZGl0b3IuTGF6eUNlbGxDb21wb25lbnQoKS50aGVuKChyZXNvbHZlZENvbXBvbmVudCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogcmVzb2x2ZWRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIGlmICgnQ2VsbENvbXBvbmVudCcgaW4gZmllbGQuZWRpdG9yKSB7XG4gICAgICAgICAgICBSaWNoVGV4dENlbGxDb21wb25lbnQgPSBmaWVsZC5lZGl0b3IuQ2VsbENvbXBvbmVudFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQuZWRpdG9yLmdlbmVyYXRlQ29tcG9uZW50TWFwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmaWVsZC5lZGl0b3IuZ2VuZXJhdGVDb21wb25lbnRNYXAoeyBjb25maWcsIHNjaGVtYVBhdGg6IHBhdGggfSlcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3ItbmV4dC1saW5lIC8vIFRPRE86IHRoZSBgcmljaFRleHRDb21wb25lbnRNYXBgIGlzIG5vdCBmb3VuZCBvbiB0aGUgdW5pb24gdHlwZVxuICAgICAgICAgICAgZmllbGRDb21wb25lbnRQcm9wcy5yaWNoVGV4dENvbXBvbmVudE1hcCA9IHJlc3VsdFxuICAgICAgICAgICAgY2VsbENvbXBvbmVudFByb3BzLnJpY2hUZXh0Q29tcG9uZW50TWFwID0gcmVzdWx0XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFJpY2hUZXh0RmllbGRDb21wb25lbnQpIHtcbiAgICAgICAgICAgIEZpZWxkID0gPFJpY2hUZXh0RmllbGRDb21wb25lbnQgey4uLmZpZWxkQ29tcG9uZW50UHJvcHN9IC8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKFJpY2hUZXh0Q2VsbENvbXBvbmVudCkge1xuICAgICAgICAgICAgY2VsbENvbXBvbmVudFByb3BzLkNlbGxDb21wb25lbnRPdmVycmlkZSA9IDxSaWNoVGV4dENlbGxDb21wb25lbnQgLz5cbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWR1Y2VkRmllbGQ6IE1hcHBlZEZpZWxkID0ge1xuICAgICAgICAgIG5hbWU6ICduYW1lJyBpbiBmaWVsZCA/IGZpZWxkLm5hbWUgOiAnJyxcbiAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlLFxuICAgICAgICAgIENlbGw6IChcbiAgICAgICAgICAgIDxSZW5kZXJDdXN0b21Db21wb25lbnRcbiAgICAgICAgICAgICAgQ3VzdG9tQ29tcG9uZW50PXtmaWVsZC5hZG1pbj8uY29tcG9uZW50cz8uQ2VsbH1cbiAgICAgICAgICAgICAgRGVmYXVsdENvbXBvbmVudD17RGVmYXVsdENlbGx9XG4gICAgICAgICAgICAgIGNvbXBvbmVudFByb3BzPXtjZWxsQ29tcG9uZW50UHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgRmllbGQsXG4gICAgICAgICAgSGVhZGluZzogKFxuICAgICAgICAgICAgPFNvcnRDb2x1bW5cbiAgICAgICAgICAgICAgZGlzYWJsZT17XG4gICAgICAgICAgICAgICAgKCdkaXNhYmxlU29ydCcgaW4gZmllbGQgJiYgQm9vbGVhbihmaWVsZC5kaXNhYmxlU29ydCkpIHx8XG4gICAgICAgICAgICAgICAgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkgfHxcbiAgICAgICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBsYWJlbD17XG4gICAgICAgICAgICAgICAgJ2xhYmVsJyBpbiBmaWVsZCAmJiBmaWVsZC5sYWJlbCAmJiB0eXBlb2YgZmllbGQubGFiZWwgIT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgID8gZmllbGQubGFiZWxcbiAgICAgICAgICAgICAgICAgIDogJ25hbWUnIGluIGZpZWxkXG4gICAgICAgICAgICAgICAgICAgID8gZmllbGQubmFtZVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG5hbWU9eyduYW1lJyBpbiBmaWVsZCA/IGZpZWxkLm5hbWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICksXG4gICAgICAgICAgYmxvY2tzLFxuICAgICAgICAgIGZpZWxkSXNQcmVzZW50YXRpb25hbCxcbiAgICAgICAgICBmaWVsZFBlcm1pc3Npb25zLFxuICAgICAgICAgIGhhc01hbnk6ICdoYXNNYW55JyBpbiBmaWVsZCA/IGZpZWxkLmhhc01hbnkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgaXNGaWVsZEFmZmVjdGluZ0RhdGEsXG4gICAgICAgICAgaXNTaWRlYmFyOiAnYWRtaW4nIGluIGZpZWxkICYmIGZpZWxkLmFkbWluPy5wb3NpdGlvbiA9PT0gJ3NpZGViYXInLFxuICAgICAgICAgIGxhYmVsOiAnbGFiZWwnIGluIGZpZWxkICYmIHR5cGVvZiBmaWVsZC5sYWJlbCAhPT0gJ2Z1bmN0aW9uJyA/IGZpZWxkLmxhYmVsIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGxhYmVsczogJ2xhYmVscycgaW4gZmllbGQgPyBmaWVsZC5sYWJlbHMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbG9jYWxpemVkOiAnbG9jYWxpemVkJyBpbiBmaWVsZCA/IGZpZWxkLmxvY2FsaXplZCA6IGZhbHNlLFxuICAgICAgICAgIG9wdGlvbnM6ICdvcHRpb25zJyBpbiBmaWVsZCA/IGZpZWxkLm9wdGlvbnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgcmVhZE9ubHk6XG4gICAgICAgICAgICAnYWRtaW4nIGluIGZpZWxkICYmICdyZWFkT25seScgaW4gZmllbGQuYWRtaW4gPyBmaWVsZC5hZG1pbi5yZWFkT25seSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICByZWxhdGlvblRvOiAncmVsYXRpb25UbycgaW4gZmllbGQgPyBmaWVsZC5yZWxhdGlvblRvIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHN1YmZpZWxkczogbmVzdGVkRmllbGRNYXAsXG4gICAgICAgICAgdGFicyxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChGaWVsZENvbXBvbmVudCkge1xuICAgICAgICAgIGFjYy5wdXNoKHJlZHVjZWRGaWVsZClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhY2NcbiAgfSwgW10pXG5cbiAgY29uc3QgaGFzSUQgPVxuICAgIHJlc3VsdC5maW5kSW5kZXgoKHsgbmFtZSwgaXNGaWVsZEFmZmVjdGluZ0RhdGEgfSkgPT4gaXNGaWVsZEFmZmVjdGluZ0RhdGEgJiYgbmFtZSA9PT0gJ2lkJykgPiAtMVxuXG4gIGlmICghaGFzSUQpIHtcbiAgICByZXN1bHQucHVzaCh7XG4gICAgICBuYW1lOiAnaWQnLFxuICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgQ2VsbDogdHlwZW9mIERlZmF1bHRDZWxsID09PSAnZnVuY3Rpb24nID8gPERlZmF1bHRDZWxsIG5hbWU9XCJpZFwiIC8+IDogbnVsbCxcbiAgICAgIEZpZWxkOiA8SGlkZGVuSW5wdXQgbmFtZT1cImlkXCIgLz4sXG4gICAgICBIZWFkaW5nOiA8U29ydENvbHVtbiBsYWJlbD1cIklEXCIgbmFtZT1cImlkXCIgLz4sXG4gICAgICBmaWVsZElzUHJlc2VudGF0aW9uYWw6IGZhbHNlLFxuICAgICAgZmllbGRQZXJtaXNzaW9uczoge30gYXMgRmllbGRQZXJtaXNzaW9ucyxcbiAgICAgIGlzRmllbGRBZmZlY3RpbmdEYXRhOiB0cnVlLFxuICAgICAgaXNTaWRlYmFyOiBmYWxzZSxcbiAgICAgIGxhYmVsOiAnSUQnLFxuICAgICAgbGFiZWxzOiB1bmRlZmluZWQsXG4gICAgICBsb2NhbGl6ZWQ6IHVuZGVmaW5lZCxcbiAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgIHN1YmZpZWxkczogW10sXG4gICAgICB0YWJzOiBbXSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbImZpZWxkQWZmZWN0c0RhdGEiLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiUmVhY3QiLCJGcmFnbWVudCIsIlJlbmRlckN1c3RvbUNvbXBvbmVudCIsIlNvcnRDb2x1bW4iLCJEZWZhdWx0RXJyb3IiLCJEZWZhdWx0RGVzY3JpcHRpb24iLCJEZWZhdWx0TGFiZWwiLCJmaWVsZFR5cGVzIiwiSGlkZGVuSW5wdXQiLCJtYXBGaWVsZHMiLCJhcmdzIiwiRGVmYXVsdENlbGwiLCJjb25maWciLCJmaWVsZFNjaGVtYSIsImZpbHRlciIsInBhcmVudFBhdGgiLCJwZXJtaXNzaW9ucyIsInJlYWRPbmx5IiwicmVhZE9ubHlPdmVycmlkZSIsInJlc3VsdCIsInJlZHVjZSIsImFjYyIsImZpZWxkIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsIiwiRmllbGRDb21wb25lbnQiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJGaWVsZCIsInR5cGUiLCJoaWRkZW4iLCJkaXNhYmxlZCIsImlzRmllbGRBZmZlY3RpbmdEYXRhIiwicGF0aCIsIm5hbWUiLCJmaWVsZFBlcm1pc3Npb25zIiwidW5kZWZpbmVkIiwicmVhZCIsInBlcm1pc3Npb24iLCJsYWJlbFByb3BzIiwiaHRtbEZvciIsImxhYmVsIiwicmVxdWlyZWQiLCJkZXNjcmlwdGlvblByb3BzIiwiZGVzY3JpcHRpb24iLCJuZXN0ZWRGaWVsZE1hcCIsImZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsInRhYnMiLCJtYXAiLCJ0YWIiLCJ0YWJGaWVsZE1hcCIsInJlZHVjZWRUYWIiLCJzdWJmaWVsZHMiLCJibG9ja3MiLCJibG9jayIsImJsb2NrRmllbGRNYXAiLCJzbHVnIiwicmVkdWNlZEJsb2NrIiwiaW1hZ2VBbHRUZXh0IiwiaW1hZ2VVUkwiLCJsYWJlbHMiLCJmaWVsZENvbXBvbmVudFByb3BzIiwiQWZ0ZXJJbnB1dCIsImFmdGVySW5wdXQiLCJDb21wb25lbnQiLCJpIiwia2V5IiwiQmVmb3JlSW5wdXQiLCJiZWZvcmVJbnB1dCIsIkRlc2NyaXB0aW9uIiwiQ3VzdG9tQ29tcG9uZW50IiwiRGVmYXVsdENvbXBvbmVudCIsImNvbXBvbmVudFByb3BzIiwiRXJyb3IiLCJMYWJlbCIsImNsYXNzTmFtZSIsImZpZWxkTWFwIiwic3R5bGUiLCJ3aWR0aCIsImhhc01hbnkiLCJtYXgiLCJtYXhSb3dzIiwibWluIiwib3B0aW9ucyIsInJlbGF0aW9uVG8iLCJyaWNoVGV4dENvbXBvbmVudE1hcCIsInN0ZXAiLCJjZWxsQ29tcG9uZW50UHJvcHMiLCJiIiwiZGF0ZURpc3BsYXlGb3JtYXQiLCJkYXRlIiwiZGlzcGxheUZvcm1hdCIsImZpZWxkVHlwZSIsIlJpY2hUZXh0RmllbGRDb21wb25lbnQiLCJSaWNoVGV4dENlbGxDb21wb25lbnQiLCJpc0xhenlGaWVsZCIsImVkaXRvciIsImlzTGF6eUNlbGwiLCJsYXp5IiwiTGF6eUZpZWxkQ29tcG9uZW50IiwidGhlbiIsInJlc29sdmVkQ29tcG9uZW50IiwiZGVmYXVsdCIsIkxhenlDZWxsQ29tcG9uZW50IiwiQ2VsbENvbXBvbmVudCIsImdlbmVyYXRlQ29tcG9uZW50TWFwIiwic2NoZW1hUGF0aCIsIkNlbGxDb21wb25lbnRPdmVycmlkZSIsInJlZHVjZWRGaWVsZCIsIkNlbGwiLCJIZWFkaW5nIiwiZGlzYWJsZSIsIkJvb2xlYW4iLCJkaXNhYmxlU29ydCIsImlzU2lkZWJhciIsInBvc2l0aW9uIiwibG9jYWxpemVkIiwicHVzaCIsImhhc0lEIiwiZmluZEluZGV4Il0sIm1hcHBpbmdzIjoiQUFHQSxTQUFTQSxnQkFBZ0IsRUFBRUMseUJBQXlCLFFBQVEsZ0JBQWU7QUFDM0UsT0FBT0MsU0FBU0MsUUFBUSxRQUFRLFFBQU87QUFNdkMsU0FBU0MscUJBQXFCLFFBQVEsdUNBQXNDO0FBQzVFLFNBQVNDLFVBQVUsUUFBUSw0QkFBMkI7QUFDdEQsT0FBT0Msa0JBQWtCLG9CQUFtQjtBQUM1QyxPQUFPQyx3QkFBd0IsK0JBQThCO0FBQzdELE9BQU9DLGtCQUFrQixvQkFBbUI7QUFDNUMsU0FBU0MsVUFBVSxRQUFRLHFCQUFvQjtBQUMvQyxPQUFPQyxpQkFBaUIsaUNBQWdDO0FBRXhELE9BQU8sTUFBTUMsWUFBWSxDQUFDQztJQVN4QixNQUFNLEVBQ0pDLFdBQVcsRUFDWEMsTUFBTSxFQUNO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
@@ -40,6 +40,9 @@ export type MappedField = {
40
40
  * On `select` fields only
41
41
  */
42
42
  options?: Option[];
43
+ /**
44
+ * This is the `admin.readOnly` value from the field's config
45
+ */
43
46
  readOnly: boolean;
44
47
  /**
45
48
  * On `relationship` fields only
@@ -56,6 +59,12 @@ export type MappedField = {
56
59
  type: keyof typeof fieldTypes;
57
60
  };
58
61
  export type FieldMap = MappedField[];
62
+ export type ActionMap = {
63
+ Edit: {
64
+ [view: string]: React.ReactNode[];
65
+ };
66
+ List: React.ReactNode[];
67
+ };
59
68
  export type CollectionComponentMap = ConfigComponentMapBase & {
60
69
  AdminThumbnail: React.ReactNode;
61
70
  AfterList: React.ReactNode;
@@ -67,6 +76,7 @@ export type CollectionComponentMap = ConfigComponentMapBase & {
67
76
  export type GlobalComponentMap = ConfigComponentMapBase;
68
77
  export type ConfigComponentMapBase = {
69
78
  Edit: React.ReactNode;
79
+ actionsMap: ActionMap;
70
80
  fieldMap: FieldMap;
71
81
  };
72
82
  export type ComponentMap = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildComponentMap/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildComponentMap/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
1
+ export { };
5
2
 
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvYnVpbGRDb21wb25lbnRNYXAvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBGaWVsZFBlcm1pc3Npb25zIH0gZnJvbSAncGF5bG9hZC9hdXRoJ1xuaW1wb3J0IHR5cGUge1xuICBCbG9ja0ZpZWxkLFxuICBGaWVsZEJhc2UsXG4gIExhYmVscyxcbiAgT3B0aW9uLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbiAgU2FuaXRpemVkR2xvYmFsQ29uZmlnLFxuICBUYWJzRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgZmllbGRUeXBlcyB9IGZyb20gJy4uLy4uL2Zvcm1zL2ZpZWxkcydcblxuZXhwb3J0IHR5cGUgTWFwcGVkVGFiID0ge1xuICBsYWJlbDogVGFic0ZpZWxkWyd0YWJzJ11bMF1bJ2xhYmVsJ11cbiAgbmFtZT86IHN0cmluZ1xuICBzdWJmaWVsZHM/OiBGaWVsZE1hcFxufVxuXG5leHBvcnQgdHlwZSBSZWR1Y2VkQmxvY2sgPSB7XG4gIGltYWdlQWx0VGV4dD86IHN0cmluZ1xuICBpbWFnZVVSTD86IHN0cmluZ1xuICBsYWJlbHM6IEJsb2NrRmllbGRbJ2xhYmVscyddXG4gIHNsdWc6IHN0cmluZ1xuICBzdWJmaWVsZHM6IEZpZWxkTWFwXG59XG5cbmV4cG9ydCB0eXBlIE1hcHBlZEZpZWxkID0ge1xuICBDZWxsOiBSZWFjdC5SZWFjdE5vZGVcbiAgRmllbGQ6IFJlYWN0LlJlYWN0Tm9kZVxuICBIZWFkaW5nOiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIE9uIGBibG9ja2AgZmllbGRzIG9ubHlcbiAgICovXG4gIGJsb2Nrcz86IFJlZHVjZWRCbG9ja1tdXG4gIC8qKlxuICAgKiBPbiBgcmljaFRleHRgIGZpZWxkcyBvbmx5XG4gICAqL1xuICBlZGl0b3I/OiBSaWNoVGV4dEZpZWxkWydlZGl0b3InXVxuICBmaWVsZElzUHJlc2VudGF0aW9uYWw6IGJvb2xlYW5cbiAgZmllbGRNYXA/OiBGaWVsZE1hcFxuICBmaWVsZFBlcm1pc3Npb25zOiBGaWVsZFBlcm1pc3Npb25zXG4gIGhhc01hbnk/OiBib29sZWFuXG4gIGlzRmllbGRBZmZlY3RpbmdEYXRhOiBib29sZWFuXG4gIGlzU2lkZWJhcjogYm9vbGVhblxuICBsYWJlbDogRmllbGRCYXNlWydsYWJlbCddXG4gIGxhYmVsczogTGFiZWxzXG4gIGxvY2FsaXplZDogYm9vbGVhblxuICBuYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIE9uIGBzZWxlY3RgIGZpZWxkcyBvbmx5XG4gICAqL1xuICBvcHRpb25zPzogT3B0aW9uW11cbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIGBhZG1pbi5yZWFkT25seWAgdmFsdWUgZnJvbSB0aGUgZmllbGQncyBjb25maWdcbiAgICovXG4gIHJlYWRPbmx5OiBib29sZWFuXG4gIC8qKlxuICAgKiBPbiBgcmVsYXRpb25zaGlwYCBmaWVsZHMgb25seVxuICAgKi9cbiAgcmVsYXRpb25Ubz86IFJlbGF0aW9uc2hpcEZpZWxkWydyZWxhdGlvblRvJ11cbiAgLyoqXG4gICAqIE9uIGBhcnJheWAsIGBncm91cGAsIGBjb2xsYXBzaWJsZWAsIGFuZCBgdGFic2AgZmllbGRzIG9ubHlcbiAgICovXG4gIHN1YmZpZWxkcz86IEZpZWxkTWFwXG4gIC8qKlxuICAgKiBPbiBgdGFic2AgZmllbGRzIG9ubHlcbiAgICovXG4gIHRhYnM/OiBNYXBwZWRUYWJbXVxuICB0eXBlOiBrZXlvZiB0eXBlb2YgZmllbGRUeXBlc1xufVxuXG5leHBvcnQgdHlwZSBGaWVsZE1hcCA9IE1hcHBlZEZpZWxkW11cblxuZXhwb3J0IHR5cGUgQWN0aW9uTWFwID0ge1xuICBFZGl0OiB7XG4gICAgW3ZpZXc6IHN0cmluZ106IFJlYWN0LlJlYWN0Tm9kZVtdXG4gIH1cbiAgTGlzdDogUmVhY3QuUmVhY3ROb2RlW11cbn1cblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbkNvbXBvbmVudE1hcCA9IENvbmZpZ0NvbXBvbmVudE1hcEJhc2UgJiB7XG4gIEFkbWluVGh1bWJuYWlsOiBSZWFjdC5SZWFjdE5vZGVcbiAgQWZ0ZXJMaXN0OiBSZWFjdC5SZWFjdE5vZGVcbiAgQWZ0ZXJMaXN0VGFibGU6IFJlYWN0LlJlYWN0Tm9kZVxuICBCZWZvcmVMaXN0OiBSZWFjdC5SZWFjdE5vZGVcbiAgQmVmb3JlTGlzdFRhYmxlOiBSZWFjdC5SZWFjdE5vZGVcbiAgTGlzdDogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmV4cG9ydCB0eXBlIEdsb2JhbENvbXBvbmVudE1hcCA9IENvbmZpZ0NvbXBvbmVudE1hcEJhc2VcblxuZXhwb3J0IHR5cGUgQ29uZmlnQ29tcG9uZW50TWFwQmFzZSA9IHtcbiAgRWRpdDogUmVhY3QuUmVhY3ROb2RlXG4gIGFjdGlvbnNNYXA6IEFjdGlvbk1hcFxuICBmaWVsZE1hcDogRmllbGRNYXBcbn1cblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50TWFwID0ge1xuICBjb2xsZWN0aW9uczoge1xuICAgIFtzbHVnOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnWydzbHVnJ11dOiBDb2xsZWN0aW9uQ29tcG9uZW50TWFwXG4gIH1cbiAgZ2xvYmFsczoge1xuICAgIFtzbHVnOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbJ3NsdWcnXV06IEdsb2JhbENvbXBvbmVudE1hcFxuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0dBLFdBT0MifQ==
@@ -1,19 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "buildFieldSchemaMap", {
6
- enumerable: true,
7
- get: function() {
8
- return buildFieldSchemaMap;
9
- }
10
- });
11
- const _traverseFields = require("./traverseFields");
12
- const buildFieldSchemaMap = (config)=>{
1
+ import { traverseFields } from './traverseFields';
2
+ export const buildFieldSchemaMap = (config)=>{
13
3
  const result = new Map();
14
4
  const validRelationships = config.collections.map((c)=>c.slug) || [];
15
5
  config.collections.forEach((collection)=>{
16
- (0, _traverseFields.traverseFields)({
6
+ traverseFields({
17
7
  config,
18
8
  fields: collection.fields,
19
9
  schemaMap: result,
@@ -22,7 +12,7 @@ const buildFieldSchemaMap = (config)=>{
22
12
  });
23
13
  });
24
14
  config.globals.forEach((global)=>{
25
- (0, _traverseFields.traverseFields)({
15
+ traverseFields({
26
16
  config,
27
17
  fields: global.fields,
28
18
  schemaMap: result,
@@ -33,4 +23,4 @@ const buildFieldSchemaMap = (config)=>{
33
23
  return result;
34
24
  };
35
25
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvYnVpbGRGaWVsZFNjaGVtYU1hcC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRTY2hlbWFNYXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbmV4cG9ydCBjb25zdCBidWlsZEZpZWxkU2NoZW1hTWFwID0gKGNvbmZpZzogU2FuaXRpemVkQ29uZmlnKTogRmllbGRTY2hlbWFNYXAgPT4ge1xuICBjb25zdCByZXN1bHQ6IEZpZWxkU2NoZW1hTWFwID0gbmV3IE1hcCgpXG5cbiAgY29uc3QgdmFsaWRSZWxhdGlvbnNoaXBzID0gY29uZmlnLmNvbGxlY3Rpb25zLm1hcCgoYykgPT4gYy5zbHVnKSB8fCBbXVxuXG4gIGNvbmZpZy5jb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBjb2xsZWN0aW9uLmZpZWxkcyxcbiAgICAgIHNjaGVtYU1hcDogcmVzdWx0LFxuICAgICAgc2NoZW1hUGF0aDogY29sbGVjdGlvbi5zbHVnLFxuICAgICAgdmFsaWRSZWxhdGlvbnNoaXBzLFxuICAgIH0pXG4gIH0pXG5cbiAgY29uZmlnLmdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBnbG9iYWwuZmllbGRzLFxuICAgICAgc2NoZW1hTWFwOiByZXN1bHQsXG4gICAgICBzY2hlbWFQYXRoOiBnbG9iYWwuc2x1ZyxcbiAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICB9KVxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJidWlsZEZpZWxkU2NoZW1hTWFwIiwiY29uZmlnIiwicmVzdWx0IiwiTWFwIiwidmFsaWRSZWxhdGlvbnNoaXBzIiwiY29sbGVjdGlvbnMiLCJtYXAiLCJjIiwic2x1ZyIsImZvckVhY2giLCJjb2xsZWN0aW9uIiwidHJhdmVyc2VGaWVsZHMiLCJmaWVsZHMiLCJzY2hlbWFNYXAiLCJzY2hlbWFQYXRoIiwiZ2xvYmFscyIsImdsb2JhbCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFNYUE7OztlQUFBQTs7O2dDQUZrQjtBQUV4QixNQUFNQSxzQkFBc0IsQ0FBQ0M7SUFDbEMsTUFBTUMsU0FBeUIsSUFBSUM7SUFFbkMsTUFBTUMscUJBQXFCSCxPQUFPSSxXQUFXLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUssRUFBRTtJQUV0RVAsT0FBT0ksV0FBVyxDQUFDSSxPQUFPLENBQUMsQ0FBQ0M7UUFDMUJDLElBQUFBLDhCQUFjLEVBQUM7WUFDYlY7WUFDQVcsUUFBUUYsV0FBV0UsTUFBTTtZQUN6QkMsV0FBV1g7WUFDWFksWUFBWUosV0FBV0YsSUFBSTtZQUMzQko7UUFDRjtJQUNGO0lBRUFILE9BQU9jLE9BQU8sQ0FBQ04sT0FBTyxDQUFDLENBQUNPO1FBQ3RCTCxJQUFBQSw4QkFBYyxFQUFDO1lBQ2JWO1lBQ0FXLFFBQVFJLE9BQU9KLE1BQU07WUFDckJDLFdBQVdYO1lBQ1hZLFlBQVlFLE9BQU9SLElBQUk7WUFDdkJKO1FBQ0Y7SUFDRjtJQUVBLE9BQU9GO0FBQ1QifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvYnVpbGRGaWVsZFNjaGVtYU1hcC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRTY2hlbWFNYXAgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMnXG5cbmV4cG9ydCBjb25zdCBidWlsZEZpZWxkU2NoZW1hTWFwID0gKGNvbmZpZzogU2FuaXRpemVkQ29uZmlnKTogRmllbGRTY2hlbWFNYXAgPT4ge1xuICBjb25zdCByZXN1bHQ6IEZpZWxkU2NoZW1hTWFwID0gbmV3IE1hcCgpXG5cbiAgY29uc3QgdmFsaWRSZWxhdGlvbnNoaXBzID0gY29uZmlnLmNvbGxlY3Rpb25zLm1hcCgoYykgPT4gYy5zbHVnKSB8fCBbXVxuXG4gIGNvbmZpZy5jb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBjb2xsZWN0aW9uLmZpZWxkcyxcbiAgICAgIHNjaGVtYU1hcDogcmVzdWx0LFxuICAgICAgc2NoZW1hUGF0aDogY29sbGVjdGlvbi5zbHVnLFxuICAgICAgdmFsaWRSZWxhdGlvbnNoaXBzLFxuICAgIH0pXG4gIH0pXG5cbiAgY29uZmlnLmdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgY29uZmlnLFxuICAgICAgZmllbGRzOiBnbG9iYWwuZmllbGRzLFxuICAgICAgc2NoZW1hTWFwOiByZXN1bHQsXG4gICAgICBzY2hlbWFQYXRoOiBnbG9iYWwuc2x1ZyxcbiAgICAgIHZhbGlkUmVsYXRpb25zaGlwcyxcbiAgICB9KVxuICB9KVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImJ1aWxkRmllbGRTY2hlbWFNYXAiLCJjb25maWciLCJyZXN1bHQiLCJNYXAiLCJ2YWxpZFJlbGF0aW9uc2hpcHMiLCJjb2xsZWN0aW9ucyIsIm1hcCIsImMiLCJzbHVnIiwiZm9yRWFjaCIsImNvbGxlY3Rpb24iLCJmaWVsZHMiLCJzY2hlbWFNYXAiLCJzY2hlbWFQYXRoIiwiZ2xvYmFscyIsImdsb2JhbCJdLCJtYXBwaW5ncyI6IkFBSUEsU0FBU0EsY0FBYyxRQUFRLG1CQUFrQjtBQUVqRCxPQUFPLE1BQU1DLHNCQUFzQixDQUFDQztJQUNsQyxNQUFNQyxTQUF5QixJQUFJQztJQUVuQyxNQUFNQyxxQkFBcUJILE9BQU9JLFdBQVcsQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLElBQUksS0FBSyxFQUFFO0lBRXRFUCxPQUFPSSxXQUFXLENBQUNJLE9BQU8sQ0FBQyxDQUFDQztRQUMxQlgsZUFBZTtZQUNiRTtZQUNBVSxRQUFRRCxXQUFXQyxNQUFNO1lBQ3pCQyxXQUFXVjtZQUNYVyxZQUFZSCxXQUFXRixJQUFJO1lBQzNCSjtRQUNGO0lBQ0Y7SUFFQUgsT0FBT2EsT0FBTyxDQUFDTCxPQUFPLENBQUMsQ0FBQ007UUFDdEJoQixlQUFlO1lBQ2JFO1lBQ0FVLFFBQVFJLE9BQU9KLE1BQU07WUFDckJDLFdBQVdWO1lBQ1hXLFlBQVlFLE9BQU9QLElBQUk7WUFDdkJKO1FBQ0Y7SUFDRjtJQUVBLE9BQU9GO0FBQ1QsRUFBQyJ9