@payloadcms/ui 3.0.0-alpha.15 → 3.0.0-alpha.17

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 (441) 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 +30 -89
  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.js +62 -114
  32. package/dist/elements/DocumentDrawer/index.js +33 -98
  33. package/dist/elements/DocumentDrawer/types.js +2 -5
  34. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  35. package/dist/elements/DocumentFields/index.js +16 -31
  36. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +4 -14
  37. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +9 -24
  38. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +9 -68
  39. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +5 -15
  40. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +2 -12
  41. package/dist/elements/DocumentHeader/Tabs/index.js +18 -33
  42. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +8 -23
  43. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +5 -23
  44. package/dist/elements/DocumentHeader/index.js +10 -66
  45. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -66
  46. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +2 -5
  47. package/dist/elements/DraggableSortable/index.js +15 -66
  48. package/dist/elements/DraggableSortable/types.js +2 -5
  49. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +4 -14
  50. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +2 -5
  51. package/dist/elements/Drawer/index.js +32 -94
  52. package/dist/elements/Drawer/types.js +2 -5
  53. package/dist/elements/Drawer/useDrawerSlug.js +8 -18
  54. package/dist/elements/Dropzone/index.js +20 -35
  55. package/dist/elements/DuplicateDocument/index.js +33 -83
  56. package/dist/elements/DuplicateDocument/types.js +2 -5
  57. package/dist/elements/EditMany/index.js +72 -128
  58. package/dist/elements/EditMany/types.js +2 -5
  59. package/dist/elements/EditUpload/index.js +66 -122
  60. package/dist/elements/ErrorPill/index.js +7 -22
  61. package/dist/elements/ErrorPill/types.js +2 -5
  62. package/dist/elements/FieldSelect/index.js +23 -79
  63. package/dist/elements/FileDetails/FileMeta/index.js +19 -75
  64. package/dist/elements/FileDetails/FileMeta/types.js +2 -5
  65. package/dist/elements/FileDetails/index.js +15 -30
  66. package/dist/elements/FileDetails/types.js +2 -5
  67. package/dist/elements/GenerateConfirmation/index.js +22 -37
  68. package/dist/elements/GenerateConfirmation/types.js +2 -5
  69. package/dist/elements/GetFilterOptions/index.js +18 -33
  70. package/dist/elements/Gutter/index.js +5 -56
  71. package/dist/elements/Hamburger/index.js +18 -33
  72. package/dist/elements/Header/index.js +39 -95
  73. package/dist/elements/HydrateClientUser/index.js +6 -16
  74. package/dist/elements/IDLabel/index.js +5 -20
  75. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +6 -16
  76. package/dist/elements/ListControls/index.js +52 -104
  77. package/dist/elements/ListControls/types.js +2 -5
  78. package/dist/elements/ListDrawer/DrawerContent.js +72 -128
  79. package/dist/elements/ListDrawer/index.js +32 -100
  80. package/dist/elements/ListDrawer/types.js +2 -5
  81. package/dist/elements/ListSelection/index.js +11 -62
  82. package/dist/elements/Loading/index.js +25 -51
  83. package/dist/elements/LoadingOverlay/index.js +17 -79
  84. package/dist/elements/LoadingOverlay/reducer.js +3 -21
  85. package/dist/elements/LoadingOverlay/types.js +2 -5
  86. package/dist/elements/Localizer/LocalizerLabel/index.js +15 -30
  87. package/dist/elements/Localizer/index.js +24 -80
  88. package/dist/elements/Logout/index.js +13 -28
  89. package/dist/elements/Nav/NavHamburger/index.js +8 -23
  90. package/dist/elements/Nav/NavToggler/index.js +13 -28
  91. package/dist/elements/Nav/NavWrapper/index.js +8 -23
  92. package/dist/elements/Nav/context.js +20 -82
  93. package/dist/elements/Nav/index.js +36 -51
  94. package/dist/elements/NavGroup/index.js +21 -77
  95. package/dist/elements/Pagination/ClickableArrow/index.js +7 -22
  96. package/dist/elements/Pagination/ClickableArrow/types.js +2 -5
  97. package/dist/elements/Pagination/Page/index.js +4 -19
  98. package/dist/elements/Pagination/Page/types.js +2 -5
  99. package/dist/elements/Pagination/Separator/index.js +4 -19
  100. package/dist/elements/Pagination/index.js +20 -35
  101. package/dist/elements/Pagination/types.js +2 -5
  102. package/dist/elements/PerPage/index.js +28 -83
  103. package/dist/elements/Pill/index.js +16 -40
  104. package/dist/elements/Pill/types.js +2 -5
  105. package/dist/elements/Popup/PopupButtonList/index.js +10 -75
  106. package/dist/elements/Popup/PopupTrigger/index.js +6 -21
  107. package/dist/elements/Popup/PopupTrigger/types.js +2 -5
  108. package/dist/elements/Popup/index.js +29 -80
  109. package/dist/elements/Popup/types.js +2 -5
  110. package/dist/elements/PreviewButton/index.js +22 -73
  111. package/dist/elements/PreviewSizes/index.js +24 -80
  112. package/dist/elements/Publish/index.js +23 -79
  113. package/dist/elements/PublishMany/index.js +37 -93
  114. package/dist/elements/PublishMany/types.js +2 -5
  115. package/dist/elements/ReactSelect/ClearIndicator/index.js +7 -22
  116. package/dist/elements/ReactSelect/Control/index.js +5 -20
  117. package/dist/elements/ReactSelect/MultiValue/index.js +8 -23
  118. package/dist/elements/ReactSelect/MultiValueLabel/index.js +7 -22
  119. package/dist/elements/ReactSelect/MultiValueRemove/index.js +12 -27
  120. package/dist/elements/ReactSelect/SingleValue/index.js +5 -20
  121. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -22
  122. package/dist/elements/ReactSelect/index.js +45 -60
  123. package/dist/elements/ReactSelect/types.js +2 -5
  124. package/dist/elements/RenderCustomComponent/index.js +5 -20
  125. package/dist/elements/RenderCustomComponent/types.js +2 -5
  126. package/dist/elements/RenderTitle/index.js +9 -24
  127. package/dist/elements/RenderTitle/types.js +2 -5
  128. package/dist/elements/Save/index.js +16 -72
  129. package/dist/elements/SaveDraft/index.js +24 -80
  130. package/dist/elements/SearchFilter/index.js +31 -86
  131. package/dist/elements/SearchFilter/types.js +2 -5
  132. package/dist/elements/SelectAll/index.js +13 -28
  133. package/dist/elements/SelectRow/index.js +10 -25
  134. package/dist/elements/ShimmerEffect/index.js +12 -71
  135. package/dist/elements/SortColumn/index.js +27 -90
  136. package/dist/elements/SortColumn/types.js +2 -5
  137. package/dist/elements/SortComplex/index.js +35 -90
  138. package/dist/elements/SortComplex/types.js +2 -5
  139. package/dist/elements/Status/index.js +38 -88
  140. package/dist/elements/StayLoggedIn/index.js +20 -34
  141. package/dist/elements/StayLoggedIn/types.js +2 -5
  142. package/dist/elements/StepNav/SetStepNav.js +6 -16
  143. package/dist/elements/StepNav/index.js +27 -93
  144. package/dist/elements/StepNav/types.js +2 -5
  145. package/dist/elements/Table/TableCellProvider/index.js +7 -30
  146. package/dist/elements/Table/index.js +15 -38
  147. package/dist/elements/Table/types.js +2 -5
  148. package/dist/elements/TableColumns/buildColumns.js +7 -22
  149. package/dist/elements/TableColumns/columnReducer.js +2 -12
  150. package/dist/elements/TableColumns/index.js +24 -86
  151. package/dist/elements/Thumbnail/index.js +12 -68
  152. package/dist/elements/Thumbnail/types.js +2 -5
  153. package/dist/elements/ThumbnailCard/index.js +13 -28
  154. package/dist/elements/ThumbnailCard/types.js +2 -5
  155. package/dist/elements/Tooltip/index.js +14 -65
  156. package/dist/elements/Tooltip/types.js +2 -5
  157. package/dist/elements/Translation/index.js +7 -58
  158. package/dist/elements/UnpublishMany/index.js +37 -93
  159. package/dist/elements/UnpublishMany/types.js +2 -5
  160. package/dist/elements/Upload/index.js +57 -127
  161. package/dist/elements/Upload/types.js +2 -5
  162. package/dist/elements/ViewDescription/index.js +12 -27
  163. package/dist/elements/ViewDescription/types.js +4 -19
  164. package/dist/elements/WhereBuilder/Condition/Date/index.js +6 -21
  165. package/dist/elements/WhereBuilder/Condition/Date/types.js +2 -5
  166. package/dist/elements/WhereBuilder/Condition/Number/index.js +7 -22
  167. package/dist/elements/WhereBuilder/Condition/Number/types.js +2 -5
  168. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +28 -84
  169. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +5 -15
  170. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +2 -5
  171. package/dist/elements/WhereBuilder/Condition/Select/index.js +15 -30
  172. package/dist/elements/WhereBuilder/Condition/Select/types.js +2 -5
  173. package/dist/elements/WhereBuilder/Condition/Text/index.js +7 -22
  174. package/dist/elements/WhereBuilder/Condition/Text/types.js +2 -5
  175. package/dist/elements/WhereBuilder/Condition/index.js +37 -93
  176. package/dist/elements/WhereBuilder/Condition/types.js +2 -5
  177. package/dist/elements/WhereBuilder/field-types.js +2 -12
  178. package/dist/elements/WhereBuilder/index.js +43 -98
  179. package/dist/elements/WhereBuilder/reducer.js +2 -12
  180. package/dist/elements/WhereBuilder/transformWhereQuery.js +6 -12
  181. package/dist/elements/WhereBuilder/types.js +2 -5
  182. package/dist/elements/WhereBuilder/validateWhereQuery.js +4 -14
  183. package/dist/exports/assets.js +3 -26
  184. package/dist/exports/elements.js +48 -249
  185. package/dist/exports/forms.js +38 -173
  186. package/dist/exports/graphics.js +3 -26
  187. package/dist/exports/hooks.js +10 -54
  188. package/dist/exports/icons.js +18 -81
  189. package/dist/exports/index.js +10 -27
  190. package/dist/exports/providers.js +24 -118
  191. package/dist/exports/templates.js +3 -21
  192. package/dist/exports/types.js +2 -5
  193. package/dist/exports/utilities.js +11 -61
  194. package/dist/forms/Error/index.js +11 -26
  195. package/dist/forms/FieldDescription/index.js +9 -24
  196. package/dist/forms/FieldDescription/types.js +2 -5
  197. package/dist/forms/FieldPathProvider/index.d.ts.map +1 -1
  198. package/dist/forms/FieldPathProvider/index.js +7 -30
  199. package/dist/forms/Form/buildFieldSchemaMap.js +14 -14
  200. package/dist/forms/Form/buildInitialState.js +2 -12
  201. package/dist/forms/Form/context.js +17 -67
  202. package/dist/forms/Form/createNestedFieldPath.js +5 -15
  203. package/dist/forms/Form/errorMessages.js +2 -12
  204. package/dist/forms/Form/fieldReducer.js +25 -38
  205. package/dist/forms/Form/getDataByPath.js +4 -14
  206. package/dist/forms/Form/getSiblingData.js +6 -21
  207. package/dist/forms/Form/index.js +85 -141
  208. package/dist/forms/Form/initContextState.js +2 -12
  209. package/dist/forms/Form/mergeServerFormState.js +4 -14
  210. package/dist/forms/Form/reduceFieldsToValues.js +4 -14
  211. package/dist/forms/Form/rows.js +3 -21
  212. package/dist/forms/Form/types.js +2 -5
  213. package/dist/forms/Label/index.js +9 -24
  214. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  215. package/dist/forms/NullifyField/index.js +16 -72
  216. package/dist/forms/ReadOnlyProvider/index.d.ts +7 -0
  217. package/dist/forms/ReadOnlyProvider/index.d.ts.map +1 -0
  218. package/dist/forms/ReadOnlyProvider/index.js +15 -0
  219. package/dist/forms/RenderFields/RenderField.d.ts +3 -0
  220. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  221. package/dist/forms/RenderFields/RenderField.js +22 -23
  222. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  223. package/dist/forms/RenderFields/index.js +16 -29
  224. package/dist/forms/RenderFields/types.d.ts +2 -0
  225. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  226. package/dist/forms/RenderFields/types.js +2 -5
  227. package/dist/forms/RowLabel/index.js +13 -28
  228. package/dist/forms/RowLabel/types.js +4 -19
  229. package/dist/forms/Submit/index.js +11 -62
  230. package/dist/forms/WatchChildErrors/buildPathSegments.js +2 -12
  231. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +2 -12
  232. package/dist/forms/WatchChildErrors/getNestedFieldState.js +5 -14
  233. package/dist/forms/WatchChildErrors/index.js +11 -26
  234. package/dist/forms/fields/Array/ArrayRow.d.ts.map +1 -1
  235. package/dist/forms/fields/Array/ArrayRow.js +24 -39
  236. package/dist/forms/fields/Array/index.js +59 -115
  237. package/dist/forms/fields/Array/types.js +2 -5
  238. package/dist/forms/fields/Blocks/BlockRow.js +27 -42
  239. package/dist/forms/fields/Blocks/BlocksDrawer/BlockSearch/index.js +10 -25
  240. package/dist/forms/fields/Blocks/BlocksDrawer/index.js +29 -85
  241. package/dist/forms/fields/Blocks/BlocksDrawer/types.js +2 -5
  242. package/dist/forms/fields/Blocks/RowActions.js +12 -27
  243. package/dist/forms/fields/Blocks/SectionTitle/index.js +10 -25
  244. package/dist/forms/fields/Blocks/SectionTitle/types.js +2 -5
  245. package/dist/forms/fields/Blocks/index.js +78 -133
  246. package/dist/forms/fields/Blocks/types.js +2 -5
  247. package/dist/forms/fields/Checkbox/Input.js +11 -34
  248. package/dist/forms/fields/Checkbox/index.js +19 -75
  249. package/dist/forms/fields/Checkbox/types.js +2 -5
  250. package/dist/forms/fields/Code/index.js +15 -71
  251. package/dist/forms/fields/Code/types.js +2 -5
  252. package/dist/forms/fields/Collapsible/index.js +31 -87
  253. package/dist/forms/fields/Collapsible/types.js +2 -5
  254. package/dist/forms/fields/ConfirmPassword/index.js +19 -75
  255. package/dist/forms/fields/ConfirmPassword/types.js +2 -5
  256. package/dist/forms/fields/DateTime/index.js +18 -74
  257. package/dist/forms/fields/DateTime/types.js +2 -5
  258. package/dist/forms/fields/Email/index.js +19 -83
  259. package/dist/forms/fields/Email/types.js +2 -5
  260. package/dist/forms/fields/Group/index.js +32 -88
  261. package/dist/forms/fields/Group/provider.js +7 -69
  262. package/dist/forms/fields/Group/types.js +2 -5
  263. package/dist/forms/fields/HiddenInput/index.js +8 -64
  264. package/dist/forms/fields/HiddenInput/types.js +2 -5
  265. package/dist/forms/fields/JSON/index.js +20 -76
  266. package/dist/forms/fields/JSON/types.js +2 -5
  267. package/dist/forms/fields/Number/index.js +26 -82
  268. package/dist/forms/fields/Number/types.js +2 -5
  269. package/dist/forms/fields/Password/index.js +15 -79
  270. package/dist/forms/fields/Password/types.js +2 -5
  271. package/dist/forms/fields/Point/index.js +24 -80
  272. package/dist/forms/fields/Point/types.js +2 -5
  273. package/dist/forms/fields/RadioGroup/Radio/index.js +13 -28
  274. package/dist/forms/fields/RadioGroup/index.js +23 -79
  275. package/dist/forms/fields/RadioGroup/types.js +2 -5
  276. package/dist/forms/fields/Relationship/AddNew/index.js +43 -99
  277. package/dist/forms/fields/Relationship/AddNew/types.js +2 -5
  278. package/dist/forms/fields/Relationship/AddNew/useRelatedCollections.js +6 -16
  279. package/dist/forms/fields/Relationship/createRelationMap.js +2 -12
  280. package/dist/forms/fields/Relationship/findOptionsByValue.js +2 -12
  281. package/dist/forms/fields/Relationship/index.js +64 -120
  282. package/dist/forms/fields/Relationship/optionsReducer.js +7 -17
  283. package/dist/forms/fields/Relationship/select-components/MultiValueLabel/index.js +21 -72
  284. package/dist/forms/fields/Relationship/select-components/SingleValue/index.js +22 -73
  285. package/dist/forms/fields/Relationship/types.js +2 -5
  286. package/dist/forms/fields/RichText/index.js +2 -12
  287. package/dist/forms/fields/RichText/types.js +2 -5
  288. package/dist/forms/fields/Row/index.js +11 -26
  289. package/dist/forms/fields/Row/provider.js +7 -69
  290. package/dist/forms/fields/Row/types.js +2 -5
  291. package/dist/forms/fields/Select/index.js +24 -88
  292. package/dist/forms/fields/Select/types.js +2 -5
  293. package/dist/forms/fields/Tabs/Tab/index.js +13 -64
  294. package/dist/forms/fields/Tabs/index.d.ts.map +1 -1
  295. package/dist/forms/fields/Tabs/index.js +35 -91
  296. package/dist/forms/fields/Tabs/provider.js +7 -69
  297. package/dist/forms/fields/Tabs/types.js +2 -5
  298. package/dist/forms/fields/Text/Input.js +14 -29
  299. package/dist/forms/fields/Text/index.d.ts.map +1 -1
  300. package/dist/forms/fields/Text/index.js +22 -80
  301. package/dist/forms/fields/Text/types.js +2 -5
  302. package/dist/forms/fields/Textarea/Input.js +15 -30
  303. package/dist/forms/fields/Textarea/index.d.ts.map +1 -1
  304. package/dist/forms/fields/Textarea/index.js +21 -77
  305. package/dist/forms/fields/Textarea/types.js +2 -5
  306. package/dist/forms/fields/UI/index.js +2 -12
  307. package/dist/forms/fields/Upload/Input.js +35 -91
  308. package/dist/forms/fields/Upload/index.js +14 -70
  309. package/dist/forms/fields/Upload/types.js +2 -5
  310. package/dist/forms/fields/getFilterOptionsQuery.js +2 -12
  311. package/dist/forms/fields/index.js +50 -65
  312. package/dist/forms/fields/shared.d.ts +2 -1
  313. package/dist/forms/fields/shared.d.ts.map +1 -1
  314. package/dist/forms/fields/shared.js +7 -21
  315. package/dist/forms/useField/index.d.ts.map +1 -1
  316. package/dist/forms/useField/index.js +30 -41
  317. package/dist/forms/useField/types.d.ts +1 -0
  318. package/dist/forms/useField/types.d.ts.map +1 -1
  319. package/dist/forms/useField/types.js +2 -5
  320. package/dist/forms/utilities/buildStateFromSchema/addFieldStatePromise.js +21 -33
  321. package/dist/forms/utilities/buildStateFromSchema/buildStateFromSchema.spec.js +5 -14
  322. package/dist/forms/utilities/buildStateFromSchema/index.js +4 -14
  323. package/dist/forms/utilities/buildStateFromSchema/iterateFields.js +8 -16
  324. package/dist/forms/withCondition/WatchCondition.js +7 -57
  325. package/dist/forms/withCondition/index.js +8 -23
  326. package/dist/graphics/Account/Default/index.js +7 -22
  327. package/dist/graphics/Account/Gravatar/index.js +10 -25
  328. package/dist/graphics/Account/index.js +15 -30
  329. package/dist/graphics/DefaultBlockImage/index.js +11 -62
  330. package/dist/graphics/ExternalLink/index.js +5 -20
  331. package/dist/graphics/File/index.js +7 -22
  332. package/dist/graphics/Icon/index.js +13 -28
  333. package/dist/graphics/Logo/index.js +15 -30
  334. package/dist/graphics/Search/index.js +6 -21
  335. package/dist/hooks/useAdminThumbnail.js +5 -15
  336. package/dist/hooks/useDebounce.js +6 -16
  337. package/dist/hooks/useDebouncedCallback.js +10 -15
  338. package/dist/hooks/useDebouncedEffect.js +6 -16
  339. package/dist/hooks/useDelay.js +7 -58
  340. package/dist/hooks/useDelayedRender.js +11 -62
  341. package/dist/hooks/useHotkey.js +10 -20
  342. package/dist/hooks/useIntersect.js +7 -17
  343. package/dist/hooks/usePayloadAPI.js +17 -32
  344. package/dist/hooks/useResize.js +5 -15
  345. package/dist/hooks/useThrottledEffect.js +5 -15
  346. package/dist/hooks/useThumbnail.js +8 -18
  347. package/dist/hooks/useUseAsTitle.js +6 -16
  348. package/dist/icons/Calendar/index.js +8 -23
  349. package/dist/icons/Check/index.js +6 -21
  350. package/dist/icons/Chevron/index.js +5 -20
  351. package/dist/icons/CloseMenu/index.js +6 -21
  352. package/dist/icons/CodeBlock/index.js +5 -20
  353. package/dist/icons/Copy/index.js +6 -21
  354. package/dist/icons/DragHandle/index.js +10 -25
  355. package/dist/icons/Edit/index.js +7 -22
  356. package/dist/icons/Line/index.js +5 -20
  357. package/dist/icons/Link/index.js +6 -21
  358. package/dist/icons/LogOut/index.js +7 -22
  359. package/dist/icons/Menu/index.js +7 -22
  360. package/dist/icons/MinimizeMaximize/index.js +12 -63
  361. package/dist/icons/More/index.js +7 -22
  362. package/dist/icons/Plus/index.js +6 -21
  363. package/dist/icons/Search/index.js +6 -21
  364. package/dist/icons/Swap/index.js +8 -23
  365. package/dist/icons/X/index.js +6 -21
  366. package/dist/index.js +2 -19
  367. package/dist/providers/ActionsProvider/SetViewActions/index.js +6 -16
  368. package/dist/providers/ActionsProvider/index.js +11 -70
  369. package/dist/providers/Auth/index.d.ts.map +1 -1
  370. package/dist/providers/Auth/index.js +51 -127
  371. package/dist/providers/Auth/types.js +2 -5
  372. package/dist/providers/ClientFunction/index.js +14 -40
  373. package/dist/providers/ComponentMapProvider/index.js +9 -68
  374. package/dist/providers/Config/index.js +6 -65
  375. package/dist/providers/CustomProvider/index.js +9 -24
  376. package/dist/providers/DocumentEvents/index.js +7 -66
  377. package/dist/providers/DocumentEvents/types.js +2 -5
  378. package/dist/providers/DocumentInfo/SetDocumentInfo/index.js +9 -19
  379. package/dist/providers/DocumentInfo/index.js +42 -100
  380. package/dist/providers/DocumentInfo/types.js +2 -5
  381. package/dist/providers/EditDepth/index.js +5 -67
  382. package/dist/providers/FormQueryParams/index.js +7 -69
  383. package/dist/providers/ListInfo/index.js +9 -68
  384. package/dist/providers/ListInfo/types.js +2 -5
  385. package/dist/providers/Locale/index.js +28 -87
  386. package/dist/providers/OperationProvider/index.js +5 -67
  387. package/dist/providers/Params/index.js +9 -67
  388. package/dist/providers/Portal/index.js +4 -19
  389. package/dist/providers/Preferences/index.js +25 -89
  390. package/dist/providers/Root/index.js +31 -82
  391. package/dist/providers/SearchParams/index.js +14 -77
  392. package/dist/providers/SearchParams/types.js +2 -5
  393. package/dist/providers/SelectionProvider/index.js +23 -90
  394. package/dist/providers/Theme/index.js +11 -73
  395. package/dist/providers/Theme/types.js +2 -5
  396. package/dist/providers/Theme/utilities.js +3 -21
  397. package/dist/providers/Translation/index.js +8 -67
  398. package/dist/templates/Default/NavHamburger/index.js +7 -22
  399. package/dist/templates/Default/Wrapper/index.js +7 -22
  400. package/dist/templates/Default/index.js +17 -68
  401. package/dist/templates/Default/types.js +2 -5
  402. package/dist/templates/Minimal/index.js +6 -21
  403. package/dist/templates/Minimal/types.js +2 -5
  404. package/dist/utilities/api.js +4 -19
  405. package/dist/utilities/arraysHaveSameStrings.js +2 -12
  406. package/dist/utilities/buildComponentMap/index.d.ts +2 -5
  407. package/dist/utilities/buildComponentMap/index.d.ts.map +1 -1
  408. package/dist/utilities/buildComponentMap/index.js +22 -36
  409. package/dist/utilities/buildComponentMap/mapActions.js +5 -20
  410. package/dist/utilities/buildComponentMap/mapFields.d.ts +2 -5
  411. package/dist/utilities/buildComponentMap/mapFields.d.ts.map +1 -1
  412. package/dist/utilities/buildComponentMap/mapFields.js +40 -106
  413. package/dist/utilities/buildComponentMap/types.d.ts +3 -0
  414. package/dist/utilities/buildComponentMap/types.d.ts.map +1 -1
  415. package/dist/utilities/buildComponentMap/types.js +2 -5
  416. package/dist/utilities/buildFieldSchemaMap/index.js +5 -15
  417. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +9 -19
  418. package/dist/utilities/buildFieldSchemaMap/types.js +2 -5
  419. package/dist/utilities/canUseDOM.js +2 -12
  420. package/dist/utilities/findLocaleFromCode.js +4 -12
  421. package/dist/utilities/formatDate/getSupportedDateLocale.js +2 -12
  422. package/dist/utilities/formatDate/index.js +10 -69
  423. package/dist/utilities/formatDocTitle.js +6 -16
  424. package/dist/utilities/formatFields.js +3 -13
  425. package/dist/utilities/getFormState.js +2 -12
  426. package/dist/utilities/getOffsetTop.js +2 -12
  427. package/dist/utilities/getRequestLanguage.js +2 -12
  428. package/dist/utilities/getSupportedMonacoLocale.js +2 -12
  429. package/dist/utilities/groupNavItems.js +7 -25
  430. package/dist/utilities/scrollToID.js +2 -12
  431. package/dist/utilities/setsAreEqual.js +2 -12
  432. package/dist/utilities/withMergedProps/index.js +23 -21
  433. package/dist/views/Global/RenderCustomView.js +0 -1
  434. package/package.json +4 -4
  435. package/dist/forms/FieldPathProvider/index.scss +0 -12
  436. package/dist/forms/FieldPathProvider/types.d.ts +0 -7
  437. package/dist/forms/FieldPathProvider/types.d.ts.map +0 -1
  438. package/dist/forms/FieldPathProvider/types.js +0 -6
  439. package/dist/providers/Auth/HydrateClientUser/index.d.ts +0 -7
  440. package/dist/providers/Auth/HydrateClientUser/index.d.ts.map +0 -1
  441. package/dist/providers/Auth/HydrateClientUser/index.js +0 -28
