ethyca-fides 2.63.3b0__py2.py3-none-any.whl → 2.63.3rc0__py2.py3-none-any.whl

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 (335) hide show
  1. {ethyca_fides-2.63.3b0.dist-info → ethyca_fides-2.63.3rc0.dist-info}/METADATA +1 -1
  2. {ethyca_fides-2.63.3b0.dist-info → ethyca_fides-2.63.3rc0.dist-info}/RECORD +222 -226
  3. fides/_version.py +3 -3
  4. fides/api/api/v1/endpoints/connection_endpoints.py +3 -16
  5. fides/api/api/v1/endpoints/oauth_endpoints.py +2 -8
  6. fides/api/models/attachment.py +23 -36
  7. fides/api/schemas/connection_configuration/connection_config.py +4 -19
  8. fides/api/service/connectors/query_configs/saas_query_config.py +0 -15
  9. fides/api/service/privacy_request/dsr_package/dsr_report_builder.py +46 -264
  10. fides/api/service/privacy_request/dsr_package/templates/collection_index.html +9 -34
  11. fides/api/service/privacy_request/dsr_package/templates/item.html +37 -0
  12. fides/api/service/privacy_request/dsr_package/templates/main.css +2 -45
  13. fides/api/service/privacy_request/dsr_package/templates/welcome.html +8 -12
  14. fides/api/service/privacy_request/request_runner_service.py +139 -258
  15. fides/api/service/storage/gcs.py +3 -15
  16. fides/api/service/storage/s3.py +14 -28
  17. fides/api/service/storage/util.py +7 -45
  18. fides/api/tasks/storage.py +91 -85
  19. fides/api/util/saas_util.py +0 -1
  20. fides/ui-build/static/admin/404.html +1 -1
  21. fides/ui-build/static/admin/_next/static/chunks/1099-667e84655846e78c.js +1 -0
  22. fides/ui-build/static/admin/_next/static/chunks/1100-0b01f500b1eaf60d.js +1 -0
  23. fides/ui-build/static/admin/_next/static/chunks/1817-951f58ddd5d46081.js +1 -0
  24. fides/ui-build/static/admin/_next/static/chunks/1904-964f8eb328dc2715.js +1 -0
  25. fides/ui-build/static/admin/_next/static/chunks/2310-744354001d01f366.js +1 -0
  26. fides/ui-build/static/admin/_next/static/chunks/2921-49af55ad7c631c93.js +1 -0
  27. fides/ui-build/static/admin/_next/static/chunks/3119-e36ae5071c8f27a5.js +1 -0
  28. fides/ui-build/static/admin/_next/static/chunks/3505-113f9c95d34b7aae.js +1 -0
  29. fides/ui-build/static/admin/_next/static/chunks/3513-5c2d412a84a78971.js +1 -0
  30. fides/ui-build/static/admin/_next/static/chunks/3872-45cc725e241211f0.js +1 -0
  31. fides/ui-build/static/admin/_next/static/chunks/3923-b4f701ada3ef0ee0.js +1 -0
  32. fides/ui-build/static/admin/_next/static/chunks/401-7e800aed05537126.js +1 -0
  33. fides/ui-build/static/admin/_next/static/chunks/4060-90a52a9afc655bfc.js +1 -0
  34. fides/ui-build/static/admin/_next/static/chunks/4121-66b0e00d5e7ae817.js +1 -0
  35. fides/ui-build/static/admin/_next/static/chunks/4132-9b1731bfec6ee537.js +1 -0
  36. fides/ui-build/static/admin/_next/static/chunks/4481-7f6710c928bb0cb0.js +1 -0
  37. fides/ui-build/static/admin/_next/static/chunks/5258-2079138c8cc34f6c.js +1 -0
  38. fides/ui-build/static/admin/_next/static/chunks/5404-2694509cf5fa96da.js +1 -0
  39. fides/ui-build/static/admin/_next/static/chunks/5487-2cbd8d2169eb2a65.js +1 -0
  40. fides/ui-build/static/admin/_next/static/chunks/5683-37137111b3e769fb.js +1 -0
  41. fides/ui-build/static/admin/_next/static/chunks/6202-081545c7822d09af.js +1 -0
  42. fides/ui-build/static/admin/_next/static/chunks/6277-459e054b2702c60e.js +1 -0
  43. fides/ui-build/static/admin/_next/static/chunks/6853-688df0b88fe65fd5.js +1 -0
  44. fides/ui-build/static/admin/_next/static/chunks/69-00cba94689b9e740.js +1 -0
  45. fides/ui-build/static/admin/_next/static/chunks/6954-4e313b4599b8763d.js +1 -0
  46. fides/ui-build/static/admin/_next/static/chunks/7553-08bc3d9f66695111.js +1 -0
  47. fides/ui-build/static/admin/_next/static/chunks/79-fc548561beed136f.js +1 -0
  48. fides/ui-build/static/admin/_next/static/chunks/796-d6586308ed44334b.js +1 -0
  49. fides/ui-build/static/admin/_next/static/chunks/7980-736f9fd1e749ddd2.js +1 -0
  50. fides/ui-build/static/admin/_next/static/chunks/8032-74d94f7bd5b81c89.js +1 -0
  51. fides/ui-build/static/admin/_next/static/chunks/8433-51870336908fb253.js +1 -0
  52. fides/ui-build/static/admin/_next/static/chunks/8499-1fd392d0be9e8ee4.js +1 -0
  53. fides/ui-build/static/admin/_next/static/chunks/9033-fdd87182c15b91e2.js +1 -0
  54. fides/ui-build/static/admin/_next/static/chunks/{905-5fe5124abfb5c542.js → 905-8ab919e7b274ed50.js} +1 -1
  55. fides/ui-build/static/admin/_next/static/chunks/9327-6a53461c9764b16f.js +1 -0
  56. fides/ui-build/static/admin/_next/static/chunks/{9392.25024e070026343d.js → 9392.81edc11e3a175275.js} +1 -1
  57. fides/ui-build/static/admin/_next/static/chunks/9494-1ffb888b95289891.js +1 -0
  58. fides/ui-build/static/admin/_next/static/chunks/9676.61cf5f6d6a083175.js +1 -0
  59. fides/ui-build/static/admin/_next/static/chunks/9767-afd674014a1d1152.js +1 -0
  60. fides/ui-build/static/admin/_next/static/chunks/pages/404-ec04f826f3dd79ea.js +1 -0
  61. fides/ui-build/static/admin/_next/static/chunks/pages/{_app-0e0fdbcc0ec1c76b.js → _app-f70bffa5a7903c46.js} +10 -10
  62. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-1bec086d567aacff.js +1 -0
  63. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-f68bf100e4e60e88.js +1 -0
  64. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-effde5cfe49de55f.js +1 -0
  65. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/add-vendors-ec95ed8cb0712828.js +1 -0
  66. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-4cc195e15e0c3cc8.js +1 -0
  67. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/[id]-be8972c79fb39705.js +1 -0
  68. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-ccf96207de3b74ea.js +1 -0
  69. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/[id]-b9823cc008372cee.js +1 -0
  70. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/new-373f5772ab41bc93.js +1 -0
  71. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-b9beeee1bde5ca79.js +1 -0
  72. fides/ui-build/static/admin/_next/static/chunks/pages/consent/properties-6ab3a5baafebd199.js +1 -0
  73. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-8562790ae07f17c9.js +1 -0
  74. fides/ui-build/static/admin/_next/static/chunks/pages/consent-42d4d2d6e0253671.js +1 -0
  75. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-9d1df6d890671b0c.js +1 -0
  76. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-7eb08af333baaa8e.js +1 -0
  77. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-bb57eed84f59a932.js +1 -0
  78. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-47eb34aef3e31ac6.js +1 -0
  79. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-76cefefc53e84c7f.js +1 -0
  80. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-9d8e84a8b4bf568d.js +1 -0
  81. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-f208fef5e72dafd6.js +1 -0
  82. fides/ui-build/static/admin/_next/static/chunks/pages/datamap-db45aa864e9dda8a.js +1 -0
  83. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-d5cfdebc74654337.js +1 -0
  84. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-618b89228f83435e.js +1 -0
  85. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-12fc86f15a4c764e.js +1 -0
  86. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-c23d18a9b56c2e3c.js +1 -0
  87. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-e3b2d8e3980ab093.js +1 -0
  88. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-6e27257eccf65f01.js +1 -0
  89. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-bbac1f624424282d.js +1 -0
  90. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-84eb56f5a07bdf4f.js +1 -0
  91. fides/ui-build/static/admin/_next/static/chunks/pages/index-773182b5e35d0045.js +1 -0
  92. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-eb28c927da5bd653.js +1 -0
  93. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-781808bca01f8048.js +1 -0
  94. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-b51bee8680d66b20.js +1 -0
  95. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-1de479533f733fbd.js +1 -0
  96. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-7dc295b3ed3d2224.js +1 -0
  97. fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-f64dac3392f5ded7.js +1 -0
  98. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-eb020bfac4bee532.js +1 -0
  99. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-0bd62e28b539e114.js +1 -0
  100. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-936877004113c2a6.js +1 -0
  101. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-6416f01524482af9.js +1 -0
  102. fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-3f4e1313d1f2969b.js +1 -0
  103. fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-1db7a54437db7db0.js +1 -0
  104. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-64236fd0141414fd.js +1 -0
  105. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-8cab04871908cfeb.js +1 -0
  106. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-150d40428245ee0c.js +1 -0
  107. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure-b6c876dceb16ad1b.js +1 -0
  108. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-20cdb2c8a03deae1.js +1 -0
  109. fides/ui-build/static/admin/_next/static/chunks/pages/properties/[id]-54bcc875592d1fb9.js +1 -0
  110. fides/ui-build/static/admin/_next/static/chunks/pages/properties/add-property-644dc669b508a79a.js +1 -0
  111. fides/ui-build/static/admin/_next/static/chunks/pages/properties-9a88220d03e7e02f.js +1 -0
  112. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-70dc1081df37ea69.js +1 -0
  113. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/alpha-3c71b4dbcb6fd6c9.js +1 -0
  114. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about-7cb16e0000dd16c9.js +1 -0
  115. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-a18d8f12ee8dcf5d.js +1 -0
  116. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-dc220e116ad5c09e.js +1 -0
  117. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-55ddc5f25b86f28e.js +1 -0
  118. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domain-records-5ca7decded228bc8.js +1 -0
  119. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-a6fafa1be2834c40.js +1 -0
  120. fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-e633750d2b45ddd6.js +1 -0
  121. fides/ui-build/static/admin/_next/static/chunks/pages/settings/locations-3948686cbd372969.js +1 -0
  122. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-04ece499c22d23f4.js +1 -0
  123. fides/ui-build/static/admin/_next/static/chunks/pages/settings/regulations-7752305084280cca.js +1 -0
  124. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-9e5f9066be6f218d.js +1 -0
  125. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-86de9e6d72098e45.js +1 -0
  126. fides/ui-build/static/admin/_next/static/chunks/pages/systems-cac52e6c3abf6a15.js +1 -0
  127. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-60d5930b6855679b.js +1 -0
  128. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/[id]-b0f4c34752d32c73.js +1 -0
  129. fides/ui-build/static/admin/_next/static/chunks/pages/user-management-7dee83dd6d9292aa.js +1 -0
  130. fides/ui-build/static/admin/_next/static/chunks/{webpack-abfd03ce7f1e55ac.js → webpack-8457bad7859c44f0.js} +1 -1
  131. fides/ui-build/static/admin/_next/static/css/1fdf5c593349dbc6.css +1 -0
  132. fides/ui-build/static/admin/_next/static/f_8LkSZkhtDM14f8gbC0b/_buildManifest.js +1 -0
  133. fides/ui-build/static/admin/add-systems/manual.html +1 -1
  134. fides/ui-build/static/admin/add-systems/multiple.html +1 -1
  135. fides/ui-build/static/admin/add-systems.html +1 -1
  136. fides/ui-build/static/admin/consent/configure/add-vendors.html +1 -1
  137. fides/ui-build/static/admin/consent/configure.html +1 -1
  138. fides/ui-build/static/admin/consent/privacy-experience/[id].html +1 -1
  139. fides/ui-build/static/admin/consent/privacy-experience/new.html +1 -1
  140. fides/ui-build/static/admin/consent/privacy-experience.html +1 -1
  141. fides/ui-build/static/admin/consent/privacy-notices/[id].html +1 -1
  142. fides/ui-build/static/admin/consent/privacy-notices/new.html +1 -1
  143. fides/ui-build/static/admin/consent/privacy-notices.html +1 -1
  144. fides/ui-build/static/admin/consent/properties.html +1 -1
  145. fides/ui-build/static/admin/consent/reporting.html +1 -1
  146. fides/ui-build/static/admin/consent.html +1 -1
  147. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn]/[resourceUrn].html +1 -1
  148. fides/ui-build/static/admin/data-catalog/[systemId]/projects/[projectUrn].html +1 -1
  149. fides/ui-build/static/admin/data-catalog/[systemId]/projects.html +1 -1
  150. fides/ui-build/static/admin/data-catalog/[systemId]/resources/[resourceUrn].html +1 -1
  151. fides/ui-build/static/admin/data-catalog/[systemId]/resources.html +1 -1
  152. fides/ui-build/static/admin/data-catalog.html +1 -1
  153. fides/ui-build/static/admin/data-discovery/action-center/[monitorId]/[systemId].html +1 -1
  154. fides/ui-build/static/admin/data-discovery/action-center/[monitorId].html +1 -1
  155. fides/ui-build/static/admin/data-discovery/action-center.html +1 -1
  156. fides/ui-build/static/admin/data-discovery/activity.html +1 -1
  157. fides/ui-build/static/admin/data-discovery/detection/[resourceUrn].html +1 -1
  158. fides/ui-build/static/admin/data-discovery/detection.html +1 -1
  159. fides/ui-build/static/admin/data-discovery/discovery/[resourceUrn].html +1 -1
  160. fides/ui-build/static/admin/data-discovery/discovery.html +1 -1
  161. fides/ui-build/static/admin/datamap.html +1 -1
  162. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName]/[...subfieldNames].html +1 -1
  163. fides/ui-build/static/admin/dataset/[datasetId]/[collectionName].html +1 -1
  164. fides/ui-build/static/admin/dataset/[datasetId].html +1 -1
  165. fides/ui-build/static/admin/dataset/new.html +1 -1
  166. fides/ui-build/static/admin/dataset.html +1 -1
  167. fides/ui-build/static/admin/datastore-connection/[id].html +1 -1
  168. fides/ui-build/static/admin/datastore-connection/new.html +1 -1
  169. fides/ui-build/static/admin/datastore-connection.html +1 -1
  170. fides/ui-build/static/admin/index.html +1 -1
  171. fides/ui-build/static/admin/integrations/[id].html +1 -1
  172. fides/ui-build/static/admin/integrations.html +1 -1
  173. fides/ui-build/static/admin/lib/fides-ext-gpp.js +1 -1
  174. fides/ui-build/static/admin/lib/fides-headless.js +1 -1
  175. fides/ui-build/static/admin/lib/fides-preview.js +1 -1
  176. fides/ui-build/static/admin/lib/fides-tcf.js +2 -2
  177. fides/ui-build/static/admin/lib/fides.js +2 -2
  178. fides/ui-build/static/admin/login/[provider].html +1 -1
  179. fides/ui-build/static/admin/login.html +1 -1
  180. fides/ui-build/static/admin/messaging/[id].html +1 -1
  181. fides/ui-build/static/admin/messaging/add-template.html +1 -1
  182. fides/ui-build/static/admin/messaging.html +1 -1
  183. fides/ui-build/static/admin/poc/ant-components.html +1 -1
  184. fides/ui-build/static/admin/poc/form-experiments/AntForm.html +1 -1
  185. fides/ui-build/static/admin/poc/form-experiments/FormikAntFormItem.html +1 -1
  186. fides/ui-build/static/admin/poc/form-experiments/FormikControlled.html +1 -1
  187. fides/ui-build/static/admin/poc/form-experiments/FormikField.html +1 -1
  188. fides/ui-build/static/admin/poc/form-experiments/FormikSpreadField.html +1 -1
  189. fides/ui-build/static/admin/poc/forms.html +1 -1
  190. fides/ui-build/static/admin/poc/table-migration.html +1 -1
  191. fides/ui-build/static/admin/privacy-requests/[id].html +1 -1
  192. fides/ui-build/static/admin/privacy-requests/configure/messaging.html +1 -1
  193. fides/ui-build/static/admin/privacy-requests/configure/storage.html +1 -1
  194. fides/ui-build/static/admin/privacy-requests/configure.html +1 -1
  195. fides/ui-build/static/admin/privacy-requests.html +1 -1
  196. fides/ui-build/static/admin/properties/[id].html +1 -1
  197. fides/ui-build/static/admin/properties/add-property.html +1 -1
  198. fides/ui-build/static/admin/properties.html +1 -1
  199. fides/ui-build/static/admin/reporting/datamap.html +1 -1
  200. fides/ui-build/static/admin/settings/about/alpha.html +1 -1
  201. fides/ui-build/static/admin/settings/about.html +1 -1
  202. fides/ui-build/static/admin/settings/consent/[configuration_id]/[purpose_id].html +1 -1
  203. fides/ui-build/static/admin/settings/consent.html +1 -1
  204. fides/ui-build/static/admin/settings/custom-fields.html +1 -1
  205. fides/ui-build/static/admin/settings/domain-records.html +1 -1
  206. fides/ui-build/static/admin/settings/domains.html +1 -1
  207. fides/ui-build/static/admin/settings/email-templates.html +1 -1
  208. fides/ui-build/static/admin/settings/locations.html +1 -1
  209. fides/ui-build/static/admin/settings/organization.html +1 -1
  210. fides/ui-build/static/admin/settings/regulations.html +1 -1
  211. fides/ui-build/static/admin/systems/configure/[id]/test-datasets.html +1 -1
  212. fides/ui-build/static/admin/systems/configure/[id].html +1 -1
  213. fides/ui-build/static/admin/systems.html +1 -1
  214. fides/ui-build/static/admin/taxonomy.html +1 -1
  215. fides/ui-build/static/admin/user-management/new.html +1 -1
  216. fides/ui-build/static/admin/user-management/profile/[id].html +1 -1
  217. fides/ui-build/static/admin/user-management.html +1 -1
  218. fides/api/service/privacy_request/attachment_handling.py +0 -132
  219. fides/api/service/privacy_request/dsr_package/templates/attachments_index.html +0 -33
  220. fides/api/tasks/csv_utils.py +0 -170
  221. fides/api/tasks/encryption_utils.py +0 -42
  222. fides/ui-build/static/admin/_next/static/0S8UTwc7FKVdi3Eb4LgFK/_buildManifest.js +0 -1
  223. fides/ui-build/static/admin/_next/static/chunks/1099-f2199d5b88dd98b4.js +0 -1
  224. fides/ui-build/static/admin/_next/static/chunks/1100-d617215143d70d3d.js +0 -1
  225. fides/ui-build/static/admin/_next/static/chunks/155-8ad794121fef6281.js +0 -1
  226. fides/ui-build/static/admin/_next/static/chunks/1817-ddfdd6ed9529bba6.js +0 -1
  227. fides/ui-build/static/admin/_next/static/chunks/1904-e33cb75edb93d3d3.js +0 -1
  228. fides/ui-build/static/admin/_next/static/chunks/2310-efaa2a52fc487db4.js +0 -1
  229. fides/ui-build/static/admin/_next/static/chunks/2921-19664dd93e2bf1ea.js +0 -1
  230. fides/ui-build/static/admin/_next/static/chunks/3119-9be74ade1504a7e7.js +0 -1
  231. fides/ui-build/static/admin/_next/static/chunks/3505-f6d55694ca5c9816.js +0 -1
  232. fides/ui-build/static/admin/_next/static/chunks/3513-656df06b45fedba3.js +0 -1
  233. fides/ui-build/static/admin/_next/static/chunks/3872-09df90521f7db611.js +0 -1
  234. fides/ui-build/static/admin/_next/static/chunks/3923-3d80020d02819c33.js +0 -1
  235. fides/ui-build/static/admin/_next/static/chunks/401-710009c2a7408818.js +0 -1
  236. fides/ui-build/static/admin/_next/static/chunks/4060-4e196835f56cc326.js +0 -1
  237. fides/ui-build/static/admin/_next/static/chunks/4121-80ac9bcd08f9cd7a.js +0 -1
  238. fides/ui-build/static/admin/_next/static/chunks/4132-76ca1bcf79bf1d77.js +0 -1
  239. fides/ui-build/static/admin/_next/static/chunks/4481-be144b50994f5135.js +0 -1
  240. fides/ui-build/static/admin/_next/static/chunks/5258-8a1f7feddee7a960.js +0 -1
  241. fides/ui-build/static/admin/_next/static/chunks/5404-a8a82985736363f4.js +0 -1
  242. fides/ui-build/static/admin/_next/static/chunks/5487-483a111405f678e0.js +0 -1
  243. fides/ui-build/static/admin/_next/static/chunks/5683-7144f557d701406c.js +0 -1
  244. fides/ui-build/static/admin/_next/static/chunks/6202-86a62d94744e2c18.js +0 -1
  245. fides/ui-build/static/admin/_next/static/chunks/6277-0b1e3d23e97f5e19.js +0 -1
  246. fides/ui-build/static/admin/_next/static/chunks/6853-d9c6c55d8562bc9b.js +0 -1
  247. fides/ui-build/static/admin/_next/static/chunks/69-a4d64cabe750b286.js +0 -1
  248. fides/ui-build/static/admin/_next/static/chunks/6954-8ed05ffdbf2ec086.js +0 -1
  249. fides/ui-build/static/admin/_next/static/chunks/7553-77c9715868d6ad13.js +0 -1
  250. fides/ui-build/static/admin/_next/static/chunks/79-6c977013b6bedc23.js +0 -1
  251. fides/ui-build/static/admin/_next/static/chunks/796-1d77aa88b776ee4e.js +0 -1
  252. fides/ui-build/static/admin/_next/static/chunks/7980-3da0fe6938b0b758.js +0 -1
  253. fides/ui-build/static/admin/_next/static/chunks/8032-4b8bda7166eff954.js +0 -1
  254. fides/ui-build/static/admin/_next/static/chunks/8433-88fd946149dd1f27.js +0 -1
  255. fides/ui-build/static/admin/_next/static/chunks/8499-a65187ae77b7307b.js +0 -1
  256. fides/ui-build/static/admin/_next/static/chunks/9327-eb3b84680abcc660.js +0 -1
  257. fides/ui-build/static/admin/_next/static/chunks/9494-04a0483ed0ddad7c.js +0 -1
  258. fides/ui-build/static/admin/_next/static/chunks/9676.e60a53f1f5890847.js +0 -1
  259. fides/ui-build/static/admin/_next/static/chunks/9767-a3ed98edff04e6ed.js +0 -1
  260. fides/ui-build/static/admin/_next/static/chunks/pages/404-c50dccc133b332a9.js +0 -1
  261. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/manual-3065022f370ec055.js +0 -1
  262. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems/multiple-357ef3b269c576bb.js +0 -1
  263. fides/ui-build/static/admin/_next/static/chunks/pages/add-systems-e8ae218a9d124ba7.js +0 -1
  264. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure/add-vendors-488507bb244cce9d.js +0 -1
  265. fides/ui-build/static/admin/_next/static/chunks/pages/consent/configure-6f0b46ac2b112bfe.js +0 -1
  266. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience/[id]-5024b4ab40ba024c.js +0 -1
  267. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-experience-2b62e5facfc51808.js +0 -1
  268. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/[id]-71791459da78e35d.js +0 -1
  269. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices/new-26a7d52615b1ebb8.js +0 -1
  270. fides/ui-build/static/admin/_next/static/chunks/pages/consent/privacy-notices-25836dd5142f37e8.js +0 -1
  271. fides/ui-build/static/admin/_next/static/chunks/pages/consent/properties-3a9021850242c78f.js +0 -1
  272. fides/ui-build/static/admin/_next/static/chunks/pages/consent/reporting-9a5d3cc5cbb4ef27.js +0 -1
  273. fides/ui-build/static/admin/_next/static/chunks/pages/consent-9e21184279f8e126.js +0 -1
  274. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects/[projectUrn]-64cea013d41e348a.js +0 -1
  275. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog/[systemId]/projects-b02050eb3b7113d4.js +0 -1
  276. fides/ui-build/static/admin/_next/static/chunks/pages/data-catalog-ff211c7a968bda47.js +0 -1
  277. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]/[systemId]-7f7435f28861ee78.js +0 -1
  278. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center/[monitorId]-ec4b981fd9cff542.js +0 -1
  279. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/action-center-18c144223277bc2e.js +0 -1
  280. fides/ui-build/static/admin/_next/static/chunks/pages/data-discovery/activity-e18f14b8d598e942.js +0 -1
  281. fides/ui-build/static/admin/_next/static/chunks/pages/datamap-9af01b6cf4cbe8af.js +0 -1
  282. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]/[...subfieldNames]-1987ef0d3c687aaa.js +0 -1
  283. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]/[collectionName]-979828f48148b37c.js +0 -1
  284. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/[datasetId]-e85c3537d3aade4a.js +0 -1
  285. fides/ui-build/static/admin/_next/static/chunks/pages/dataset/new-6d44abbe7d454435.js +0 -1
  286. fides/ui-build/static/admin/_next/static/chunks/pages/dataset-42f276660c107e1c.js +0 -1
  287. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/[id]-18ff06fc09c22c33.js +0 -1
  288. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection/new-979eff6888e42b6b.js +0 -1
  289. fides/ui-build/static/admin/_next/static/chunks/pages/datastore-connection-343a3830b2d4cf22.js +0 -1
  290. fides/ui-build/static/admin/_next/static/chunks/pages/index-737b0c430bf2f7a0.js +0 -1
  291. fides/ui-build/static/admin/_next/static/chunks/pages/integrations/[id]-63361d914d70d647.js +0 -1
  292. fides/ui-build/static/admin/_next/static/chunks/pages/integrations-fd73f276dad7a06c.js +0 -1
  293. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/[id]-91e865a65a88d1a4.js +0 -1
  294. fides/ui-build/static/admin/_next/static/chunks/pages/messaging/add-template-529c7e09b073edd2.js +0 -1
  295. fides/ui-build/static/admin/_next/static/chunks/pages/messaging-6226faba9595da71.js +0 -1
  296. fides/ui-build/static/admin/_next/static/chunks/pages/poc/ant-components-0f7d4390e01f4ffb.js +0 -1
  297. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/AntForm-a4e470f75a5553f8.js +0 -1
  298. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikAntFormItem-d814c1c56b4b04d8.js +0 -1
  299. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikControlled-0f68f2be09df2c76.js +0 -1
  300. fides/ui-build/static/admin/_next/static/chunks/pages/poc/form-experiments/FormikField-6b63d5c992466891.js +0 -1
  301. fides/ui-build/static/admin/_next/static/chunks/pages/poc/forms-88eb9b98e8e4b426.js +0 -1
  302. fides/ui-build/static/admin/_next/static/chunks/pages/poc/table-migration-a3da91fd04eec8f5.js +0 -1
  303. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/[id]-b2ea863afce1d7f0.js +0 -1
  304. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/messaging-0831dfaa65ce0d50.js +0 -1
  305. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure/storage-709676f00a491bca.js +0 -1
  306. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests/configure-0eac9951504b46a7.js +0 -1
  307. fides/ui-build/static/admin/_next/static/chunks/pages/privacy-requests-88e20023c30113df.js +0 -1
  308. fides/ui-build/static/admin/_next/static/chunks/pages/properties/[id]-3acc3107e9a21260.js +0 -1
  309. fides/ui-build/static/admin/_next/static/chunks/pages/properties/add-property-2bf13ee02d8d5ab9.js +0 -1
  310. fides/ui-build/static/admin/_next/static/chunks/pages/properties-822eac07220f55f8.js +0 -1
  311. fides/ui-build/static/admin/_next/static/chunks/pages/reporting/datamap-f85f92726a61a668.js +0 -1
  312. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about/alpha-88999260f855b448.js +0 -1
  313. fides/ui-build/static/admin/_next/static/chunks/pages/settings/about-928b0b69e05fd430.js +0 -1
  314. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent/[configuration_id]/[purpose_id]-e090903a572cba68.js +0 -1
  315. fides/ui-build/static/admin/_next/static/chunks/pages/settings/consent-f0c8e4eced9f5cc5.js +0 -1
  316. fides/ui-build/static/admin/_next/static/chunks/pages/settings/custom-fields-f7a271ee53cb4e51.js +0 -1
  317. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domain-records-611980eee1ce9c8a.js +0 -1
  318. fides/ui-build/static/admin/_next/static/chunks/pages/settings/domains-382cb6df12684bf8.js +0 -1
  319. fides/ui-build/static/admin/_next/static/chunks/pages/settings/email-templates-5d664f2a0f11b626.js +0 -1
  320. fides/ui-build/static/admin/_next/static/chunks/pages/settings/locations-ba569d22e1e3f6df.js +0 -1
  321. fides/ui-build/static/admin/_next/static/chunks/pages/settings/organization-dd903f6e03c4ee4e.js +0 -1
  322. fides/ui-build/static/admin/_next/static/chunks/pages/settings/regulations-fae8ecf7878bad2d.js +0 -1
  323. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]/test-datasets-493dc9b4595c9fb4.js +0 -1
  324. fides/ui-build/static/admin/_next/static/chunks/pages/systems/configure/[id]-2b540203a2d7b59d.js +0 -1
  325. fides/ui-build/static/admin/_next/static/chunks/pages/systems-a278608ba0ddc66c.js +0 -1
  326. fides/ui-build/static/admin/_next/static/chunks/pages/taxonomy-6d790458dd21dde7.js +0 -1
  327. fides/ui-build/static/admin/_next/static/chunks/pages/user-management/profile/[id]-eb30c9230a9ce9cc.js +0 -1
  328. fides/ui-build/static/admin/_next/static/chunks/pages/user-management-381146aa81e3ffea.js +0 -1
  329. fides/ui-build/static/admin/_next/static/css/c3377f99bf988d68.css +0 -1
  330. fides/ui-build/static/admin/images/connector-logos/salesforce.svg +0 -41
  331. {ethyca_fides-2.63.3b0.dist-info → ethyca_fides-2.63.3rc0.dist-info}/WHEEL +0 -0
  332. {ethyca_fides-2.63.3b0.dist-info → ethyca_fides-2.63.3rc0.dist-info}/entry_points.txt +0 -0
  333. {ethyca_fides-2.63.3b0.dist-info → ethyca_fides-2.63.3rc0.dist-info}/licenses/LICENSE +0 -0
  334. {ethyca_fides-2.63.3b0.dist-info → ethyca_fides-2.63.3rc0.dist-info}/top_level.txt +0 -0
  335. /fides/ui-build/static/admin/_next/static/{0S8UTwc7FKVdi3Eb4LgFK → f_8LkSZkhtDM14f8gbC0b}/_ssgManifest.js +0 -0
