@hmcts/media-viewer 4.0.1 → 4.0.2

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 (236) hide show
  1. package/esm2020/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +116 -0
  2. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +109 -0
  3. package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +5 -5
  4. package/esm2020/lib/annotations/annotation-set/annotation-set.component.mjs +50 -0
  5. package/esm2020/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +94 -0
  6. package/esm2020/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +116 -0
  7. package/esm2020/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +118 -0
  8. package/esm2020/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +86 -0
  9. package/{esm2022 → esm2020}/lib/annotations/annotations.module.mjs +61 -61
  10. package/esm2020/lib/annotations/comment-set/comment/comment.component.mjs +177 -0
  11. package/esm2020/lib/annotations/comment-set/comment/comment.service.mjs +50 -0
  12. package/esm2020/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +47 -0
  13. package/{esm2022 → esm2020}/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.mjs +5 -5
  14. package/esm2020/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +91 -0
  15. package/{esm2022 → esm2020}/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.mjs +5 -5
  16. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +54 -0
  17. package/esm2020/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +68 -0
  18. package/esm2020/lib/annotations/comment-set/comment-set-render.service.mjs +54 -0
  19. package/esm2020/lib/annotations/comment-set/comment-set.component.mjs +123 -0
  20. package/esm2020/lib/annotations/comments-summary/comments-summary.component.mjs +120 -0
  21. package/{esm2022 → esm2020}/lib/annotations/pipes/date/date.pipe.mjs +4 -4
  22. package/esm2020/lib/annotations/pipes/filter/filter.pipe.mjs +32 -0
  23. package/{esm2022 → esm2020}/lib/annotations/pipes/unsnake/unsnake.pipe.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/annotations/services/annotation-api/annotation-api.service.mjs +5 -5
  25. package/{esm2022 → esm2020}/lib/annotations/services/bookmarks-api/bookmarks-api.service.mjs +5 -5
  26. package/{esm2022 → esm2020}/lib/annotations/services/tags/tags.services.mjs +5 -5
  27. package/esm2020/lib/annotations/tags/tags.component.mjs +53 -0
  28. package/{esm2022 → esm2020}/lib/bookmark/components/bookmark-icons.component.mjs +5 -5
  29. package/{esm2022 → esm2020}/lib/icp/confirm-exit/confirm-action-dialog.component.mjs +5 -5
  30. package/esm2020/lib/icp/icp-follower.service.mjs +60 -0
  31. package/esm2020/lib/icp/icp-presenter.service.mjs +55 -0
  32. package/esm2020/lib/icp/icp-session-api.service.mjs +21 -0
  33. package/esm2020/lib/icp/icp-update.service.mjs +65 -0
  34. package/{esm2022 → esm2020}/lib/icp/icp.interfaces.mjs +1 -1
  35. package/esm2020/lib/icp/icp.service.mjs +95 -0
  36. package/{esm2022 → esm2020}/lib/icp/participants-list/participants-list.component.mjs +5 -5
  37. package/esm2020/lib/icp/socket.service.mjs +118 -0
  38. package/esm2020/lib/media-viewer.component.mjs +245 -0
  39. package/{esm2022 → esm2020}/lib/media-viewer.module.mjs +55 -55
  40. package/{esm2022 → esm2020}/lib/print.service.mjs +4 -4
  41. package/esm2020/lib/redaction/components/redaction.component.mjs +91 -0
  42. package/{esm2022 → esm2020}/lib/redaction/services/redaction-api.service.mjs +5 -5
  43. package/{esm2022 → esm2020}/lib/shared/gov-uk-date/gov-uk-date.component.mjs +4 -4
  44. package/{esm2022 → esm2020}/lib/shared/gov-uk-error-message/gov-uk-error-message.component.mjs +7 -7
  45. package/{esm2022 → esm2020}/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.mjs +6 -6
  46. package/{esm2022 → esm2020}/lib/shared/gov-uk-label/gov-uk-label.component.mjs +7 -7
  47. package/{esm2022 → esm2020}/lib/shared/shared.module.mjs +19 -19
  48. package/esm2020/lib/shared/util/helpers/html-templates.helper.mjs +18 -0
  49. package/{esm2022 → esm2020}/lib/shared/util/services/number.helper.service.mjs +5 -5
  50. package/esm2020/lib/store/actions/icp.actions.mjs +56 -0
  51. package/esm2020/lib/store/bookmarks-store-utils.mjs +49 -0
  52. package/esm2020/lib/store/effects/annotation.effects.mjs +51 -0
  53. package/{esm2022 → esm2020}/lib/store/effects/bookmarks.effects.mjs +5 -5
  54. package/{esm2022 → esm2020}/lib/store/effects/document.effects.mjs +5 -5
  55. package/esm2020/lib/store/effects/icp.effects.mjs +26 -0
  56. package/{esm2022 → esm2020}/lib/store/effects/redaction.effects.mjs +5 -5
  57. package/esm2020/lib/store/reducers/annotations.reducer.mjs +208 -0
  58. package/esm2020/lib/store/reducers/bookmarks.reducer.mjs +116 -0
  59. package/esm2020/lib/store/reducers/document.reducer.mjs +135 -0
  60. package/esm2020/lib/store/reducers/icp.reducer.mjs +56 -0
  61. package/esm2020/lib/store/reducers/redaction.reducer.mjs +116 -0
  62. package/esm2020/lib/store/reducers/tags.reducer.mjs +93 -0
  63. package/esm2020/lib/store/selectors/annotation.selectors.mjs +81 -0
  64. package/{esm2022 → esm2020}/lib/store/selectors/bookmark.selectors.mjs +1 -1
  65. package/{esm2022 → esm2020}/lib/store/selectors/redaction.selectors.mjs +1 -1
  66. package/esm2020/lib/store/store-utils.mjs +131 -0
  67. package/esm2020/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +44 -0
  68. package/{esm2022 → esm2020}/lib/toolbar/icp-event.service.mjs +1 -1
  69. package/{esm2022 → esm2020}/lib/toolbar/icp-toolbar/icp-toolbar.component.mjs +5 -5
  70. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +189 -0
  71. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +236 -0
  72. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +68 -0
  73. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +109 -0
  74. package/esm2020/lib/toolbar/toolbar-button-visibility.service.mjs +94 -0
  75. package/esm2020/lib/toolbar/toolbar-event.service.mjs +178 -0
  76. package/{esm2022 → esm2020}/lib/toolbar/toolbar.module.mjs +25 -25
  77. package/esm2020/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +82 -0
  78. package/{esm2022 → esm2020}/lib/viewers/convertible-content-viewer/document-conversion-api.service.mjs +5 -5
  79. package/esm2020/lib/viewers/grab-n-drag.directive.mjs +57 -0
  80. package/esm2020/lib/viewers/image-viewer/image-viewer.component.mjs +166 -0
  81. package/esm2020/lib/viewers/multimedia-player/multimedia-player.component.mjs +59 -0
  82. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +209 -0
  83. package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +5 -5
  84. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +236 -0
  85. package/esm2020/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +352 -0
  86. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +49 -0
  87. package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +5 -5
  88. package/{esm2022 → esm2020}/lib/viewers/rotation-persist/rotation-api.service.mjs +5 -5
  89. package/esm2020/lib/viewers/rotation-persist/rotation-persist.directive.mjs +61 -0
  90. package/esm2020/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +49 -0
  91. package/{esm2022 → esm2020}/lib/viewers/viewer-event.service.mjs +5 -5
  92. package/{esm2022 → esm2020}/lib/viewers/viewer-util.service.mjs +5 -5
  93. package/fesm2015/hmcts-media-viewer.mjs +6953 -0
  94. package/fesm2015/hmcts-media-viewer.mjs.map +1 -0
  95. package/{fesm2022 → fesm2020}/hmcts-media-viewer.mjs +462 -453
  96. package/fesm2020/hmcts-media-viewer.mjs.map +1 -0
  97. package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts +1 -1
  98. package/lib/annotations/annotation-set/annotation-set.component.d.ts +1 -1
  99. package/lib/annotations/annotation-set/annotation-view/annotation-view.component.d.ts +1 -1
  100. package/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.d.ts +1 -1
  101. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +1 -1
  102. package/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.d.ts +1 -1
  103. package/lib/annotations/comment-set/comment/comment.component.d.ts +1 -1
  104. package/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.d.ts +1 -1
  105. package/lib/annotations/comment-set/comment-navigate/comments-navigate.component.d.ts +1 -1
  106. package/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.d.ts +1 -1
  107. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
  108. package/lib/annotations/comment-set/comment-set.component.d.ts +1 -1
  109. package/lib/annotations/comments-summary/comments-summary.component.d.ts +1 -1
  110. package/lib/annotations/tags/tags.component.d.ts +1 -1
  111. package/lib/bookmark/components/bookmark-icons.component.d.ts +1 -1
  112. package/lib/icp/icp-session-api.service.d.ts +4 -1
  113. package/lib/icp/icp-session-api.service.d.ts.map +1 -1
  114. package/lib/icp/icp-update.service.d.ts.map +1 -1
  115. package/lib/icp/icp.interfaces.d.ts +1 -0
  116. package/lib/icp/icp.interfaces.d.ts.map +1 -1
  117. package/lib/icp/icp.service.d.ts +1 -0
  118. package/lib/icp/icp.service.d.ts.map +1 -1
  119. package/lib/icp/socket.service.d.ts +6 -6
  120. package/lib/icp/socket.service.d.ts.map +1 -1
  121. package/lib/media-viewer.component.d.ts +2 -1
  122. package/lib/media-viewer.component.d.ts.map +1 -1
  123. package/lib/redaction/components/redaction.component.d.ts +1 -1
  124. package/lib/shared/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  125. package/lib/shared/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  126. package/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  127. package/lib/shared/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  128. package/lib/store/actions/icp.actions.d.ts +8 -2
  129. package/lib/store/actions/icp.actions.d.ts.map +1 -1
  130. package/lib/store/bookmarks-store-utils.d.ts.map +1 -1
  131. package/lib/store/effects/icp.effects.d.ts.map +1 -1
  132. package/lib/toolbar/icp-event.service.d.ts +4 -4
  133. package/lib/toolbar/icp-event.service.d.ts.map +1 -1
  134. package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts +1 -1
  135. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts +1 -1
  136. package/lib/toolbar/toolbar-event.service.d.ts +6 -6
  137. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  138. package/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.d.ts +1 -1
  139. package/lib/viewers/grab-n-drag.directive.d.ts +1 -1
  140. package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
  141. package/lib/viewers/multimedia-player/multimedia-player.component.d.ts +1 -1
  142. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -1
  143. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
  144. package/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.d.ts +1 -1
  145. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
  146. package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts +1 -1
  147. package/lib/viewers/unsupported-viewer/unsupported-viewer.component.d.ts +1 -1
  148. package/lib/viewers/viewer-event.service.d.ts +1 -1
  149. package/lib/viewers/viewer-event.service.d.ts.map +1 -1
  150. package/package.json +23 -16
  151. package/esm2022/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +0 -116
  152. package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +0 -109
  153. package/esm2022/lib/annotations/annotation-set/annotation-set.component.mjs +0 -50
  154. package/esm2022/lib/annotations/annotation-set/annotation-view/annotation-view.component.mjs +0 -94
  155. package/esm2022/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.mjs +0 -116
  156. package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +0 -118
  157. package/esm2022/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.mjs +0 -86
  158. package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +0 -177
  159. package/esm2022/lib/annotations/comment-set/comment/comment.service.mjs +0 -50
  160. package/esm2022/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.mjs +0 -47
  161. package/esm2022/lib/annotations/comment-set/comment-navigate/comments-navigate.component.mjs +0 -91
  162. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.mjs +0 -54
  163. package/esm2022/lib/annotations/comment-set/comment-set-header/comment-set-header.component.mjs +0 -68
  164. package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +0 -54
  165. package/esm2022/lib/annotations/comment-set/comment-set.component.mjs +0 -123
  166. package/esm2022/lib/annotations/comments-summary/comments-summary.component.mjs +0 -120
  167. package/esm2022/lib/annotations/pipes/filter/filter.pipe.mjs +0 -32
  168. package/esm2022/lib/annotations/tags/tags.component.mjs +0 -53
  169. package/esm2022/lib/icp/icp-follower.service.mjs +0 -60
  170. package/esm2022/lib/icp/icp-presenter.service.mjs +0 -55
  171. package/esm2022/lib/icp/icp-session-api.service.mjs +0 -21
  172. package/esm2022/lib/icp/icp-update.service.mjs +0 -57
  173. package/esm2022/lib/icp/icp.service.mjs +0 -93
  174. package/esm2022/lib/icp/socket.service.mjs +0 -118
  175. package/esm2022/lib/media-viewer.component.mjs +0 -244
  176. package/esm2022/lib/redaction/components/redaction.component.mjs +0 -91
  177. package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +0 -18
  178. package/esm2022/lib/store/actions/icp.actions.mjs +0 -56
  179. package/esm2022/lib/store/bookmarks-store-utils.mjs +0 -49
  180. package/esm2022/lib/store/effects/annotation.effects.mjs +0 -51
  181. package/esm2022/lib/store/effects/icp.effects.mjs +0 -26
  182. package/esm2022/lib/store/reducers/annotations.reducer.mjs +0 -208
  183. package/esm2022/lib/store/reducers/bookmarks.reducer.mjs +0 -116
  184. package/esm2022/lib/store/reducers/document.reducer.mjs +0 -135
  185. package/esm2022/lib/store/reducers/icp.reducer.mjs +0 -56
  186. package/esm2022/lib/store/reducers/redaction.reducer.mjs +0 -116
  187. package/esm2022/lib/store/reducers/tags.reducer.mjs +0 -93
  188. package/esm2022/lib/store/selectors/annotation.selectors.mjs +0 -81
  189. package/esm2022/lib/store/store-utils.mjs +0 -131
  190. package/esm2022/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +0 -44
  191. package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +0 -189
  192. package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +0 -236
  193. package/esm2022/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +0 -68
  194. package/esm2022/lib/toolbar/search-bar/search-bar.component.mjs +0 -109
  195. package/esm2022/lib/toolbar/toolbar-button-visibility.service.mjs +0 -94
  196. package/esm2022/lib/toolbar/toolbar-event.service.mjs +0 -178
  197. package/esm2022/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.mjs +0 -82
  198. package/esm2022/lib/viewers/grab-n-drag.directive.mjs +0 -57
  199. package/esm2022/lib/viewers/image-viewer/image-viewer.component.mjs +0 -166
  200. package/esm2022/lib/viewers/multimedia-player/multimedia-player.component.mjs +0 -59
  201. package/esm2022/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +0 -210
  202. package/esm2022/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +0 -236
  203. package/esm2022/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.mjs +0 -352
  204. package/esm2022/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.mjs +0 -49
  205. package/esm2022/lib/viewers/rotation-persist/rotation-persist.directive.mjs +0 -61
  206. package/esm2022/lib/viewers/unsupported-viewer/unsupported-viewer.component.mjs +0 -49
  207. package/fesm2022/hmcts-media-viewer.mjs.map +0 -1
  208. /package/{esm2022 → esm2020}/hmcts-media-viewer.mjs +0 -0
  209. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-set.model.mjs +0 -0
  210. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-view/annotation.model.mjs +0 -0
  211. /package/{esm2022 → esm2020}/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.model.mjs +0 -0
  212. /package/{esm2022 → esm2020}/lib/annotations/comment-set/comment/comment.model.mjs +0 -0
  213. /package/{esm2022 → esm2020}/lib/annotations/models/api-persisted.model.mjs +0 -0
  214. /package/{esm2022 → esm2020}/lib/annotations/models/event-select.model.mjs +0 -0
  215. /package/{esm2022 → esm2020}/lib/annotations/models/tags.model.mjs +0 -0
  216. /package/{esm2022 → esm2020}/lib/annotations/models/user.model.mjs +0 -0
  217. /package/{esm2022 → esm2020}/lib/icp/icp.events.mjs +0 -0
  218. /package/{esm2022 → esm2020}/lib/redaction/services/redaction.model.mjs +0 -0
  219. /package/{esm2022 → esm2020}/lib/store/actions/annotation.actions.mjs +0 -0
  220. /package/{esm2022 → esm2020}/lib/store/actions/bookmark.actions.mjs +0 -0
  221. /package/{esm2022 → esm2020}/lib/store/actions/document.actions.mjs +0 -0
  222. /package/{esm2022 → esm2020}/lib/store/actions/redaction.actions.mjs +0 -0
  223. /package/{esm2022 → esm2020}/lib/store/actions/tag.actions.mjs +0 -0
  224. /package/{esm2022 → esm2020}/lib/store/effects/index.mjs +0 -0
  225. /package/{esm2022 → esm2020}/lib/store/models/bookmarks.interface.mjs +0 -0
  226. /package/{esm2022 → esm2020}/lib/store/models/filters.interface.mjs +0 -0
  227. /package/{esm2022 → esm2020}/lib/store/reducers/reducers.mjs +0 -0
  228. /package/{esm2022 → esm2020}/lib/store/selectors/document.selectors.mjs +0 -0
  229. /package/{esm2022 → esm2020}/lib/store/selectors/icp.selectors.mjs +0 -0
  230. /package/{esm2022 → esm2020}/lib/store/selectors/tag.selectors.mjs +0 -0
  231. /package/{esm2022 → esm2020}/lib/toolbar/redaction-search-bar/redaction-search.model.mjs +0 -0
  232. /package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces.mjs +0 -0
  233. /package/{esm2022 → esm2020}/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +0 -0
  234. /package/{esm2022 → esm2020}/lib/viewers/rotation-persist/rotation.model.mjs +0 -0
  235. /package/{esm2022 → esm2020}/lib/viewers/viewer-exception.model.mjs +0 -0
  236. /package/{esm2022 → esm2020}/public_api.mjs +0 -0