@@ -1,21 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "X", {
6
- enumerable: true,
7
- get: function() {
8
- return X;
9
- }
10
- });
11
- const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
- require("./index.scss");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- const X = ({ className })=>/*#__PURE__*/ _react.default.createElement("svg", {
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export const X = ({ className })=>/*#__PURE__*/ React.createElement("svg", {
19
4
  className: [
20
5
  className,
21
6
  'icon icon--x'
@@ -24,13 +9,13 @@ const X = ({ className })=>/*#__PURE__*/ _react.default.createElement("svg", {
24
9
  viewBox: "0 0 25 25",
25
10
  width: "25",
26
11
  xmlns: "http://www.w3.org/2000/svg"
27
- }, /*#__PURE__*/ _react.default.createElement("line", {
12
+ }, /*#__PURE__*/ React.createElement("line", {
28
13
  className: "stroke",
29
14
  x1: "8.74612",
30
15
  x2: "16.3973",
31
16
  y1: "16.347",
32
17
  y2: "8.69584"
33
- }), /*#__PURE__*/ _react.default.createElement("line", {
18
+ }), /*#__PURE__*/ React.createElement("line", {
34
19
  className: "stroke",
35
20
  x1: "8.6027",
36
21
  x2: "16.2539",
@@ -38,4 +23,4 @@ const X = ({ className })=>/*#__PURE__*/ _react.default.createElement("svg", {
38
23
  y2: "16.3471"
39
24
  }));
40
25
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pY29ucy9YL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5leHBvcnQgY29uc3QgWDogUmVhY3QuRkM8eyBjbGFzc05hbWU/OiBzdHJpbmcgfT4gPSAoeyBjbGFzc05hbWUgfSkgPT4gKFxuICA8c3ZnXG4gICAgY2xhc3NOYW1lPXtbY2xhc3NOYW1lLCAnaWNvbiBpY29uLS14J10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKX1cbiAgICBoZWlnaHQ9XCIyNVwiXG4gICAgdmlld0JveD1cIjAgMCAyNSAyNVwiXG4gICAgd2lkdGg9XCIyNVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gID5cbiAgICA8bGluZSBjbGFzc05hbWU9XCJzdHJva2VcIiB4MT1cIjguNzQ2MTJcIiB4Mj1cIjE2LjM5NzNcIiB5MT1cIjE2LjM0N1wiIHkyPVwiOC42OTU4NFwiIC8+XG4gICAgPGxpbmUgY2xhc3NOYW1lPVwic3Ryb2tlXCIgeDE9XCI4LjYwMjdcIiB4Mj1cIjE2LjI1MzlcIiB5MT1cIjguNjk1ODVcIiB5Mj1cIjE2LjM0NzFcIiAvPlxuICA8L3N2Zz5cbilcbiJdLCJuYW1lcyI6WyJYIiwiY2xhc3NOYW1lIiwic3ZnIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJoZWlnaHQiLCJ2aWV3Qm94Iiwid2lkdGgiLCJ4bWxucyIsImxpbmUiLCJ4MSIsIngyIiwieTEiLCJ5MiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFJYUE7OztlQUFBQTs7OzhEQUpLO1FBRVg7Ozs7OztBQUVBLE1BQU1BLElBQXNDLENBQUMsRUFBRUMsU0FBUyxFQUFFLGlCQUMvRCw2QkFBQ0M7UUFDQ0QsV0FBVztZQUFDQTtZQUFXO1NBQWUsQ0FBQ0UsTUFBTSxDQUFDQyxTQUFTQyxJQUFJLENBQUM7UUFDNURDLFFBQU87UUFDUEMsU0FBUTtRQUNSQyxPQUFNO1FBQ05DLE9BQU07cUJBRU4sNkJBQUNDO1FBQUtULFdBQVU7UUFBU1UsSUFBRztRQUFVQyxJQUFHO1FBQVVDLElBQUc7UUFBU0MsSUFBRztzQkFDbEUsNkJBQUNKO1FBQUtULFdBQVU7UUFBU1UsSUFBRztRQUFTQyxJQUFHO1FBQVVDLElBQUc7UUFBVUMsSUFBRyJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pY29ucy9YL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5leHBvcnQgY29uc3QgWDogUmVhY3QuRkM8eyBjbGFzc05hbWU/OiBzdHJpbmcgfT4gPSAoeyBjbGFzc05hbWUgfSkgPT4gKFxuICA8c3ZnXG4gICAgY2xhc3NOYW1lPXtbY2xhc3NOYW1lLCAnaWNvbiBpY29uLS14J10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKX1cbiAgICBoZWlnaHQ9XCIyNVwiXG4gICAgdmlld0JveD1cIjAgMCAyNSAyNVwiXG4gICAgd2lkdGg9XCIyNVwiXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gID5cbiAgICA8bGluZSBjbGFzc05hbWU9XCJzdHJva2VcIiB4MT1cIjguNzQ2MTJcIiB4Mj1cIjE2LjM5NzNcIiB5MT1cIjE2LjM0N1wiIHkyPVwiOC42OTU4NFwiIC8+XG4gICAgPGxpbmUgY2xhc3NOYW1lPVwic3Ryb2tlXCIgeDE9XCI4LjYwMjdcIiB4Mj1cIjE2LjI1MzlcIiB5MT1cIjguNjk1ODVcIiB5Mj1cIjE2LjM0NzFcIiAvPlxuICA8L3N2Zz5cbilcbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlgiLCJjbGFzc05hbWUiLCJzdmciLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImhlaWdodCIsInZpZXdCb3giLCJ3aWR0aCIsInhtbG5zIiwibGluZSIsIngxIiwieDIiLCJ5MSIsInkyIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFXLFFBQU87QUFFekIsT0FBTyxlQUFjO0FBRXJCLE9BQU8sTUFBTUMsSUFBc0MsQ0FBQyxFQUFFQyxTQUFTLEVBQUUsaUJBQy9ELG9CQUFDQztRQUNDRCxXQUFXO1lBQUNBO1lBQVc7U0FBZSxDQUFDRSxNQUFNLENBQUNDLFNBQVNDLElBQUksQ0FBQztRQUM1REMsUUFBTztRQUNQQyxTQUFRO1FBQ1JDLE9BQU07UUFDTkMsT0FBTTtxQkFFTixvQkFBQ0M7UUFBS1QsV0FBVTtRQUFTVSxJQUFHO1FBQVVDLElBQUc7UUFBVUMsSUFBRztRQUFTQyxJQUFHO3NCQUNsRSxvQkFBQ0o7UUFBS1QsV0FBVTtRQUFTVSxJQUFHO1FBQVNDLElBQUc7UUFBVUMsSUFBRztRQUFVQyxJQUFHO1FBRXJFIn0=
package/dist/index.js CHANGED
@@ -1,20 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _export_star(require("./exports"), exports);
6
- function _export_star(from, to) {
7
- Object.keys(from).forEach(function(k) {
8
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
9
- Object.defineProperty(to, k, {
10
- enumerable: true,
11
- get: function() {
12
- return from[k];
13
- }
14
- });
15
- }
16
- });
17
- return from;
18
- }
1
+ export * from './exports';
19
2
 
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V4cG9ydHMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBYyJ9
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V4cG9ydHMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFXIn0=
@@ -1,19 +1,9 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "SetViewActions", {
7
- enumerable: true,
8
- get: function() {
9
- return SetViewActions;
10
- }
11
- });
12
- const _react = require("react");
13
- const _ = require("..");
14
- const SetViewActions = ({ actions })=>{
15
- const { setViewActions } = (0, _.useActions)();
16
- (0, _react.useEffect)(()=>{
2
+ import { useEffect } from 'react';
3
+ import { useActions } from '..';
4
+ export const SetViewActions = ({ actions })=>{
5
+ const { setViewActions } = useActions();
6
+ useEffect(()=>{
17
7
  setViewActions(actions);
18
8
  return ()=>{
19
9
  setViewActions([]);
@@ -25,4 +15,4 @@ const SetViewActions = ({ actions })=>{
25
15
  return null;
26
16
  };
27
17
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvQWN0aW9uc1Byb3ZpZGVyL1NldFZpZXdBY3Rpb25zL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBBY3Rpb25NYXAgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvYnVpbGRDb21wb25lbnRNYXAvdHlwZXMnXG5cbmltcG9ydCB7IHVzZUFjdGlvbnMgfSBmcm9tICcuLidcblxuZXhwb3J0IGNvbnN0IFNldFZpZXdBY3Rpb25zOiBSZWFjdC5GQzx7IGFjdGlvbnM6IEFjdGlvbk1hcFsnRWRpdCddW3N0cmluZ10gfT4gPSAoeyBhY3Rpb25zIH0pID0+IHtcbiAgY29uc3QgeyBzZXRWaWV3QWN0aW9ucyB9ID0gdXNlQWN0aW9ucygpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWaWV3QWN0aW9ucyhhY3Rpb25zKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHNldFZpZXdBY3Rpb25zKFtdKVxuICAgIH1cbiAgfSwgW3NldFZpZXdBY3Rpb25zLCBhY3Rpb25zXSlcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbIlNldFZpZXdBY3Rpb25zIiwiYWN0aW9ucyIsInNldFZpZXdBY3Rpb25zIiwidXNlQWN0aW9ucyIsInVzZUVmZmVjdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OytCQVNhQTs7O2VBQUFBOzs7dUJBTmE7a0JBSUM7QUFFcEIsTUFBTUEsaUJBQW1FLENBQUMsRUFBRUMsT0FBTyxFQUFFO0lBQzFGLE1BQU0sRUFBRUMsY0FBYyxFQUFFLEdBQUdDLElBQUFBLFlBQVU7SUFFckNDLElBQUFBLGdCQUFTLEVBQUM7UUFDUkYsZUFBZUQ7UUFFZixPQUFPO1lBQ0xDLGVBQWUsRUFBRTtRQUNuQjtJQUNGLEdBQUc7UUFBQ0E7UUFBZ0JEO0tBQVE7SUFFNUIsT0FBTztBQUNUIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvQWN0aW9uc1Byb3ZpZGVyL1NldFZpZXdBY3Rpb25zL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBBY3Rpb25NYXAgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvYnVpbGRDb21wb25lbnRNYXAvdHlwZXMnXG5cbmltcG9ydCB7IHVzZUFjdGlvbnMgfSBmcm9tICcuLidcblxuZXhwb3J0IGNvbnN0IFNldFZpZXdBY3Rpb25zOiBSZWFjdC5GQzx7IGFjdGlvbnM6IEFjdGlvbk1hcFsnRWRpdCddW3N0cmluZ10gfT4gPSAoeyBhY3Rpb25zIH0pID0+IHtcbiAgY29uc3QgeyBzZXRWaWV3QWN0aW9ucyB9ID0gdXNlQWN0aW9ucygpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWaWV3QWN0aW9ucyhhY3Rpb25zKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHNldFZpZXdBY3Rpb25zKFtdKVxuICAgIH1cbiAgfSwgW3NldFZpZXdBY3Rpb25zLCBhY3Rpb25zXSlcblxuICByZXR1cm4gbnVsbFxufVxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZUFjdGlvbnMiLCJTZXRWaWV3QWN0aW9ucyIsImFjdGlvbnMiLCJzZXRWaWV3QWN0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFHQSxTQUFTQSxTQUFTLFFBQVEsUUFBTztBQUlqQyxTQUFTQyxVQUFVLFFBQVEsS0FBSTtBQUUvQixPQUFPLE1BQU1DLGlCQUFtRSxDQUFDLEVBQUVDLE9BQU8sRUFBRTtJQUMxRixNQUFNLEVBQUVDLGNBQWMsRUFBRSxHQUFHSDtJQUUzQkQsVUFBVTtRQUNSSSxlQUFlRDtRQUVmLE9BQU87WUFDTEMsZUFBZSxFQUFFO1FBQ25CO0lBQ0YsR0FBRztRQUFDQTtRQUFnQkQ7S0FBUTtJQUU1QixPQUFPO0FBQ1QsRUFBQyJ9
@@ -1,75 +1,16 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- ActionsProvider: function() {
14
- return ActionsProvider;
15
- },
16
- useActions: function() {
17
- return useActions;
18
- }
19
- });
20
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
21
- const _Config = require("../Config");
22
- function _getRequireWildcardCache(nodeInterop) {
23
- if (typeof WeakMap !== "function") return null;
24
- var cacheBabelInterop = new WeakMap();
25
- var cacheNodeInterop = new WeakMap();
26
- return (_getRequireWildcardCache = function(nodeInterop) {
27
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
28
- })(nodeInterop);
29
- }
30
- function _interop_require_wildcard(obj, nodeInterop) {
31
- if (!nodeInterop && obj && obj.__esModule) {
32
- return obj;
33
- }
34
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
35
- return {
36
- default: obj
37
- };
38
- }
39
- var cache = _getRequireWildcardCache(nodeInterop);
40
- if (cache && cache.has(obj)) {
41
- return cache.get(obj);
42
- }
43
- var newObj = {
44
- __proto__: null
45
- };
46
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
47
- for(var key in obj){
48
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
49
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
50
- if (desc && (desc.get || desc.set)) {
51
- Object.defineProperty(newObj, key, desc);
52
- } else {
53
- newObj[key] = obj[key];
54
- }
55
- }
56
- }
57
- newObj.default = obj;
58
- if (cache) {
59
- cache.set(obj, newObj);
60
- }
61
- return newObj;
62
- }
63
- const ActionsContext = /*#__PURE__*/ (0, _react.createContext)({
2
+ import React, { createContext, useContext, useEffect, useState } from 'react';
3
+ import { useConfig } from '../Config';
4
+ const ActionsContext = /*#__PURE__*/ createContext({
64
5
  actions: [],
65
6
  setViewActions: ()=>{}
66
7
  });
67
- const useActions = ()=>(0, _react.useContext)(ActionsContext);
68
- const ActionsProvider = ({ children })=>{
69
- const [viewActions, setViewActions] = (0, _react.useState)([]);
70
- const [adminActions, setAdminActions] = (0, _react.useState)([]);
71
- const { admin: { components: { actions: configAdminActions } } } = (0, _Config.useConfig)();
72
- (0, _react.useEffect)(()=>{
8
+ export const useActions = ()=>useContext(ActionsContext);
9
+ export const ActionsProvider = ({ children })=>{
10
+ const [viewActions, setViewActions] = useState([]);
11
+ const [adminActions, setAdminActions] = useState([]);
12
+ const { admin: { components: { actions: configAdminActions } } } = useConfig();
13
+ useEffect(()=>{
73
14
  setAdminActions(configAdminActions || []);
74
15
  }, [
75
16
  configAdminActions
@@ -78,7 +19,7 @@ const ActionsProvider = ({ children })=>{
78
19
  ...viewActions || [],
79
20
  ...adminActions || []
80
21
  ];
81
- return /*#__PURE__*/ _react.default.createElement(ActionsContext.Provider, {
22
+ return /*#__PURE__*/ React.createElement(ActionsContext.Provider, {
82
23
  value: {
83
24
  actions: combinedActions,
84
25
  setViewActions
@@ -86,4 +27,4 @@ const ActionsProvider = ({ children })=>{
86
27
  }, children);
87
28
  };
88
29
 
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvQWN0aW9uc1Byb3ZpZGVyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgQWN0aW9uTWFwIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2J1aWxkQ29tcG9uZW50TWFwL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi9Db25maWcnXG5cbnR5cGUgQWN0aW9uc0NvbnRleHRUeXBlID0ge1xuICBhY3Rpb25zOiBBY3Rpb25NYXBbJ0VkaXQnXVtzdHJpbmddXG4gIHNldFZpZXdBY3Rpb25zOiAoYWN0aW9uczogQWN0aW9uTWFwWydFZGl0J11bc3RyaW5nXSkgPT4gdm9pZFxufVxuXG5jb25zdCBBY3Rpb25zQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8QWN0aW9uc0NvbnRleHRUeXBlPih7XG4gIGFjdGlvbnM6IFtdLFxuICBzZXRWaWV3QWN0aW9uczogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgY29uc3QgdXNlQWN0aW9ucyA9ICgpID0+IHVzZUNvbnRleHQoQWN0aW9uc0NvbnRleHQpXG5cbmV4cG9ydCBjb25zdCBBY3Rpb25zUHJvdmlkZXIgPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IFt2aWV3QWN0aW9ucywgc2V0Vmlld0FjdGlvbnNdID0gdXNlU3RhdGUoW10pXG4gIGNvbnN0IFthZG1pbkFjdGlvbnMsIHNldEFkbWluQWN0aW9uc10gPSB1c2VTdGF0ZShbXSlcblxuICBjb25zdCB7XG4gICAgYWRtaW46IHtcbiAgICAgIGNvbXBvbmVudHM6IHsgYWN0aW9uczogY29uZmlnQWRtaW5BY3Rpb25zIH0sXG4gICAgfSxcbiAgfSA9IHVzZUNvbmZpZygpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRBZG1pbkFjdGlvbnMoY29uZmlnQWRtaW5BY3Rpb25zIHx8IFtdKVxuICB9LCBbY29uZmlnQWRtaW5BY3Rpb25zXSlcblxuICBjb25zdCBjb21iaW5lZEFjdGlvbnMgPSBbLi4uKHZpZXdBY3Rpb25zIHx8IFtdKSwgLi4uKGFkbWluQWN0aW9ucyB8fCBbXSldXG5cbiAgcmV0dXJuIChcbiAgICA8QWN0aW9uc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3sgYWN0aW9uczogY29tYmluZWRBY3Rpb25zLCBzZXRWaWV3QWN0aW9ucyB9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FjdGlvbnNDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiQWN0aW9uc1Byb3ZpZGVyIiwidXNlQWN0aW9ucyIsIkFjdGlvbnNDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsImFjdGlvbnMiLCJzZXRWaWV3QWN0aW9ucyIsInVzZUNvbnRleHQiLCJjaGlsZHJlbiIsInZpZXdBY3Rpb25zIiwidXNlU3RhdGUiLCJhZG1pbkFjdGlvbnMiLCJzZXRBZG1pbkFjdGlvbnMiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJjb25maWdBZG1pbkFjdGlvbnMiLCJ1c2VDb25maWciLCJ1c2VFZmZlY3QiLCJjb21iaW5lZEFjdGlvbnMiLCJQcm92aWRlciIsInZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0lBbUJhQSxlQUFlO2VBQWZBOztJQUZBQyxVQUFVO2VBQVZBOzs7K0RBaEJ5RDt3QkFJNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU8xQixNQUFNQywrQkFBaUJDLElBQUFBLG9CQUFhLEVBQXFCO0lBQ3ZEQyxTQUFTLEVBQUU7SUFDWEMsZ0JBQWdCLEtBQU87QUFDekI7QUFFTyxNQUFNSixhQUFhLElBQU1LLElBQUFBLGlCQUFVLEVBQUNKO0FBRXBDLE1BQU1GLGtCQUFrQixDQUFDLEVBQUVPLFFBQVEsRUFBRTtJQUMxQyxNQUFNLENBQUNDLGFBQWFILGVBQWUsR0FBR0ksSUFBQUEsZUFBUSxFQUFDLEVBQUU7SUFDakQsTUFBTSxDQUFDQyxjQUFjQyxnQkFBZ0IsR0FBR0YsSUFBQUEsZUFBUSxFQUFDLEVBQUU7SUFFbkQsTUFBTSxFQUNKRyxPQUFPLEVBQ0xDLFlBQVksRUFBRVQsU0FBU1Usa0JBQWtCLEVBQUUsRUFDNUMsRUFDRixHQUFHQyxJQUFBQSxpQkFBUztJQUViQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1JMLGdCQUFnQkcsc0JBQXNCLEVBQUU7SUFDMUMsR0FBRztRQUFDQTtLQUFtQjtJQUV2QixNQUFNRyxrQkFBa0I7V0FBS1QsZUFBZSxFQUFFO1dBQU9FLGdCQUFnQixFQUFFO0tBQUU7SUFFekUscUJBQ0UsNkJBQUNSLGVBQWVnQixRQUFRO1FBQUNDLE9BQU87WUFBRWYsU0FBU2E7WUFBaUJaO1FBQWU7T0FDeEVFO0FBR1AifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvQWN0aW9uc1Byb3ZpZGVyL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcbmltcG9ydCBSZWFjdCwgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgQWN0aW9uTWFwIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2J1aWxkQ29tcG9uZW50TWFwL3R5cGVzJ1xuXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi9Db25maWcnXG5cbnR5cGUgQWN0aW9uc0NvbnRleHRUeXBlID0ge1xuICBhY3Rpb25zOiBBY3Rpb25NYXBbJ0VkaXQnXVtzdHJpbmddXG4gIHNldFZpZXdBY3Rpb25zOiAoYWN0aW9uczogQWN0aW9uTWFwWydFZGl0J11bc3RyaW5nXSkgPT4gdm9pZFxufVxuXG5jb25zdCBBY3Rpb25zQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8QWN0aW9uc0NvbnRleHRUeXBlPih7XG4gIGFjdGlvbnM6IFtdLFxuICBzZXRWaWV3QWN0aW9uczogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgY29uc3QgdXNlQWN0aW9ucyA9ICgpID0+IHVzZUNvbnRleHQoQWN0aW9uc0NvbnRleHQpXG5cbmV4cG9ydCBjb25zdCBBY3Rpb25zUHJvdmlkZXIgPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IFt2aWV3QWN0aW9ucywgc2V0Vmlld0FjdGlvbnNdID0gdXNlU3RhdGUoW10pXG4gIGNvbnN0IFthZG1pbkFjdGlvbnMsIHNldEFkbWluQWN0aW9uc10gPSB1c2VTdGF0ZShbXSlcblxuICBjb25zdCB7XG4gICAgYWRtaW46IHtcbiAgICAgIGNvbXBvbmVudHM6IHsgYWN0aW9uczogY29uZmlnQWRtaW5BY3Rpb25zIH0sXG4gICAgfSxcbiAgfSA9IHVzZUNvbmZpZygpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRBZG1pbkFjdGlvbnMoY29uZmlnQWRtaW5BY3Rpb25zIHx8IFtdKVxuICB9LCBbY29uZmlnQWRtaW5BY3Rpb25zXSlcblxuICBjb25zdCBjb21iaW5lZEFjdGlvbnMgPSBbLi4uKHZpZXdBY3Rpb25zIHx8IFtdKSwgLi4uKGFkbWluQWN0aW9ucyB8fCBbXSldXG5cbiAgcmV0dXJuIChcbiAgICA8QWN0aW9uc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3sgYWN0aW9uczogY29tYmluZWRBY3Rpb25zLCBzZXRWaWV3QWN0aW9ucyB9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FjdGlvbnNDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJjcmVhdGVDb250ZXh0IiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlQ29uZmlnIiwiQWN0aW9uc0NvbnRleHQiLCJhY3Rpb25zIiwic2V0Vmlld0FjdGlvbnMiLCJ1c2VBY3Rpb25zIiwiQWN0aW9uc1Byb3ZpZGVyIiwiY2hpbGRyZW4iLCJ2aWV3QWN0aW9ucyIsImFkbWluQWN0aW9ucyIsInNldEFkbWluQWN0aW9ucyIsImFkbWluIiwiY29tcG9uZW50cyIsImNvbmZpZ0FkbWluQWN0aW9ucyIsImNvbWJpbmVkQWN0aW9ucyIsIlByb3ZpZGVyIiwidmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBT0EsU0FBU0MsYUFBYSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFJN0UsU0FBU0MsU0FBUyxRQUFRLFlBQVc7QUFPckMsTUFBTUMsK0JBQWlCTCxjQUFrQztJQUN2RE0sU0FBUyxFQUFFO0lBQ1hDLGdCQUFnQixLQUFPO0FBQ3pCO0FBRUEsT0FBTyxNQUFNQyxhQUFhLElBQU1QLFdBQVdJLGdCQUFlO0FBRTFELE9BQU8sTUFBTUksa0JBQWtCLENBQUMsRUFBRUMsUUFBUSxFQUFFO0lBQzFDLE1BQU0sQ0FBQ0MsYUFBYUosZUFBZSxHQUFHSixTQUFTLEVBQUU7SUFDakQsTUFBTSxDQUFDUyxjQUFjQyxnQkFBZ0IsR0FBR1YsU0FBUyxFQUFFO0lBRW5ELE1BQU0sRUFDSlcsT0FBTyxFQUNMQyxZQUFZLEVBQUVULFNBQVNVLGtCQUFrQixFQUFFLEVBQzVDLEVBQ0YsR0FBR1o7SUFFSkYsVUFBVTtRQUNSVyxnQkFBZ0JHLHNCQUFzQixFQUFFO0lBQzFDLEdBQUc7UUFBQ0E7S0FBbUI7SUFFdkIsTUFBTUMsa0JBQWtCO1dBQUtOLGVBQWUsRUFBRTtXQUFPQyxnQkFBZ0IsRUFBRTtLQUFFO0lBRXpFLHFCQUNFLG9CQUFDUCxlQUFlYSxRQUFRO1FBQUNDLE9BQU87WUFBRWIsU0FBU1c7WUFBaUJWO1FBQWU7T0FDeEVHO0FBR1AsRUFBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,cAAc,CAAA;AAKrD,OAAO,KAAsE,MAAM,OAAO,CAAA;AAG1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAa1C,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA6ShE,CAAA;AAED,eAAO,MAAM,OAAO,gCAAyE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,IAAI,EAAE,MAAM,cAAc,CAAA;AAKrD,OAAO,KAAsE,MAAM,OAAO,CAAA;AAG1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAa1C,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAuShE,CAAA;AAED,eAAO,MAAM,OAAO,gCAAyE,CAAA"}
@@ -1,100 +1,36 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- function _export(target, all) {
7
- for(var name in all)Object.defineProperty(target, name, {
8
- enumerable: true,
9
- get: all[name]
10
- });
11
- }
12
- _export(exports, {
13
- AuthProvider: function() {
14
- return AuthProvider;
15
- },
16
- useAuth: function() {
17
- return useAuth;
18
- }
19
- });
20
- const _modal = require("@faceless-ui/modal");
21
- const _navigation = require("next/navigation");
22
- const _qs = /*#__PURE__*/ _interop_require_default(require("qs"));
23
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
24
- const _reacttoastify = require("react-toastify");
25
- const _useDebounce = /*#__PURE__*/ _interop_require_default(require("../../hooks/useDebounce"));
26
- const _Translation = require("../../providers/Translation");
27
- const _api = require("../../utilities/api");
28
- const _Config = require("../Config");
29
- const _SearchParams = require("../SearchParams");
30
- function _interop_require_default(obj) {
31
- return obj && obj.__esModule ? obj : {
32
- default: obj
33
- };
34
- }
35
- function _getRequireWildcardCache(nodeInterop) {
36
- if (typeof WeakMap !== "function") return null;
37
- var cacheBabelInterop = new WeakMap();
38
- var cacheNodeInterop = new WeakMap();
39
- return (_getRequireWildcardCache = function(nodeInterop) {
40
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
41
- })(nodeInterop);
42
- }
43
- function _interop_require_wildcard(obj, nodeInterop) {
44
- if (!nodeInterop && obj && obj.__esModule) {
45
- return obj;
46
- }
47
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
48
- return {
49
- default: obj
50
- };
51
- }
52
- var cache = _getRequireWildcardCache(nodeInterop);
53
- if (cache && cache.has(obj)) {
54
- return cache.get(obj);
55
- }
56
- var newObj = {
57
- __proto__: null
58
- };
59
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
60
- for(var key in obj){
61
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
62
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
63
- if (desc && (desc.get || desc.set)) {
64
- Object.defineProperty(newObj, key, desc);
65
- } else {
66
- newObj[key] = obj[key];
67
- }
68
- }
69
- }
70
- newObj.default = obj;
71
- if (cache) {
72
- cache.set(obj, newObj);
73
- }
74
- return newObj;
75
- }
2
+ import { useModal } from '@faceless-ui/modal';
3
+ import { usePathname, useRouter } from 'next/navigation';
4
+ import qs from 'qs';
5
+ import React, { createContext, useCallback, useContext, useEffect, useState } from 'react';
6
+ import { toast } from 'react-toastify';
7
+ import useDebounce from '../../hooks/useDebounce';
8
+ import { useTranslation } from '../../providers/Translation';
9
+ import { requests } from '../../utilities/api';
10
+ import { useConfig } from '../Config';
11
+ import { useSearchParams } from '../SearchParams';
76
12
  // import { useLocale } from '../Locale'
77
- const Context = /*#__PURE__*/ (0, _react.createContext)({});
13
+ const Context = /*#__PURE__*/ createContext({});
78
14
  const maxTimeoutTime = 2147483647;
79
- const AuthProvider = ({ children })=>{
80
- const { searchParams } = (0, _SearchParams.useSearchParams)();
81
- const [user, setUser] = (0, _react.useState)();
82
- const [tokenInMemory, setTokenInMemory] = (0, _react.useState)();
83
- const [tokenExpiration, setTokenExpiration] = (0, _react.useState)();
84
- const pathname = (0, _navigation.usePathname)();
85
- const router = (0, _navigation.useRouter)();
15
+ export const AuthProvider = ({ children })=>{
16
+ const { searchParams } = useSearchParams();
17
+ const [user, setUser] = useState();
18
+ const [tokenInMemory, setTokenInMemory] = useState();
19
+ const [tokenExpiration, setTokenExpiration] = useState();
20
+ const pathname = usePathname();
21
+ const router = useRouter();
86
22
  // const { code } = useLocale()
87
23
  const code = 'en' // TODO: re-enable i18n asap
88
24
  ;
89
- const config = (0, _Config.useConfig)();
25
+ const config = useConfig();
90
26
  const { admin: { autoLogin, inactivityRoute: logoutInactivityRoute, user: userSlug }, routes: { admin, api }, serverURL } = config;
91
- const [permissions, setPermissions] = (0, _react.useState)();
92
- const { i18n } = (0, _Translation.useTranslation)();
93
- const { closeAllModals, openModal } = (0, _modal.useModal)();
94
- const [lastLocationChange, setLastLocationChange] = (0, _react.useState)(0);
95
- const debouncedLocationChange = (0, _useDebounce.default)(lastLocationChange, 10000);
27
+ const [permissions, setPermissions] = useState();
28
+ const { i18n } = useTranslation();
29
+ const { closeAllModals, openModal } = useModal();
30
+ const [lastLocationChange, setLastLocationChange] = useState(0);
31
+ const debouncedLocationChange = useDebounce(lastLocationChange, 10000);
96
32
  const id = user?.id;
97
- const redirectToInactivityRoute = (0, _react.useCallback)(()=>{
33
+ const redirectToInactivityRoute = useCallback(()=>{
98
34
  if (window.location.pathname.startsWith(admin)) {
99
35
  const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname.replace(admin, ''))}`;
100
36
  router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`);
@@ -108,11 +44,11 @@ const AuthProvider = ({ children })=>{
108
44
  logoutInactivityRoute,
109
45
  closeAllModals
110
46
  ]);
111
- const revokeTokenAndExpire = (0, _react.useCallback)(()=>{
47
+ const revokeTokenAndExpire = useCallback(()=>{
112
48
  setTokenInMemory(undefined);
113
49
  setTokenExpiration(undefined);
114
50
  }, []);
115
- const setTokenAndExpiration = (0, _react.useCallback)((json)=>{
51
+ const setTokenAndExpiration = useCallback((json)=>{
116
52
  const token = json?.token || json?.refreshedToken;
117
53
  if (token && json?.exp) {
118
54
  setTokenInMemory(token);
@@ -123,13 +59,13 @@ const AuthProvider = ({ children })=>{
123
59
  }, [
124
60
  revokeTokenAndExpire
125
61
  ]);
126
- const refreshCookie = (0, _react.useCallback)((forceRefresh)=>{
62
+ const refreshCookie = useCallback((forceRefresh)=>{
127
63
  const now = Math.round(new Date().getTime() / 1000);
128
64
  const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now;
129
65
  if (forceRefresh || tokenExpiration && remainingTime < 120) {
130
66
  setTimeout(async ()=>{
131
67
  try {
132
- const request = await _api.requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {
68
+ const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {
133
69
  headers: {
134
70
  'Accept-Language': i18n.language
135
71
  }
@@ -143,7 +79,7 @@ const AuthProvider = ({ children })=>{
143
79
  redirectToInactivityRoute();
144
80
  }
145
81
  } catch (e) {
146
- _reacttoastify.toast.error(e.message);
82
+ toast.error(e.message);
147
83
  }
148
84
  }, 1000);
149
85
  }
@@ -156,9 +92,9 @@ const AuthProvider = ({ children })=>{
156
92
  redirectToInactivityRoute,
157
93
  setTokenAndExpiration
158
94
  ]);
159
- const refreshCookieAsync = (0, _react.useCallback)(async (skipSetUser)=>{
95
+ const refreshCookieAsync = useCallback(async (skipSetUser)=>{
160
96
  try {
161
- const request = await _api.requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {
97
+ const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {
162
98
  headers: {
163
99
  'Accept-Language': i18n.language
164
100
  }
@@ -175,7 +111,7 @@ const AuthProvider = ({ children })=>{
175
111
  redirectToInactivityRoute();
176
112
  return null;
177
113
  } catch (e) {
178
- _reacttoastify.toast.error(`Refreshing token failed: ${e.message}`);
114
+ toast.error(`Refreshing token failed: ${e.message}`);
179
115
  return null;
180
116
  }
181
117
  }, [
@@ -186,13 +122,13 @@ const AuthProvider = ({ children })=>{
186
122
  redirectToInactivityRoute,
187
123
  setTokenAndExpiration
188
124
  ]);
189
- const logOut = (0, _react.useCallback)(()=>{
125
+ const logOut = useCallback(()=>{
190
126
  setUser(null);
191
127
  revokeTokenAndExpire();
192
128
  try {
193
- _api.requests.post(`${serverURL}${api}/${userSlug}/logout`);
129
+ requests.post(`${serverURL}${api}/${userSlug}/logout`);
194
130
  } catch (e) {
195
- _reacttoastify.toast.error(`Logging out failed: ${e.message}`);
131
+ toast.error(`Logging out failed: ${e.message}`);
196
132
  }
197
133
  }, [
198
134
  serverURL,
@@ -200,12 +136,12 @@ const AuthProvider = ({ children })=>{
200
136
  userSlug,
201
137
  revokeTokenAndExpire
202
138
  ]);
203
- const refreshPermissions = (0, _react.useCallback)(async ()=>{
139
+ const refreshPermissions = useCallback(async ()=>{
204
140
  const params = {
205
141
  locale: code
206
142
  };
207
143
  try {
208
- const request = await _api.requests.get(`${serverURL}${api}/access?${_qs.default.stringify(params)}`, {
144
+ const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {
209
145
  headers: {
210
146
  'Accept-Language': i18n.language
211
147
  }
@@ -217,7 +153,7 @@ const AuthProvider = ({ children })=>{
217
153
  throw new Error(`Fetching permissions failed with status code ${request.status}`);
218
154
  }
219
155
  } catch (e) {
220
- _reacttoastify.toast.error(`Refreshing permissions failed: ${e.message}`);
156
+ toast.error(`Refreshing permissions failed: ${e.message}`);
221
157
  }
222
158
  }, [
223
159
  serverURL,
@@ -225,9 +161,9 @@ const AuthProvider = ({ children })=>{
225
161
  i18n,
226
162
  code
227
163
  ]);
228
- const fetchFullUser = _react.default.useCallback(async ()=>{
164
+ const fetchFullUser = React.useCallback(async ()=>{
229
165
  try {
230
- const request = await _api.requests.get(`${serverURL}${api}/${userSlug}/me`, {
166
+ const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {
231
167
  headers: {
232
168
  'Accept-Language': i18n.language
233
169
  }
@@ -242,7 +178,7 @@ const AuthProvider = ({ children })=>{
242
178
  } else if (autoLogin && autoLogin.prefillOnly !== true) {
243
179
  // auto log-in with the provided autoLogin credentials. This is used in dev mode
244
180
  // so you don't have to log in over and over again
245
- const autoLoginResult = await _api.requests.post(`${serverURL}${api}/${userSlug}/login`, {
181
+ const autoLoginResult = await requests.post(`${serverURL}${api}/${userSlug}/login`, {
246
182
  body: JSON.stringify({
247
183
  email: autoLogin.email,
248
184
  password: autoLogin.password
@@ -269,7 +205,7 @@ const AuthProvider = ({ children })=>{
269
205
  }
270
206
  }
271
207
  } catch (e) {
272
- _reacttoastify.toast.error(`Fetching user failed: ${e.message}`);
208
+ toast.error(`Fetching user failed: ${e.message}`);
273
209
  }
274
210
  }, [
275
211
  serverURL,
@@ -284,13 +220,13 @@ const AuthProvider = ({ children })=>{
284
220
  revokeTokenAndExpire
285
221
  ]);
286
222
  // On mount, get user and set
287
- (0, _react.useEffect)(()=>{
223
+ useEffect(()=>{
288
224
  fetchFullUser();
289
225
  }, [
290
226
  fetchFullUser
291
227
  ]);
292
228
  // When location changes, refresh cookie
293
- (0, _react.useEffect)(()=>{
229
+ useEffect(()=>{
294
230
  if (id) {
295
231
  refreshCookie();
296
232
  }
@@ -299,24 +235,12 @@ const AuthProvider = ({ children })=>{
299
235
  refreshCookie,
300
236
  id
301
237
  ]);
302
- (0, _react.useEffect)(()=>{
238
+ useEffect(()=>{
303
239
  setLastLocationChange(Date.now());
304
240
  }, [
305
241
  pathname
306
242
  ]);
307
- // When user changes, get new access
308
- (0, _react.useEffect)(()=>{
309
- if (id) {
310
- refreshPermissions();
311
- }
312
- }, [
313
- i18n,
314
- id,
315
- api,
316
- serverURL,
317
- refreshPermissions
318
- ]);
319
- (0, _react.useEffect)(()=>{
243
+ useEffect(()=>{
320
244
  let reminder;
321
245
  const now = Math.round(new Date().getTime() / 1000);
322
246
  const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0;
@@ -332,7 +256,7 @@ const AuthProvider = ({ children })=>{
332
256
  tokenExpiration,
333
257
  openModal
334
258
  ]);
335
- (0, _react.useEffect)(()=>{
259
+ useEffect(()=>{
336
260
  let forceLogOut;
337
261
  const now = Math.round(new Date().getTime() / 1000);
338
262
  const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0;
@@ -353,7 +277,7 @@ const AuthProvider = ({ children })=>{
353
277
  redirectToInactivityRoute,
354
278
  revokeTokenAndExpire
355
279
  ]);
356
- return /*#__PURE__*/ _react.default.createElement(Context.Provider, {
280
+ return /*#__PURE__*/ React.createElement(Context.Provider, {
357
281
  value: {
358
282
  fetchFullUser,
359
283
  logOut,
@@ -368,6 +292,6 @@ const AuthProvider = ({ children })=>{
368
292
  }
369
293
  }, children);
370
294
  };
371
- const useAuth = ()=>(0, _react.useContext)(Context);
295
+ export const useAuth = ()=>useContext(Context);
372
296
 
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvQXV0aC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25zLCBVc2VyIH0gZnJvbSAncGF5bG9hZC9hdXRoJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZVBhdGhuYW1lLCB1c2VSb3V0ZXIgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG5pbXBvcnQgcXMgZnJvbSAncXMnXG5pbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgQXV0aENvbnRleHQgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgdXNlRGVib3VuY2UgZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9UcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2FwaSdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uL0NvbmZpZydcbmltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJy4uL1NlYXJjaFBhcmFtcydcbi8vIGltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uL0xvY2FsZSdcblxuY29uc3QgQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe30gYXMgQXV0aENvbnRleHQpXG5cbmNvbnN0IG1heFRpbWVvdXRUaW1lID0gMjE0NzQ4MzY0N1xuXG5leHBvcnQgY29uc3QgQXV0aFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHsgc2VhcmNoUGFyYW1zIH0gPSB1c2VTZWFyY2hQYXJhbXMoKVxuICBjb25zdCBbdXNlciwgc2V0VXNlcl0gPSB1c2VTdGF0ZTxVc2VyIHwgbnVsbD4oKVxuICBjb25zdCBbdG9rZW5Jbk1lbW9yeSwgc2V0VG9rZW5Jbk1lbW9yeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KClcbiAgY29uc3QgW3Rva2VuRXhwaXJhdGlvbiwgc2V0VG9rZW5FeHBpcmF0aW9uXSA9IHVzZVN0YXRlPG51bWJlcj4oKVxuICBjb25zdCBwYXRobmFtZSA9IHVzZVBhdGhuYW1lKClcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKClcbiAgLy8gY29uc3QgeyBjb2RlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCBjb2RlID0gJ2VuJyAvLyBUT0RPOiByZS1lbmFibGUgaTE4biBhc2FwXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7XG4gICAgYWRtaW46IHsgYXV0b0xvZ2luLCBpbmFjdGl2aXR5Um91dGU6IGxvZ291dEluYWN0aXZpdHlSb3V0ZSwgdXNlcjogdXNlclNsdWcgfSxcbiAgICByb3V0ZXM6IHsgYWRtaW4sIGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IGNvbmZpZ1xuXG4gIGNvbnN0IFtwZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnNdID0gdXNlU3RhdGU8UGVybWlzc2lvbnM+KClcblxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBjbG9zZUFsbE1vZGFscywgb3Blbk1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IFtsYXN0TG9jYXRpb25DaGFuZ2UsIHNldExhc3RMb2NhdGlvbkNoYW5nZV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBkZWJvdW5jZWRMb2NhdGlvbkNoYW5nZSA9IHVzZURlYm91bmNlKGxhc3RMb2NhdGlvbkNoYW5nZSwgMTAwMDApXG5cbiAgY29uc3QgaWQgPSB1c2VyPy5pZFxuXG4gIGNvbnN0IHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKGFkbWluKSkge1xuICAgICAgY29uc3QgcmVkaXJlY3RQYXJhbSA9IGA/cmVkaXJlY3Q9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKGFkbWluLCAnJyksXG4gICAgICApfWBcbiAgICAgIHJvdXRlci5yZXBsYWNlKGAke2FkbWlufSR7bG9nb3V0SW5hY3Rpdml0eVJvdXRlfSR7cmVkaXJlY3RQYXJhbX1gKVxuICAgIH0gZWxzZSB7XG4gICAgICByb3V0ZXIucmVwbGFjZShgJHthZG1pbn0ke2xvZ291dEluYWN0aXZpdHlSb3V0ZX1gKVxuICAgIH1cbiAgICBjbG9zZUFsbE1vZGFscygpXG4gIH0sIFtyb3V0ZXIsIGFkbWluLCBsb2dvdXRJbmFjdGl2aXR5Um91dGUsIGNsb3NlQWxsTW9kYWxzXSlcblxuICBjb25zdCByZXZva2VUb2tlbkFuZEV4cGlyZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUb2tlbkluTWVtb3J5KHVuZGVmaW5lZClcbiAgICBzZXRUb2tlbkV4cGlyYXRpb24odW5kZWZpbmVkKVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRUb2tlbkFuZEV4cGlyYXRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoanNvbikgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBqc29uPy50b2tlbiB8fCBqc29uPy5yZWZyZXNoZWRUb2tlblxuICAgICAgaWYgKHRva2VuICYmIGpzb24/LmV4cCkge1xuICAgICAgICBzZXRUb2tlbkluTWVtb3J5KHRva2VuKVxuICAgICAgICBzZXRUb2tlbkV4cGlyYXRpb24oanNvbi5leHApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbcmV2b2tlVG9rZW5BbmRFeHBpcmVdLFxuICApXG5cbiAgY29uc3QgcmVmcmVzaENvb2tpZSA9IHVzZUNhbGxiYWNrKFxuICAgIChmb3JjZVJlZnJlc2g/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBub3cgPSBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcbiAgICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSAodHlwZW9mIHRva2VuRXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyB0b2tlbkV4cGlyYXRpb24gOiAwKSAtIG5vd1xuXG4gICAgICBpZiAoZm9yY2VSZWZyZXNoIHx8ICh0b2tlbkV4cGlyYXRpb24gJiYgcmVtYWluaW5nVGltZSA8IDEyMCkpIHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vcmVmcmVzaC10b2tlbmAsIHtcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG4gICAgICAgICAgICAgIHNldFVzZXIoanNvbi51c2VyKVxuICAgICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oanNvbilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFVzZXIobnVsbClcbiAgICAgICAgICAgICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdG9hc3QuZXJyb3IoZS5tZXNzYWdlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIHRva2VuRXhwaXJhdGlvbixcbiAgICAgIHNlcnZlclVSTCxcbiAgICAgIGFwaSxcbiAgICAgIHVzZXJTbHVnLFxuICAgICAgaTE4bixcbiAgICAgIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUsXG4gICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24sXG4gICAgXSxcbiAgKVxuXG4gIGNvbnN0IHJlZnJlc2hDb29raWVBc3luYyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChza2lwU2V0VXNlcj86IGJvb2xlYW4pOiBQcm9taXNlPFVzZXI+ID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vcmVmcmVzaC10b2tlbmAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG4gICAgICAgICAgaWYgKCFza2lwU2V0VXNlcikge1xuICAgICAgICAgICAgc2V0VXNlcihqc29uLnVzZXIpXG4gICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oanNvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGpzb24udXNlclxuICAgICAgICB9XG5cbiAgICAgICAgc2V0VXNlcihudWxsKVxuICAgICAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlKClcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdG9hc3QuZXJyb3IoYFJlZnJlc2hpbmcgdG9rZW4gZmFpbGVkOiAke2UubWVzc2FnZX1gKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlcnZlclVSTCwgYXBpLCB1c2VyU2x1ZywgaTE4biwgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSwgc2V0VG9rZW5BbmRFeHBpcmF0aW9uXSxcbiAgKVxuXG4gIGNvbnN0IGxvZ091dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRVc2VyKG51bGwpXG4gICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgIHRyeSB7XG4gICAgICByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vbG9nb3V0YClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0b2FzdC5lcnJvcihgTG9nZ2luZyBvdXQgZmFpbGVkOiAke2UubWVzc2FnZX1gKVxuICAgIH1cbiAgfSwgW3NlcnZlclVSTCwgYXBpLCB1c2VyU2x1ZywgcmV2b2tlVG9rZW5BbmRFeHBpcmVdKVxuXG4gIGNvbnN0IHJlZnJlc2hQZXJtaXNzaW9ucyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBsb2NhbGU6IGNvZGUsXG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgcmVxdWVzdHMuZ2V0KGAke3NlcnZlclVSTH0ke2FwaX0vYWNjZXNzPyR7cXMuc3RyaW5naWZ5KHBhcmFtcyl9YCwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICBjb25zdCBqc29uOiBQZXJtaXNzaW9ucyA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG4gICAgICAgIHNldFBlcm1pc3Npb25zKGpzb24pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZldGNoaW5nIHBlcm1pc3Npb25zIGZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICR7cmVxdWVzdC5zdGF0dXN9YClcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0b2FzdC5lcnJvcihgUmVmcmVzaGluZyBwZXJtaXNzaW9ucyBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApXG4gICAgfVxuICB9LCBbc2VydmVyVVJMLCBhcGksIGkxOG4sIGNvZGVdKVxuXG4gIGNvbnN0IGZldGNoRnVsbFVzZXIgPSBSZWFjdC51c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5nZXQoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3VzZXJTbHVnfS9tZWAsIHtcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG5cbiAgICAgICAgaWYgKGpzb24/LnVzZXIpIHtcbiAgICAgICAgICBzZXRVc2VyKGpzb24udXNlcilcbiAgICAgICAgICBpZiAoanNvbj8udG9rZW4pIHtcbiAgICAgICAgICAgIHNldFRva2VuQW5kRXhwaXJhdGlvbihqc29uKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChhdXRvTG9naW4gJiYgYXV0b0xvZ2luLnByZWZpbGxPbmx5ICE9PSB0cnVlKSB7XG4gICAgICAgICAgLy8gYXV0byBsb2ctaW4gd2l0aCB0aGUgcHJvdmlkZWQgYXV0b0xvZ2luIGNyZWRlbnRpYWxzLiBUaGlzIGlzIHVzZWQgaW4gZGV2IG1vZGVcbiAgICAgICAgICAvLyBzbyB5b3UgZG9uJ3QgaGF2ZSB0byBsb2cgaW4gb3ZlciBhbmQgb3ZlciBhZ2FpblxuICAgICAgICAgIGNvbnN0IGF1dG9Mb2dpblJlc3VsdCA9IGF3YWl0IHJlcXVlc3RzLnBvc3QoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3VzZXJTbHVnfS9sb2dpbmAsIHtcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgZW1haWw6IGF1dG9Mb2dpbi5lbWFpbCxcbiAgICAgICAgICAgICAgcGFzc3dvcmQ6IGF1dG9Mb2dpbi5wYXNzd29yZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoYXV0b0xvZ2luUmVzdWx0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zdCBhdXRvTG9naW5Kc29uID0gYXdhaXQgYXV0b0xvZ2luUmVzdWx0Lmpzb24oKVxuICAgICAgICAgICAgc2V0VXNlcihhdXRvTG9naW5Kc29uLnVzZXIpXG4gICAgICAgICAgICBpZiAoYXV0b0xvZ2luSnNvbj8udG9rZW4pIHtcbiAgICAgICAgICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uKGF1dG9Mb2dpbkpzb24pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3V0ZXIucHVzaChcbiAgICAgICAgICAgICAgdHlwZW9mIHNlYXJjaFBhcmFtc1sncmVkaXJlY3QnXSA9PT0gJ3N0cmluZycgPyBzZWFyY2hQYXJhbXNbJ3JlZGlyZWN0J10gOiBhZG1pbixcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VXNlcihudWxsKVxuICAgICAgICAgICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRVc2VyKG51bGwpXG4gICAgICAgICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdG9hc3QuZXJyb3IoYEZldGNoaW5nIHVzZXIgZmFpbGVkOiAke2UubWVzc2FnZX1gKVxuICAgIH1cbiAgfSwgW1xuICAgIHNlcnZlclVSTCxcbiAgICBhcGksXG4gICAgdXNlclNsdWcsXG4gICAgaTE4bi5sYW5ndWFnZSxcbiAgICBhdXRvTG9naW4sXG4gICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uLFxuICAgIHJvdXRlcixcbiAgICBzZWFyY2hQYXJhbXMsXG4gICAgYWRtaW4sXG4gICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUsXG4gIF0pXG5cbiAgLy8gT24gbW91bnQsIGdldCB1c2VyIGFuZCBzZXRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmZXRjaEZ1bGxVc2VyKClcbiAgfSwgW2ZldGNoRnVsbFVzZXJdKVxuXG4gIC8vIFdoZW4gbG9jYXRpb24gY2hhbmdlcywgcmVmcmVzaCBjb29raWVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIHJlZnJlc2hDb29raWUoKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZExvY2F0aW9uQ2hhbmdlLCByZWZyZXNoQ29va2llLCBpZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMYXN0TG9jYXRpb25DaGFuZ2UoRGF0ZS5ub3coKSlcbiAgfSwgW3BhdGhuYW1lXSlcblxuICAvLyBXaGVuIHVzZXIgY2hhbmdlcywgZ2V0IG5ldyBhY2Nlc3NcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaWQpIHtcbiAgICAgIHJlZnJlc2hQZXJtaXNzaW9ucygpXG4gICAgfVxuICB9LCBbaTE4biwgaWQsIGFwaSwgc2VydmVyVVJMLCByZWZyZXNoUGVybWlzc2lvbnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlbWluZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PlxuICAgIGNvbnN0IG5vdyA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKVxuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSB0eXBlb2YgdG9rZW5FeHBpcmF0aW9uID09PSAnbnVtYmVyJyA/IHRva2VuRXhwaXJhdGlvbiAtIG5vdyA6IDBcblxuICAgIGlmIChyZW1haW5pbmdUaW1lID4gMCkge1xuICAgICAgcmVtaW5kZXIgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgb3Blbk1vZGFsKCdzdGF5LWxvZ2dlZC1pbicpXG4gICAgICAgIH0sXG4gICAgICAgIE1hdGgubWF4KE1hdGgubWluKChyZW1haW5pbmdUaW1lIC0gNjApICogMTAwMCwgbWF4VGltZW91dFRpbWUpKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbWluZGVyKSBjbGVhclRpbWVvdXQocmVtaW5kZXIpXG4gICAgfVxuICB9LCBbdG9rZW5FeHBpcmF0aW9uLCBvcGVuTW9kYWxdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGZvcmNlTG9nT3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PlxuICAgIGNvbnN0IG5vdyA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKVxuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSB0eXBlb2YgdG9rZW5FeHBpcmF0aW9uID09PSAnbnVtYmVyJyA/IHRva2VuRXhwaXJhdGlvbiAtIG5vdyA6IDBcblxuICAgIGlmIChyZW1haW5pbmdUaW1lID4gMCkge1xuICAgICAgZm9yY2VMb2dPdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0VXNlcihudWxsKVxuICAgICAgICAgIHJldm9rZVRva2VuQW5kRXhwaXJlKClcbiAgICAgICAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlKClcbiAgICAgICAgfSxcbiAgICAgICAgTWF0aC5tYXgoTWF0aC5taW4ocmVtYWluaW5nVGltZSAqIDEwMDAsIG1heFRpbWVvdXRUaW1lKSwgMCksXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmb3JjZUxvZ091dCkgY2xlYXJUaW1lb3V0KGZvcmNlTG9nT3V0KVxuICAgIH1cbiAgfSwgW3Rva2VuRXhwaXJhdGlvbiwgY2xvc2VBbGxNb2RhbHMsIGkxOG4sIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUsIHJldm9rZVRva2VuQW5kRXhwaXJlXSlcblxuICByZXR1cm4gKFxuICAgIDxDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17e1xuICAgICAgICBmZXRjaEZ1bGxVc2VyLFxuICAgICAgICBsb2dPdXQsXG4gICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICByZWZyZXNoQ29va2llLFxuICAgICAgICByZWZyZXNoQ29va2llQXN5bmMsXG4gICAgICAgIHJlZnJlc2hQZXJtaXNzaW9ucyxcbiAgICAgICAgc2V0UGVybWlzc2lvbnMsXG4gICAgICAgIHNldFVzZXIsXG4gICAgICAgIHRva2VuOiB0b2tlbkluTWVtb3J5LFxuICAgICAgICB1c2VyLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VBdXRoID0gPFQgPSBVc2VyLD4oKTogQXV0aENvbnRleHQ8VD4gPT4gdXNlQ29udGV4dChDb250ZXh0KSBhcyBBdXRoQ29udGV4dDxUPlxuIl0sIm5hbWVzIjpbIkF1dGhQcm92aWRlciIsInVzZUF1dGgiLCJDb250ZXh0IiwiY3JlYXRlQ29udGV4dCIsIm1heFRpbWVvdXRUaW1lIiwiY2hpbGRyZW4iLCJzZWFyY2hQYXJhbXMiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VyIiwic2V0VXNlciIsInVzZVN0YXRlIiwidG9rZW5Jbk1lbW9yeSIsInNldFRva2VuSW5NZW1vcnkiLCJ0b2tlbkV4cGlyYXRpb24iLCJzZXRUb2tlbkV4cGlyYXRpb24iLCJwYXRobmFtZSIsInVzZVBhdGhuYW1lIiwicm91dGVyIiwidXNlUm91dGVyIiwiY29kZSIsImNvbmZpZyIsInVzZUNvbmZpZyIsImFkbWluIiwiYXV0b0xvZ2luIiwiaW5hY3Rpdml0eVJvdXRlIiwibG9nb3V0SW5hY3Rpdml0eVJvdXRlIiwidXNlclNsdWciLCJyb3V0ZXMiLCJhcGkiLCJzZXJ2ZXJVUkwiLCJwZXJtaXNzaW9ucyIsInNldFBlcm1pc3Npb25zIiwiaTE4biIsInVzZVRyYW5zbGF0aW9uIiwiY2xvc2VBbGxNb2RhbHMiLCJvcGVuTW9kYWwiLCJ1c2VNb2RhbCIsImxhc3RMb2NhdGlvbkNoYW5nZSIsInNldExhc3RMb2NhdGlvbkNoYW5nZSIsImRlYm91bmNlZExvY2F0aW9uQ2hhbmdlIiwidXNlRGVib3VuY2UiLCJpZCIsInJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUiLCJ1c2VDYWxsYmFjayIsIndpbmRvdyIsImxvY2F0aW9uIiwic3RhcnRzV2l0aCIsInJlZGlyZWN0UGFyYW0iLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwicmV2b2tlVG9rZW5BbmRFeHBpcmUiLCJ1bmRlZmluZWQiLCJzZXRUb2tlbkFuZEV4cGlyYXRpb24iLCJqc29uIiwidG9rZW4iLCJyZWZyZXNoZWRUb2tlbiIsImV4cCIsInJlZnJlc2hDb29raWUiLCJmb3JjZVJlZnJlc2giLCJub3ciLCJNYXRoIiwicm91bmQiLCJEYXRlIiwiZ2V0VGltZSIsInJlbWFpbmluZ1RpbWUiLCJzZXRUaW1lb3V0IiwicmVxdWVzdCIsInJlcXVlc3RzIiwicG9zdCIsImhlYWRlcnMiLCJsYW5ndWFnZSIsInN0YXR1cyIsImUiLCJ0b2FzdCIsImVycm9yIiwibWVzc2FnZSIsInJlZnJlc2hDb29raWVBc3luYyIsInNraXBTZXRVc2VyIiwibG9nT3V0IiwicmVmcmVzaFBlcm1pc3Npb25zIiwicGFyYW1zIiwibG9jYWxlIiwiZ2V0IiwicXMiLCJzdHJpbmdpZnkiLCJFcnJvciIsImZldGNoRnVsbFVzZXIiLCJSZWFjdCIsInByZWZpbGxPbmx5IiwiYXV0b0xvZ2luUmVzdWx0IiwiYm9keSIsIkpTT04iLCJlbWFpbCIsInBhc3N3b3JkIiwiYXV0b0xvZ2luSnNvbiIsInB1c2giLCJ1c2VFZmZlY3QiLCJyZW1pbmRlciIsIm1heCIsIm1pbiIsImNsZWFyVGltZW91dCIsImZvcmNlTG9nT3V0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInVzZUNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7SUFzQmFBLFlBQVk7ZUFBWkE7O0lBK1NBQyxPQUFPO2VBQVBBOzs7dUJBbFVZOzRCQUNjOzJEQUN4QjsrREFDb0U7K0JBQzdEO29FQUlFOzZCQUNPO3FCQUNOO3dCQUNDOzhCQUNNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNoQyx3Q0FBd0M7QUFFeEMsTUFBTUMsd0JBQVVDLElBQUFBLG9CQUFhLEVBQUMsQ0FBQztBQUUvQixNQUFNQyxpQkFBaUI7QUFFaEIsTUFBTUosZUFBd0QsQ0FBQyxFQUFFSyxRQUFRLEVBQUU7SUFDaEYsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0MsSUFBQUEsNkJBQWU7SUFDeEMsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdDLElBQUFBLGVBQVE7SUFDaEMsTUFBTSxDQUFDQyxlQUFlQyxpQkFBaUIsR0FBR0YsSUFBQUEsZUFBUTtJQUNsRCxNQUFNLENBQUNHLGlCQUFpQkMsbUJBQW1CLEdBQUdKLElBQUFBLGVBQVE7SUFDdEQsTUFBTUssV0FBV0MsSUFBQUEsdUJBQVc7SUFDNUIsTUFBTUMsU0FBU0MsSUFBQUEscUJBQVM7SUFDeEIsK0JBQStCO0lBQy9CLE1BQU1DLE9BQU8sS0FBSyw0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
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvQXV0aC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5pbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25zLCBVc2VyIH0gZnJvbSAncGF5bG9hZC9hdXRoJ1xuXG5pbXBvcnQgeyB1c2VNb2RhbCB9IGZyb20gJ0BmYWNlbGVzcy11aS9tb2RhbCdcbmltcG9ydCB7IHVzZVBhdGhuYW1lLCB1c2VSb3V0ZXIgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG5pbXBvcnQgcXMgZnJvbSAncXMnXG5pbXBvcnQgUmVhY3QsIHsgY3JlYXRlQ29udGV4dCwgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgQXV0aENvbnRleHQgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgdXNlRGVib3VuY2UgZnJvbSAnLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9UcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2FwaSdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uL0NvbmZpZydcbmltcG9ydCB7IHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJy4uL1NlYXJjaFBhcmFtcydcbi8vIGltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uL0xvY2FsZSdcblxuY29uc3QgQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe30gYXMgQXV0aENvbnRleHQpXG5cbmNvbnN0IG1heFRpbWVvdXRUaW1lID0gMjE0NzQ4MzY0N1xuXG5leHBvcnQgY29uc3QgQXV0aFByb3ZpZGVyOiBSZWFjdC5GQzx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT4gPSAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHsgc2VhcmNoUGFyYW1zIH0gPSB1c2VTZWFyY2hQYXJhbXMoKVxuICBjb25zdCBbdXNlciwgc2V0VXNlcl0gPSB1c2VTdGF0ZTxVc2VyIHwgbnVsbD4oKVxuICBjb25zdCBbdG9rZW5Jbk1lbW9yeSwgc2V0VG9rZW5Jbk1lbW9yeV0gPSB1c2VTdGF0ZTxzdHJpbmc+KClcbiAgY29uc3QgW3Rva2VuRXhwaXJhdGlvbiwgc2V0VG9rZW5FeHBpcmF0aW9uXSA9IHVzZVN0YXRlPG51bWJlcj4oKVxuICBjb25zdCBwYXRobmFtZSA9IHVzZVBhdGhuYW1lKClcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKClcbiAgLy8gY29uc3QgeyBjb2RlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCBjb2RlID0gJ2VuJyAvLyBUT0RPOiByZS1lbmFibGUgaTE4biBhc2FwXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCB7XG4gICAgYWRtaW46IHsgYXV0b0xvZ2luLCBpbmFjdGl2aXR5Um91dGU6IGxvZ291dEluYWN0aXZpdHlSb3V0ZSwgdXNlcjogdXNlclNsdWcgfSxcbiAgICByb3V0ZXM6IHsgYWRtaW4sIGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IGNvbmZpZ1xuXG4gIGNvbnN0IFtwZXJtaXNzaW9ucywgc2V0UGVybWlzc2lvbnNdID0gdXNlU3RhdGU8UGVybWlzc2lvbnM+KClcblxuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBjbG9zZUFsbE1vZGFscywgb3Blbk1vZGFsIH0gPSB1c2VNb2RhbCgpXG4gIGNvbnN0IFtsYXN0TG9jYXRpb25DaGFuZ2UsIHNldExhc3RMb2NhdGlvbkNoYW5nZV0gPSB1c2VTdGF0ZSgwKVxuICBjb25zdCBkZWJvdW5jZWRMb2NhdGlvbkNoYW5nZSA9IHVzZURlYm91bmNlKGxhc3RMb2NhdGlvbkNoYW5nZSwgMTAwMDApXG5cbiAgY29uc3QgaWQgPSB1c2VyPy5pZFxuXG4gIGNvbnN0IHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdGFydHNXaXRoKGFkbWluKSkge1xuICAgICAgY29uc3QgcmVkaXJlY3RQYXJhbSA9IGA/cmVkaXJlY3Q9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKGFkbWluLCAnJyksXG4gICAgICApfWBcbiAgICAgIHJvdXRlci5yZXBsYWNlKGAke2FkbWlufSR7bG9nb3V0SW5hY3Rpdml0eVJvdXRlfSR7cmVkaXJlY3RQYXJhbX1gKVxuICAgIH0gZWxzZSB7XG4gICAgICByb3V0ZXIucmVwbGFjZShgJHthZG1pbn0ke2xvZ291dEluYWN0aXZpdHlSb3V0ZX1gKVxuICAgIH1cbiAgICBjbG9zZUFsbE1vZGFscygpXG4gIH0sIFtyb3V0ZXIsIGFkbWluLCBsb2dvdXRJbmFjdGl2aXR5Um91dGUsIGNsb3NlQWxsTW9kYWxzXSlcblxuICBjb25zdCByZXZva2VUb2tlbkFuZEV4cGlyZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRUb2tlbkluTWVtb3J5KHVuZGVmaW5lZClcbiAgICBzZXRUb2tlbkV4cGlyYXRpb24odW5kZWZpbmVkKVxuICB9LCBbXSlcblxuICBjb25zdCBzZXRUb2tlbkFuZEV4cGlyYXRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAoanNvbikgPT4ge1xuICAgICAgY29uc3QgdG9rZW4gPSBqc29uPy50b2tlbiB8fCBqc29uPy5yZWZyZXNoZWRUb2tlblxuICAgICAgaWYgKHRva2VuICYmIGpzb24/LmV4cCkge1xuICAgICAgICBzZXRUb2tlbkluTWVtb3J5KHRva2VuKVxuICAgICAgICBzZXRUb2tlbkV4cGlyYXRpb24oanNvbi5leHApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbcmV2b2tlVG9rZW5BbmRFeHBpcmVdLFxuICApXG5cbiAgY29uc3QgcmVmcmVzaENvb2tpZSA9IHVzZUNhbGxiYWNrKFxuICAgIChmb3JjZVJlZnJlc2g/OiBib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCBub3cgPSBNYXRoLnJvdW5kKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMClcbiAgICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSAodHlwZW9mIHRva2VuRXhwaXJhdGlvbiA9PT0gJ251bWJlcicgPyB0b2tlbkV4cGlyYXRpb24gOiAwKSAtIG5vd1xuXG4gICAgICBpZiAoZm9yY2VSZWZyZXNoIHx8ICh0b2tlbkV4cGlyYXRpb24gJiYgcmVtYWluaW5nVGltZSA8IDEyMCkpIHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vcmVmcmVzaC10b2tlbmAsIHtcbiAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgaWYgKHJlcXVlc3Quc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG4gICAgICAgICAgICAgIHNldFVzZXIoanNvbi51c2VyKVxuICAgICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oanNvbilcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFVzZXIobnVsbClcbiAgICAgICAgICAgICAgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdG9hc3QuZXJyb3IoZS5tZXNzYWdlKVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIHRva2VuRXhwaXJhdGlvbixcbiAgICAgIHNlcnZlclVSTCxcbiAgICAgIGFwaSxcbiAgICAgIHVzZXJTbHVnLFxuICAgICAgaTE4bixcbiAgICAgIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUsXG4gICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24sXG4gICAgXSxcbiAgKVxuXG4gIGNvbnN0IHJlZnJlc2hDb29raWVBc3luYyA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChza2lwU2V0VXNlcj86IGJvb2xlYW4pOiBQcm9taXNlPFVzZXI+ID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vcmVmcmVzaC10b2tlbmAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlcXVlc3QuanNvbigpXG4gICAgICAgICAgaWYgKCFza2lwU2V0VXNlcikge1xuICAgICAgICAgICAgc2V0VXNlcihqc29uLnVzZXIpXG4gICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oanNvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGpzb24udXNlclxuICAgICAgICB9XG5cbiAgICAgICAgc2V0VXNlcihudWxsKVxuICAgICAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlKClcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdG9hc3QuZXJyb3IoYFJlZnJlc2hpbmcgdG9rZW4gZmFpbGVkOiAke2UubWVzc2FnZX1gKVxuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlcnZlclVSTCwgYXBpLCB1c2VyU2x1ZywgaTE4biwgcmVkaXJlY3RUb0luYWN0aXZpdHlSb3V0ZSwgc2V0VG9rZW5BbmRFeHBpcmF0aW9uXSxcbiAgKVxuXG4gIGNvbnN0IGxvZ091dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRVc2VyKG51bGwpXG4gICAgcmV2b2tlVG9rZW5BbmRFeHBpcmUoKVxuICAgIHRyeSB7XG4gICAgICByZXF1ZXN0cy5wb3N0KGAke3NlcnZlclVSTH0ke2FwaX0vJHt1c2VyU2x1Z30vbG9nb3V0YClcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0b2FzdC5lcnJvcihgTG9nZ2luZyBvdXQgZmFpbGVkOiAke2UubWVzc2FnZX1gKVxuICAgIH1cbiAgfSwgW3NlcnZlclVSTCwgYXBpLCB1c2VyU2x1ZywgcmV2b2tlVG9rZW5BbmRFeHBpcmVdKVxuXG4gIGNvbnN0IHJlZnJlc2hQZXJtaXNzaW9ucyA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBsb2NhbGU6IGNvZGUsXG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCByZXF1ZXN0cy5nZXQoYCR7c2VydmVyVVJMfSR7YXBpfS9hY2Nlc3M/JHtxcy5zdHJpbmdpZnkocGFyYW1zKX1gLCB7XG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChyZXF1ZXN0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgIGNvbnN0IGpzb246IFBlcm1pc3Npb25zID0gYXdhaXQgcmVxdWVzdC5qc29uKClcbiAgICAgICAgc2V0UGVybWlzc2lvbnMoanNvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRmV0Y2hpbmcgcGVybWlzc2lvbnMgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXF1ZXN0LnN0YXR1c31gKVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRvYXN0LmVycm9yKGBSZWZyZXNoaW5nIHBlcm1pc3Npb25zIGZhaWxlZDogJHtlLm1lc3NhZ2V9YClcbiAgICB9XG4gIH0sIFtzZXJ2ZXJVUkwsIGFwaSwgaTE4biwgY29kZV0pXG5cbiAgY29uc3QgZmV0Y2hGdWxsVXNlciA9IFJlYWN0LnVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHJlcXVlc3RzLmdldChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7dXNlclNsdWd9L21lYCwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICBpZiAocmVxdWVzdC5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVxdWVzdC5qc29uKClcblxuICAgICAgICBpZiAoanNvbj8udXNlcikge1xuICAgICAgICAgIHNldFVzZXIoanNvbi51c2VyKVxuICAgICAgICAgIGlmIChqc29uPy50b2tlbikge1xuICAgICAgICAgICAgc2V0VG9rZW5BbmRFeHBpcmF0aW9uKGpzb24pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGF1dG9Mb2dpbiAmJiBhdXRvTG9naW4ucHJlZmlsbE9ubHkgIT09IHRydWUpIHtcbiAgICAgICAgICAvLyBhdXRvIGxvZy1pbiB3aXRoIHRoZSBwcm92aWRlZCBhdXRvTG9naW4gY3JlZGVudGlhbHMuIFRoaXMgaXMgdXNlZCBpbiBkZXYgbW9kZVxuICAgICAgICAgIC8vIHNvIHlvdSBkb24ndCBoYXZlIHRvIGxvZyBpbiBvdmVyIGFuZCBvdmVyIGFnYWluXG4gICAgICAgICAgY29uc3QgYXV0b0xvZ2luUmVzdWx0ID0gYXdhaXQgcmVxdWVzdHMucG9zdChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7dXNlclNsdWd9L2xvZ2luYCwge1xuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICBlbWFpbDogYXV0b0xvZ2luLmVtYWlsLFxuICAgICAgICAgICAgICBwYXNzd29yZDogYXV0b0xvZ2luLnBhc3N3b3JkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChhdXRvTG9naW5SZXN1bHQuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnN0IGF1dG9Mb2dpbkpzb24gPSBhd2FpdCBhdXRvTG9naW5SZXN1bHQuanNvbigpXG4gICAgICAgICAgICBzZXRVc2VyKGF1dG9Mb2dpbkpzb24udXNlcilcbiAgICAgICAgICAgIGlmIChhdXRvTG9naW5Kc29uPy50b2tlbikge1xuICAgICAgICAgICAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24oYXV0b0xvZ2luSnNvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdXRlci5wdXNoKFxuICAgICAgICAgICAgICB0eXBlb2Ygc2VhcmNoUGFyYW1zWydyZWRpcmVjdCddID09PSAnc3RyaW5nJyA/IHNlYXJjaFBhcmFtc1sncmVkaXJlY3QnXSA6IGFkbWluLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRVc2VyKG51bGwpXG4gICAgICAgICAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFVzZXIobnVsbClcbiAgICAgICAgICByZXZva2VUb2tlbkFuZEV4cGlyZSgpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0b2FzdC5lcnJvcihgRmV0Y2hpbmcgdXNlciBmYWlsZWQ6ICR7ZS5tZXNzYWdlfWApXG4gICAgfVxuICB9LCBbXG4gICAgc2VydmVyVVJMLFxuICAgIGFwaSxcbiAgICB1c2VyU2x1ZyxcbiAgICBpMThuLmxhbmd1YWdlLFxuICAgIGF1dG9Mb2dpbixcbiAgICBzZXRUb2tlbkFuZEV4cGlyYXRpb24sXG4gICAgcm91dGVyLFxuICAgIHNlYXJjaFBhcmFtcyxcbiAgICBhZG1pbixcbiAgICByZXZva2VUb2tlbkFuZEV4cGlyZSxcbiAgXSlcblxuICAvLyBPbiBtb3VudCwgZ2V0IHVzZXIgYW5kIHNldFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoRnVsbFVzZXIoKVxuICB9LCBbZmV0Y2hGdWxsVXNlcl0pXG5cbiAgLy8gV2hlbiBsb2NhdGlvbiBjaGFuZ2VzLCByZWZyZXNoIGNvb2tpZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpZCkge1xuICAgICAgcmVmcmVzaENvb2tpZSgpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkTG9jYXRpb25DaGFuZ2UsIHJlZnJlc2hDb29raWUsIGlkXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExhc3RMb2NhdGlvbkNoYW5nZShEYXRlLm5vdygpKVxuICB9LCBbcGF0aG5hbWVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IHJlbWluZGVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PlxuICAgIGNvbnN0IG5vdyA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKVxuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSB0eXBlb2YgdG9rZW5FeHBpcmF0aW9uID09PSAnbnVtYmVyJyA/IHRva2VuRXhwaXJhdGlvbiAtIG5vdyA6IDBcblxuICAgIGlmIChyZW1haW5pbmdUaW1lID4gMCkge1xuICAgICAgcmVtaW5kZXIgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgb3Blbk1vZGFsKCdzdGF5LWxvZ2dlZC1pbicpXG4gICAgICAgIH0sXG4gICAgICAgIE1hdGgubWF4KE1hdGgubWluKChyZW1haW5pbmdUaW1lIC0gNjApICogMTAwMCwgbWF4VGltZW91dFRpbWUpKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlbWluZGVyKSBjbGVhclRpbWVvdXQocmVtaW5kZXIpXG4gICAgfVxuICB9LCBbdG9rZW5FeHBpcmF0aW9uLCBvcGVuTW9kYWxdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGZvcmNlTG9nT3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PlxuICAgIGNvbnN0IG5vdyA9IE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKVxuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSB0eXBlb2YgdG9rZW5FeHBpcmF0aW9uID09PSAnbnVtYmVyJyA/IHRva2VuRXhwaXJhdGlvbiAtIG5vdyA6IDBcblxuICAgIGlmIChyZW1haW5pbmdUaW1lID4gMCkge1xuICAgICAgZm9yY2VMb2dPdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgc2V0VXNlcihudWxsKVxuICAgICAgICAgIHJldm9rZVRva2VuQW5kRXhwaXJlKClcbiAgICAgICAgICByZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlKClcbiAgICAgICAgfSxcbiAgICAgICAgTWF0aC5tYXgoTWF0aC5taW4ocmVtYWluaW5nVGltZSAqIDEwMDAsIG1heFRpbWVvdXRUaW1lKSwgMCksXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChmb3JjZUxvZ091dCkgY2xlYXJUaW1lb3V0KGZvcmNlTG9nT3V0KVxuICAgIH1cbiAgfSwgW3Rva2VuRXhwaXJhdGlvbiwgY2xvc2VBbGxNb2RhbHMsIGkxOG4sIHJlZGlyZWN0VG9JbmFjdGl2aXR5Um91dGUsIHJldm9rZVRva2VuQW5kRXhwaXJlXSlcblxuICByZXR1cm4gKFxuICAgIDxDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17e1xuICAgICAgICBmZXRjaEZ1bGxVc2VyLFxuICAgICAgICBsb2dPdXQsXG4gICAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgICByZWZyZXNoQ29va2llLFxuICAgICAgICByZWZyZXNoQ29va2llQXN5bmMsXG4gICAgICAgIHJlZnJlc2hQZXJtaXNzaW9ucyxcbiAgICAgICAgc2V0UGVybWlzc2lvbnMsXG4gICAgICAgIHNldFVzZXIsXG4gICAgICAgIHRva2VuOiB0b2tlbkluTWVtb3J5LFxuICAgICAgICB1c2VyLFxuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db250ZXh0LlByb3ZpZGVyPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCB1c2VBdXRoID0gPFQgPSBVc2VyLD4oKTogQXV0aENvbnRleHQ8VD4gPT4gdXNlQ29udGV4dChDb250ZXh0KSBhcyBBdXRoQ29udGV4dDxUPlxuIl0sIm5hbWVzIjpbInVzZU1vZGFsIiwidXNlUGF0aG5hbWUiLCJ1c2VSb3V0ZXIiLCJxcyIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNhbGxiYWNrIiwidXNlQ29udGV4dCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidG9hc3QiLCJ1c2VEZWJvdW5jZSIsInVzZVRyYW5zbGF0aW9uIiwicmVxdWVzdHMiLCJ1c2VDb25maWciLCJ1c2VTZWFyY2hQYXJhbXMiLCJDb250ZXh0IiwibWF4VGltZW91dFRpbWUiLCJBdXRoUHJvdmlkZXIiLCJjaGlsZHJlbiIsInNlYXJjaFBhcmFtcyIsInVzZXIiLCJzZXRVc2VyIiwidG9rZW5Jbk1lbW9yeSIsInNldFRva2VuSW5NZW1vcnkiLCJ0b2tlbkV4cGlyYXRpb24iLCJzZXRUb2tlbkV4cGlyYXRpb24iLCJwYXRobmFtZSIsInJvdXRlciIsImNvZGUiLCJjb25maWciLCJhZG1pbiIsImF1dG9Mb2dpbiIsImluYWN0aXZpdHlSb3V0ZSIsImxvZ291dEluYWN0aXZpdHlSb3V0ZSIsInVzZXJTbHVnIiwicm91dGVzIiwiYXBpIiwic2VydmVyVVJMIiwicGVybWlzc2lvbnMiLCJzZXRQZXJtaXNzaW9ucyIsImkxOG4iLCJjbG9zZUFsbE1vZGFscyIsIm9wZW5Nb2RhbCIsImxhc3RMb2NhdGlvbkNoYW5nZSIsInNldExhc3RMb2NhdGlvbkNoYW5nZSIsImRlYm91bmNlZExvY2F0aW9uQ2hhbmdlIiwiaWQiLCJyZWRpcmVjdFRvSW5hY3Rpdml0eVJvdXRlIiwid2luZG93IiwibG9jYXRpb24iLCJzdGFydHNXaXRoIiwicmVkaXJlY3RQYXJhbSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlcGxhY2UiLCJyZXZva2VUb2tlbkFuZEV4cGlyZSIsInVuZGVmaW5lZCIsInNldFRva2VuQW5kRXhwaXJhdGlvbiIsImpzb24iLCJ0b2tlbiIsInJlZnJlc2hlZFRva2VuIiwiZXhwIiwicmVmcmVzaENvb2tpZSIsImZvcmNlUmVmcmVzaCIsIm5vdyIsIk1hdGgiLCJyb3VuZCIsIkRhdGUiLCJnZXRUaW1lIiwicmVtYWluaW5nVGltZSIsInNldFRpbWVvdXQiLCJyZXF1ZXN0IiwicG9zdCIsImhlYWRlcnMiLCJsYW5ndWFnZSIsInN0YXR1cyIsImUiLCJlcnJvciIsIm1lc3NhZ2UiLCJyZWZyZXNoQ29va2llQXN5bmMiLCJza2lwU2V0VXNlciIsImxvZ091dCIsInJlZnJlc2hQZXJtaXNzaW9ucyIsInBhcmFtcyIsImxvY2FsZSIsImdldCIsInN0cmluZ2lmeSIsIkVycm9yIiwiZmV0Y2hGdWxsVXNlciIsInByZWZpbGxPbmx5IiwiYXV0b0xvZ2luUmVzdWx0IiwiYm9keSIsIkpTT04iLCJlbWFpbCIsInBhc3N3b3JkIiwiYXV0b0xvZ2luSnNvbiIsInB1c2giLCJyZW1pbmRlciIsIm1heCIsIm1pbiIsImNsZWFyVGltZW91dCIsImZvcmNlTG9nT3V0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsInVzZUF1dGgiXSwibWFwcGluZ3MiOiJBQUFBO0FBR0EsU0FBU0EsUUFBUSxRQUFRLHFCQUFvQjtBQUM3QyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsUUFBUSxrQkFBaUI7QUFDeEQsT0FBT0MsUUFBUSxLQUFJO0FBQ25CLE9BQU9DLFNBQVNDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLFFBQU87QUFDMUYsU0FBU0MsS0FBSyxRQUFRLGlCQUFnQjtBQUl0QyxPQUFPQyxpQkFBaUIsMEJBQXlCO0FBQ2pELFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFDNUQsU0FBU0MsUUFBUSxRQUFRLHNCQUFxQjtBQUM5QyxTQUFTQyxTQUFTLFFBQVEsWUFBVztBQUNyQyxTQUFTQyxlQUFlLFFBQVEsa0JBQWlCO0FBQ2pELHdDQUF3QztBQUV4QyxNQUFNQyx3QkFBVVgsY0FBYyxDQUFDO0FBRS9CLE1BQU1ZLGlCQUFpQjtBQUV2QixPQUFPLE1BQU1DLGVBQXdELENBQUMsRUFBRUMsUUFBUSxFQUFFO0lBQ2hGLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdMO0lBQ3pCLE1BQU0sQ0FBQ00sTUFBTUMsUUFBUSxHQUFHYjtJQUN4QixNQUFNLENBQUNjLGVBQWVDLGlCQUFpQixHQUFHZjtJQUMxQyxNQUFNLENBQUNnQixpQkFBaUJDLG1CQUFtQixHQUFHakI7SUFDOUMsTUFBTWtCLFdBQVcxQjtJQUNqQixNQUFNMkIsU0FBUzFCO0lBQ2YsK0JBQStCO0lBQy9CLE1BQU0yQixPQUFPLEtBQUssNEJBQTRCOztJQUU5QyxNQUFNQyxTQUFTaEI7SUFFZixNQUFNLEVBQ0ppQixPQUFPLEVBQUVDLFNBQVMsRUFBRUMsaUJBQWlCQyxxQkFBcUIsRUFBRWIsTUFBTWMsUUFBUSxFQUFFLEVBQzVFQyxRQUFRLEVBQUVMLEtBQUssRUFBRU0sR0FBRyxFQUFFLEVBQ3RCQyxTQUFTLEVBQ1YsR0FBR1I7SUFFSixNQUFNLENBQUNTLGFBQWFDLGVBQWUsR0FBRy9CO0lBRXRDLE1BQU0sRUFBRWdDLElBQUksRUFBRSxHQUFHN0I7SUFDakIsTUFBTSxFQUFFOEIsY0FBYyxFQUFFQyxTQUFTLEVBQUUsR0FBRzNDO0lBQ3RDLE1BQU0sQ0FBQzRDLG9CQUFvQkMsc0JBQXNCLEdBQUdwQyxTQUFTO0lBQzdELE1BQU1xQywwQkFBMEJuQyxZQUFZaUMsb0JBQW9CO0lBRWhFLE1BQU1HLEtBQUsxQixNQUFNMEI7SUFFakIsTUFBTUMsNEJBQTRCMUMsWUFBWTtRQUM1QyxJQUFJMkMsT0FBT0MsUUFBUSxDQUFDdkIsUUFBUSxDQUFDd0IsVUFBVSxDQUFDcEIsUUFBUTtZQUM5QyxNQUFNcUIsZ0JBQWdCLENBQUMsVUFBVSxFQUFFQyxtQkFDakNKLE9BQU9DLFFBQVEsQ0FBQ3ZCLFFBQVEsQ0FBQzJCLE9BQU8sQ0FBQ3ZCLE9BQU8sS0FDeEMsQ0FBQztZQUNISCxPQUFPMEIsT0FBTyxDQUFDLENBQUMsRUFBRXZCLE1BQU0sRUFBRUcsc0JBQXNCLEVBQUVrQixjQUFjLENBQUM7UUFDbkUsT0FBTztZQUNMeEIsT0FBTzBCLE9BQU8sQ0FBQyxDQUFDLEVBQUV2QixNQUFNLEVBQUVHLHNCQUFzQixDQUFDO1FBQ25EO1FBQ0FRO0lBQ0YsR0FBRztRQUFDZDtRQUFRRztRQUFPRztRQUF1QlE7S0FBZTtJQUV6RCxNQUFNYSx1QkFBdUJqRCxZQUFZO1FBQ3ZDa0IsaUJBQWlCZ0M7UUFDakI5QixtQkFBbUI4QjtJQUNyQixHQUFHLEVBQUU7SUFFTCxNQUFNQyx3QkFBd0JuRCxZQUM1QixDQUFDb0Q7UUFDQyxNQUFNQyxRQUFRRCxNQUFNQyxTQUFTRCxNQUFNRTtRQUNuQyxJQUFJRCxTQUFTRCxNQUFNRyxLQUFLO1lBQ3RCckMsaUJBQWlCbUM7WUFDakJqQyxtQkFBbUJnQyxLQUFLRyxHQUFHO1FBQzdCLE9BQU87WUFDTE47UUFDRjtJQUNGLEdBQ0E7UUFBQ0E7S0FBcUI7SUFHeEIsTUFBTU8sZ0JBQWdCeEQsWUFDcEIsQ0FBQ3lEO1FBQ0MsTUFBTUMsTUFBTUMsS0FBS0MsS0FBSyxDQUFDLElBQUlDLE9BQU9DLE9BQU8sS0FBSztRQUM5QyxNQUFNQyxnQkFBZ0IsQUFBQyxDQUFBLE9BQU81QyxvQkFBb0IsV0FBV0Esa0JBQWtCLENBQUEsSUFBS3VDO1FBRXBGLElBQUlELGdCQUFpQnRDLG1CQUFtQjRDLGdCQUFnQixLQUFNO1lBQzVEQyxXQUFXO2dCQUNULElBQUk7b0JBQ0YsTUFBTUMsVUFBVSxNQUFNMUQsU0FBUzJELElBQUksQ0FBQyxDQUFDLEVBQUVsQyxVQUFVLEVBQUVELElBQUksQ0FBQyxFQUFFRixTQUFTLGNBQWMsQ0FBQyxFQUFFO3dCQUNsRnNDLFNBQVM7NEJBQ1AsbUJBQW1CaEMsS0FBS2lDLFFBQVE7d0JBQ2xDO29CQUNGO29CQUVBLElBQUlILFFBQVFJLE1BQU0sS0FBSyxLQUFLO3dCQUMxQixNQUFNakIsT0FBTyxNQUFNYSxRQUFRYixJQUFJO3dCQUMvQnBDLFFBQVFvQyxLQUFLckMsSUFBSTt3QkFDakJvQyxzQkFBc0JDO29CQUN4QixPQUFPO3dCQUNMcEMsUUFBUTt3QkFDUjBCO29CQUNGO2dCQUNGLEVBQUUsT0FBTzRCLEdBQUc7b0JBQ1ZsRSxNQUFNbUUsS0FBSyxDQUFDRCxFQUFFRSxPQUFPO2dCQUN2QjtZQUNGLEdBQUc7UUFDTDtJQUNGLEdBQ0E7UUFDRXJEO1FBQ0FhO1FBQ0FEO1FBQ0FGO1FBQ0FNO1FBQ0FPO1FBQ0FTO0tBQ0Q7SUFHSCxNQUFNc0IscUJBQXFCekUsWUFDekIsT0FBTzBFO1FBQ0wsSUFBSTtZQUNGLE1BQU1ULFVBQVUsTUFBTTFELFNBQVMyRCxJQUFJLENBQUMsQ0FBQyxFQUFFbEMsVUFBVSxFQUFFRCxJQUFJLENBQUMsRUFBRUYsU0FBUyxjQUFjLENBQUMsRUFBRTtnQkFDbEZzQyxTQUFTO29CQUNQLG1CQUFtQmhDLEtBQUtpQyxRQUFRO2dCQUNsQztZQUNGO1lBRUEsSUFBSUgsUUFBUUksTUFBTSxLQUFLLEtBQUs7Z0JBQzFCLE1BQU1qQixPQUFPLE1BQU1hLFFBQVFiLElBQUk7Z0JBQy9CLElBQUksQ0FBQ3NCLGFBQWE7b0JBQ2hCMUQsUUFBUW9DLEtBQUtyQyxJQUFJO29CQUNqQm9DLHNCQUFzQkM7Z0JBQ3hCO2dCQUNBLE9BQU9BLEtBQUtyQyxJQUFJO1lBQ2xCO1lBRUFDLFFBQVE7WUFDUjBCO1lBQ0EsT0FBTztRQUNULEVBQUUsT0FBTzRCLEdBQUc7WUFDVmxFLE1BQU1tRSxLQUFLLENBQUMsQ0FBQyx5QkFBeUIsRUFBRUQsRUFBRUUsT0FBTyxDQUFDLENBQUM7WUFDbkQsT0FBTztRQUNUO0lBQ0YsR0FDQTtRQUFDeEM7UUFBV0Q7UUFBS0Y7UUFBVU07UUFBTU87UUFBMkJTO0tBQXNCO0lBR3BGLE1BQU13QixTQUFTM0UsWUFBWTtRQUN6QmdCLFFBQVE7UUFDUmlDO1FBQ0EsSUFBSTtZQUNGMUMsU0FBUzJELElBQUksQ0FBQyxDQUFDLEVBQUVsQyxVQUFVLEVBQUVELElBQUksQ0FBQyxFQUFFRixTQUFTLE9BQU8sQ0FBQztRQUN2RCxFQUFFLE9BQU95QyxHQUFHO1lBQ1ZsRSxNQUFNbUUsS0FBSyxDQUFDLENBQUMsb0JBQW9CLEVBQUVELEVBQUVFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hEO0lBQ0YsR0FBRztRQUFDeEM7UUFBV0Q7UUFBS0Y7UUFBVW9CO0tBQXFCO0lBRW5ELE1BQU0yQixxQkFBcUI1RSxZQUFZO1FBQ3JDLE1BQU02RSxTQUFTO1lBQ2JDLFFBQVF2RDtRQUNWO1FBRUEsSUFBSTtZQUNGLE1BQU0wQyxVQUFVLE1BQU0xRCxTQUFTd0UsR0FBRyxDQUFDLENBQUMsRUFBRS9DLFVBQVUsRUFBRUQsSUFBSSxRQUFRLEVBQUVsQyxHQUFHbUYsU0FBUyxDQUFDSCxRQUFRLENBQUMsRUFBRTtnQkFDdEZWLFNBQVM7b0JBQ1AsbUJBQW1CaEMsS0FBS2lDLFFBQVE7Z0JBQ2xDO1lBQ0Y7WUFFQSxJQUFJSCxRQUFRSSxNQUFNLEtBQUssS0FBSztnQkFDMUIsTUFBTWpCLE9BQW9CLE1BQU1hLFFBQVFiLElBQUk7Z0JBQzVDbEIsZUFBZWtCO1lBQ2pCLE9BQU87Z0JBQ0wsTUFBTSxJQUFJNkIsTUFBTSxDQUFDLDZDQUE2QyxFQUFFaEIsUUFBUUksTUFBTSxDQUFDLENBQUM7WUFDbEY7UUFDRixFQUFFLE9BQU9DLEdBQUc7WUFDVmxFLE1BQU1tRSxLQUFLLENBQUMsQ0FBQywrQkFBK0IsRUFBRUQsRUFBRUUsT0FBTyxDQUFDLENBQUM7UUFDM0Q7SUFDRixHQUFHO1FBQUN4QztRQUFXRDtRQUFLSTtRQUFNWjtLQUFLO0lBRS9CLE1BQU0yRCxnQkFBZ0JwRixNQUFNRSxXQUFXLENBQUM7UUFDdEMsSUFBSTtZQUNGLE1BQU1pRSxVQUFVLE1BQU0xRCxTQUFTd0UsR0FBRyxDQUFDLENBQUMsRUFBRS9DLFVBQVUsRUFBRUQsSUFBSSxDQUFDLEVBQUVGLFNBQVMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RFc0MsU0FBUztvQkFDUCxtQkFBbUJoQyxLQUFLaUMsUUFBUTtnQkFDbEM7WUFDRjtZQUVBLElBQUlILFFBQVFJLE1BQU0sS0FBSyxLQUFLO2dCQUMxQixNQUFNakIsT0FBTyxNQUFNYSxRQUFRYixJQUFJO2dCQUUvQixJQUFJQSxNQUFNckMsTUFBTTtvQkFDZEMsUUFBUW9DLEtBQUtyQyxJQUFJO29CQUNqQixJQUFJcUMsTUFBTUMsT0FBTzt3QkFDZkYsc0JBQXNCQztvQkFDeEI7Z0JBQ0YsT0FBTyxJQUFJMUIsYUFBYUEsVUFBVXlELFdBQVcsS0FBSyxNQUFNO29CQUN0RCxnRkFBZ0Y7b0JBQ2hGLGtEQUFrRDtvQkFDbEQsTUFBTUMsa0JBQWtCLE1BQU03RSxTQUFTMkQsSUFBSSxDQUFDLENBQUMsRUFBRWxDLFVBQVUsRUFBRUQsSUFBSSxDQUFDLEVBQUVGLFNBQVMsTUFBTSxDQUFDLEVBQUU7d0JBQ2xGd0QsTUFBTUMsS0FBS04sU0FBUyxDQUFDOzRCQUNuQk8sT0FBTzdELFVBQVU2RCxLQUFLOzRCQUN0QkMsVUFBVTlELFVBQVU4RCxRQUFRO3dCQUM5Qjt3QkFDQXJCLFNBQVM7NEJBQ1AsbUJBQW1CaEMsS0FBS2lDLFFBQVE7NEJBQ2hDLGdCQUFnQjt3QkFDbEI7b0JBQ0Y7b0JBQ0EsSUFBSWdCLGdCQUFnQmYsTUFBTSxLQUFLLEtBQUs7d0JBQ2xDLE1BQU1vQixnQkFBZ0IsTUFBTUwsZ0JBQWdCaEMsSUFBSTt3QkFDaERwQyxRQUFReUUsY0FBYzFFLElBQUk7d0JBQzFCLElBQUkwRSxlQUFlcEMsT0FBTzs0QkFDeEJGLHNCQUFzQnNDO3dCQUN4Qjt3QkFDQW5FLE9BQU9vRSxJQUFJLENBQ1QsT0FBTzVFLFlBQVksQ0FBQyxXQUFXLEtBQUssV0FBV0EsWUFBWSxDQUFDLFdBQVcsR0FBR1c7b0JBRTlFLE9BQU87d0JBQ0xULFFBQVE7d0JBQ1JpQztvQkFDRjtnQkFDRixPQUFPO29CQUNMakMsUUFBUTtvQkFDUmlDO2dCQUNGO1lBQ0Y7UUFDRixFQUFFLE9BQU9xQixHQUFHO1lBQ1ZsRSxNQUFNbUUsS0FBSyxDQUFDLENBQUMsc0JBQXNCLEVBQUVELEVBQUVFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xEO0lBQ0YsR0FBRztRQUNEeEM7UUFDQUQ7UUFDQUY7UUFDQU0sS0FBS2lDLFFBQVE7UUFDYjFDO1FBQ0F5QjtRQUNBN0I7UUFDQVI7UUFDQVc7UUFDQXdCO0tBQ0Q7SUFFRCw2QkFBNkI7SUFDN0IvQyxVQUFVO1FBQ1JnRjtJQUNGLEdBQUc7UUFBQ0E7S0FBYztJQUVsQix3Q0FBd0M7SUFDeENoRixVQUFVO1FBQ1IsSUFBSXVDLElBQUk7WUFDTmU7UUFDRjtJQUNGLEdBQUc7UUFBQ2hCO1FBQXlCZ0I7UUFBZWY7S0FBRztJQUUvQ3ZDLFVBQVU7UUFDUnFDLHNCQUFzQnNCLEtBQUtILEdBQUc7SUFDaEMsR0FBRztRQUFDckM7S0FBUztJQUVibkIsVUFBVTtRQUNSLElBQUl5RjtRQUNKLE1BQU1qQyxNQUFNQyxLQUFLQyxLQUFLLENBQUMsSUFBSUMsT0FBT0MsT0FBTyxLQUFLO1FBQzlDLE1BQU1DLGdCQUFnQixPQUFPNUMsb0JBQW9CLFdBQVdBLGtCQUFrQnVDLE1BQU07UUFFcEYsSUFBSUssZ0JBQWdCLEdBQUc7WUFDckI0QixXQUFXM0IsV0FDVDtnQkFDRTNCLFVBQVU7WUFDWixHQUNBc0IsS0FBS2lDLEdBQUcsQ0FBQ2pDLEtBQUtrQyxHQUFHLENBQUMsQUFBQzlCLENBQUFBLGdCQUFnQixFQUFDLElBQUssTUFBTXBEO1FBRW5EO1FBRUEsT0FBTztZQUNMLElBQUlnRixVQUFVRyxhQUFhSDtRQUM3QjtJQUNGLEdBQUc7UUFBQ3hFO1FBQWlCa0I7S0FBVTtJQUUvQm5DLFVBQVU7UUFDUixJQUFJNkY7UUFDSixNQUFNckMsTUFBTUMsS0FBS0MsS0FBSyxDQUFDLElBQUlDLE9BQU9DLE9BQU8sS0FBSztRQUM5QyxNQUFNQyxnQkFBZ0IsT0FBTzVDLG9CQUFvQixXQUFXQSxrQkFBa0J1QyxNQUFNO1FBRXBGLElBQUlLLGdCQUFnQixHQUFHO1lBQ3JCZ0MsY0FBYy9CLFdBQ1o7Z0JBQ0VoRCxRQUFRO2dCQUNSaUM7Z0JBQ0FQO1lBQ0YsR0FDQWlCLEtBQUtpQyxHQUFHLENBQUNqQyxLQUFLa0MsR0FBRyxDQUFDOUIsZ0JBQWdCLE1BQU1wRCxpQkFBaUI7UUFFN0Q7UUFFQSxPQUFPO1lBQ0wsSUFBSW9GLGFBQWFELGFBQWFDO1FBQ2hDO0lBQ0YsR0FBRztRQUFDNUU7UUFBaUJpQjtRQUFnQkQ7UUFBTU87UUFBMkJPO0tBQXFCO0lBRTNGLHFCQUNFLG9CQUFDdkMsUUFBUXNGLFFBQVE7UUFDZkMsT0FBTztZQUNMZjtZQUNBUDtZQUNBMUM7WUFDQXVCO1lBQ0FpQjtZQUNBRztZQUNBMUM7WUFDQWxCO1lBQ0FxQyxPQUFPcEM7WUFDUEY7UUFDRjtPQUVDRjtBQUdQLEVBQUM7QUFFRCxPQUFPLE1BQU1xRixVQUFVLElBQWlDakcsV0FBV1MsU0FBMEIifQ==