@@ -1,7 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from io import BytesIO
4
- from typing import IO, Any, Dict, Optional, Tuple, Union
3
+ from typing import IO, Any, Dict, Tuple, Union
5
4
 
6
5
  from boto3.s3.transfer import TransferConfig
7
6
  from botocore.exceptions import ClientError, ParamValidationError
@@ -35,7 +34,7 @@ def maybe_get_s3_client(
35
34
 
36
35
 
37
36
  def create_presigned_url_for_s3(
38
- s3_client: Any, bucket_name: str, file_key: str, ttl_seconds: Optional[int] = None
37
+ s3_client: Any, bucket_name: str, file_key: str
39
38
  ) -> AnyHttpUrlString:
40
39
  """
41
40
  Generates a presigned URL to share an S3 object
@@ -46,16 +45,10 @@ def create_presigned_url_for_s3(
46
45
  :return: Presigned URL as string.
47
46
  """
48
47
  params = {"Bucket": bucket_name, "Key": file_key}
49
- if ttl_seconds:
50
- if ttl_seconds > 604800:
51
- raise ValueError("TTL must be less than 7 days")
52
- expires_in = ttl_seconds
53
- else:
54
- expires_in = CONFIG.security.subject_request_download_link_ttl_seconds
55
48
  response = s3_client.generate_presigned_url(
56
49
  "get_object",
57
50
  Params=params,
58
- ExpiresIn=expires_in,
51
+ ExpiresIn=CONFIG.security.subject_request_download_link_ttl_seconds,
59
52
  )
60
53
 
61
54
  # The response contains the presigned URL
@@ -75,7 +68,7 @@ def generic_upload_to_s3( # pylint: disable=R0913
75
68
  file_key: str,
76
69
  auth_method: str,
77
70
  document: IO[bytes],
78
- size_threshold: int = LARGE_FILE_THRESHOLD, # 25 MB threshold
71
+ size_threshold: int = LARGE_FILE_THRESHOLD, # 5 MB threshold
79
72
  ) -> Tuple[int, AnyHttpUrlString]:
80
73
  """
81
74
  Uploads file like objects to S3.
@@ -137,8 +130,7 @@ def generic_retrieve_from_s3(
137
130
  file_key: str,
138
131
  auth_method: str,
139
132
  get_content: bool = False,
140
- ttl_seconds: Optional[int] = None,
141
- ) -> Tuple[int, Union[str, IO[bytes]]]:
133
+ ) -> Tuple[int, Union[str, bytes]]:
142
134
  """
143
135
  Retrieves a file from S3 and returns its size and either a presigned URL or the actual content.
144
136
 
@@ -156,23 +148,17 @@ def generic_retrieve_from_s3(
156
148
  s3_client = get_s3_client(auth_method, storage_secrets)
157
149
 
158
150
  try:
159
- # Get file size using head_object
160
- size_response = s3_client.head_object(Bucket=bucket_name, Key=file_key)
161
- # If the file is less than 25MB, we can get the content otherwise return the presigned URL
162
- if get_content and size_response["ContentLength"] <= LARGE_FILE_THRESHOLD:
163
- # Get the actual content using download_fileobj
164
- file_obj = BytesIO()
165
- s3_client.download_fileobj(
166
- Bucket=bucket_name, Key=file_key, Fileobj=file_obj
167
- )
168
- file_obj.seek(0) # Reset file pointer to beginning
169
- return int(size_response["ContentLength"]), file_obj
151
+ if get_content:
152
+ # Get the actual content
153
+ response = s3_client.get_object(Bucket=bucket_name, Key=file_key)
154
+ content = response["Body"].read()
155
+ return response["ContentLength"], content
170
156
 
171
157
  # Get presigned URL
172
- presigned_url = create_presigned_url_for_s3(
173
- s3_client, bucket_name, file_key, ttl_seconds
174
- )
175
- return int(size_response["ContentLength"]), str(presigned_url)
158
+ presigned_url = create_presigned_url_for_s3(s3_client, bucket_name, file_key)
159
+ # Get file size
160
+ response = s3_client.head_object(Bucket=bucket_name, Key=file_key)
161
+ return int(response["ContentLength"]), str(presigned_url)
176
162
  except ClientError as e:
177
163
  logger.error(f"Error retrieving file from S3: {e}")
178
164
  raise e
@@ -3,10 +3,6 @@ from enum import Enum as EnumType
3
3
 
4
4
  from loguru import logger
5
5
 
6
- # This is the max file size for downloading the content of an attachment.
7
- # This is an industry standard used by companies like Google and Microsoft.
8
- LARGE_FILE_THRESHOLD = 25 * 1024 * 1024 # 25 MB
9
-
10
6
 
11
7
  class AllowedFileType(EnumType):
12
8
  """
@@ -28,49 +24,15 @@ class AllowedFileType(EnumType):
28
24
 
29
25
  LOCAL_FIDES_UPLOAD_DIRECTORY = "fides_uploads"
30
26
 
27
+ # Default to 10MB if not specified in environment
28
+ LARGE_FILE_THRESHOLD = 10 * 1024 * 1024 # 10 MB threshold
31
29
 
32
- def get_local_filename(file_key: str) -> str:
33
- """Verifies that the local storage directory exists and returns the local filepath.
34
-
35
- This extra security checks are to prevent directory traversal attacks and "complete business and technical destruction".
36
- Thanks Claude.
37
-
38
- Args:
39
- file_key: The key/path for the file
40
-
41
- Returns:
42
- The full local filepath
43
-
44
- Raises:
45
- ValueError: If the file_key is invalid or would result in a path outside the upload directory
46
- """
47
- # Basic validation
48
- if not file_key:
49
- raise ValueError("File key cannot be empty")
50
-
51
- # Security checks before normalization
52
- if file_key.startswith("/"):
53
- raise ValueError("Invalid file key: cannot start with '/'")
54
-
55
- # Normalize the path to handle any path separators consistently
56
- # First normalize using os.path.normpath to handle any redundant separators
57
- normalized_key = os.path.normpath(file_key)
58
- # Then convert all separators to forward slashes for consistency
59
- normalized_key = normalized_key.replace("\\", "/")
60
30
 
61
- # Additional security: ensure the final path is within the upload directory
62
- final_path = os.path.join(LOCAL_FIDES_UPLOAD_DIRECTORY, normalized_key)
63
- if not os.path.abspath(final_path).startswith(
64
- os.path.abspath(LOCAL_FIDES_UPLOAD_DIRECTORY)
65
- ):
66
- raise ValueError(
67
- "Invalid file key: would result in path outside upload directory"
68
- )
69
-
70
- # Create all necessary directories
71
- os.makedirs(os.path.dirname(final_path), exist_ok=True)
72
-
73
- return final_path
31
+ def get_local_filename(file_key: str) -> str:
32
+ """Verifies that the local storage directory exists and returns the local filepath"""
33
+ if not os.path.exists(LOCAL_FIDES_UPLOAD_DIRECTORY):
34
+ os.makedirs(LOCAL_FIDES_UPLOAD_DIRECTORY)
35
+ return f"{LOCAL_FIDES_UPLOAD_DIRECTORY}/{file_key}"
74
36
 
75
37
 
76
38
  def get_allowed_file_type_or_raise(file_key: str) -> str:
@@ -1,20 +1,23 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import json
4
+ import secrets
4
5
  import zipfile
5
6
  from io import BytesIO
6
- from typing import TYPE_CHECKING, Any, Optional
7
+ from typing import TYPE_CHECKING, Any, Dict, Optional, Union
7
8
 
9
+ import pandas as pd
8
10
  from botocore.exceptions import ClientError, ParamValidationError
9
11
  from fideslang.validation import AnyHttpUrlString
10
12
  from loguru import logger
11
13
 
12
14
  from fides.api.common_exceptions import StorageUploadError
15
+ from fides.api.cryptography.cryptographic_util import bytes_to_b64_str
13
16
  from fides.api.schemas.storage.storage import ResponseFormat, StorageSecrets
14
17
  from fides.api.service.privacy_request.dsr_package.dsr_report_builder import (
15
18
  DsrReportBuilder,
16
19
  )
17
- from fides.api.service.storage.gcs import get_gcs_blob
20
+ from fides.api.service.storage.gcs import get_gcs_client
18
21
  from fides.api.service.storage.s3 import (
19
22
  create_presigned_url_for_s3,
20
23
  generic_upload_to_s3,
@@ -23,9 +26,11 @@ from fides.api.service.storage.util import (
23
26
  LOCAL_FIDES_UPLOAD_DIRECTORY,
24
27
  get_local_filename,
25
28
  )
26
- from fides.api.tasks.csv_utils import write_csv_to_zip
27
- from fides.api.tasks.encryption_utils import encrypt_access_request_results
28
29
  from fides.api.util.aws_util import get_s3_client
30
+ from fides.api.util.cache import get_cache, get_encryption_cache_key
31
+ from fides.api.util.encryption.aes_gcm_encryption_scheme import (
32
+ encrypt_to_bytes_verify_secrets_length,
33
+ )
29
34
  from fides.api.util.storage_util import StorageJSONEncoder
30
35
  from fides.config import CONFIG
31
36
 
@@ -33,8 +38,33 @@ if TYPE_CHECKING:
33
38
  from fides.api.models.privacy_request import PrivacyRequest
34
39
 
35
40
 
41
+ def encrypt_access_request_results(data: Union[str, bytes], request_id: str) -> str:
42
+ """Encrypt data with encryption key if provided, otherwise return unencrypted data"""
43
+ cache = get_cache()
44
+ encryption_cache_key = get_encryption_cache_key(
45
+ privacy_request_id=request_id,
46
+ encryption_attr="key",
47
+ )
48
+ if isinstance(data, bytes):
49
+ data = data.decode(CONFIG.security.encoding)
50
+
51
+ encryption_key: str | None = cache.get(encryption_cache_key)
52
+ if not encryption_key:
53
+ return data
54
+
55
+ bytes_encryption_key: bytes = encryption_key.encode(
56
+ encoding=CONFIG.security.encoding
57
+ )
58
+ nonce: bytes = secrets.token_bytes(CONFIG.security.aes_gcm_nonce_length)
59
+ # b64encode the entire nonce and the encrypted message together
60
+ return bytes_to_b64_str(
61
+ nonce
62
+ + encrypt_to_bytes_verify_secrets_length(data, bytes_encryption_key, nonce)
63
+ )
64
+
65
+
36
66
  def write_to_in_memory_buffer(
37
- resp_format: str, data: dict[str, Any], privacy_request: PrivacyRequest
67
+ resp_format: str, data: Dict[str, Any], privacy_request: PrivacyRequest
38
68
  ) -> BytesIO:
39
69
  """Write JSON/CSV data to in-memory file-like object to be passed to S3 or GCS. Encrypt data if encryption key/nonce
40
70
  has been cached for the given privacy request id
@@ -43,62 +73,46 @@ def write_to_in_memory_buffer(
43
73
  :param data: Dict
44
74
  :param request_id: str, The privacy request id
45
75
  """
46
-
47
76
  logger.debug("Writing data to in-memory buffer")
48
- try:
49
- if resp_format == ResponseFormat.html.value:
50
- return DsrReportBuilder(
51
- privacy_request=privacy_request,
52
- dsr_data=data,
53
- ).generate()
54
-
55
- if resp_format == ResponseFormat.json.value:
56
- return convert_dict_to_encrypted_json(data, privacy_request.id)
57
-
58
- if resp_format == ResponseFormat.csv.value:
59
- zipped_csvs = BytesIO()
60
- with zipfile.ZipFile(zipped_csvs, "w") as f:
61
- write_csv_to_zip(f, data, privacy_request.id)
62
- zipped_csvs.seek(0)
63
- return zipped_csvs
64
- except Exception as e:
65
- logger.error(f"Error writing data to in-memory buffer: {str(e)}")
66
- raise e
67
-
68
- raise NotImplementedError(f"No handling for response format {resp_format}.")
69
-
70
-
71
- def convert_dict_to_encrypted_json(
72
- data: dict[str, Any], privacy_request_id: str
73
- ) -> BytesIO:
74
- """Convert data to JSON and encrypt it.
75
-
76
- Args:
77
- data: The data to convert and encrypt
78
- privacy_request_id: The ID of the privacy request for encryption
79
77
 
80
- Returns:
81
- BytesIO: A file-like object containing the encrypted JSON data
82
-
83
- Raises:
84
- Exception: If JSON conversion fails
85
- """
86
- try:
78
+ if resp_format == ResponseFormat.json.value:
87
79
  json_str = json.dumps(data, indent=2, default=StorageJSONEncoder().default)
88
80
  return BytesIO(
89
- encrypt_access_request_results(json_str, privacy_request_id).encode(
81
+ encrypt_access_request_results(json_str, privacy_request.id).encode(
90
82
  CONFIG.security.encoding
91
83
  )
92
84
  )
93
- except Exception as e:
94
- logger.error(f"Error converting data to JSON: {str(e)}")
95
- logger.error(f"Data that failed to convert: {data}")
96
- raise
85
+
86
+ if resp_format == ResponseFormat.csv.value:
87
+ zipped_csvs = BytesIO()
88
+ with zipfile.ZipFile(zipped_csvs, "w") as f:
89
+ for key in data:
90
+ df = pd.json_normalize(data[key])
91
+ buffer = BytesIO()
92
+ df.to_csv(buffer, index=False, encoding=CONFIG.security.encoding)
93
+ buffer.seek(0)
94
+ f.writestr(
95
+ f"{key}.csv",
96
+ encrypt_access_request_results(
97
+ buffer.getvalue(), privacy_request.id
98
+ ),
99
+ )
100
+
101
+ zipped_csvs.seek(0)
102
+ return zipped_csvs
103
+
104
+ if resp_format == ResponseFormat.html.value:
105
+ return DsrReportBuilder(
106
+ privacy_request=privacy_request,
107
+ dsr_data=data,
108
+ ).generate()
109
+
110
+ raise NotImplementedError(f"No handling for response format {resp_format}.")
97
111
 
98
112
 
99
113
  def upload_to_s3( # pylint: disable=R0913
100
- storage_secrets: dict[StorageSecrets, Any],
101
- data: dict,
114
+ storage_secrets: Dict[StorageSecrets, Any],
115
+ data: Dict,
102
116
  bucket_name: str,
103
117
  file_key: str,
104
118
  resp_format: str,
@@ -126,22 +140,18 @@ def upload_to_s3( # pylint: disable=R0913
126
140
  "storage", {}
127
141
  ).get("aws_s3_assume_role_arn"),
128
142
  )
129
- except (ClientError, ParamValidationError) as e:
130
- logger.error(f"Error getting s3 client: {str(e)}")
131
- raise StorageUploadError(f"Error getting s3 client: {str(e)}")
132
143
 
133
- # handles file chunking
134
- try:
135
- s3_client.upload_fileobj(
136
- Fileobj=write_to_in_memory_buffer(resp_format, data, privacy_request),
137
- Bucket=bucket_name,
138
- Key=file_key,
139
- )
140
- except ClientError as e:
141
- logger.error("Encountered error while uploading s3 object: {}", e)
142
- raise StorageUploadError(f"Error uploading to S3: {e}")
144
+ # handles file chunking
145
+ try:
146
+ s3_client.upload_fileobj(
147
+ Fileobj=write_to_in_memory_buffer(resp_format, data, privacy_request),
148
+ Bucket=bucket_name,
149
+ Key=file_key,
150
+ )
151
+ except Exception as e:
152
+ logger.error("Encountered error while uploading s3 object: {}", e)
153
+ raise e
143
154
 
144
- try:
145
155
  presigned_url: AnyHttpUrlString = create_presigned_url_for_s3(
146
156
  s3_client, bucket_name, file_key
147
157
  )
@@ -152,11 +162,13 @@ def upload_to_s3( # pylint: disable=R0913
152
162
  "Encountered error while uploading and generating link for s3 object: {}", e
153
163
  )
154
164
  raise StorageUploadError(f"Error uploading to S3: {e}")
165
+ except ParamValidationError as e:
166
+ raise StorageUploadError(f"The parameters you provided are incorrect: {e}")
155
167
 
156
168
 
157
169
  def upload_to_gcs(
158
- storage_secrets: dict,
159
- data: dict,
170
+ storage_secrets: Dict,
171
+ data: Dict,
160
172
  bucket_name: str,
161
173
  file_key: str,
162
174
  resp_format: str,
@@ -165,30 +177,24 @@ def upload_to_gcs(
165
177
  ) -> str:
166
178
  """Uploads access request data to a Google Cloud Storage bucket"""
167
179
  logger.info("Starting Google Cloud Storage upload of {}", file_key)
168
- content_type = {
169
- ResponseFormat.json.value: "application/json",
170
- ResponseFormat.csv.value: "application/zip",
171
- ResponseFormat.html.value: "application/zip",
172
- }
173
-
174
- blob = get_gcs_blob(auth_method, storage_secrets, bucket_name, file_key)
175
- in_memory_file = write_to_in_memory_buffer(resp_format, data, privacy_request)
176
180
 
177
181
  try:
182
+ storage_client = get_gcs_client(auth_method, storage_secrets)
183
+ bucket = storage_client.bucket(bucket_name)
184
+
185
+ blob = bucket.blob(file_key)
186
+ in_memory_file = write_to_in_memory_buffer(resp_format, data, privacy_request)
187
+ content_type = {
188
+ ResponseFormat.json.value: "application/json",
189
+ ResponseFormat.csv.value: "application/zip",
190
+ ResponseFormat.html.value: "application/zip",
191
+ }
178
192
  blob.upload_from_string(
179
193
  in_memory_file.getvalue(), content_type=content_type[resp_format]
180
194
  )
181
- except Exception as e:
182
- logger.error("Error uploading to GCS: {}", str(e))
183
- logger.error(
184
- "Encountered error while uploading and generating link for Google Cloud Storage object: {}",
185
- e,
186
- )
187
- raise
188
195
 
189
- logger.info("File {} uploaded to {}", file_key, blob.public_url)
196
+ logger.info("File {} uploaded to {}", file_key, blob.public_url)
190
197
 
191
- try:
192
198
  presigned_url = blob.generate_signed_url(
193
199
  version="v4",
194
200
  expiration=CONFIG.security.subject_request_download_link_ttl_seconds,
@@ -204,7 +210,7 @@ def upload_to_gcs(
204
210
 
205
211
 
206
212
  def upload_to_local(
207
- data: dict,
213
+ data: Dict,
208
214
  file_key: str,
209
215
  privacy_request: PrivacyRequest,
210
216
  resp_format: str = ResponseFormat.json.value,
@@ -28,7 +28,6 @@ ALL_OBJECT_FIELDS = "all_object_fields"
28
28
  CUSTOM_PRIVACY_REQUEST_FIELDS = "custom_privacy_request_fields"
29
29
  UUID = "uuid"
30
30
  ISO_8601_DATETIME = "iso_8601_datetime"
31
- FIELD_LIST = "field_list"
32
31
  REPLY_TO = "reply_to"
33
32
  REPLY_TO_TOKEN = "reply_to_token"
34
33
 
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/c3377f99bf988d68.css" as="style"/><link rel="stylesheet" href="/_next/static/css/c3377f99bf988d68.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-abfd03ce7f1e55ac.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-0e0fdbcc0ec1c76b.js" defer=""></script><script src="/_next/static/chunks/pages/404-c50dccc133b332a9.js" defer=""></script><script src="/_next/static/0S8UTwc7FKVdi3Eb4LgFK/_buildManifest.js" defer=""></script><script src="/_next/static/0S8UTwc7FKVdi3Eb4LgFK/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"0S8UTwc7FKVdi3Eb4LgFK","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/1fdf5c593349dbc6.css" as="style"/><link rel="stylesheet" href="/_next/static/css/1fdf5c593349dbc6.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-8457bad7859c44f0.js" defer=""></script><script src="/_next/static/chunks/framework-c92fc3344e6fd165.js" defer=""></script><script src="/_next/static/chunks/main-090643377c8254e6.js" defer=""></script><script src="/_next/static/chunks/pages/_app-f70bffa5a7903c46.js" defer=""></script><script src="/_next/static/chunks/pages/404-ec04f826f3dd79ea.js" defer=""></script><script src="/_next/static/f_8LkSZkhtDM14f8gbC0b/_buildManifest.js" defer=""></script><script src="/_next/static/f_8LkSZkhtDM14f8gbC0b/_ssgManifest.js" defer=""></script><style>.data-ant-cssinjs-cache-path{content:"";}</style></head><body><div id="__next"><div style="height:100%;display:flex"></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"f_8LkSZkhtDM14f8gbC0b","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1099],{95372:function(e){e.exports=function(e,t,n,a){for(var i=e.length,r=n+(a?1:-1);a?r--:++r<i;)if(t(e[r],r,e))return r;return -1}},56632:function(e,t,n){var a=n(89278),i=n(80068),r=n(50098);e.exports=function(e){return function(t,n,o){var s=Object(t);if(!i(t)){var l=a(n,3);t=r(t),n=function(e){return l(s[e],e,s)}}var c=e(t,n,o);return c>-1?s[l?t[c]:c]:void 0}}},64925:function(e,t,n){var a=n(56632)(n(66259));e.exports=a},66259:function(e,t,n){var a=n(95372),i=n(89278),r=n(47991),o=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return -1;var l=null==n?0:r(n);return l<0&&(l=o(s+l,0)),a(e,i(t,3),l)}},94919:function(e,t,n){var a=n(91936),i=1/0;e.exports=function(e){return e?(e=a(e))===i||e===-i?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}},47991:function(e,t,n){var a=n(94919);e.exports=function(e){var t=a(e),n=t%1;return t==t?n?t-n:t:0}},12627:function(e,t,n){"use strict";var a=n(24246),i=n(79283),r=n(34929);t.Z=e=>{let{selectedTaxonomies:t,showDisabled:n=!1,...o}=e,{getDataCategoryDisplayNameProps:s,getDataCategories:l}=(0,r.Z)(),c=(n?l():l().filter(e=>e.active)).filter(e=>!t.includes(e.fides_key)).map(e=>{let{name:t,primaryName:n}=s(e.fides_key);return{value:e.fides_key,name:t,primaryName:n,description:e.description||""}});return(0,a.jsx)(i.l,{options:c,...o})}},79283:function(e,t,n){"use strict";n.d(t,{l:function(){return l}});var a=n(24246),i=n(4454),r=n(72707),o=n.n(r);let s=e=>{let{data:t}=e;return(0,a.jsxs)(i.jqI,{gap:12,title:"".concat(t.primaryName||"").concat(t.primaryName?": ":"").concat(t.name," - ").concat(t.description),children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("strong",{children:t.primaryName||t.name}),t.primaryName&&": ".concat(t.name)]}),(0,a.jsx)("em",{children:t.description})]})},l=e=>{let{options:t,...n}=e,r=null==t?void 0:t.map(e=>({...e,className:o().option}));return(0,a.jsx)(i.WPr,{options:r,autoFocus:!0,variant:"borderless",optionRender:s,dropdownStyle:{minWidth:"500px"},className:"w-full p-0","data-testid":"taxonomy-select",...n})}},34929:function(e,t,n){"use strict";var a=n(24246),i=n(64925),r=n.n(i),o=n(27378),s=n(16134),l=n(30002),c=n(28079),d=n(57072);let u=()=>{let{isLoading:e}=(0,c.fd)(),t=(0,s.C)(c.U3),{isLoading:n}=(0,d.MO)(),a=(0,s.C)(d.qb),{isLoading:i}=(0,l.te)();return{dataUses:t,dataSubjects:(0,s.C)(l.ZL),dataCategories:a,isLoading:e||n||i}};t.Z=()=>{let{dataUses:e,dataCategories:t,dataSubjects:n,isLoading:i}=u(),s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.split(".").slice(0,t).join(".")},l=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=t(e);if(!a)return{};let i=t(s(e,n)),r=!!a.parent_key;return{name:a.name||void 0,primaryName:r&&(null==i?void 0:i.name)!==a.name&&(null==i?void 0:i.name)||void 0}},c=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,{name:i,primaryName:r}=l(e,t,n);return i?r?(0,a.jsxs)(o.Fragment,{children:[(0,a.jsxs)("strong",{children:[r,":"]})," ",i]},e):(0,a.jsx)("strong",{children:i},e):e},d=t=>r()(e,{fides_key:t}),f=e=>r()(t,{fides_key:e}),g=e=>r()(n,{fides_key:e});return{getDataUses:()=>e,getDataUseByKey:d,getDataUseDisplayName:e=>c(e,d,1),getDataUseDisplayNameProps:e=>l(e,d,1),getDataCategories:()=>t,getDataCategoryByKey:f,getDataCategoryDisplayName:e=>c(e,f,2),getDataCategoryDisplayNameProps:e=>l(e,f,2),getDataSubjects:()=>n,getDataSubjectByKey:g,getDataSubjectDisplayName:e=>{let t=g(e);return t?t.name:e},getPrimaryKey:s,isLoading:i}}},61099:function(e,t,n){"use strict";var a=n(24246),i=n(4454),r=n(27378),o=n(12627),s=n(34929),l=n(26183),c=n(70675);t.Z=e=>{var t,n,d;let{resource:u}=e,[f,g]=(0,r.useState)(!1),{getDataCategoryDisplayName:p}=(0,s.Z)(),[m]=(0,c.NA)(),v=(null===(t=u.classifications)||void 0===t?void 0:t.length)?u.classifications[0].label:null,x=null!==(d=u.user_assigned_data_categories)&&void 0!==d?d:[],h=!v&&!(null==x?void 0:x.length),_=null===(n=u.sub_field_urns)||void 0===n?void 0:n.length,j=e=>{m({staged_resource_urn:u.urn,monitor_config_id:u.monitor_config_id,user_assigned_data_categories:[...x,e]})},y=e=>{var t;m({staged_resource_urn:u.urn,monitor_config_id:u.monitor_config_id,user_assigned_data_categories:null!==(t=null==x?void 0:x.filter(t=>t!==e))&&void 0!==t?t:[]})},b=!f&&!!x.length,N=!f&&!!v&&!x.length;return(0,a.jsxs)(l.Z,{"data-testid":"edit-category-cell",children:[h&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.j8w,{"data-testid":"no-classifications",color:"white",children:"None"}),!_&&(0,a.jsx)(i.j8w,{onClick:()=>g(!0),addable:!0,"data-testid":"taxonomy-add-btn","aria-label":"Add category"})]}),b&&(0,a.jsxs)(a.Fragment,{children:[x.map(e=>(0,a.jsx)(i.j8w,{"data-testid":"user-classification-".concat(e),color:"white",closable:!0,onClose:()=>y(e),closeButtonLabel:"Remove category",children:p(e)},e)),(0,a.jsx)(i.j8w,{onClick:()=>g(!0),addable:!0,"data-testid":"taxonomy-add-btn","aria-label":"Add category"})]}),N&&(0,a.jsxs)(i.j8w,{onClick:()=>g(!0),color:"white","data-testid":"classification-".concat(v),hasSparkle:!0,children:[p(v),(0,a.jsx)(i.PJP.I8b,{size:10})]}),f&&(0,a.jsx)(i.xuv,{className:"select-wrapper",position:"absolute",zIndex:10,top:"0",left:"0",width:"100%",height:"max",bgColor:"#fff",children:(0,a.jsx)(o.Z,{selectedTaxonomies:x,onChange:e=>{g(!1),j(e)},onBlur:()=>g(!1),open:!0})})]})}},26183:function(e,t,n){"use strict";var a=n(24246);n(27378),t.Z=e=>{let{children:t,className:n,...i}=e;return(0,a.jsx)("div",{className:"relative flex w-full flex-wrap items-center gap-2 overflow-x-auto py-2 ".concat(n||""),...i,children:t})}},72707:function(e){e.exports={option:"TaxonomySelect_option__vY6v2"}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1100],{58754:function(e,t,n){var r=n(24246),i=n(4454),s=n(70788);t.Z=e=>{let{heading:t,breadcrumbItems:n,isSticky:a=!0,children:l,rightContent:o,style:u,...c}=e;return(0,r.jsxs)("div",{...c,style:a?{position:"sticky",top:"-24px",paddingTop:"24px",paddingBottom:"24px",paddingLeft:"40px",marginLeft:"-40px",paddingRight:"40px",marginRight:"-40px",marginTop:"-24px",left:0,zIndex:20,backgroundColor:"white",...u}:{paddingBottom:"24px",...u},children:[(0,r.jsxs)(i.jqI,{justify:"space-between",children:["string"==typeof t?(0,r.jsx)(i.lQT,{className:n||l?"pb-4":void 0,level:1,"data-testid":"page-heading",children:t}):t,o&&(0,r.jsx)("div",{"data-testid":"page-header-right-content",children:o})]}),!!n&&(0,r.jsx)(s.m,{className:l?"pb-4":void 0,items:n,"data-testid":"page-breadcrumb"}),l]})}},10342:function(e,t,n){var r=n(24246),i=n(4454),s=n(46238);t.Z=e=>{let{title:t,tooltip:n,children:a,...l}=e;return(0,r.jsxs)(i.xuv,{borderRadius:"md",border:"1px solid",borderColor:"gray.200",...l,children:[(0,r.jsxs)(i.X6q,{as:"h3",fontSize:"sm",fontWeight:"semibold",color:"gray.700",py:4,px:6,backgroundColor:"gray.50",borderRadius:"md",textAlign:"left",children:[t,n?(0,r.jsx)(i.xvT,{as:"span",mx:1,children:(0,r.jsx)(s.b,{label:n})}):void 0]}),(0,r.jsx)(i.Kqy,{p:6,spacing:6,children:a})]})}},70788:function(e,t,n){n.d(t,{m:function(){return u}});var r=n(24246),i=n(4454),s=n(79894),a=n.n(s),l=n(27378);let{Text:o}=i.AntTypography,u=e=>{let{items:t,...n}=e,s=(0,l.useMemo)(()=>null==t?void 0:t.map((e,n)=>{let s=n===t.length-1,l={...e},u=l.onClick&&!l.href;return("string"==typeof l.title&&(l.title=(0,r.jsx)(o,{style:{color:"inherit",maxWidth:s?void 0:400},ellipsis:!s,children:l.title})),u)?l.title=(0,r.jsx)(i.wpx,{type:"text",size:"small",icon:l.icon,onClick:l.onClick,className:"ant-breadcrumb-link -mt-px px-1 text-inherit",children:l.title}):(l.icon&&(l.title=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"anticon align-text-bottom",children:l.icon}),l.title]})),l.href&&l.title&&(l.title=(0,r.jsx)(a(),{href:l.href,className:"ant-breadcrumb-link",children:l.title}),delete l.href)),l}),[t]);return(0,r.jsx)(i.zrq,{items:s,...n})}},67810:function(e,t,n){n.d(t,{Z:function(){return s}}),(r=i||(i={})).PRIVACY_REQUEST_REVIEW_APPROVE="privacy_request_review_approve",r.PRIVACY_REQUEST_REVIEW_DENY="privacy_request_review_deny",r.PRIVACY_REQUEST_RECEIPT="privacy_request_receipt",r.PRIVACY_REQUEST_COMPLETE_ACCESS="privacy_request_complete_access",r.PRIVACY_REQUEST_COMPLETE_DELETION="privacy_request_complete_deletion",r.SUBJECT_IDENTITY_VERIFICATION="subject_identity_verification";var r,i,s={[i.PRIVACY_REQUEST_COMPLETE_ACCESS]:"Access request completed",[i.PRIVACY_REQUEST_COMPLETE_DELETION]:"Erasure request completed",[i.PRIVACY_REQUEST_RECEIPT]:"Privacy request received",[i.PRIVACY_REQUEST_REVIEW_APPROVE]:"Privacy request approved",[i.PRIVACY_REQUEST_REVIEW_DENY]:"Privacy request denied",[i.SUBJECT_IDENTITY_VERIFICATION]:"Subject identity verification"}},20149:function(e,t,n){var r=n(24246),i=n(77830),s=n(4454),a=n(34090),l=n(86677),o=n(16134),u=n(10342),c=n(40324),d=n(51472),p=n(67810),m=n(64826);let g=()=>{var e;let t=(0,o.C)(m.Zp),n=(0,o.C)(m.G1);(0,m.gz)({page:t,size:n});let i=(0,o.C)(m.YO),{values:s,setFieldValue:l}=(0,a.u6)();return(0,r.jsx)(d.Z,{label:"Associated properties",addButtonLabel:"Add property",idField:"id",nameField:"name",allItems:i.map(e=>({id:e.id,name:e.name})),values:null!==(e=s.properties)&&void 0!==e?e:[],setValues:e=>l("properties",e),draggable:!0,maxHeight:100,baseTestId:"property"})};t.Z=e=>{let{template:t,handleSubmit:n,handleDelete:o}=e,d=(0,l.useRouter)(),m=()=>{d.push(i.q)},f={type:t.type,content:t.content,properties:t.properties||[],is_enabled:t.is_enabled,id:t.id||""};return(0,r.jsx)(a.J9,{enableReinitialize:!0,initialValues:f,onSubmit:n,children:e=>{let{dirty:t,isValid:n,isSubmitting:i}=e;return(0,r.jsxs)(a.l0,{style:{paddingTop:"12px",paddingBottom:"12px"},children:[(0,r.jsx)(s.xuv,{py:3,children:(0,r.jsxs)(u.Z,{title:"".concat(p.Z[f.type]),children:[(0,r.jsx)(c.j0,{isRequired:!0,label:"Email subject",name:"content.subject",variant:"stacked"}),(0,r.jsx)(c.Ks,{isRequired:!0,label:"Message body",name:"content.body",value:"test",variant:"stacked",resize:!0}),(0,r.jsx)(s.xuv,{py:3,children:(0,r.jsx)(g,{})}),(0,r.jsx)(c.w8,{name:"is_enabled",label:"Enable message",variant:"switchFirst"})]})}),(0,r.jsxs)(s.kCb,{justifyContent:"space-between",width:"100%",paddingTop:2,children:[f.id&&o&&(0,r.jsx)(s.wpx,{"data-testid":"delete-template-button",loading:!1,className:"mr-3",onClick:o,children:"Delete"}),(0,r.jsxs)(s.kCb,{justifyContent:"right",width:"100%",paddingTop:2,children:[(0,r.jsx)(s.wpx,{loading:!1,className:"mr-3",onClick:m,children:"Cancel"}),(0,r.jsx)(s.wpx,{htmlType:"submit",type:"primary",disabled:i||!t||!n,loading:i,"data-testid":"submit-btn",children:"Save"})]})]})]})}})}},5058:function(e,t,n){n.d(t,{Vw:function(){return s},ms:function(){return r},pS:function(){return i},vm:function(){return a}});let{useGetSummaryMessagingTemplatesQuery:r,usePutMessagingTemplateByIdMutation:i,useCreateMessagingTemplateByTypeMutation:s,usePatchMessagingTemplateByIdMutation:a}=n(78780).u.injectEndpoints({endpoints:e=>({getSummaryMessagingTemplates:e.query({query:e=>({method:"GET",url:"plus/messaging/templates/summary",params:e}),providesTags:()=>["Property-Specific Messaging Templates"]}),putMessagingTemplateById:e.mutation({query:e=>{let{templateId:t,template:n}=e;return{url:"plus/messaging/templates/".concat(t),method:"PUT",body:n}},invalidatesTags:()=>["Property-Specific Messaging Templates"]}),patchMessagingTemplateById:e.mutation({query:e=>{let{templateId:t,template:n}=e;return{url:"plus/messaging/templates/".concat(t),method:"PATCH",body:n}},invalidatesTags:()=>["Property-Specific Messaging Templates"]}),createMessagingTemplateByType:e.mutation({query:e=>{let{templateType:t,template:n}=e;return{url:"plus/messaging/templates/".concat(t),method:"POST",body:n}},invalidatesTags:()=>["Property-Specific Messaging Templates"]})})})},47466:function(e,t,n){n.d(t,{KC:function(){return a},ew:function(){return l},gQ:function(){return s},jM:function(){return r},lE:function(){return i}});let{useGetMessagingTemplatesQuery:r,useUpdateMessagingTemplatesMutation:i,useGetMessagingTemplateByIdQuery:s,useGetMessagingTemplateDefaultQuery:a,useDeleteMessagingTemplateByIdMutation:l}=n(78780).u.injectEndpoints({endpoints:e=>({getMessagingTemplates:e.query({query:()=>({url:"messaging/templates"}),providesTags:()=>["Messaging Templates"]}),updateMessagingTemplates:e.mutation({query:e=>({url:"messaging/templates",method:"PUT",body:e}),invalidatesTags:()=>["Messaging Templates"]}),getMessagingTemplateById:e.query({query:e=>({url:"/messaging/templates/".concat(e)}),providesTags:()=>["Property-Specific Messaging Templates"]}),getMessagingTemplateDefault:e.query({query:e=>({url:"/messaging/templates/default/".concat(e)})}),deleteMessagingTemplateById:e.mutation({query:e=>({url:"/messaging/templates/".concat(e),method:"DELETE"}),invalidatesTags:()=>["Property-Specific Messaging Templates"]})})})},31883:function(e,t,n){n.d(t,{Bw:function(){return r.Bw},D4:function(){return r.D4}});var r=n(19043)},11055:function(e,t,n){n.d(t,{M:function(){return d}});var r=n(24246),i=n(29427),s=n(27378),a=n(40976),l=n(18397),o=n(42308),u=n(25431),c=n(39556);let d=(0,s.forwardRef)(function({children:e,as:t="ul",axis:n="y",onReorder:d,values:g,...f},y){let h=(0,o.h)(()=>l.E[t]),x=[],E=(0,s.useRef)(!1);return(0,i.k)(!!g,"Reorder.Group must be provided a values prop"),(0,s.useEffect)(()=>{E.current=!1}),(0,r.jsx)(h,{...f,ref:y,ignoreStrict:!0,children:(0,r.jsx)(a.Y.Provider,{value:{axis:n,registerItem:(e,t)=>{let r=x.findIndex(t=>e===t.value);-1!==r?x[r].layout=t[n]:x.push({value:e,layout:t[n]}),x.sort(m)},updateOrder:(e,t,n)=>{if(E.current)return;let r=function(e,t,n,r){if(!r)return e;let i=e.findIndex(e=>e.value===t);if(-1===i)return e;let s=r>0?1:-1,a=e[i+s];if(!a)return e;let l=e[i],o=a.layout,d=(0,c.t)(o.min,o.max,.5);return 1===s&&l.layout.max+n>d||-1===s&&l.layout.min+n<d?(0,u.uo)(e,i,i+s):e}(x,e,t,n);x!==r&&(E.current=!0,d(r.map(p).filter(e=>-1!==g.indexOf(e))))}},children:e})})});function p(e){return e.value}function m(e,t){return e.layout.min-t.layout.min}},7078:function(e,t,n){n.d(t,{e:function(){return T}});var r=n(24246),i=n(29427),s=n(27378),a=n(40976),l=n(18397),o=n(42308),u=n(69222),c=n(67412);function d(e){let t=(0,o.h)(()=>(0,u.BX)(e)),{isStatic:n}=(0,s.useContext)(c._);if(n){let[,n]=(0,s.useState)(e);(0,s.useEffect)(()=>t.on("change",n),[])}return t}var p=n(13998);let m=e=>e&&"object"==typeof e&&e.mix,g=e=>m(e)?e.mix:void 0;var f=n(64306),y=n(95984);function h(e,t){let n=d(t()),r=()=>n.set(t());return r(),(0,f.L)(()=>{let t=()=>y.Wi.preRender(r,!1,!0),n=e.map(e=>e.on("change",t));return()=>{n.forEach(e=>e()),(0,y.Pn)(r)}}),n}function x(e,t){let n=(0,o.h)(()=>[]);return h(e,()=>{n.length=0;let r=e.length;for(let t=0;t<r;t++)n[t]=e[t].get();return t(n)})}var E=n(3522);function v(e,t=0){return(0,E.i)(e)?e:d(t)}let T=(0,s.forwardRef)(function({children:e,style:t={},value:n,as:c="li",onDrag:d,layout:m=!0,...f},y){let E=(0,o.h)(()=>l.E[c]),T=(0,s.useContext)(a.Y),b={x:v(t.x),y:v(t.y)},_=function(e,t,n,r){if("function"==typeof e)return function(e){u.S1.current=[],e();let t=h(u.S1.current,e);return u.S1.current=void 0,t}(e);let i="function"==typeof t?t:function(...e){let t=!Array.isArray(e[0]),n=t?0:-1,r=e[0+n],i=e[1+n],s=e[2+n],a=e[3+n],l=(0,p.s)(i,s,{mixer:g(s[0]),...a});return t?l(r):l}(t,void 0,void 0);return Array.isArray(e)?x(e,i):x([e],([e])=>i(e))}([b.x,b.y],([e,t])=>e||t?1:"unset");(0,i.k)(!!T,"Reorder.Item must be a child of Reorder.Group");let{axis:C,registerItem:j,updateOrder:R}=T;return(0,r.jsx)(E,{drag:C,...f,dragSnapToOrigin:!0,style:{...t,x:b.x,y:b.y,zIndex:_},layout:m,onDrag:(e,t)=>{let{velocity:r}=t;r[C]&&R(n,b[C].get(),r[C]),d&&d(e,t)},onLayoutMeasure:e=>j(n,e),ref:y,ignoreStrict:!0,children:e})})},40976:function(e,t,n){n.d(t,{Y:function(){return r}});let r=(0,n(27378).createContext)(null)},47397:function(e,t,n){n.d(t,{o:function(){return a}});var r=n(42308);class i{constructor(){this.componentControls=new Set}subscribe(e){return this.componentControls.add(e),()=>this.componentControls.delete(e)}start(e,t){this.componentControls.forEach(n=>{n.start(e.nativeEvent||e,t)})}}let s=()=>new i;function a(){return(0,r.h)(s)}},76649:function(e,t,n){n.d(t,{Ln:function(){return r}});let r=(e,t)=>s(e,t),i=Symbol("SOME"),s=(e,t)=>"string"==typeof e?e===typeof t:Array.isArray(e)?i in e?e.some(e=>s(e,t)):!!Array.isArray(t)&&(0===e.length||t.every(t=>e.some(e=>s(e,t)))):"object"==typeof t&&null!==t&&Object.entries(e).every(([e,n])=>s(n,t[e]));class a{static narrow(e){return new a(t=>r(e,t))}constructor(e){this.NF=void 0,this.NF=e}satisfied(e){return this.NF(e)}build(e){return e}and(e){let t=this.NF,n=e instanceof a?e.NF:e instanceof Function?e:t=>r(e,t);return new a(e=>t(e)&&n(e))}}new a(e=>!0)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1817],{11817:function(e,n,i){i.d(n,{Z:function(){return U}});var t=i(24246),o=i(4454),a=i(34090),l=i(86677),r=i(27378),s=i(55484),d=i(16134),c=i(812);let p=(0,o.IUT)({displayName:"DesktopIcon",viewBox:"0 0 24 24",path:(0,t.jsx)("path",{fill:"currentColor",d:"M20.5556 4.05556H3.44444C3.10833 4.05556 2.83333 4.33056 2.83333 4.66667V12H21.1667V4.66667C21.1667 4.33056 20.8917 4.05556 20.5556 4.05556ZM23 12V13.8333V15.6667C23 17.0149 21.9038 18.1111 20.5556 18.1111H14.9142L15.2198 19.9445H17.1944C17.7024 19.9445 18.1111 20.3531 18.1111 20.8611C18.1111 21.3691 17.7024 21.7778 17.1944 21.7778H14.4444H9.55556H6.80556C6.29757 21.7778 5.88889 21.3691 5.88889 20.8611C5.88889 20.3531 6.29757 19.9445 6.80556 19.9445H8.78021L9.08576 18.1111H3.44444C2.09618 18.1111 1 17.0149 1 15.6667V13.8333V12V4.66667C1 3.31841 2.09618 2.22223 3.44444 2.22223H20.5556C21.9038 2.22223 23 3.31841 23 4.66667V12ZM2.83333 13.8333V15.6667C2.83333 16.0028 3.10833 16.2778 3.44444 16.2778H10.1476C10.159 16.2778 10.1705 16.2778 10.1781 16.2778H13.8142C13.8257 16.2778 13.8372 16.2778 13.8448 16.2778H20.5556C20.8917 16.2778 21.1667 16.0028 21.1667 15.6667V13.8333H2.83333ZM10.6365 19.9445H13.3597L13.0542 18.1111H10.942L10.6365 19.9445Z"})}),u=(0,o.IUT)({displayName:"MobileIcon",viewBox:"0 0 24 24",path:(0,t.jsx)("path",{fill:"currentColor",d:"M6.5 20.25C6.5 20.6281 6.80938 20.9375 7.1875 20.9375H16.8125C17.1906 20.9375 17.5 20.6281 17.5 20.25V16.8125H6.5V20.25ZM6.5 14.75H17.5V3.75C17.5 3.37188 17.1906 3.0625 16.8125 3.0625H7.1875C6.80938 3.0625 6.5 3.37188 6.5 3.75V14.75ZM4.4375 3.75C4.4375 2.2332 5.6707 1 7.1875 1H16.8125C18.3293 1 19.5625 2.2332 19.5625 3.75V20.25C19.5625 21.7668 18.3293 23 16.8125 23H7.1875C5.6707 23 4.4375 21.7668 4.4375 20.25V3.75ZM12 17.8438C12.2735 17.8438 12.5358 17.9524 12.7292 18.1458C12.9226 18.3392 13.0312 18.6015 13.0312 18.875C13.0312 19.1485 12.9226 19.4108 12.7292 19.6042C12.5358 19.7976 12.2735 19.9062 12 19.9062C11.7265 19.9062 11.4642 19.7976 11.2708 19.6042C11.0774 19.4108 10.9688 19.1485 10.9688 18.875C10.9688 18.6015 11.0774 18.3392 11.2708 18.1458C11.4642 17.9524 11.7265 17.8438 12 17.8438Z"})});var v=i(77830),m=i(46628),_=i(7426),f=i(60325);let b={language:{label:"Language",validation:s.Z_()},title:{label:"Title",validation:s.Z_()},description:{label:"Description",validation:s.Z_()},accept_button_label:{label:"Accept button label",validation:s.Z_()},reject_button_label:{label:"Reject button label",validation:s.Z_()},save_button_label:{label:"Save button label",validation:s.Z_()},acknowledge_button_label:{label:"Acknowledge button label",validation:s.Z_()},privacy_policy_url:{label:"Privacy policy URL",validation:s.Z_().url()},privacy_preferences_link_label:{label:"Privacy preferences link label",validation:s.Z_()},banner_title:{label:"Banner title",validation:s.Z_()},banner_description:{label:"Banner description",validation:s.Z_()},purpose_header:{label:"Purpose header",validation:s.Z_()},privacy_policy_link_label:{label:"Privacy policy link label",validation:s.Z_()},modal_link_label:{label:"Modal link label",validation:s.Z_()},is_default:{label:"Default language",validation:s.O7()}};var g=i(34334),y=i(13083),x=i.n(y),h=i(43218),w=i.n(h),C=i(52253),j=i(32885),V=i(61317);let k={language:V.eU.EN,accept_button_label:"Accept",acknowledge_button_label:"OK",banner_description:"",banner_title:"",purpose_header:"",description:"Description",privacy_policy_link_label:"",privacy_policy_url:"",modal_link_label:"",privacy_preferences_link_label:"Privacy preferences",reject_button_label:"Reject All",save_button_label:"Save",title:"Manage your consent preferences",is_default:!0},A=e=>({...k,...e.translations?e.translations[0]:{}}),O=(e,n)=>{var i,t,o,a;let l={options:{allowHTMLDescription:!0,base64Cookie:!1,debug:!1,fidesApiUrl:"http://localhost:8080/api/v1",fidesClearCookie:!0,fidesDisableSaveApi:!0,fidesDisableNoticesServedApi:!0,fidesJsBaseUrl:"",fidesLocale:null===(t=e.translations)||void 0===t?void 0:null===(i=t[0])||void 0===i?void 0:i.language,fidesString:null,geolocationApiUrl:"",isGeolocationEnabled:!1,isOverlayEnabled:!0,isPrefetchEnabled:!1,modalLinkId:null,overlayParentId:C.Vk,preventDismissal:null!==(a=e.dismissable)&&void 0!==a&&a,privacyCenterUrl:"http://localhost:3000",showFidesBrandLink:!0},experience:{available_locales:null===(o=e.translations)||void 0===o?void 0:o.map(e=>e.language),component:e.component,experience_config:{allow_language_selection:!0,auto_detect_language:!0,auto_subdomain_cookie_deletion:!0,component:e.component,disabled:!1,dismissable:e.dismissable,id:"pri_222",is_default:!0,language:"en",layer1_button_options:V.Of.OPT_IN_OPT_OUT,properties:[],regions:["us_ca"],show_layer1_notices:!1,translations:[A(e)]},id:"pri_111",privacy_notices:n,region:"us_ca"},geolocation:{country:"US",location:"US-CA",region:"CA"}};return e.component===V.re.TCF_OVERLAY&&(l.options.fidesTcfGdprApplies=!0,l.options.tcf_enabled=!0,l.geolocation={location:"eea",country:"eea"},l.experience.experience_config.regions=["eea"],l.experience={...l.experience,region:"eea",minimal_tcf:!0,gvl:{vendors:{}},tcf_purpose_names:["Store and/or access information on a device","Use limited data to select advertising","Create profiles for personalised advertising","Use profiles to select personalised advertising","Create profiles to personalise content","Use profiles to select personalised content","Measure advertising performance","Measure content performance","Understand audiences through statistics or combinations of data from different sources","Develop and improve services","Use limited data to select content"]},l.options.apiOptions={getPrivacyExperienceFn:async()=>l.experience}),l},E=e=>{let{language:n,is_default:i,...t}=k,o=Object.keys(t).map(n=>{let i=e[n];return{[n]:void 0!==i?i:k[n]}}).reduce((e,n)=>({...e,...n}),{});return{language:e.language,is_default:e.is_default,...o}},T=(e,n,i)=>e?e.map(e=>i.find(n=>(null==n?void 0:n.id)===e)).map(e=>n===V.re.TCF_OVERLAY&&void 0!==e?{...e,translations:[{language:"en",text:null==e?void 0:e.name}]}:e).filter(e=>void 0!==e):[];var L=i(74022),Z=i(32222);let N=e=>{let{title:n,description:i}=e;return(0,t.jsx)(o.jqI,{className:"h-full items-center justify-center",children:(0,t.jsxs)(o.jqI,{className:"items-center gap-2 rounded-md p-6",style:{backgroundColor:L.Z.colors.white,boxShadow:L.Z.shadows.md,maxWidth:512},vertical:!0,"data-testid":"no-preview-notice",children:[(0,t.jsx)(o.xvT,{fontSize:"lg",fontWeight:"500",align:"center",children:n}),(0,t.jsx)(o.xvT,{color:"gray.500",align:"center",children:i})]})})};var P=e=>{var n,i;let{allPrivacyNotices:s,initialValues:d,translation:c,isMobilePreview:p}=e,u=(0,l.useRouter)().pathname.includes("/new"),{values:v}=(0,a.u6)(),[m,_]=(0,r.useState)([]),[f,b]=(0,r.useState)(!1),[g,y]=(0,r.useState)(),h=[V.re.BANNER_AND_MODAL,V.re.MODAL,V.re.TCF_OVERLAY].includes(v.component),{data:k}=(0,j.de)({pageIndex:1,pageSize:1}),A=(0,r.useMemo)(()=>(null==k?void 0:k.total)||0,[null==k?void 0:k.total]);(0,r.useEffect)(()=>{var e,n;return h&&f&&window.FidesPreview&&v.component&&((null===(e=v.privacy_notice_ids)||void 0===e?void 0:e.length)||v.component===V.re.TCF_OVERLAY)?v.component===V.re.TCF_OVERLAY?(window.FidesPreview("tcf"),y("tcf")):(window.FidesPreview("standard"),y("standard")):window.FidesPreview&&(null===(n=window.FidesPreview)||void 0===n||n.cleanup()),()=>{var e;null===(e=window.FidesPreview)||void 0===e||e.cleanup()}},[v.component,f,h,null===(n=v.privacy_notice_ids)||void 0===n?void 0:n.length,u]),(0,r.useEffect)(()=>{d&&v.component&&s&&(v.privacy_notice_ids?_(T(v.privacy_notice_ids,v.component,s)):_([]))},[v.privacy_notice_ids,s,v.component,d]);let L=(0,r.useMemo)(()=>v.component?O({...d,component:v.component},m):null,[d,m,v.component]);(0,r.useEffect)(()=>{var e,n,i,t;if(!h||!f||!window.FidesPreview||!window.Fides||!(null===(e=v.privacy_notice_ids)||void 0===e?void 0:e.length)&&v.component!==V.re.TCF_OVERLAY)return;v.component===V.re.MODAL&&(L.experience.experience_config.component=V.re.MODAL);let o=null===(n=v.translations)||void 0===n?void 0:n.find(e=>e.language===(null==c?void 0:c.language));(null===(i=v.translations)||void 0===i?void 0:i.length)&&(o?(L.experience.available_locales=[...L.experience.available_locales||[],o.language],L.experience.experience_config.translations[0]=E(o),L.options.fidesLocale=o.language):v.translations&&(L.experience.experience_config.translations[0]=E(v.translations[0]),L.options.fidesLocale=v.translations[0].language)),L.experience.experience_config.show_layer1_notices=!!(null===(t=v.privacy_notice_ids)||void 0===t?void 0:t.length)&&!!v.show_layer1_notices,L.experience.experience_config.layer1_button_options=(v.component===V.re.BANNER_AND_MODAL||v.component===V.re.TCF_OVERLAY)&&v.layer1_button_options?v.layer1_button_options:V.Of.OPT_IN_OPT_OUT,L.options.preventDismissal=!v.dismissable,L.experience.vendor_count=A,L.experience.experience_config.component=v.component,window.Fides.init(L)},[c,L,s,h,A,f,g,v.privacy_notice_ids,v.component,v.translations,v.show_layer1_notices,v.layer1_button_options,v.dismissable,d,m]);let P=document.getElementById("fides-modal");return(P&&P.removeAttribute("tabindex"),v.component)?h?(null===(i=v.privacy_notice_ids)||void 0===i?void 0:i.length)||v.component===V.re.TCF_OVERLAY?(0,t.jsxs)(o.jqI,{className:"size-full items-center justify-center overflow-scroll",children:[(0,t.jsx)(x(),{id:"4b2ec2183c5a567e",dynamic:[C.Vk,v.component!==V.re.TCF_OVERLAY?"padding-bottom: 45px;":""],children:"div#fides-overlay{z-index:5000!important}div#".concat(C.Vk,"{width:100%;padding-top:45px;").concat(v.component!==V.re.TCF_OVERLAY?"padding-bottom: 45px;":""," margin: auto;pointer-events:none}div#fides-banner-container{position:static!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important;-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}div#fides-banner-container.fides-banner-hidden{display:none}.fides-modal-container{background-color:unset!important;position:static!important;display:none!important}.fides-modal-overlay{background-color:inherit!important;position:static!important;display:none!important}div.fides-modal-content{position:relative!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important;transform:none!important;left:initial!important;top:initial!important}div.fides-modal-footer{width:unset}")}),h?(0,t.jsx)("style",{children:"div#fides-modal {\n display: flex !important;\n justify-content: center;\n background-color: unset;\n ".concat(v.component===V.re.BANNER_AND_MODAL||v.component===V.re.TCF_OVERLAY?"padding-bottom: 3rem;":"","\n }")}):null,p?(0,t.jsx)("style",{children:"\n div#fides-overlay-wrapper {\n max-width: 400px;\n margin: auto;\n }\n div.fides-modal-button-group {\n flex-direction: column !important;\n }\n div#fides-banner {\n padding: 24px;\n width: 100%;\n }\n\n div#fides-banner-description {\n margin-bottom: 0px;\n }\n\n div#fides-banner-inner div#fides-button-group {\n flex-direction: column;\n align-items: flex-start;\n gap: 12px;\n padding-top: 24px;\n }\n\n .fides-banner-button-group {\n flex-direction: column;\n width: 100%;\n }\n\n button.fides-banner-button {\n margin: 0px;\n width: 100%;\n }\n\n div#fides-banner-inner-container {\n display: flex;\n flex-direction: column;\n max-height: 50vh;\n overflow-y: auto;\n scrollbar-gutter: stable;\n }\n\n div#fides-privacy-policy-link {\n order: 1;\n width: 100%;\n }\n .fides-modal-footer {\n max-width: 100%;\n }\n .fides-banner-secondary-actions {\n flex-direction: column-reverse;\n gap: 12px;\n }\n "}):(0,t.jsx)("style",{children:"\n div#fides-banner {\n width: 60%;\n }\n @media (min-width: 768px) {\n div#fides-banner {\n width: 100%;\n }\n }\n @media (min-width: 1155px) {\n div#fides-banner {\n width: 90%;\n }\n }\n @media (min-width: 1440px) {\n div#fides-banner {\n width: 60%;\n }\n }\n "}),(0,t.jsx)(w(),{id:"fides-js-script",src:"/lib/fides-preview.js",onReady:()=>{b(!0)}}),(0,t.jsx)("div",{id:C.Vk,className:x().dynamic([["4b2ec2183c5a567e",[C.Vk,v.component!==V.re.TCF_OVERLAY?"padding-bottom: 45px;":""]]])},v.component)]}):(0,t.jsx)(N,{title:"No privacy notices added",description:'To view a preview of this experience, add a privacy notice under "Privacy Notices" to the left.'}):(0,t.jsx)(N,{title:"".concat(Z.J.get(v.component)," preview not available"),description:"There is no preview available for ".concat(Z.J.get(v.component),". You can edit the available settings\n and languages to the left.")}):(0,t.jsx)(N,{title:"No privacy experience type selected",description:"Please select a privacy experience type to preview."})},D=i(94315),M=i(5331),R=i(16277),F=i(71922),H=i(31883);let S=e=>{let n=(0,f.y3)(e),i={};return Object.entries(n).forEach(e=>{let[n,t]=e;if(t.included){let e=b[n];i[n]=t.required?e.validation.required().label(e.label):e.validation.nullable().label(e.label)}}),s.Ry().shape(i)},B=e=>{let{componentType:n}=e;return S(n)},I=s.Ry().shape({name:s.Z_().required().label("Experience name"),component:s.Z_().required().label("Experience type"),translations:s.IX().when("component",(e,n)=>{let[i]=e;return n.of(B({componentType:i}))})});var U=e=>{var n;let{passedInExperience:i,passedInTranslations:s}=e,[b]=(0,D.mJ)(),[y]=(0,D.$d)(),x=(0,o.pmc)(),[h,w]=(0,r.useState)(!1),C=(0,l.useRouter)(),{data:j}=(0,_.tB)({api_set:!1}),V=null==j?void 0:null===(n=j.plus_consent_settings)||void 0===n?void 0:n.enable_translations,k=(0,d.C)(g.Zp),A=(0,d.C)(g.G1);(0,g.Ah)({page:k,size:A});let O=(0,d.C)(g.fJ),E=(0,d.C)(F.sX),T=i?{...f.DD,...(0,f.Uv)(i)}:f.DD,L=async e=>{var n,t;let o;e.privacy_notice_ids=null===(n=e.privacy_notice_ids)||void 0===n?void 0:n.filter(e=>"tcf_purposes_placeholder"!==e),T.tcf_configuration_id&&!e.tcf_configuration_id&&(e.tcf_configuration_id=null);let a={...e,disabled:null===(t=null==i?void 0:i.disabled)||void 0===t||t,allow_language_selection:e.translations&&e.translations.length>1};if(i){let{component:e,...n}=a;o=await y({...n,id:i.id})}else o=await b(a);(0,H.D4)(o)?x((0,m.Vo)((0,c.e$)(o.error))):(x((0,m.t5)("Privacy experience successfully ".concat(i?"updated":"created"))),C.push(v.w0))},[Z,N]=(0,r.useState)(void 0),[S,B]=(0,r.useState)(!1);return(0,t.jsx)(a.J9,{initialValues:T,enableReinitialize:!0,onSubmit:L,validationSchema:I,children:(0,t.jsx)(a.l0,{style:{height:"100vh"},children:(0,t.jsxs)(o.jqI,{className:"size-full","data-testid":"privacy-experience-detail-page",children:[Z?(0,t.jsx)(R.Z,{translation:Z,translationsEnabled:V,isOOB:S,onReturnToMainForm:()=>{N(void 0),B(!1)}}):(0,t.jsx)(M.d0,{allPrivacyNotices:E,translationsEnabled:V,onSelectTranslation:e=>{N({...e,name:(0,f.Go)(e,O)})},onCreateTranslation:e=>{let n=null==s?void 0:s.find(n=>n.language===e);return n&&B(!0),null!=n?n:{language:e,is_default:!1}}}),(0,t.jsxs)(o.jqI,{vertical:!0,className:"w-full overflow-y-hidden",style:{backgroundColor:o.rSc.colors.gray[50]},children:[(0,t.jsxs)(o.jqI,{className:"flex-row items-center p-4",style:{backgroundColor:o.rSc.colors.white,borderBottom:"1px solid ".concat(o.rSc.colors.gray[100])},children:[(0,t.jsx)(o.xvT,{fontSize:"md",fontWeight:"semibold",children:"PREVIEW"}),(0,t.jsx)(o.LZC,{}),(0,t.jsxs)(o.y02.Group,{onChange:e=>w(e.target.value),defaultValue:!1,children:[(0,t.jsx)(o.y02.Button,{value:!0,title:"View mobile preview",children:(0,t.jsx)(u,{})}),(0,t.jsx)(o.y02.Button,{value:!1,title:"View desktop preview",children:(0,t.jsx)(p,{})})]})]}),(0,t.jsx)(P,{allPrivacyNotices:E,initialValues:T,translation:Z,isMobilePreview:h})]})]})})})}},32222:function(e,n,i){i.d(n,{J:function(){return t}});let t=new Map([["overlay","Overlay"],["privacy_center","Privacy center"],["tcf_overlay","TCF overlay"],["modal","Modal"],["banner_and_modal","Banner and modal"],["headless","Headless"]])},31883:function(e,n,i){i.d(n,{Bw:function(){return t.Bw},D4:function(){return t.D4}});var t=i(19043)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1904],{11904:function(e,s,a){a.d(s,{Z:function(){return O}});var i,t,l=a(24246),r=a(59003),n=a(92222),o=a(4454),d=a(86677),c=a(27378),u=a(14481),g=a(45896),x=a(70675),I=a(72625),j=a(79947),m=a(50169),h=a(28278),C=a(74241),L=a(61317),f=a(91761),p=a(61099),S=a(87667),v=e=>{let{resourceType:s}=e,a=(0,n.Cl)();return s===L.D$.SCHEMA?{columns:[a.accessor(e=>e.name,{id:"name",cell:e=>(0,l.jsx)(S.Z,{result:e.row.original,changeTypeOverride:h.E.CLASSIFICATION}),header:e=>(0,l.jsx)(u.Rr,{value:"Name",...e}),size:300}),a.accessor(e=>e.urn,{id:"project",cell:e=>(0,l.jsx)(u.G3,{value:(0,C.Z)(e.getValue())}),header:e=>(0,l.jsx)(u.Rr,{value:"Project",...e})}),a.display({id:"status",cell:e=>(0,l.jsx)(m.Z,{result:e.row.original}),header:e=>(0,l.jsx)(u.Rr,{value:"Status",...e})}),a.accessor(e=>e.system,{id:"system",cell:e=>(0,l.jsx)(u.G3,{value:e.getValue()}),header:e=>(0,l.jsx)(u.Rr,{value:"System",...e})}),a.accessor(e=>e.monitor_config_id,{id:"monitor",cell:e=>(0,l.jsx)(u.G3,{value:e.getValue()}),header:e=>(0,l.jsx)(u.Rr,{value:"Detected by",...e})}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,l.jsx)(I.Cy,{time:e.getValue()}),header:e=>(0,l.jsx)(u.Rr,{value:"When",...e})}),a.display({id:"action",cell:e=>e.row.original.diff_status!==L.LL.MUTED?(0,l.jsx)(f.Z,{resource:e.row.original}):(0,l.jsx)(u.G3,{value:"--"}),header:"Actions",size:235,meta:{disableRowClick:!0}})]}:s===L.D$.TABLE?{columns:[a.display({id:"select",cell:e=>{var s;let{row:a}=e;return(0,l.jsx)(I.k,{isChecked:a.getIsSelected(),onChange:a.getToggleSelectedHandler(),dataTestId:"select-".concat(null!==(s=a.original.name)&&void 0!==s?s:a.id)})},header:e=>{let{table:s}=e;return(0,l.jsx)(I.k,{isChecked:s.getIsAllPageRowsSelected(),isIndeterminate:s.getIsSomeRowsSelected(),onChange:s.getToggleAllRowsSelectedHandler(),dataTestId:"select-all-rows"})},maxSize:40}),a.accessor(e=>e.name,{id:"tables",cell:e=>(0,l.jsx)(S.Z,{result:e.row.original}),header:e=>(0,l.jsx)(u.Rr,{value:"Table name",...e}),size:300}),a.accessor(e=>e.description,{id:"description",cell:e=>(0,l.jsx)(u.G3,{value:e.getValue(),cellProps:e}),header:e=>(0,l.jsx)(u.Rr,{value:"Description",...e}),meta:{showHeaderMenu:!0}}),a.display({id:"status",cell:e=>(0,l.jsx)(m.Z,{result:e.row.original}),header:e=>(0,l.jsx)(u.Rr,{value:"Status",...e})}),a.display({id:"type",cell:()=>(0,l.jsx)(u.G3,{value:"Table"}),header:"Type"}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,l.jsx)(I.Cy,{time:e.getValue()}),header:"Time"}),a.display({id:"actions",cell:e=>(0,l.jsx)(f.Z,{resource:e.row.original}),header:"Actions",size:235,meta:{disableRowClick:!0}})]}:s===L.D$.FIELD?{columns:[a.accessor(e=>e.name,{id:"name",cell:e=>(0,l.jsx)(S.Z,{result:e.row.original}),header:e=>(0,l.jsx)(u.Rr,{value:"Field name",...e}),size:300}),a.accessor(e=>e.source_data_type,{id:"data-type",cell:e=>(0,l.jsx)(j.Z,{type:e.getValue()}),header:e=>(0,l.jsx)(u.Rr,{value:"Data type",...e})}),a.accessor(e=>e.description,{id:"description",cell:e=>(0,l.jsx)(u.G3,{value:e.getValue(),cellProps:e}),header:e=>(0,l.jsx)(u.Rr,{value:"Description",...e}),meta:{showHeaderMenu:!0}}),a.display({id:"status",cell:e=>(0,l.jsx)(m.Z,{result:e.row.original}),header:e=>(0,l.jsx)(u.Rr,{value:"Status",...e})}),a.display({id:"type",cell:()=>(0,l.jsx)(u.G3,{value:"Field"}),header:"Type"}),a.display({id:"classifications",cell:e=>{let{row:s}=e;return(0,l.jsx)(p.Z,{resource:s.original})},meta:{overflow:"visible",disableRowClick:!0},header:"Data category",minSize:280}),a.accessor(e=>e.updated_at,{id:"time",cell:e=>(0,l.jsx)(I.Cy,{time:e.getValue()}),header:e=>(0,l.jsx)(u.Rr,{value:"When",...e})}),a.display({id:"actions",cell:e=>(0,l.jsx)(f.Z,{resource:e.row.original}),header:"Actions",size:235,meta:{disableRowClick:!0}})]}:{columns:[]}};(i=t||(t={}))[i.ACTION_REQUIRED=0]="ACTION_REQUIRED",i[i.UNMONITORED=1]="UNMONITORED";var _=e=>{let{initialFilterTabIndex:s=0}=e,[a,i]=(0,c.useState)(s),t=(0,c.useMemo)(()=>[{label:"Action Required",filters:[L.LL.CLASSIFICATION_ADDITION,L.LL.CLASSIFICATION_UPDATE],childFilters:[L.LL.CLASSIFICATION_ADDITION,L.LL.CLASSIFICATION_UPDATE]},{label:"In progress",filters:[L.LL.CLASSIFYING,L.LL.CLASSIFICATION_QUEUED],childFilters:[L.LL.CLASSIFYING,L.LL.CLASSIFICATION_QUEUED]},{label:"Unmonitored",filters:[L.LL.MUTED],childFilters:[]}],[]);return{filterTabs:t,filterTabIndex:a,setFilterTabIndex:i,activeDiffFilters:t[a].filters,activeChildDiffFilters:t[a].childFilters}},T=a(47182),y=a(38347),A=a(79494),D=e=>{let{resourceUrn:s}=e,[a,{isLoading:i}]=(0,x.Hf)(),[t,{isLoading:r}]=(0,x.zV)(),n=i||r,d=async e=>{await t({staged_resource_urns:e})},c=async e=>{await a({staged_resource_urns:e})};return(0,l.jsx)(o.jqI,{"data-testid":"bulk-actions-menu",children:(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(A.Z,{title:"Confirm all",icon:(0,l.jsx)(o.nQG,{}),onClick:()=>c([s]),disabled:n,loading:i,type:"primary",size:"middle"}),(0,l.jsx)(A.Z,{title:"Ignore all",icon:(0,l.jsx)(o.tpL,{}),onClick:()=>d([s]),disabled:n,loading:r,size:"middle"})]})})},R=e=>{let{selectedUrns:s}=e,[a,{isLoading:i}]=(0,x.Hf)(),[t,{isLoading:r}]=(0,x.zV)(),n=i||r,d=async e=>{await a({staged_resource_urns:e})},c=async e=>{await t({staged_resource_urns:e})};return s.length?(0,l.jsxs)(o.jqI,{className:"items-center","data-testid":"bulk-actions-menu",children:[(0,l.jsx)(o.xvT,{fontSize:"xs",fontWeight:"semibold",minW:16,mr:4,children:"".concat(s.length," selected")}),(0,l.jsxs)(o.jqI,{className:"gap-2",children:[(0,l.jsx)(A.Z,{title:"Confirm",icon:(0,l.jsx)(o.nQG,{}),onClick:()=>d(s),disabled:n,loading:i,type:"primary",size:"middle"}),(0,l.jsx)(A.Z,{title:"Ignore",icon:(0,l.jsx)(o.tpL,{}),disabled:n,loading:r,onClick:()=>c(s),size:"middle"})]})]}):null},b=a(7940),w=a(80285),N=a(36168),F=a(30952);let E={items:[],total:0,page:1,size:50,pages:1},k=()=>(0,l.jsx)(o.gCW,{mt:6,p:10,spacing:4,borderRadius:"base",maxW:"70%","data-testid":"empty-state",alignSelf:"center",margin:"auto",children:(0,l.jsxs)(o.gCW,{children:[(0,l.jsx)(o.xvT,{fontSize:"md",fontWeight:"600",children:"No activity found"}),(0,l.jsx)(o.xvT,{fontSize:"sm",children:"You're up to date!"})]})});var O=e=>{var s,a;let{resourceUrn:i}=e,I=(0,d.useRouter)(),[j,m]=(0,c.useState)(""),{filterTabs:h,setFilterTabIndex:C,filterTabIndex:f,activeDiffFilters:p,activeChildDiffFilters:S}=_({initialFilterTabIndex:(null===(s=I.query)||void 0===s?void 0:s.filterTabIndex)?Number(null===(a=I.query)||void 0===a?void 0:a.filterTabIndex):void 0}),[A,O]=(0,c.useState)({}),{PAGE_SIZES:Z,pageSize:z,setPageSize:U,onPreviousPageClick:P,isPreviousPageDisabled:G,onNextPageClick:M,isNextPageDisabled:V,startRange:$,endRange:q,pageIndex:Q,setTotalPages:H,resetPageIndexToDefault:W}=(0,u.oi)();(0,c.useEffect)(()=>{W()},[i,j,W,p,S]);let{isFetching:Y,isLoading:B,data:K}=(0,x.z8)({staged_resource_urn:i,page:Q,size:z,child_diff_status:S,diff_status:p,search:j}),X=(0,b.G)(null==K?void 0:K.items[0]),{items:J,total:ee,pages:es}=(0,c.useMemo)(()=>null!=K?K:E,[K]);(0,c.useEffect)(()=>{H(es)},[es,H]);let{columns:ea}=v({resourceType:X}),ei=(0,c.useMemo)(()=>ea,[ea]),{navigateToDiscoveryResults:et}=(0,T.Z)(),el=(0,r.b7)({getCoreRowModel:(0,n.sC)(),getGroupedRowModel:(0,n.qe)(),getExpandedRowModel:(0,n.rV)(),columns:ei,manualPagination:!0,onRowSelectionChange:O,state:{rowSelection:A},getRowId:w.Z,data:J,columnResizeMode:"onChange"}),er=Object.keys(A).filter(e=>A[e]);return B?(0,l.jsx)(u.I4,{rowHeight:36,numRows:36}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(g.Z,{filterTabs:h,filterTabIndex:f,onChange:C}),(0,l.jsxs)(u.Q$,{children:[(0,l.jsxs)(o.kCb,{gap:6,align:"center",children:[(0,l.jsx)(o.xuv,{flexShrink:0,children:(0,l.jsx)(F.f,{value:j,onChange:m})}),(0,l.jsx)(y.Z,{})]}),X===L.D$.TABLE&&!!er.length&&(0,l.jsx)(R,{selectedUrns:er}),X===L.D$.FIELD&&f!==t.UNMONITORED&&(0,l.jsx)(D,{resourceUrn:i})]}),(0,l.jsx)(u.ZK,{tableInstance:el,onRowClick:e=>et({resourceUrn:e.urn,filterTabIndex:f}),getRowIsClickable:e=>X!==L.D$.FIELD||(0,N.Z)(e),emptyTableNotice:(0,l.jsx)(k,{})}),(0,l.jsx)(u.s8,{totalRows:ee||0,pageSizes:Z,setPageSize:U,onPreviousPageClick:P,isPreviousPageDisabled:G||Y,onNextPageClick:M,isNextPageDisabled:V||Y,startRange:$,endRange:q})]})}},91761:function(e,s,a){var i=a(24246),t=a(4454),l=a(812),r=a(14047),n=a(7940),o=a(98559),d=a(61317),c=a(79494),u=a(70675);s.Z=e=>{let{resource:s}=e,[a,{isLoading:g}]=(0,u.v8)(),[x,{isLoading:I}]=(0,u.cM)(),[j,{isLoading:m}]=(0,u.vi)(),h=I||m||g,{diff_status:C,child_diff_statuses:L,top_level_field_name:f}=s,{successAlert:p,errorAlert:S}=(0,r.V)(),v=C===d.LL.CLASSIFICATION_ADDITION||C===d.LL.CLASSIFICATION_UPDATE,_=L&&(L[d.LL.CLASSIFICATION_ADDITION]||L[d.LL.CLASSIFICATION_UPDATE]),T=(v||_)&&!f,y=v||_,A=(0,n.G)(s)!==d.D$.FIELD,D=T&&y&&A,R=async()=>{let e=await x({staged_resource_urn:s.urn});(0,l.D4)(e)?S((0,l.e$)(e.error),"Failed to promote resource"):p('These changes have been added to a Fides dataset. To view, navigate to "Manage datasets".',"Table changes confirmed")},b=async()=>{let e=await j({staged_resource_urn:s.urn});(0,l.D4)(e)?S((0,l.e$)(e.error),"Failed to mute resource"):p("Ignored changes will not be added to a Fides dataset.","".concat(s.name||"Changes"," ignored"))},w=async()=>{let e=await a({staged_resource_urn:s.urn,monitor_config_id:s.monitor_config_id,start_classification:!0,diff_statuses_to_classify:[d.LL.CLASSIFICATION_ADDITION,d.LL.CLASSIFICATION_UPDATE,d.LL.CLASSIFYING,d.LL.CLASSIFICATION_QUEUED]});(0,l.D4)(e)?S((0,l.e$)(e.error),"Failed to reclassify resource"):p("Reclassification of ".concat((0,o.Z)(s)||"the resource"," has begun. The results may take some time to appear in the “Data discovery“ tab."),"Reclassification started")};return(0,i.jsxs)(t.Ugi,{gap:2,children:[T&&(0,i.jsx)(c.Z,{title:"Confirm",icon:(0,i.jsx)(t.nQG,{}),onClick:R,disabled:h,loading:I}),y&&(0,i.jsx)(c.Z,{title:"Ignore",icon:(0,i.jsx)(t.tpL,{}),onClick:b,disabled:h,loading:m}),A&&!D&&(0,i.jsx)(c.Z,{title:"Reclassify",icon:(0,i.jsx)(t.nyI,{}),onClick:w,disabled:h,loading:g}),D&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.LZC,{}),(0,i.jsxs)(t.v2r,{children:[(0,i.jsx)(t.j2t,{as:t.wpx,size:"small",type:"text",icon:(0,i.jsx)(t.nXP,{transform:"rotate(90deg)"}),className:"w-6 gap-0","data-testid":"actions-overflow-btn"}),(0,i.jsx)(t.qyq,{children:(0,i.jsx)(t.sNh,{onClick:w,icon:(0,i.jsx)(t.nyI,{}),"data-testid":"action-reclassify",children:"Reclassify"})})]})]})]})}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2310],{74833:function(t,e,i){var n=i(56127),r=/^\s+/;t.exports=function(t){return t?t.slice(0,n(t)+1).replace(r,""):t}},56127:function(t){var e=/\s/;t.exports=function(t){for(var i=t.length;i--&&e.test(t.charAt(i)););return i}},66726:function(t,e,i){var n=i(11611),r=i(82846),s=i(91936),l=Math.max,o=Math.min;t.exports=function(t,e,i){var a,u,c,d,f,p,v=0,h=!1,x=!1,m=!0;if("function"!=typeof t)throw TypeError("Expected a function");function g(e){var i=a,n=u;return a=u=void 0,v=e,d=t.apply(n,i)}function j(t){var i=t-p,n=t-v;return void 0===p||i>=e||i<0||x&&n>=c}function b(){var t,i,n,s=r();if(j(s))return y(s);f=setTimeout(b,(t=s-p,i=s-v,n=e-t,x?o(n,c-i):n))}function y(t){return(f=void 0,m&&a)?g(t):(a=u=void 0,d)}function C(){var t,i=r(),n=j(i);if(a=arguments,u=this,p=i,n){if(void 0===f)return v=t=p,f=setTimeout(b,e),h?g(t):d;if(x)return clearTimeout(f),f=setTimeout(b,e),g(p)}return void 0===f&&(f=setTimeout(b,e)),d}return e=s(e)||0,n(i)&&(h=!!i.leading,c=(x="maxWait"in i)?l(s(i.maxWait)||0,e):c,m="trailing"in i?!!i.trailing:m),C.cancel=function(){void 0!==f&&clearTimeout(f),v=0,a=p=u=f=void 0},C.flush=function(){return void 0===f?d:y(r())},C}},82846:function(t,e,i){var n=i(77400);t.exports=function(){return n.Date.now()}},91936:function(t,e,i){var n=i(74833),r=i(11611),s=i(55193),l=0/0,o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(s(t))return l;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=n(t);var i=a.test(t);return i||u.test(t)?c(t.slice(2),i?2:8):o.test(t)?l:+t}},30952:function(t,e,i){"use strict";i.d(e,{f:function(){return a}});var n=i(24246),r=i(66726),s=i.n(r),l=i(27378),o=i(26917);let a=t=>{let{value:e,onChange:i,placeholder:r,...a}=t,[u,c]=(0,l.useState)(e),d=s()(i,500),f=(0,l.useCallback)(t=>{c(t),d(t)},[]);return(0,n.jsx)(o.Z,{value:u,onChange:f,onClear:()=>{c(""),i("")},placeholder:r,...a})}},58754:function(t,e,i){"use strict";var n=i(24246),r=i(4454),s=i(70788);e.Z=t=>{let{heading:e,breadcrumbItems:i,isSticky:l=!0,children:o,rightContent:a,style:u,...c}=t;return(0,n.jsxs)("div",{...c,style:l?{position:"sticky",top:"-24px",paddingTop:"24px",paddingBottom:"24px",paddingLeft:"40px",marginLeft:"-40px",paddingRight:"40px",marginRight:"-40px",marginTop:"-24px",left:0,zIndex:20,backgroundColor:"white",...u}:{paddingBottom:"24px",...u},children:[(0,n.jsxs)(r.jqI,{justify:"space-between",children:["string"==typeof e?(0,n.jsx)(r.lQT,{className:i||o?"pb-4":void 0,level:1,"data-testid":"page-heading",children:e}):e,a&&(0,n.jsx)("div",{"data-testid":"page-header-right-content",children:a})]}),!!i&&(0,n.jsx)(s.m,{className:o?"pb-4":void 0,items:i,"data-testid":"page-breadcrumb"}),o]})}},14047:function(t,e,i){"use strict";i.d(e,{H:function(){return s},V:function(){return n.V}});var n=i(84306),r=i(812);let s=()=>{let{errorAlert:t}=(0,n.V)();return{handleError:e=>{let i="An unexpected error occurred. Please try again.";(0,r.Ot)(e)?i=e.data.detail:(0,r.tB)(e)&&(i=e.data.detail[0].msg),t(i)}}}},84306:function(t,e,i){"use strict";i.d(e,{V:function(){return s}});var n=i(24246),r=i(4454);let s=()=>{let t=(0,r.pmc)();return{errorAlert:(e,i,s)=>{let l={...s,position:(null==s?void 0:s.position)||"top",render:t=>{let{onClose:s}=t;return(0,n.jsxs)(r.bZj,{alignItems:"normal",status:"error","data-testid":"error-alert",children:[(0,n.jsx)(r.zMQ,{}),(0,n.jsxs)(r.xuv,{children:[i&&(0,n.jsx)(r.CdC,{children:i}),(0,n.jsx)(r.XaZ,{children:e})]}),(0,n.jsx)(r.PZ7,{onClick:s,position:"relative",right:0,size:"sm",top:-1})]})}};(null==s?void 0:s.id)&&t.isActive(s.id)?t.update(s.id,l):t(l)},successAlert:(e,i,s)=>{let l={...s,position:(null==s?void 0:s.position)||"top",render:t=>{let{onClose:s}=t;return(0,n.jsxs)(r.bZj,{alignItems:"normal",status:"success",variant:"subtle","data-testid":"success-alert",children:[(0,n.jsx)(r.zMQ,{}),(0,n.jsxs)(r.xuv,{children:[i&&(0,n.jsx)(r.CdC,{children:i}),(0,n.jsx)(r.XaZ,{children:e})]}),(0,n.jsx)(r.PZ7,{onClick:s,position:"relative",right:0,size:"sm",top:-1})]})}};(null==s?void 0:s.id)&&t.isActive(s.id)?t.update(s.id,l):t(l)}}}},70788:function(t,e,i){"use strict";i.d(e,{m:function(){return u}});var n=i(24246),r=i(4454),s=i(79894),l=i.n(s),o=i(27378);let{Text:a}=r.AntTypography,u=t=>{let{items:e,...i}=t,s=(0,o.useMemo)(()=>null==e?void 0:e.map((t,i)=>{let s=i===e.length-1,o={...t},u=o.onClick&&!o.href;return("string"==typeof o.title&&(o.title=(0,n.jsx)(a,{style:{color:"inherit",maxWidth:s?void 0:400},ellipsis:!s,children:o.title})),u)?o.title=(0,n.jsx)(r.wpx,{type:"text",size:"small",icon:o.icon,onClick:o.onClick,className:"ant-breadcrumb-link -mt-px px-1 text-inherit",children:o.title}):(o.icon&&(o.title=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"anticon align-text-bottom",children:o.icon}),o.title]})),o.href&&o.title&&(o.title=(0,n.jsx)(l(),{href:o.href,className:"ant-breadcrumb-link",children:o.title}),delete o.href)),o}),[e]);return(0,n.jsx)(r.zrq,{items:s,...i})}},79947:function(t,e,i){"use strict";var n=i(24246),r=i(4454);e.Z=t=>{let{type:e}=t;return(0,n.jsx)(r.kCb,{align:"center",h:"full",children:!!e&&(0,n.jsx)(r.j8w,{children:e})})}},7940:function(t,e,i){"use strict";i.d(e,{G:function(){return r}});var n=i(61317);let r=t=>{var e,i,r;return t?t.resource_type?t.resource_type:(null===(e=t.schemas)||void 0===e?void 0:e.length)?n.D$.DATABASE:(null===(i=t.tables)||void 0===i?void 0:i.length)?n.D$.SCHEMA:(null===(r=t.fields)||void 0===r?void 0:r.length)?n.D$.TABLE:n.D$.FIELD:void 0}},98559:function(t,e){"use strict";e.Z=t=>{let{name:e,urn:i,monitor_config_id:n,database_name:r,schema_name:s,table_name:l,top_level_field_name:o,top_level_field_urn:a}=t;if(!o)return e;let u=i.split(".");return a?i.replace("".concat(a).concat("."),""):([n,r,s,l,o].forEach(t=>{if(t){let e=u.indexOf(t);e>-1&&u.splice(e,1)}}),u.join("."))}},36168:function(t,e){"use strict";e.Z=t=>{var e;return!!t.parent_table_urn&&null!==(e=t.sub_field_urns)&&void 0!==e&&!!e.length&&!t.top_level_field_name}},80356:function(t,e,i){"use strict";var n=i(7940),r=i(36168),s=i(61317);e.Z=t=>(0,n.G)(t)!==s.D$.FIELD||(0,r.Z)(t)}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2921],{95813:function(e,l,r){r.d(l,{S:function(){return t}});let t={input:"default text",radio:"2",checkbox:!0,switch:!0,select:"2",multiselect:["2"],tags:["1"],date:"",number:12}},12921:function(e,l,r){r.r(l),r.d(l,{FormikSpreadFieldPOC:function(){return u}});var t=r(24246),n=r(4454),i=r(3124),s=r.n(i),d=r(34090),c=r(95813);let{Text:o,Title:a}=n.AntTypography,u=()=>(0,t.jsx)(d.J9,{initialValues:{...c.S},onSubmit:console.log,children:e=>{let{values:l}=e;return(0,t.jsxs)(n.bue,{children:[(0,t.jsxs)(n.JGx,{span:12,children:[(0,t.jsx)(a,{level:2,children:"<Formik> + <Form> + {...field}"}),(0,t.jsxs)("div",{className:"mb-4",children:[(0,t.jsx)(n.j8w,{color:"red",children:"non functional"}),(0,t.jsx)(n.j8w,{color:"red",children:"high effort"})]}),(0,t.jsx)(d.l0,{children:(0,t.jsxs)(n.jqI,{vertical:!0,gap:16,children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"input",children:"Input"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"input",children:e=>{let{field:l}=e;return(0,t.jsx)(n.uFc,{...l,id:"input",type:"text"})}})})]}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"radio",children:e=>{let{field:l}=e;return(0,t.jsxs)(n.y02.Group,{...l,children:[(0,t.jsx)(n.y02,{value:"1",children:"Radio 1"}),(0,t.jsx)(n.y02,{value:"2",children:"Radio 2"})]})}})}),(0,t.jsxs)("div",{children:[(0,t.jsx)(d.gN,{name:"checkbox",children:e=>{let{field:r}=e;return(0,t.jsx)(n.E_O,{...r,defaultChecked:l.checkbox,children:"Checkbox"})}}),(0,t.jsx)(o,{type:"warning",children:"Requires additional logic to handle default state"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"switch",children:"Switch"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"switch",children:e=>{let{field:l}=e;return(0,t.jsx)(n.rAg,{id:"switch",...l})}})}),(0,t.jsx)(o,{type:"danger",children:"Ant Switch's onChange is too different from Formik, requires to be fully controlled."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"select",children:"Select"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"select",children:e=>{let{field:r}=e;return(0,t.jsx)(n.WPr,{allowClear:!0,id:"select",className:"w-full",defaultValue:l.select,status:"error",...r,options:[{value:"1",label:"Option 1"},{value:"2",label:"Option 2"}]})}})}),(0,t.jsx)(o,{type:"danger",children:"Ant Select's onChange is too different from Formik, requires to be fully controlled."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"multiselect",children:"Multiselect"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"multiselect",children:e=>{let{field:r}=e;return(0,t.jsx)(n.WPr,{mode:"multiple",allowClear:!0,id:"multiselect",className:"w-full",defaultValue:l.multiselect,status:"error",...r,options:[{value:"1",label:"Option 1"},{value:"2",label:"Option 2"}]})}})}),(0,t.jsx)(o,{type:"danger",children:"Ant Select's onChange is too different from Formik, requires to be fully controlled."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"tags",children:"Tags"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"tags",children:e=>{let{field:r}=e;return(0,t.jsx)(n.WPr,{mode:"tags",allowClear:!0,id:"tags",className:"w-full",defaultValue:l.tags,status:"error",...r,options:[{value:"1",label:"Option 1"},{value:"2",label:"Option 2"}]})}})}),(0,t.jsx)(o,{type:"danger",children:"Ant Select's onChange is too different from Formik, requires to be fully controlled."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"date",children:"Date"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"date",children:e=>{let{field:l}=e;return(0,t.jsx)(n.cv2,{id:"date",status:"error",...l})}})}),(0,t.jsx)(o,{type:"danger",children:"Ant DatePicker's onChange is different from Formik, requires to be fully controlled."})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"number",children:"Number"}),(0,t.jsx)("div",{children:(0,t.jsx)(d.gN,{name:"number",children:e=>{let{field:r}=e;return(0,t.jsx)(n.W7D,{id:"number",defaultValue:l.number,status:"error",...r})}})}),(0,t.jsx)(o,{type:"danger",children:"Ant InputNumber's onChange is different from Formik, requires to be fully controlled."})]})]})})]}),(0,t.jsxs)(n.JGx,{span:8,offset:4,children:[(0,t.jsx)(a,{level:4,children:"Controlled Values"}),(0,t.jsx)(n.V4A,{style:{backgroundColor:s().FIDESUI_MINOS,color:s().FIDESUI_CORINTH},children:(0,t.jsx)("pre",{children:(0,t.jsxs)("code",{children:["{\n",Object.keys(l).map(e=>" ".concat(e,": ").concat(l[e],"\n")),"}"]})})})]})]})}});l.default=u}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3119],{18225:function(e,t,i){var r=i(24246),s=i(4454);t.Z=e=>{let{alignment:t="center",...i}=e;return(0,r.jsx)(s.kCb,{boxSize:"full",align:"center",justify:t,children:(0,r.jsx)(s.$jN,{color:"primary",...i})})}},77213:function(e,t,i){i.d(t,{Z:function(){return f}});var r=i(24246),s=i(4454),n=i(88038),a=i.n(n),l=i(86677);i(27378);var o=i(25980),c=i(90867),d=i(77830),u=()=>{let e=(0,l.useRouter)();return(0,r.jsx)(s.xuv,{bg:"gray.50",border:"1px solid",borderColor:"blue.400",borderRadius:"md",justifyContent:"space-between",p:5,mb:5,mt:5,children:(0,r.jsxs)(s.xuv,{children:[(0,r.jsxs)(s.Kqy,{direction:{base:"column",sm:"row"},justifyContent:"space-between",children:[(0,r.jsx)(s.xvT,{fontWeight:"semibold",children:"Configure your storage and messaging provider"}),(0,r.jsx)(s.wpx,{onClick:()=>{e.push(d.fz)},children:"Configure"})]}),(0,r.jsxs)(s.xvT,{children:["Before Fides can process your privacy requests we need two simple steps to configure your storage and email client."," "]})]})})},f=e=>{let{children:t,title:i,padded:n=!0,mainProps:d}=e,f=(0,o.hz)(),x=(0,l.useRouter)(),h="/privacy-requests"===x.pathname||"/datastore-connection"===x.pathname,p=!(f.flags.privacyRequestsConfiguration&&h),{data:j}=(0,c.JE)(void 0,{skip:p}),{data:g}=(0,c.PW)(void 0,{skip:p}),m=f.flags.privacyRequestsConfiguration&&(!j||!g)&&h;return(0,r.jsxs)(s.kCb,{"data-testid":i,direction:"column",h:"100vh",children:[(0,r.jsxs)(a(),{children:[(0,r.jsxs)("title",{children:["Fides Admin UI - ",i]}),(0,r.jsx)("meta",{name:"description",content:"Privacy Engineering Platform"}),(0,r.jsx)("link",{rel:"icon",href:"/favicon.ico"})]}),(0,r.jsxs)(s.kCb,{as:"main",direction:"column",py:n?6:0,px:n?10:0,h:n?"calc(100% - 48px)":"full",flex:1,minWidth:0,overflow:"auto",...d,children:[m?(0,r.jsx)(u,{}):null,t]})]})}},79789:function(e,t,i){i.d(t,{Hn:function(){return l},XU:function(){return a},Z5:function(){return o},aG:function(){return u},cB:function(){return n},hX:function(){return d},vQ:function(){return c}});var r=i(24246),s=i(4454);let n=e=>{let{text:t,...i}=e;return(0,r.jsx)(s.X6q,{fontSize:"sm",mt:4,mb:1,...i,children:t})},a=e=>{let{children:t}=e;return(0,r.jsx)(s.xvT,{fontSize:"14px",mb:4,children:t})},l=e=>{let{children:t,href:i}=e;return(0,r.jsx)(s.rUS,{href:i,textDecoration:"underline",isExternal:!0,children:t})},o=e=>{let{children:t}=e;return(0,r.jsx)(s.QI$,{fontSize:"14px",mb:4,children:t})},c=e=>{let{children:t}=e;return(0,r.jsx)(s.GSI,{fontSize:"14px",mb:4,ml:6,children:t})},d=e=>{let{children:t}=e;return(0,r.jsx)(s.EKh,{display:"block",whiteSpace:"pre",p:4,mb:4,overflowX:"scroll",children:t})},u=e=>{let{data:t}=e;return(0,r.jsxs)(s.iA_,{fontSize:"14px",children:[(0,r.jsx)(s.hrZ,{children:(0,r.jsxs)(s.Tr,{children:[(0,r.jsx)(s.Th,{children:"Permission"}),(0,r.jsx)(s.Th,{children:"Description"})]})}),(0,r.jsx)(s.p3B,{children:t.map(e=>(0,r.jsxs)(s.Tr,{children:[(0,r.jsx)(s.Td,{children:(0,r.jsx)(s.Vp9,{children:e.permission})}),(0,r.jsx)(s.Td,{children:e.description})]},e.permission))})]})}},89200:function(e,t,i){var r=i(24246),s=i(14481),n=i(98559),a=i(80356);t.Z=e=>{let{resource:t}=e;return(0,r.jsx)(s.G3,{value:(0,n.Z)(t),fontWeight:(0,a.Z)(t)?"semibold":"normal"})}},5945:function(e,t,i){var r=i(24246),s=i(14481),n=i(8151);let a={[n.e.ATTENTION_REQUIRED]:"error",[n.e.APPROVED]:"success",[n.e.IN_REVIEW]:"warning",[n.e.CLASSIFYING]:"info",[n.e.NONE]:"marble"};t.Z=e=>{let{status:t}=e;return(0,r.jsx)(s.A4,{color:a[t],value:t})}},81406:function(e,t,i){var r=i(24246),s=i(4454);t.Z=()=>(0,r.jsxs)(s.gCW,{mt:6,p:10,spacing:4,borderRadius:"base",maxW:"70%","data-testid":"empty-state",alignSelf:"center",margin:"auto",children:[(0,r.jsx)(s.xvT,{fontSize:"md",fontWeight:"600",children:"No resources found"}),(0,r.jsx)(s.xvT,{fontSize:"sm",children:"You're up to date!"})]})},99763:function(e,t,i){var r=i(24246),s=i(4454),n=i(79789),a=i(8151),l=i(61099),o=i(7940),c=i(61317);t.Z=e=>{var t;let{resource:i,onClose:d}=e,u=(0,o.G)(i),f=(0,a.u)(i),x=(u===c.D$.FIELD||u===c.D$.TABLE)&&f===a.e.IN_REVIEW;return(0,r.jsxs)(s.dys,{isOpen:!!i,onClose:d,size:"md",children:[(0,r.jsx)(s.P1B,{}),(0,r.jsxs)(s.scA,{"data-testid":"resource-details",children:[(0,r.jsx)(s.OXI,{children:(null==i?void 0:i.name)||(null==i?void 0:i.urn)}),(0,r.jsx)(s.cCv,{}),(0,r.jsxs)(s.Ng0,{children:[(0,r.jsx)(n.cB,{text:"Title",mt:0}),(0,r.jsx)(n.XU,{children:null!==(t=null==i?void 0:i.name)&&void 0!==t?t:null==i?void 0:i.urn}),(null==i?void 0:i.description)&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.cB,{text:"Description"}),(0,r.jsx)(n.XU,{children:null==i?void 0:i.description})]}),x&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.cB,{text:"Data categories"}),(0,r.jsx)(l.Z,{resource:i})]})]})]})]})}},28976:function(e,t,i){var r=i(24246),s=i(4454);t.Z=e=>{let{onHideClick:t,onDetailClick:i}=e;return(0,r.jsxs)(s.v2r,{children:[(0,r.jsx)(s.j2t,{as:s.wpx,size:"small",type:"text",icon:(0,r.jsx)(s.nXP,{transform:"rotate(90deg)"}),className:"w-6 gap-0","data-testid":"actions-menu"}),(0,r.jsxs)(s.qyq,{children:[i&&(0,r.jsx)(s.sNh,{onClick:i,"data-testid":"view-resource-details",children:"View details"}),t&&(0,r.jsx)(s.sNh,{onClick:t,"data-testid":"hide-resource",children:"Hide"})]})]})}},25077:function(e,t,i){i.d(t,{Z:function(){return T}});var r=i(24246),s=i(59003),n=i(92222),a=i(4454),l=i(27378),o=i(30952),c=i(14481),d=i(81406),u=i(99763),f=i(72625),x=i(14047),h=i(28976),p=i(8151),j=i(70675),g=e=>{let{resource:t,onDetailClick:i}=e,{successAlert:s}=(0,x.V)(),n=(0,p.u)(t),[l,{isLoading:o}]=(0,j.v8)(),[c,{isLoading:d}]=(0,j.cM)(),[u,{isLoading:f}]=(0,j.vi)(),g=async()=>{var e;await l({staged_resource_urn:t.urn,monitor_config_id:t.monitor_config_id,unmute_children:!0,classify_monitored_resources:!0}),s("Started classification on ".concat(null!==(e=t.name)&&void 0!==e?e:"this resource"))},m=async()=>{var e;await c({staged_resource_urn:t.urn}),s("Approved ".concat(null!==(e=t.name)&&void 0!==e?e:" resource"))},I=async()=>{var e;await u({staged_resource_urn:t.urn}),s("Hid ".concat(null!==(e=t.name)&&void 0!==e?e:" resource"))},v=o||d||f;return(0,r.jsxs)(a.kCb,{gap:2,justify:"space-between",children:[n===p.e.ATTENTION_REQUIRED&&(0,r.jsx)(a.wpx,{size:"small",onClick:g,loading:o,disabled:v,"data-testid":"classify-btn",children:"Classify"}),n===p.e.IN_REVIEW&&(0,r.jsx)(a.wpx,{size:"small",onClick:m,loading:d,disabled:v,"data-testid":"approve-btn",children:"Approve"}),(0,r.jsx)(a.LZC,{}),(0,r.jsx)(h.Z,{onHideClick:I,onDetailClick:i})]})},m=i(89200),I=i(5945),v=i(61099),C=i(79947),L=i(61317);let _=(0,n.Cl)();var A=(e,t)=>{let i=[];return e?e===L.D$.TABLE?[_.display({id:"name",cell:e=>{let{row:t}=e;return(0,r.jsx)(m.Z,{resource:t.original})},header:"Table"}),_.display({id:"status",cell:e=>{let{row:t}=e;return(0,r.jsx)(I.Z,{status:(0,p.u)(t.original)})},header:"Status"}),_.display({id:"category",cell:e=>{let{row:t}=e;return(0,r.jsx)(v.Z,{resource:t.original})},header:"Data categories",minSize:280,meta:{disableRowClick:!0}}),_.accessor(e=>e.description,{id:"description",cell:e=>(0,r.jsx)(c.G3,{value:e.getValue()}),header:"Description"}),_.accessor(e=>e.updated_at,{id:"lastUpdated",cell:e=>(0,r.jsx)(f.Cy,{time:e.getValue()}),header:"Updated"}),_.display({id:"actions",cell:e=>{let{row:i}=e;return(0,r.jsx)(g,{resource:i.original,onDetailClick:()=>t(i.original)})},header:"Actions",meta:{disableRowClick:!0}})]:e===L.D$.FIELD?[_.display({id:"name",cell:e=>{let{row:t}=e;return(0,r.jsx)(m.Z,{resource:t.original})},header:"Field"}),_.display({id:"status",cell:e=>{let{row:t}=e;return(0,r.jsx)(I.Z,{status:(0,p.u)(t.original)})},header:"Status"}),_.accessor(e=>e.data_type,{id:"dataType",cell:e=>(0,r.jsx)(C.Z,{type:e.getValue()}),header:"Data type"}),_.display({id:"category",cell:e=>{let{row:t}=e;return(0,r.jsx)(v.Z,{resource:t.original})},header:"Data categories",minSize:280,meta:{disableRowClick:!0}}),_.accessor(e=>e.description,{id:"description",cell:e=>(0,r.jsx)(c.G3,{value:e.getValue()}),header:"Description"}),_.accessor(e=>e.updated_at,{id:"lastUpdated",cell:e=>(0,r.jsx)(f.Cy,{time:e.getValue()}),header:"Updated"}),_.display({id:"actions",cell:e=>{let{row:i}=e;return(0,r.jsx)(g,{resource:i.original,onDetailClick:()=>t(i.original)})},header:"Actions",meta:{disableRowClick:!0}})]:i:i},S=i(7940),N=i(80356);let y=[L.LL.ADDITION,L.LL.CLASSIFYING,L.LL.CLASSIFICATION_ADDITION,L.LL.CLASSIFICATION_QUEUED,L.LL.CLASSIFICATION_UPDATE,L.LL.MONITORED,L.LL.PROMOTING,L.LL.REMOVAL,L.LL.REMOVING],E={items:[],total:0,page:1,size:50,pages:1};var T=e=>{let{resourceUrn:t,onRowClick:i}=e,{PAGE_SIZES:f,pageSize:x,setPageSize:h,onPreviousPageClick:p,isPreviousPageDisabled:g,onNextPageClick:m,isNextPageDisabled:I,startRange:v,endRange:C,pageIndex:L,setTotalPages:_,resetPageIndexToDefault:T}=(0,c.oi)(),[b,D]=(0,l.useState)("");(0,l.useEffect)(()=>{T()},[t,T]);let{isFetching:R,isLoading:w,data:O}=(0,j.z8)({staged_resource_urn:t,page:L,size:x,diff_status:y,search:b}),{items:P,total:k,pages:Z}=(0,l.useMemo)(()=>null!=O?O:E,[O]);(0,l.useEffect)(()=>{_(Z)},[Z,_]);let[z,F]=(0,l.useState)(void 0),U=A((0,S.G)(P[0]),F),V=(0,s.b7)({getCoreRowModel:(0,n.sC)(),getGroupedRowModel:(0,n.qe)(),getExpandedRowModel:(0,n.rV)(),columns:U,manualPagination:!0,data:P,columnResizeMode:"onChange",getRowId:e=>e.urn});return w||R?(0,r.jsx)(c.I4,{rowHeight:36,numRows:36}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.Q$,{children:(0,r.jsx)(a.kCb,{gap:6,align:"center",children:(0,r.jsx)(a.xuv,{flexShrink:0,children:(0,r.jsx)(o.f,{value:b,onChange:D})})})}),(0,r.jsx)(c.ZK,{tableInstance:V,emptyTableNotice:(0,r.jsx)(d.Z,{}),getRowIsClickable:e=>(0,N.Z)(e),onRowClick:i}),(0,r.jsx)(c.s8,{totalRows:k||0,pageSizes:f,setPageSize:h,onPreviousPageClick:p,isPreviousPageDisabled:g,onNextPageClick:m,isNextPageDisabled:I,startRange:v,endRange:C}),(0,r.jsx)(u.Z,{resource:z,onClose:()=>F(void 0)})]})}},8151:function(e,t,i){i.d(t,{e:function(){return s},u:function(){return a}});var r,s,n=i(61317);(r=s||(s={})).ATTENTION_REQUIRED="Attention required",r.IN_REVIEW="In review",r.APPROVED="Approved",r.CLASSIFYING="Classifying",r.NONE="None";let a=e=>{if(!e)return"Approved";let t=e.diff_status===n.LL.ADDITION||e.diff_status===n.LL.REMOVAL,i=e.child_diff_statuses&&(e.child_diff_statuses[n.LL.ADDITION]||e.child_diff_statuses[n.LL.REMOVAL]);if(t||i)return"Attention required";let r=e.diff_status===n.LL.CLASSIFICATION_QUEUED||e.diff_status===n.LL.CLASSIFYING,s=e.child_diff_statuses&&(e.child_diff_statuses[n.LL.CLASSIFICATION_QUEUED]||e.child_diff_statuses[n.LL.CLASSIFYING]);if(r||s)return"Classifying";let a=e.diff_status===n.LL.CLASSIFICATION_ADDITION||e.diff_status===n.LL.CLASSIFICATION_UPDATE,l=e.child_diff_statuses&&(e.child_diff_statuses[n.LL.CLASSIFICATION_ADDITION]||e.child_diff_statuses[n.LL.CLASSIFICATION_UPDATE]);return a||l?"In review":"Approved"}},94780:function(e,t,i){i.d(t,{X5:function(){return l},pN:function(){return o},sv:function(){return n}});var r=i(24246),s=i(4454);let n=e=>e.split(".")[1],a=[(0,r.jsx)(s.PJP.S9g,{},"layers"),(0,r.jsx)(s.PJP.iA_,{},"table"),(0,r.jsx)(s.PJP.$4y,{style:{transform:"rotate(-90deg)"}},"field")],l=(e,t)=>{if(!e)return[];let i=e.split(".");if(i.length<2)return[];let l=i.splice(0,2).join("."),o=[];return i.reduce((e,r,s)=>{let n=s===i.length-1,c="".concat(e).concat(".").concat(r);return o.push({title:r,href:n?void 0:"".concat(t,"/").concat(l,"/").concat(c),icon:a[s]}),c},l),[{title:n(l),href:"".concat(t,"/").concat(l),icon:(0,r.jsx)(s.PJP.ehp,{})},...o]},o=(e,t)=>{if(!e)return[];let i=e.split(".");if(i.length<2)return[];let r=i.shift(),s=[];return i.reduce((e,r,n)=>{let l=n===i.length-1,o="".concat(e).concat(".").concat(r);return s.push({title:r,href:l?void 0:"".concat(t,"/").concat(o),icon:a[n]}),o},r),s}}}]);