@@ -0,0 +1,116 @@
1
+ import * as fromBookmarks from '../actions/bookmark.actions';
2
+ import { StoreUtils } from '../store-utils';
3
+ import { generateBookmarkEntities } from '../bookmarks-store-utils';
4
+ export const initialBookmarksState = {
5
+ bookmarks: [],
6
+ bookmarkEntities: {},
7
+ bookmarkPageEntities: {},
8
+ editableBookmark: undefined,
9
+ loaded: false,
10
+ loading: false
11
+ };
12
+ export function bookmarksReducer(state = initialBookmarksState, action) {
13
+ switch (action.type) {
14
+ case fromBookmarks.LOAD_BOOKMARKS: {
15
+ return {
16
+ ...state,
17
+ loading: true
18
+ };
19
+ }
20
+ case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:
21
+ case fromBookmarks.LOAD_BOOKMARKS_FAIL: {
22
+ const bookmarks = action.payload.status === 200 ? action.payload.body : [];
23
+ const bookmarkEntities = generateBookmarkEntities(bookmarks);
24
+ const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');
25
+ return {
26
+ ...state,
27
+ bookmarks,
28
+ bookmarkEntities,
29
+ bookmarkPageEntities,
30
+ loaded: true
31
+ };
32
+ }
33
+ case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {
34
+ const bookmark = action.payload;
35
+ const bookmarkEntities = {
36
+ ...state.bookmarkEntities,
37
+ [bookmark.id]: bookmark,
38
+ };
39
+ const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);
40
+ const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');
41
+ const editableBookmark = bookmark.id;
42
+ return {
43
+ ...state,
44
+ bookmarkEntities,
45
+ editableBookmark,
46
+ bookmarkPageEntities,
47
+ loading: false,
48
+ loaded: true
49
+ };
50
+ }
51
+ case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {
52
+ const movedBookmarks = generateBookmarkEntities(action.payload);
53
+ const bookmarkEntities = {
54
+ ...state.bookmarkEntities,
55
+ ...movedBookmarks
56
+ };
57
+ return {
58
+ ...state,
59
+ bookmarkEntities,
60
+ loading: false,
61
+ loaded: true
62
+ };
63
+ }
64
+ case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {
65
+ const bookmarkIds = action.payload;
66
+ const bookmarkEntities = { ...state.bookmarkEntities };
67
+ const bookmarkPageEntities = { ...state.bookmarkPageEntities };
68
+ const removeBookmarksByPage = {};
69
+ bookmarkIds.forEach(bookmarkId => {
70
+ if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&
71
+ removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {
72
+ removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);
73
+ }
74
+ else {
75
+ removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];
76
+ }
77
+ delete bookmarkEntities[bookmarkId];
78
+ });
79
+ Object.entries(removeBookmarksByPage).forEach(([pageNumber, bmrkIds]) => {
80
+ bookmarkPageEntities[pageNumber]
81
+ = bookmarkPageEntities[pageNumber].filter(bookmark => !bmrkIds.includes(bookmark.id));
82
+ });
83
+ return {
84
+ ...state,
85
+ bookmarkEntities,
86
+ bookmarkPageEntities,
87
+ loading: false,
88
+ loaded: true
89
+ };
90
+ }
91
+ case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {
92
+ const bookmark = action.payload;
93
+ const bookmarkEntities = {
94
+ ...state.bookmarkEntities,
95
+ [bookmark.id]: { ...bookmark }
96
+ };
97
+ const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);
98
+ const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');
99
+ const editableBookmark = undefined;
100
+ return {
101
+ ...state,
102
+ bookmarkEntities,
103
+ editableBookmark,
104
+ bookmarkPageEntities,
105
+ loading: false,
106
+ loaded: true
107
+ };
108
+ }
109
+ }
110
+ return state;
111
+ }
112
+ export const getBookmarks = (state) => state.bookmarks;
113
+ export const getBookmarkEnts = (state) => state.bookmarkEntities;
114
+ export const getBookmarkPageEnt = (state) => state.bookmarkPageEntities;
115
+ export const getEditBookmark = (state) => state.editableBookmark;
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmtzLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy9ib29rbWFya3MucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssYUFBYSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVdwRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBbUI7SUFDbkQsU0FBUyxFQUFFLEVBQUU7SUFDYixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsZ0JBQWdCLEVBQUUsU0FBUztJQUMzQixNQUFNLEVBQUUsS0FBSztJQUNiLE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQztBQUVGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBRSxLQUFLLEdBQUcscUJBQXFCLEVBQzdCLE1BQXNDO0lBRXRFLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUVuQixLQUFLLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUM7U0FDSDtRQUVELEtBQUssYUFBYSxDQUFDLHNCQUFzQixDQUFDO1FBQzFDLEtBQUssYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxDQUFD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TSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQ2pGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZyb21Cb29rbWFya3MgZnJvbSAnLi4vYWN0aW9ucy9ib29rbWFyay5hY3Rpb25zJztcbmltcG9ydCB7IEJvb2ttYXJrIH0gZnJvbSAnLi4vLi4vdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL2Jvb2ttYXJrcy9ib29rbWFya3MuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdG9yZVV0aWxzIH0gZnJvbSAnLi4vc3RvcmUtdXRpbHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVCb29rbWFya0VudGl0aWVzIH0gZnJvbSAnLi4vYm9va21hcmtzLXN0b3JlLXV0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBCb29rbWFya3NTdGF0ZSB7XG4gIGJvb2ttYXJrczogQm9va21hcmtbXTtcbiAgYm9va21hcmtFbnRpdGllczogeyBbaWQ6IHN0cmluZ106IEJvb2ttYXJrIH07XG4gIGJvb2ttYXJrUGFnZUVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBhbnl9O1xuICBlZGl0YWJsZUJvb2ttYXJrOiBzdHJpbmc7XG4gIGxvYWRlZDogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxCb29rbWFya3NTdGF0ZTogQm9va21hcmtzU3RhdGUgPSB7XG4gIGJvb2ttYXJrczogW10sXG4gIGJvb2ttYXJrRW50aXRpZXM6IHt9LFxuICBib29rbWFya1BhZ2VFbnRpdGllczoge30sXG4gIGVkaXRhYmxlQm9va21hcms6IHVuZGVmaW5lZCxcbiAgbG9hZGVkOiBmYWxzZSxcbiAgbG9hZGluZzogZmFsc2Vcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBib29rbWFya3NSZWR1Y2VyIChzdGF0ZSA9IGluaXRpYWxCb29rbWFya3NTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGZyb21Cb29rbWFya3MuQm9va21hcmtzQWN0aW9ucyk6IEJvb2ttYXJrc1N0YXRlIHtcblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21Cb29rbWFya3MuTE9BRF9CT09LTUFSS1M6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkaW5nOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5MT0FEX0JPT0tNQVJLU19TVUNDRVNTOlxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5MT0FEX0JPT0tNQVJLU19GQUlMOiB7XG4gICAgICBjb25zdCBib29rbWFya3MgPSBhY3Rpb24ucGF5bG9hZC5zdGF0dXMgPT09IDIwMCA/IGFjdGlvbi5wYXlsb2FkLmJvZHkgOiBbXTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrRW50aXRpZXMgPSBnZW5lcmF0ZUJvb2ttYXJrRW50aXRpZXMoYm9va21hcmtzKTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrUGFnZUVudGl0aWVzID0gU3RvcmVVdGlscy5ncm91cEJ5S2V5RW50aXRpZXMoYm9va21hcmtzLCAncGFnZU51bWJlcicpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYm9va21hcmtzLFxuICAgICAgICBib29rbWFya0VudGl0aWVzLFxuICAgICAgICBib29rbWFya1BhZ2VFbnRpdGllcyxcbiAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5DUkVBVEVfQk9PS01BUktfU1VDQ0VTUzoge1xuICAgICAgY29uc3QgYm9va21hcms6IEJvb2ttYXJrID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBib29rbWFya0VudGl0aWVzID0ge1xuICAgICAgICAuLi5zdGF0ZS5ib29rbWFya0VudGl0aWVzLFxuICAgICAgICBbYm9va21hcmsuaWRdOiBib29rbWFyayxcbiAgICAgIH07XG4gICAgICBjb25zdCBib29rbWFya0FycmF5ID0gT2JqZWN0LmtleXMoYm9va21hcmtFbnRpdGllcykubWFwKGtleSA9PiBib29rbWFya0VudGl0aWVzW2tleV0pO1xuICAgICAgY29uc3QgYm9va21hcmtQYWdlRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdyb3VwQnlLZXlFbnRpdGllcyhib29rbWFya0FycmF5LCAncGFnZU51bWJlcicpO1xuICAgICAgY29uc3QgZWRpdGFibGVCb29rbWFyayA9IGJvb2ttYXJrLmlkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGJvb2ttYXJrRW50aXRpZXMsXG4gICAgICAgIGVkaXRhYmxlQm9va21hcmssXG4gICAgICAgIGJvb2ttYXJrUGFnZUVudGl0aWVzLFxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUJvb2ttYXJrcy5NT1ZFX0JPT0tNQVJLX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IG1vdmVkQm9va21hcmtzID0gZ2VuZXJhdGVCb29rbWFya0VudGl0aWVzKGFjdGlvbi5wYXlsb2FkKTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLmJvb2ttYXJrRW50aXRpZXMsXG4gICAgICAgIC4uLm1vdmVkQm9va21hcmtzXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGJvb2ttYXJrRW50aXRpZXMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQm9va21hcmtzLkRFTEVURV9CT09LTUFSS19TVUNDRVNTOiB7XG4gICAgICBjb25zdCBib29rbWFya0lkczogc3RyaW5nW10gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IGJvb2ttYXJrRW50aXRpZXMgPSB7IC4uLnN0YXRlLmJvb2ttYXJrRW50aXRpZXMgfTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrUGFnZUVudGl0aWVzID0geyAuLi5zdGF0ZS5ib29rbWFya1BhZ2VFbnRpdGllcyB9O1xuICAgICAgY29uc3QgcmVtb3ZlQm9va21hcmtzQnlQYWdlOiB7W3BhZ2VOdW1iZXI6IG51bWJlcl06IHN0cmluZ1tdfSA9IHt9O1xuICAgICAgYm9va21hcmtJZHMuZm9yRWFjaChib29rbWFya0lkID0+IHtcbiAgICAgICAgaWYgKHJlbW92ZUJvb2ttYXJrc0J5UGFnZVtib29rbWFya0VudGl0aWVzW2Jvb2ttYXJrSWRdLnBhZ2VOdW1iZXJdICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICByZW1vdmVCb29rbWFya3NCeVBhZ2VbYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXS5wYWdlTnVtYmVyXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVtb3ZlQm9va21hcmtzQnlQYWdlW2Jvb2ttYXJrRW50aXRpZXNbYm9va21hcmtJZF0ucGFnZU51bWJlcl0ucHVzaChib29rbWFya0lkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW1vdmVCb29rbWFya3NCeVBhZ2VbYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXS5wYWdlTnVtYmVyXSA9IFtib29rbWFya0lkXTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgYm9va21hcmtFbnRpdGllc1tib29rbWFya0lkXTtcbiAgICAgIH0pO1xuXG4gICAgICBPYmplY3QuZW50cmllcyhyZW1vdmVCb29rbWFya3NCeVBhZ2UpLmZvckVhY2goXG4gICAgICAgIChbcGFnZU51bWJlciwgYm1ya0lkc10pID0+IHtcbiAgICAgICAgICBib29rbWFya1BhZ2VFbnRpdGllc1twYWdlTnVtYmVyXVxuICAgICAgICAgID0gYm9va21hcmtQYWdlRW50aXRpZXNbcGFnZU51bWJlcl0uZmlsdGVyKGJvb2ttYXJrID0+ICFibXJrSWRzLmluY2x1ZGVzKGJvb2ttYXJrLmlkKSk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBib29rbWFya0VudGl0aWVzLFxuICAgICAgICBib29rbWFya1BhZ2VFbnRpdGllcyxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIGxvYWRlZDogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21Cb29rbWFya3MuVVBEQVRFX0JPT0tNQVJLX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IGJvb2ttYXJrOiBCb29rbWFyayA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgY29uc3QgYm9va21hcmtFbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUuYm9va21hcmtFbnRpdGllcyxcbiAgICAgICAgW2Jvb2ttYXJrLmlkXTogeyAuLi5ib29rbWFyayB9XG4gICAgICB9O1xuICAgICAgY29uc3QgYm9va21hcmtBcnJheSA9IE9iamVjdC5rZXlzKGJvb2ttYXJrRW50aXRpZXMpLm1hcChrZXkgPT4gYm9va21hcmtFbnRpdGllc1trZXldKTtcbiAgICAgIGNvbnN0IGJvb2ttYXJrUGFnZUVudGl0aWVzID0gU3RvcmVVdGlscy5ncm91cEJ5S2V5RW50aXRpZXMoYm9va21hcmtBcnJheSwgJ3BhZ2VOdW1iZXInKTtcbiAgICAgIGNvbnN0IGVkaXRhYmxlQm9va21hcmsgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgYm9va21hcmtFbnRpdGllcyxcbiAgICAgICAgZWRpdGFibGVCb29rbWFyayxcbiAgICAgICAgYm9va21hcmtQYWdlRW50aXRpZXMsXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrcyA9IChzdGF0ZTogQm9va21hcmtzU3RhdGUpID0+IHN0YXRlLmJvb2ttYXJrcztcbmV4cG9ydCBjb25zdCBnZXRCb29rbWFya0VudHMgPSAoc3RhdGU6IEJvb2ttYXJrc1N0YXRlKSA9PiBzdGF0ZS5ib29rbWFya0VudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldEJvb2ttYXJrUGFnZUVudCA9IChzdGF0ZTogQm9va21hcmtzU3RhdGUpID0+IHN0YXRlLmJvb2ttYXJrUGFnZUVudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldEVkaXRCb29rbWFyayA9IChzdGF0ZTogQm9va21hcmtzU3RhdGUpID0+IHN0YXRlLmVkaXRhYmxlQm9va21hcms7XG4iXX0=
@@ -0,0 +1,135 @@
1
+ import * as fromActions from '../actions/document.actions';
2
+ export const initialDocumentState = {
3
+ convertedDocument: undefined,
4
+ documentId: undefined,
5
+ pdfPosition: undefined,
6
+ pages: {},
7
+ hasDifferentPageSize: false,
8
+ rotation: undefined,
9
+ rotationLoaded: false,
10
+ loading: false,
11
+ loaded: false
12
+ };
13
+ export function docReducer(state = initialDocumentState, action) {
14
+ switch (action.type) {
15
+ case fromActions.CONVERT_SUCCESS: {
16
+ const convertedDocument = {
17
+ url: action.payload,
18
+ error: undefined
19
+ };
20
+ return {
21
+ ...state,
22
+ convertedDocument
23
+ };
24
+ }
25
+ case fromActions.CONVERT_FAIL: {
26
+ const convertedDocument = {
27
+ url: undefined,
28
+ error: action.payload
29
+ };
30
+ return {
31
+ ...state,
32
+ convertedDocument
33
+ };
34
+ }
35
+ case fromActions.CLEAR_CONVERT_DOC_URL: {
36
+ const convertedDocument = undefined;
37
+ return {
38
+ ...state,
39
+ convertedDocument
40
+ };
41
+ }
42
+ case fromActions.LOAD_ROTATION: {
43
+ return {
44
+ ...state,
45
+ rotationLoaded: false
46
+ };
47
+ }
48
+ case fromActions.LOAD_ROTATION_SUCCESS: {
49
+ const metadata = action.payload;
50
+ const rotation = metadata ? metadata.rotationAngle : 0;
51
+ return {
52
+ ...state,
53
+ rotation,
54
+ rotationLoaded: true
55
+ };
56
+ }
57
+ case fromActions.LOAD_ROTATION_FAIL: {
58
+ return {
59
+ ...state,
60
+ rotation: 0,
61
+ rotationLoaded: true
62
+ };
63
+ }
64
+ case fromActions.SAVE_ROTATION_SUCCESS: {
65
+ const metadata = action.payload;
66
+ const rotation = metadata.rotationAngle;
67
+ return {
68
+ ...state,
69
+ rotation
70
+ };
71
+ }
72
+ case fromActions.SET_DOCUMENT_ID: {
73
+ return {
74
+ ...state,
75
+ documentId: action.payload
76
+ };
77
+ }
78
+ case fromActions.ADD_PAGES: {
79
+ const payload = action.payload;
80
+ let pages = {};
81
+ let pageHeight;
82
+ let pageWidth;
83
+ let hasDifferentPageSize = state.hasDifferentPageSize;
84
+ payload.forEach(page => {
85
+ if (!hasDifferentPageSize && pageHeight && pageWidth &&
86
+ (pageHeight !== page.div['scrollHeight'] || pageWidth !== page.div['scrollWidth'])) {
87
+ hasDifferentPageSize = true;
88
+ }
89
+ else {
90
+ pageHeight = page.div['scrollHeight'];
91
+ pageWidth = page.div['scrollWidth'];
92
+ }
93
+ const styles = {
94
+ left: page.div['offsetLeft'],
95
+ height: page.div['scrollHeight'],
96
+ width: page.div['scrollWidth']
97
+ };
98
+ const scaleRotation = {
99
+ scale: page.scale,
100
+ rotation: page.rotation
101
+ };
102
+ const p = {
103
+ styles,
104
+ scaleRotation,
105
+ viewportScale: page.viewportScale
106
+ };
107
+ pages = {
108
+ ...pages,
109
+ [page.id]: p
110
+ };
111
+ });
112
+ return {
113
+ ...state,
114
+ pages,
115
+ hasDifferentPageSize
116
+ };
117
+ }
118
+ case fromActions.POSITION_UPDATED: {
119
+ const pdfPosition = action.payload;
120
+ return {
121
+ ...state,
122
+ pdfPosition
123
+ };
124
+ }
125
+ }
126
+ return state;
127
+ }
128
+ export const getDocPages = (state) => state.pages;
129
+ export const getDocId = (state) => state.documentId;
130
+ export const getPdfPos = (state) => state.pdfPosition;
131
+ export const getHasDifferentPageSizes = (state) => state.hasDifferentPageSize;
132
+ export const getRotation = (state) => state.rotation;
133
+ export const rotationLoaded = (state) => state.rotationLoaded;
134
+ export const getConvertedDocument = (state) => state.convertedDocument;
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3N0b3JlL3JlZHVjZXJzL2RvY3VtZW50LnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFdBQVcsTUFBTSw2QkFBNkIsQ0FBQztBQWdDM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQWtCO0lBQ2pELGlCQUFpQixFQUFFLFNBQVM7SUFDNUIsVUFBVSxFQUFFLFNBQVM7SUFDckIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsS0FBSyxFQUFFLEVBQUU7SUFDVCxvQkFBb0IsRUFBRSxLQUFLO0lBQzNCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLE9BQU8sRUFBRSxLQUFLO0lBQ2QsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBRSxLQUFLLEdBQUcsb0JBQW9CLEVBQzVCLE1BQW1DO0lBRTdELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtRQUVuQixLQUFLLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNoQyxNQUFNLGlCQUFpQixHQUFHO2dCQUN4QixHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU87Z0JBQ25CLEtBQUssRUFBRSxTQUFTO2FBQ2pCLENBQUM7WUFDRixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixpQkFBaUI7YUFDbEIsQ0FBQztTQUNIO1FBRUQsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0IsTUFBTSxpQkFBaUIsR0FBRztnQkFDeEIsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPO2FBQ3RCLENBQUM7WUFDRixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixpQkFBaUI7YUFDbEIsQ0FBQztTQUNIO1FBRUQsS0FB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QUFFLENBQUMsRUFBRSxDQUFDO2lCQUNiLENBQUM7WUFFSixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLEtBQUs7Z0JBQ0wsb0JBQW9CO2FBQ3JCLENBQUM7U0FDSDtRQUVELEtBQUssV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDakMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixXQUFXO2FBQ1osQ0FBQztTQUNIO0tBQ0Y7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFDRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztBQUM3RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7QUFDN0UsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL2RvY3VtZW50LmFjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50U3RhdGUge1xuICBjb252ZXJ0ZWREb2N1bWVudDoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGVycm9yOiBzdHJpbmc7XG4gIH07XG4gIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcGRmUG9zaXRpb246IFBkZlBvc2l0aW9uO1xuICBwYWdlczoge1tpZDogc3RyaW5nXTogRG9jdW1lbnRQYWdlc307XG4gIGhhc0RpZmZlcmVudFBhZ2VTaXplOiBib29sZWFuO1xuICByb3RhdGlvbjogbnVtYmVyO1xuICByb3RhdGlvbkxvYWRlZDogYm9vbGVhbjtcbiAgbG9hZGVkOiBib29sZWFuO1xuICBsb2FkaW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50UGFnZXMge1xuIG51bWJlck9mUGFnZXM6IG51bWJlcjtcbiBzdHlsZXM6IHsgbGVmdDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgd2lkdGg6IG51bWJlciB9O1xuIHNjYWxlUm90YXRpb246IHsgc2NhbGU6IHN0cmluZzsgcm90YXRpb246IHN0cmluZyB9O1xuIHZpZXdwb3J0U2NhbGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZGZQb3NpdGlvbiB7XG4gIHBhZ2VOdW1iZXI6IG51bWJlcjtcbiAgc2NhbGU6IG51bWJlcjtcbiAgdG9wOiBudW1iZXI7XG4gIGxlZnQ6IG51bWJlcjtcbiAgcm90YXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxEb2N1bWVudFN0YXRlOiBEb2N1bWVudFN0YXRlID0ge1xuICBjb252ZXJ0ZWREb2N1bWVudDogdW5kZWZpbmVkLFxuICBkb2N1bWVudElkOiB1bmRlZmluZWQsXG4gIHBkZlBvc2l0aW9uOiB1bmRlZmluZWQsXG4gIHBhZ2VzOiB7fSxcbiAgaGFzRGlmZmVyZW50UGFnZVNpemU6IGZhbHNlLFxuICByb3RhdGlvbjogdW5kZWZpbmVkLFxuICByb3RhdGlvbkxvYWRlZDogZmFsc2UsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBsb2FkZWQ6IGZhbHNlXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZG9jUmVkdWNlciAoc3RhdGUgPSBpbml0aWFsRG9jdW1lbnRTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGZyb21BY3Rpb25zLkRvY3VtZW50QWN0aW9ucyk6IERvY3VtZW50U3RhdGUge1xuXG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuQ09OVkVSVF9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBjb252ZXJ0ZWREb2N1bWVudCA9IHtcbiAgICAgICAgdXJsOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgZXJyb3I6IHVuZGVmaW5lZFxuICAgICAgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb252ZXJ0ZWREb2N1bWVudFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLkNPTlZFUlRfRkFJTDoge1xuICAgICAgY29uc3QgY29udmVydGVkRG9jdW1lbnQgPSB7XG4gICAgICAgIHVybDogdW5kZWZpbmVkLFxuICAgICAgICBlcnJvcjogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29udmVydGVkRG9jdW1lbnRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5DTEVBUl9DT05WRVJUX0RPQ19VUkw6IHtcbiAgICAgIGNvbnN0IGNvbnZlcnRlZERvY3VtZW50ID0gdW5kZWZpbmVkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbnZlcnRlZERvY3VtZW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuTE9BRF9ST1RBVElPTjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJvdGF0aW9uTG9hZGVkOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLkxPQURfUk9UQVRJT05fU1VDQ0VTUzoge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IHJvdGF0aW9uID0gbWV0YWRhdGEgPyBtZXRhZGF0YS5yb3RhdGlvbkFuZ2xlIDogMDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByb3RhdGlvbixcbiAgICAgICAgcm90YXRpb25Mb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5MT0FEX1JPVEFUSU9OX0ZBSUw6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByb3RhdGlvbjogMCxcbiAgICAgICAgcm90YXRpb25Mb2FkZWQ6IHRydWVcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TQVZFX1JPVEFUSU9OX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCByb3RhdGlvbiA9IG1ldGFkYXRhLnJvdGF0aW9uQW5nbGU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcm90YXRpb25cbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfRE9DVU1FTlRfSUQgOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZG9jdW1lbnRJZDogYWN0aW9uLnBheWxvYWRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5BRERfUEFHRVM6IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGxldCBwYWdlcyA9IHt9O1xuICAgICAgbGV0IHBhZ2VIZWlnaHQ7XG4gICAgICBsZXQgcGFnZVdpZHRoO1xuICAgICAgbGV0IGhhc0RpZmZlcmVudFBhZ2VTaXplID0gc3RhdGUuaGFzRGlmZmVyZW50UGFnZVNpemU7XG4gICAgICBwYXlsb2FkLmZvckVhY2gocGFnZSA9PiB7XG4gICAgICAgIGlmICghaGFzRGlmZmVyZW50UGFnZVNpemUgJiYgcGFnZUhlaWdodCAmJiBwYWdlV2lkdGggJiZcbiAgICAgICAgICAocGFnZUhlaWdodCAhPT0gcGFnZS5kaXZbJ3Njcm9sbEhlaWdodCddIHx8IHBhZ2VXaWR0aCAhPT0gcGFnZS5kaXZbJ3Njcm9sbFdpZHRoJ10pKSB7XG4gICAgICAgICAgICBoYXNEaWZmZXJlbnRQYWdlU2l6ZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFnZUhlaWdodCA9IHBhZ2UuZGl2WydzY3JvbGxIZWlnaHQnXTtcbiAgICAgICAgICBwYWdlV2lkdGggPSBwYWdlLmRpdlsnc2Nyb2xsV2lkdGgnXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHlsZXMgPSB7XG4gICAgICAgICAgbGVmdDogcGFnZS5kaXZbJ29mZnNldExlZnQnXSxcbiAgICAgICAgICBoZWlnaHQ6IHBhZ2UuZGl2WydzY3JvbGxIZWlnaHQnXSxcbiAgICAgICAgICB3aWR0aDogcGFnZS5kaXZbJ3Njcm9sbFdpZHRoJ11cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzY2FsZVJvdGF0aW9uID0ge1xuICAgICAgICAgIHNjYWxlOiBwYWdlLnNjYWxlLFxuICAgICAgICAgIHJvdGF0aW9uOiBwYWdlLnJvdGF0aW9uXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcCA9IHtcbiAgICAgICAgICBzdHlsZXMsXG4gICAgICAgICAgc2NhbGVSb3RhdGlvbixcbiAgICAgICAgICB2aWV3cG9ydFNjYWxlOiBwYWdlLnZpZXdwb3J0U2NhbGVcbiAgICAgICAgfTtcblxuICAgICAgICBwYWdlcyA9IHtcbiAgICAgICAgICAuLi5wYWdlcyxcbiAgICAgICAgICBbcGFnZS5pZF06IHBcbiAgICAgICAgfTtcblxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFnZXMsXG4gICAgICAgIGhhc0RpZmZlcmVudFBhZ2VTaXplXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUE9TSVRJT05fVVBEQVRFRDoge1xuICAgICAgY29uc3QgcGRmUG9zaXRpb24gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwZGZQb3NpdGlvblxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXRlO1xufVxuZXhwb3J0IGNvbnN0IGdldERvY1BhZ2VzID0gKHN0YXRlOiBEb2N1bWVudFN0YXRlKSA9PiBzdGF0ZS5wYWdlcztcbmV4cG9ydCBjb25zdCBnZXREb2NJZCA9IChzdGF0ZTogRG9jdW1lbnRTdGF0ZSkgPT4gc3RhdGUuZG9jdW1lbnRJZDtcbmV4cG9ydCBjb25zdCBnZXRQZGZQb3MgPSAoc3RhdGU6IERvY3VtZW50U3RhdGUpID0+IHN0YXRlLnBkZlBvc2l0aW9uO1xuZXhwb3J0IGNvbnN0IGdldEhhc0RpZmZlcmVudFBhZ2VTaXplcyA9IChzdGF0ZTogRG9jdW1lbnRTdGF0ZSkgPT4gc3RhdGUuaGFzRGlmZmVyZW50UGFnZVNpemU7XG5leHBvcnQgY29uc3QgZ2V0Um90YXRpb24gPSAoc3RhdGU6IERvY3VtZW50U3RhdGUpID0+IHN0YXRlLnJvdGF0aW9uO1xuZXhwb3J0IGNvbnN0IHJvdGF0aW9uTG9hZGVkID0gKHN0YXRlOiBEb2N1bWVudFN0YXRlKSA9PiBzdGF0ZS5yb3RhdGlvbkxvYWRlZDtcbmV4cG9ydCBjb25zdCBnZXRDb252ZXJ0ZWREb2N1bWVudCA9IChzdGF0ZTogRG9jdW1lbnRTdGF0ZSkgPT4gc3RhdGUuY29udmVydGVkRG9jdW1lbnQ7XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import * as fromIcpActions from '../actions/icp.actions';
2
+ export const initialIcpSessionState = {
3
+ session: null,
4
+ presenter: null,
5
+ client: null,
6
+ participants: []
7
+ };
8
+ export function icpReducer(state = initialIcpSessionState, action) {
9
+ switch (action.type) {
10
+ case fromIcpActions.SET_CASE_ID: {
11
+ const caseId = action.payload;
12
+ const session = { ...state.session, caseId };
13
+ return {
14
+ ...state,
15
+ session
16
+ };
17
+ }
18
+ case fromIcpActions.ICP_SOCKET_SESSION_JOINED: {
19
+ const session = action.payload.session;
20
+ const participantInfo = action.payload.participantInfo;
21
+ return {
22
+ ...state,
23
+ session,
24
+ client: participantInfo.client,
25
+ presenter: participantInfo.presenter,
26
+ };
27
+ }
28
+ case fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED: {
29
+ const updatedParticipants = action.payload;
30
+ const participants = Object.keys(updatedParticipants)
31
+ .map(id => ({ id: id, username: updatedParticipants[id] }));
32
+ return {
33
+ ...state,
34
+ participants
35
+ };
36
+ }
37
+ case fromIcpActions.ICP_PRESENTER_UPDATED: {
38
+ const presenter = action.payload;
39
+ return {
40
+ ...state, presenter
41
+ };
42
+ }
43
+ case fromIcpActions.LEAVE_ICP_SOCKET_SESSION: {
44
+ return {
45
+ ...state,
46
+ ...initialIcpSessionState
47
+ };
48
+ }
49
+ }
50
+ return state;
51
+ }
52
+ export const getIcpSession = (state) => state.session;
53
+ export const getPresenter = (state) => state.presenter;
54
+ export const getClient = (state) => state.client;
55
+ export const getParticipants = (state) => state.participants;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNwLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy9pY3AucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssY0FBYyxNQUFNLHdCQUF3QixDQUFDO0FBR3pELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFhO0lBQzlDLE9BQU8sRUFBRSxJQUFJO0lBQ2IsU0FBUyxFQUFFLElBQUk7SUFDZixNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxFQUFFO0NBQ2pCLENBQUM7QUFFRixNQUFNLFVBQVUsVUFBVSxDQUFFLEtBQUssR0FBRyxzQkFBc0IsRUFDeEIsTUFBaUM7SUFFakUsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBRW5CLEtBQUssY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDOUIsTUFBTSxPQUFPLEdBQUcsRUFBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUM7WUFDM0MsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsT0FBTzthQUNSLENBQUM7U0FDSDtRQUVELEtBQUssY0FBYyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDN0MsTUFBTSxPQUFPLEdBQWUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDbkQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDdkQsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsT0FBTztnQkFDUCxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU07Z0JBQzlCLFNBQVMsRUFBRSxlQUFlLENBQUMsU0FBUzthQUNyQyxDQUFDO1NBQ0g7UUFFRCxLQUFLLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sbUJBQW1CLEdBQVEsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNoRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2lCQUNsRCxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUQsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsWUFBWTthQUNiLENBQUM7U0FDSDtRQUVELEtBQUssY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxPQUFPO2dCQUNMLEdBQUcsS0FBSyxFQUFFLFNBQVM7YUFDcEIsQ0FBQztTQUNIO1FBRUQsS0FBSyxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUM1QyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixHQUFHLHNCQUFzQjthQUMxQixDQUFDO1NBQ0g7S0FDRjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUNoRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFlLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZyb21JY3BBY3Rpb25zIGZyb20gJy4uL2FjdGlvbnMvaWNwLmFjdGlvbnMnO1xuaW1wb3J0IHsgSWNwU2Vzc2lvbiwgSWNwU3RhdGUgfSBmcm9tICcuLi8uLi9pY3AvaWNwLmludGVyZmFjZXMnO1xuXG5leHBvcnQgY29uc3QgaW5pdGlhbEljcFNlc3Npb25TdGF0ZTogSWNwU3RhdGUgPSB7XG4gIHNlc3Npb246IG51bGwsXG4gIHByZXNlbnRlcjogbnVsbCxcbiAgY2xpZW50OiBudWxsLFxuICBwYXJ0aWNpcGFudHM6IFtdXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaWNwUmVkdWNlciAoc3RhdGUgPSBpbml0aWFsSWNwU2Vzc2lvblN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbjogZnJvbUljcEFjdGlvbnMuSWNwQWN0aW9ucyk6IEljcFN0YXRlIHtcblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIGZyb21JY3BBY3Rpb25zLlNFVF9DQVNFX0lEOiB7XG4gICAgICBjb25zdCBjYXNlSWQgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IHNlc3Npb24gPSB7Li4uc3RhdGUuc2Vzc2lvbiwgY2FzZUlkfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzZXNzaW9uXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUljcEFjdGlvbnMuSUNQX1NPQ0tFVF9TRVNTSU9OX0pPSU5FRDoge1xuICAgICAgY29uc3Qgc2Vzc2lvbjogSWNwU2Vzc2lvbiA9IGFjdGlvbi5wYXlsb2FkLnNlc3Npb247XG4gICAgICBjb25zdCBwYXJ0aWNpcGFudEluZm8gPSBhY3Rpb24ucGF5bG9hZC5wYXJ0aWNpcGFudEluZm87XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2Vzc2lvbixcbiAgICAgICAgY2xpZW50OiBwYXJ0aWNpcGFudEluZm8uY2xpZW50LFxuICAgICAgICBwcmVzZW50ZXI6IHBhcnRpY2lwYW50SW5mby5wcmVzZW50ZXIsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUljcEFjdGlvbnMuSUNQX1BBUlRJQ0lQQU5UX0xJU1RfVVBEQVRFRDoge1xuICAgICAgY29uc3QgdXBkYXRlZFBhcnRpY2lwYW50czogYW55ID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBwYXJ0aWNpcGFudHMgPSBPYmplY3Qua2V5cyh1cGRhdGVkUGFydGljaXBhbnRzKVxuICAgICAgICAubWFwKGlkID0+ICh7IGlkOiBpZCwgdXNlcm5hbWU6IHVwZGF0ZWRQYXJ0aWNpcGFudHNbaWRdIH0pKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJ0aWNpcGFudHNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tSWNwQWN0aW9ucy5JQ1BfUFJFU0VOVEVSX1VQREFURUQ6IHtcbiAgICAgIGNvbnN0IHByZXNlbnRlciA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsIHByZXNlbnRlclxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21JY3BBY3Rpb25zLkxFQVZFX0lDUF9TT0NLRVRfU0VTU0lPTjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIC4uLmluaXRpYWxJY3BTZXNzaW9uU3RhdGVcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldEljcFNlc3Npb24gPSAoc3RhdGU6IEljcFN0YXRlKSA9PiBzdGF0ZS5zZXNzaW9uO1xuZXhwb3J0IGNvbnN0IGdldFByZXNlbnRlciA9IChzdGF0ZTogSWNwU3RhdGUpID0+IHN0YXRlLnByZXNlbnRlcjtcbmV4cG9ydCBjb25zdCBnZXRDbGllbnQgPSAoc3RhdGU6IEljcFN0YXRlKSA9PiBzdGF0ZS5jbGllbnQ7XG5leHBvcnQgY29uc3QgZ2V0UGFydGljaXBhbnRzID0gKHN0YXRlOiBJY3BTdGF0ZSkgPT4gc3RhdGUucGFydGljaXBhbnRzO1xuIl19
@@ -0,0 +1,116 @@
1
+ import * as fromRedaction from '../actions/redaction.actions';
2
+ import * as fromAnnotations from '../actions/annotation.actions';
3
+ import { StoreUtils } from '../store-utils';
4
+ export const initialRedactionState = {
5
+ redactionEntities: {},
6
+ redactionPageEntities: {},
7
+ selectedRedaction: {},
8
+ redactedDocumentInfo: undefined,
9
+ documentId: undefined
10
+ };
11
+ export function redactionReducer(state = initialRedactionState, action) {
12
+ switch (action.type) {
13
+ case fromRedaction.LOAD_REDACTIONS: {
14
+ return {
15
+ ...state,
16
+ ...initialRedactionState
17
+ };
18
+ }
19
+ case fromRedaction.LOAD_REDACTION_SUCCESS: {
20
+ const payload = action.payload;
21
+ if (payload) {
22
+ const redactionEntities = StoreUtils.generateRedactionEntities(payload);
23
+ const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page');
24
+ return {
25
+ ...state,
26
+ redactionEntities,
27
+ redactionPageEntities
28
+ };
29
+ }
30
+ return {
31
+ ...state
32
+ };
33
+ }
34
+ case fromRedaction.SAVE_REDACTION_SUCCESS: {
35
+ const { payload } = action;
36
+ const redactionEntities = {
37
+ ...state.redactionEntities,
38
+ [payload.redactionId]: payload
39
+ };
40
+ const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);
41
+ const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');
42
+ return {
43
+ ...state,
44
+ redactionEntities,
45
+ redactionPageEntities
46
+ };
47
+ }
48
+ case fromRedaction.SAVE_BULK_REDACTION_SUCCESS: {
49
+ const payloadResult = Object.assign({}, ...action.payload.searchRedactions.map((x) => ({ [x.redactionId]: x })));
50
+ const redactionEntities = {
51
+ ...state.redactionEntities,
52
+ ...payloadResult
53
+ };
54
+ const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);
55
+ const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');
56
+ return {
57
+ ...state,
58
+ redactionEntities,
59
+ redactionPageEntities
60
+ };
61
+ }
62
+ case fromRedaction.SELECT_REDACTION:
63
+ case fromAnnotations.SELECT_ANNOTATION: {
64
+ return {
65
+ ...state,
66
+ selectedRedaction: action.payload
67
+ };
68
+ }
69
+ case fromRedaction.DELETE_REDACTION_SUCCESS: {
70
+ const page = action.payload.page;
71
+ const id = action.payload.redactionId;
72
+ const redactionEntities = {
73
+ ...state.redactionEntities
74
+ };
75
+ delete redactionEntities[id];
76
+ const pageRedactionRemoved = [
77
+ ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id)
78
+ ];
79
+ const redactionPageEntities = {
80
+ ...state.redactionPageEntities,
81
+ [page]: pageRedactionRemoved
82
+ };
83
+ return {
84
+ ...state,
85
+ redactionPageEntities,
86
+ redactionEntities,
87
+ };
88
+ }
89
+ case fromRedaction.REDACT_SUCCESS: {
90
+ const redactedDocumentInfo = action.payload;
91
+ return {
92
+ ...state,
93
+ ...initialRedactionState,
94
+ redactedDocumentInfo
95
+ };
96
+ }
97
+ case fromRedaction.RESET_REDACTED_DOCUMENT: {
98
+ return {
99
+ ...state,
100
+ redactedDocumentInfo: undefined
101
+ };
102
+ }
103
+ case fromRedaction.UNMARK_ALL_SUCCESS: {
104
+ return {
105
+ ...state,
106
+ ...initialRedactionState
107
+ };
108
+ }
109
+ }
110
+ return state;
111
+ }
112
+ export const getRedactionEnt = (state) => state.redactionEntities;
113
+ export const getPageEnt = (state) => state.redactionPageEntities;
114
+ export const getSelectedRedaction = (state) => state.selectedRedaction;
115
+ export const getRedactedDocInfo = (state) => state.redactedDocumentInfo;
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9zdG9yZS9yZWR1Y2Vycy9yZWRhY3Rpb24ucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssYUFBYSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sS0FBSyxlQUFlLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBYTVDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7SUFDekIsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQixvQkFBb0IsRUFBRSxTQUFTO0lBQy9CLFVBQVUsRUFBRSxTQUFTO0NBQ3RCLENBQUM7QUFFRixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQUssR0FBRyxxQkFBcUIsRUFDN0IsTUFBMkU7SUFFM0UsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBRW5CLEtBQUssYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLEdBQUcscUJBQXFCO2FBQ3pCLENBQUM7U0FDSDtRQUVELEtBQUssYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUMvQixJQUFJLE9BQU8sRUFBRTtnQkFDWCxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEUsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM3RSxPQUFPO29CQUNMLEdBQUcsS0FBSztv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QWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDNUMsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsR0FBRyxxQkFBcUI7Z0JBQ3hCLG9CQUFvQjthQUNyQixDQUFDO1NBQ0g7UUFFRCxLQUFLLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzFDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLG9CQUFvQixFQUFFLFNBQVM7YUFDaEMsQ0FBQztTQUNIO1FBRUQsS0FBSyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNyQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixHQUFHLHFCQUFxQjthQUN6QixDQUFDO1NBQ0g7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUdELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztBQUNsRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7QUFDakYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYWN0aW9uIGZyb20gJy4uL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0ICogYXMgZnJvbUFubm90YXRpb25zIGZyb20gJy4uL2FjdGlvbnMvYW5ub3RhdGlvbi5hY3Rpb25zJztcbmltcG9ydCB7IFN0b3JlVXRpbHMgfSBmcm9tICcuLi9zdG9yZS11dGlscyc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Bbm5vdGF0aW9uIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbnMvbW9kZWxzL2V2ZW50LXNlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBSZWRhY3Rpb24gfSBmcm9tICcuLi8uLi9yZWRhY3Rpb24vc2VydmljZXMvcmVkYWN0aW9uLm1vZGVsJzsgLy8gdG9kbyByZW5hbWVcblxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGFjdGlvblN0YXRlIHtcbiAgcmVkYWN0aW9uRW50aXRpZXM6IHsgW2lkOiBzdHJpbmddOiBSZWRhY3Rpb24gfTtcbiAgcmVkYWN0aW9uUGFnZUVudGl0aWVzOiB7IFtpZDogc3RyaW5nXTogYW55IH07XG4gIHNlbGVjdGVkUmVkYWN0aW9uOiBTZWxlY3Rpb25Bbm5vdGF0aW9uIHwge307XG4gIHJlZGFjdGVkRG9jdW1lbnRJbmZvOiB7IGJsb2I6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcgfTtcbiAgZG9jdW1lbnRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFJlZGFjdGlvblN0YXRlOiBSZWRhY3Rpb25TdGF0ZSA9IHtcbiAgcmVkYWN0aW9uRW50aXRpZXM6IHt9LFxuICByZWRhY3Rpb25QYWdlRW50aXRpZXM6IHt9LFxuICBzZWxlY3RlZFJlZGFjdGlvbjoge30sXG4gIHJlZGFjdGVkRG9jdW1lbnRJbmZvOiB1bmRlZmluZWQsXG4gIGRvY3VtZW50SWQ6IHVuZGVmaW5lZFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZGFjdGlvblJlZHVjZXIoXG4gIHN0YXRlID0gaW5pdGlhbFJlZGFjdGlvblN0YXRlLFxuICBhY3Rpb246IGZyb21SZWRhY3Rpb24uUmVkYWN0aW9uQWN0aW9ucyB8IGZyb21Bbm5vdGF0aW9ucy5Bbm5vdGF0aW9uc0FjdGlvbnNcbik6IFJlZGFjdGlvblN0YXRlIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuXG4gICAgY2FzZSBmcm9tUmVkYWN0aW9uLkxPQURfUkVEQUNUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIC4uLmluaXRpYWxSZWRhY3Rpb25TdGF0ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21SZWRhY3Rpb24uTE9BRF9SRURBQ1RJT05fU1VDQ0VTUzoge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IGFjdGlvbi5wYXlsb2FkO1xuICAgICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgY29uc3QgcmVkYWN0aW9uRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdlbmVyYXRlUmVkYWN0aW9uRW50aXRpZXMocGF5bG9hZCk7XG4gICAgICAgIGNvbnN0IHJlZGFjdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKHBheWxvYWQsICdwYWdlJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgcmVkYWN0aW9uRW50aXRpZXMsXG4gICAgICAgICAgcmVkYWN0aW9uUGFnZUVudGl0aWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIGZyb21SZWRhY3Rpb24uU0FWRV9SRURBQ1RJT05fU1VDQ0VTUzoge1xuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBhY3Rpb247XG4gICAgICBjb25zdCByZWRhY3Rpb25FbnRpdGllcyA9IHtcbiAgICAgICAgLi4uc3RhdGUucmVkYWN0aW9uRW50aXRpZXMsXG4gICAgICAgIFtwYXlsb2FkLnJlZGFjdGlvbklkXTogcGF5bG9hZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlZGFjdGlvbkFycmF5ID0gT2JqZWN0LmtleXMocmVkYWN0aW9uRW50aXRpZXMpLm1hcChrZXkgPT4gcmVkYWN0aW9uRW50aXRpZXNba2V5XSk7XG4gICAgICBjb25zdCByZWRhY3Rpb25QYWdlRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdyb3VwQnlLZXlFbnRpdGllcyhyZWRhY3Rpb25BcnJheSwgJ3BhZ2UnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZWRhY3Rpb25FbnRpdGllcyxcbiAgICAgICAgcmVkYWN0aW9uUGFnZUVudGl0aWVzXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIGZyb21SZWRhY3Rpb24uU0FWRV9CVUxLX1JFREFDVElPTl9TVUNDRVNTOiB7XG4gICAgICBjb25zdCBwYXlsb2FkUmVzdWx0ID0gT2JqZWN0LmFzc2lnbih7fSwgLi4uYWN0aW9uLnBheWxvYWQuc2VhcmNoUmVkYWN0aW9ucy5tYXAoKHgpID0+ICh7IFt4LnJlZGFjdGlvbklkXTogeCB9KSkpO1xuICAgICAgY29uc3QgcmVkYWN0aW9uRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLnJlZGFjdGlvbkVudGl0aWVzLFxuICAgICAgICAuLi5wYXlsb2FkUmVzdWx0XG4gICAgICB9O1xuICAgICAgY29uc3QgcmVkYWN0aW9uQXJyYXkgPSBPYmplY3Qua2V5cyhyZWRhY3Rpb25FbnRpdGllcykubWFwKGtleSA9PiByZWRhY3Rpb25FbnRpdGllc1trZXldKTtcbiAgICAgIGNvbnN0IHJlZGFjdGlvblBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKHJlZGFjdGlvbkFycmF5LCAncGFnZScpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlZGFjdGlvbkVudGl0aWVzLFxuICAgICAgICByZWRhY3Rpb25QYWdlRW50aXRpZXNcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5TRUxFQ1RfUkVEQUNUSU9OOlxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLlNFTEVDVF9BTk5PVEFUSU9OOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSZWRhY3Rpb246IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5ERUxFVEVfUkVEQUNUSU9OX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhY3Rpb24ucGF5bG9hZC5wYWdlO1xuICAgICAgY29uc3QgaWQgPSBhY3Rpb24ucGF5bG9hZC5yZWRhY3Rpb25JZDtcbiAgICAgIGNvbnN0IHJlZGFjdGlvbkVudGl0aWVzID0ge1xuICAgICAgICAuLi5zdGF0ZS5yZWRhY3Rpb25FbnRpdGllc1xuICAgICAgfTtcbiAgICAgIGRlbGV0ZSByZWRhY3Rpb25FbnRpdGllc1tpZF07XG4gICAgICBjb25zdCBwYWdlUmVkYWN0aW9uUmVtb3ZlZCA9IFtcbiAgICAgICAgLi4uc3RhdGUucmVkYWN0aW9uUGFnZUVudGl0aWVzW3BhZ2VdLmZpbHRlcihyZWRhY3Rpb24gPT4gcmVkYWN0aW9uLnJlZGFjdGlvbklkICE9PSBpZClcbiAgICAgIF07XG4gICAgICBjb25zdCByZWRhY3Rpb25QYWdlRW50aXRpZXMgPSB7XG4gICAgICAgIC4uLnN0YXRlLnJlZGFjdGlvblBhZ2VFbnRpdGllcyxcbiAgICAgICAgW3BhZ2VdOiBwYWdlUmVkYWN0aW9uUmVtb3ZlZFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlZGFjdGlvblBhZ2VFbnRpdGllcyxcbiAgICAgICAgcmVkYWN0aW9uRW50aXRpZXMsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5SRURBQ1RfU1VDQ0VTUzoge1xuICAgICAgY29uc3QgcmVkYWN0ZWREb2N1bWVudEluZm8gPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAuLi5pbml0aWFsUmVkYWN0aW9uU3RhdGUsXG4gICAgICAgIHJlZGFjdGVkRG9jdW1lbnRJbmZvXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbVJlZGFjdGlvbi5SRVNFVF9SRURBQ1RFRF9ET0NVTUVOVDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlZGFjdGVkRG9jdW1lbnRJbmZvOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tUmVkYWN0aW9uLlVOTUFSS19BTExfU1VDQ0VTUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIC4uLmluaXRpYWxSZWRhY3Rpb25TdGF0ZVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cblxuZXhwb3J0IGNvbnN0IGdldFJlZGFjdGlvbkVudCA9IChzdGF0ZTogUmVkYWN0aW9uU3RhdGUpID0+IHN0YXRlLnJlZGFjdGlvbkVudGl0aWVzO1xuZXhwb3J0IGNvbnN0IGdldFBhZ2VFbnQgPSAoc3RhdGU6IFJlZGFjdGlvblN0YXRlKSA9PiBzdGF0ZS5yZWRhY3Rpb25QYWdlRW50aXRpZXM7XG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRSZWRhY3Rpb24gPSAoc3RhdGU6IFJlZGFjdGlvblN0YXRlKSA9PiBzdGF0ZS5zZWxlY3RlZFJlZGFjdGlvbjtcbmV4cG9ydCBjb25zdCBnZXRSZWRhY3RlZERvY0luZm8gPSAoc3RhdGU6IFJlZGFjdGlvblN0YXRlKSA9PiBzdGF0ZS5yZWRhY3RlZERvY3VtZW50SW5mbztcbiJdfQ==
@@ -0,0 +1,93 @@
1
+ import * as fromAnnotations from '../actions/annotation.actions';
2
+ import * as fromTags from '../actions/tag.actions';
3
+ import { StoreUtils } from '../store-utils';
4
+ export const initialTagState = {
5
+ tagNameEnt: {},
6
+ annotations: [],
7
+ filteredPageEntities: {},
8
+ filteredComments: {},
9
+ formFilterState: {},
10
+ filters: []
11
+ };
12
+ export function tagsReducer(state = initialTagState, action) {
13
+ switch (action.type) {
14
+ case fromAnnotations.LOAD_ANNOTATION_SET: {
15
+ return {
16
+ ...state,
17
+ ...initialTagState
18
+ };
19
+ }
20
+ case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS: {
21
+ const annotations = action.payload.body.annotations;
22
+ const tagNameEnt = StoreUtils.genTagNameEntities(annotations);
23
+ return {
24
+ ...state,
25
+ tagNameEnt,
26
+ annotations
27
+ };
28
+ }
29
+ case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {
30
+ const payload = action.payload;
31
+ const anno = [...state.annotations].filter(a => a.id !== payload.id) || [];
32
+ const annotations = [...anno, payload];
33
+ const tagNameEnt = StoreUtils.genTagNameEntities(annotations);
34
+ return {
35
+ ...state,
36
+ annotations,
37
+ tagNameEnt
38
+ };
39
+ }
40
+ case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {
41
+ const id = action.payload;
42
+ const annotations = [...state.annotations].filter(a => a.id !== id);
43
+ const tagNameEnt = StoreUtils.genTagNameEntities(annotations);
44
+ const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');
45
+ const filteredComments = {
46
+ ...state.filteredComments
47
+ };
48
+ delete filteredComments[id];
49
+ return {
50
+ ...state,
51
+ annotations,
52
+ tagNameEnt,
53
+ filteredComments,
54
+ filteredPageEntities,
55
+ filters: []
56
+ };
57
+ }
58
+ case fromTags.ADD_FILTER_TAGS: {
59
+ const formFilterState = action.payload;
60
+ const filters = Object.keys(formFilterState).reduce((arr, key) => {
61
+ return formFilterState[key] ? [...arr, key] : arr;
62
+ }, []);
63
+ const filteredComments = filters.reduce((obj, f) => {
64
+ return {
65
+ ...obj,
66
+ ...state.tagNameEnt[f]
67
+ };
68
+ }, {});
69
+ const annotations = Object.keys(filteredComments).map(key => state.annotations.filter(a => a.id === key)[0]);
70
+ const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');
71
+ return {
72
+ ...state,
73
+ filters,
74
+ filteredComments,
75
+ filteredPageEntities,
76
+ };
77
+ }
78
+ case fromTags.CLEAR_FILTER_TAGS: {
79
+ return {
80
+ ...state,
81
+ filters: [],
82
+ filteredComments: {},
83
+ filteredPageEntities: {},
84
+ };
85
+ }
86
+ }
87
+ return state;
88
+ }
89
+ export const getTagNameEnt = (state) => state.tagNameEnt;
90
+ export const getFilters = (state) => state.filters;
91
+ export const getFilteredComments = (state) => state.filteredComments;
92
+ export const getFilteredPageEnt = (state) => state.filteredPageEntities;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvc3RvcmUvcmVkdWNlcnMvdGFncy5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxlQUFlLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxLQUFLLFFBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFZMUMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFjO0lBQ3hDLFVBQVUsRUFBRSxFQUFFO0lBQ2QsV0FBVyxFQUFFLEVBQUU7SUFDZixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLGdCQUFnQixFQUFFLEVBQUU7SUFDcEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsT0FBTyxFQUFFLEVBQUU7Q0FDWixDQUFDO0FBRUYsTUFBTSxVQUFVLFdBQVcsQ0FDekIsS0FBSyxHQUFHLGVBQWUsRUFDdkIsTUFBaUU7SUFFakUsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ25CLEtBQUssZUFBZSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFFeEMsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsR0FBRyxlQUFlO2FBQ25CLENBQUM7U0FDSDtRQUNELEtBQUssZUFBZSxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDaEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3BELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5RCxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixVQUFVO2dCQUNWLFdBQVc7YUFDWixDQUFDO1NBQ0g7UUFFRCxLQUFLLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzVD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TyxFQUFFLEVBQUU7Z0JBQ1gsZ0JBQWdCLEVBQUUsRUFBRTtnQkFDcEIsb0JBQW9CLEVBQUUsRUFBRTthQUN6QixDQUFDO1NBQ0g7S0FFRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7QUFDcEUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBZ0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUM5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztBQUNoRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZyb21Bbm5vdGF0aW9ucyBmcm9tICcuLi9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBmcm9tVGFncyBmcm9tICcuLi9hY3Rpb25zL3RhZy5hY3Rpb25zJztcbmltcG9ydCB7U3RvcmVVdGlsc30gZnJvbSAnLi4vc3RvcmUtdXRpbHMnO1xuaW1wb3J0IHtBbm5vdGF0aW9ufSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvYW5ub3RhdGlvbi5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnc1N0YXRlIHtcbiAgdGFnTmFtZUVudDoge1tpZDogc3RyaW5nXTogc3RyaW5nW119O1xuICBmaWx0ZXJlZENvbW1lbnRzOiB7W2lkOiBzdHJpbmddOiBzdHJpbmdbXX07XG4gIGZpbHRlcmVkUGFnZUVudGl0aWVzOiB7W2lkOiBzdHJpbmddOiBBbm5vdGF0aW9uW119O1xuICBhbm5vdGF0aW9uczogQW5ub3RhdGlvbltdO1xuICBmb3JtRmlsdGVyU3RhdGU6IHtbaWQ6IHN0cmluZ106IGJvb2xlYW59O1xuICBmaWx0ZXJzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxUYWdTdGF0ZTogVGFnc1N0YXRlID0ge1xuICB0YWdOYW1lRW50OiB7fSxcbiAgYW5ub3RhdGlvbnM6IFtdLFxuICBmaWx0ZXJlZFBhZ2VFbnRpdGllczoge30sXG4gIGZpbHRlcmVkQ29tbWVudHM6IHt9LFxuICBmb3JtRmlsdGVyU3RhdGU6IHt9LFxuICBmaWx0ZXJzOiBbXVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRhZ3NSZWR1Y2VyIChcbiAgc3RhdGUgPSBpbml0aWFsVGFnU3RhdGUsXG4gIGFjdGlvbjogZnJvbUFubm90YXRpb25zLkFubm90YXRpb25zQWN0aW9ucyB8IGZyb21UYWdzLlRhZ3NBY3Rpb25zXG4pOiBUYWdzU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuTE9BRF9BTk5PVEFUSU9OX1NFVDoge1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgLi4uaW5pdGlhbFRhZ1N0YXRlXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlIGZyb21Bbm5vdGF0aW9ucy5MT0FEX0FOTk9UQVRJT05fU0VUX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IGFubm90YXRpb25zID0gYWN0aW9uLnBheWxvYWQuYm9keS5hbm5vdGF0aW9ucztcbiAgICAgIGNvbnN0IHRhZ05hbWVFbnQgPSBTdG9yZVV0aWxzLmdlblRhZ05hbWVFbnRpdGllcyhhbm5vdGF0aW9ucyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdGFnTmFtZUVudCxcbiAgICAgICAgYW5ub3RhdGlvbnNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQW5ub3RhdGlvbnMuU0FWRV9BTk5PVEFUSU9OX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBhY3Rpb24ucGF5bG9hZDtcblxuICAgICAgY29uc3QgYW5ubyA9IFsuLi5zdGF0ZS5hbm5vdGF0aW9uc10uZmlsdGVyKGEgPT4gYS5pZCAhPT0gcGF5bG9hZC5pZCkgfHwgW107XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IFsuLi5hbm5vLCBwYXlsb2FkXTtcbiAgICAgIGNvbnN0IHRhZ05hbWVFbnQgPSAgU3RvcmVVdGlscy5nZW5UYWdOYW1lRW50aXRpZXMoYW5ub3RhdGlvbnMpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGFubm90YXRpb25zLFxuICAgICAgICB0YWdOYW1lRW50XG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgZnJvbUFubm90YXRpb25zLkRFTEVURV9BTk5PVEFUSU9OX1NVQ0NFU1M6IHtcbiAgICAgIGNvbnN0IGlkID0gYWN0aW9uLnBheWxvYWQ7XG4gICAgICBjb25zdCBhbm5vdGF0aW9ucyA9IFsuLi5zdGF0ZS5hbm5vdGF0aW9uc10uZmlsdGVyKGEgPT4gYS5pZCAhPT0gaWQpO1xuICAgICAgY29uc3QgdGFnTmFtZUVudCA9ICBTdG9yZVV0aWxzLmdlblRhZ05hbWVFbnRpdGllcyhhbm5vdGF0aW9ucyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFBhZ2VFbnRpdGllcyA9IFN0b3JlVXRpbHMuZ3JvdXBCeUtleUVudGl0aWVzKGFubm90YXRpb25zLCAncGFnZScpO1xuICAgICAgY29uc3QgZmlsdGVyZWRDb21tZW50cyA9IHtcbiAgICAgICAgLi4uc3RhdGUuZmlsdGVyZWRDb21tZW50c1xuICAgICAgfTtcbiAgICAgIGRlbGV0ZSBmaWx0ZXJlZENvbW1lbnRzW2lkXTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBhbm5vdGF0aW9ucyxcbiAgICAgICAgdGFnTmFtZUVudCxcbiAgICAgICAgZmlsdGVyZWRDb21tZW50cyxcbiAgICAgICAgZmlsdGVyZWRQYWdlRW50aXRpZXMsXG4gICAgICAgIGZpbHRlcnM6IFtdXG4gICAgICB9O1xuICAgIH1cblxuXG4gICAgY2FzZSBmcm9tVGFncy5BRERfRklMVEVSX1RBR1M6IHtcbiAgICAgIGNvbnN0IGZvcm1GaWx0ZXJTdGF0ZSA9IGFjdGlvbi5wYXlsb2FkO1xuXG4gICAgICBjb25zdCBmaWx0ZXJzID0gT2JqZWN0LmtleXMoZm9ybUZpbHRlclN0YXRlKS5yZWR1Y2UoKGFycjogc3RyaW5nW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBmb3JtRmlsdGVyU3RhdGVba2V5XSA/IFsuLi5hcnIsIGtleV0gOiBhcnI7XG4gICAgICB9LCBbXSk7XG5cbiAgICAgIGNvbnN0IGZpbHRlcmVkQ29tbWVudHMgPSBmaWx0ZXJzLnJlZHVjZSgob2JqOiB7W2lkOiBzdHJpbmddOiBhbnl9LCBmKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub2JqLFxuICAgICAgICAgIC4uLnN0YXRlLnRhZ05hbWVFbnRbZl1cbiAgICAgICAgfTtcbiAgICAgIH0sIHt9KTtcblxuICAgICAgY29uc3QgYW5ub3RhdGlvbnMgPSBPYmplY3Qua2V5cyhmaWx0ZXJlZENvbW1lbnRzKS5tYXAoa2V5ID0+IHN0YXRlLmFubm90YXRpb25zLmZpbHRlcihhID0+IGEuaWQgPT09IGtleSlbMF0pO1xuICAgICAgY29uc3QgZmlsdGVyZWRQYWdlRW50aXRpZXMgPSBTdG9yZVV0aWxzLmdyb3VwQnlLZXlFbnRpdGllcyhhbm5vdGF0aW9ucywgJ3BhZ2UnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICBmaWx0ZXJlZENvbW1lbnRzLFxuICAgICAgICBmaWx0ZXJlZFBhZ2VFbnRpdGllcyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tVGFncy5DTEVBUl9GSUxURVJfVEFHUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICBmaWx0ZXJlZENvbW1lbnRzOiB7fSxcbiAgICAgICAgZmlsdGVyZWRQYWdlRW50aXRpZXM6IHt9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFRhZ05hbWVFbnQgPSAoc3RhdGU6IFRhZ3NTdGF0ZSkgPT4gc3RhdGUudGFnTmFtZUVudDtcbmV4cG9ydCBjb25zdCBnZXRGaWx0ZXJzID0gKHN0YXRlOiBUYWdzU3RhdGUpID0+IHN0YXRlLmZpbHRlcnM7XG5leHBvcnQgY29uc3QgZ2V0RmlsdGVyZWRDb21tZW50cyA9IChzdGF0ZTogVGFnc1N0YXRlKSA9PiBzdGF0ZS5maWx0ZXJlZENvbW1lbnRzO1xuZXhwb3J0IGNvbnN0IGdldEZpbHRlcmVkUGFnZUVudCA9IChzdGF0ZTogVGFnc1N0YXRlKSA9PiBzdGF0ZS5maWx0ZXJlZFBhZ2VFbnRpdGllcztcbiJdfQ==