@hmcts/media-viewer 2.7.16 → 2.8.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 (112) hide show
  1. package/bundles/hmcts-media-viewer.umd.js +7406 -4728
  2. package/bundles/hmcts-media-viewer.umd.js.map +1 -1
  3. package/bundles/hmcts-media-viewer.umd.min.js +16 -1
  4. package/bundles/hmcts-media-viewer.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-media-viewer.js +60 -78
  6. package/esm2015/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +2 -2
  7. package/esm2015/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +2 -2
  8. package/esm2015/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +2 -2
  9. package/esm2015/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +2 -2
  10. package/esm2015/lib/annotations/comment-set/comment-set.component.js +3 -3
  11. package/esm2015/lib/annotations/comments-summary/comments-summary.component.js +2 -2
  12. package/esm2015/lib/annotations/services/tags/tags.services.js +3 -3
  13. package/esm2015/lib/icp/icp-update.service.js +3 -3
  14. package/esm2015/lib/media-viewer.component.js +12 -10
  15. package/esm2015/lib/print.service.js +1 -1
  16. package/esm2015/lib/shared/gov-uk-error-message/gov-uk-error-message.component.js +3 -2
  17. package/esm2015/lib/shared/gov-uk-label/gov-uk-label.component.js +3 -2
  18. package/esm2015/lib/shared/util/services/number.helper.service.js +4 -3
  19. package/esm2015/lib/store/effects/annotation.effects.js +7 -7
  20. package/esm2015/lib/store/effects/bookmarks.effects.js +11 -11
  21. package/esm2015/lib/store/effects/document.effects.js +7 -7
  22. package/esm2015/lib/store/effects/icp.effects.js +5 -5
  23. package/esm2015/lib/store/effects/redaction.effects.js +11 -11
  24. package/esm2015/lib/store/reducers/annotations.reducer.js +19 -19
  25. package/esm2015/lib/store/reducers/bookmarks.reducer.js +10 -10
  26. package/esm2015/lib/store/reducers/document.reducer.js +12 -12
  27. package/esm2015/lib/store/reducers/icp.reducer.js +7 -7
  28. package/esm2015/lib/store/reducers/redaction.reducer.js +11 -11
  29. package/esm2015/lib/store/reducers/tags.reducer.js +8 -8
  30. package/esm2015/lib/store/selectors/annotation.selectors.js +3 -3
  31. package/esm2015/lib/store/store-utils.js +10 -10
  32. package/esm2015/lib/toolbar/toolbar-button-visibility.service.js +1 -1
  33. package/esm2015/lib/toolbar/toolbar-event.service.js +1 -1
  34. package/esm2015/lib/viewers/image-viewer/image-viewer.component.js +3 -3
  35. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +2 -2
  36. package/esm2015/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +1 -1
  37. package/esm2015/lib/viewers/pdf-viewer/pdf-viewer.component.js +4 -4
  38. package/esm2015/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +5 -5
  39. package/esm2015/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +2 -2
  40. package/esm2015/lib/viewers/viewer-event.service.js +1 -1
  41. package/esm2015/lib/viewers/viewer-util.service.js +1 -1
  42. package/esm2015/public_api.js +19 -1
  43. package/esm5/hmcts-media-viewer.js +60 -78
  44. package/esm5/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.js +3 -3
  45. package/esm5/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.js +3 -3
  46. package/esm5/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.js +3 -3
  47. package/esm5/lib/annotations/annotation-set/annotation-view/annotation-view.component.js +4 -4
  48. package/esm5/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.js +5 -5
  49. package/esm5/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.js +3 -3
  50. package/esm5/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.js +3 -3
  51. package/esm5/lib/annotations/comment-set/comment/comment.component.js +3 -3
  52. package/esm5/lib/annotations/comment-set/comment-navigate/comments-navigate.component.js +4 -4
  53. package/esm5/lib/annotations/comment-set/comment-set-header/comment-set-header.component.js +5 -5
  54. package/esm5/lib/annotations/comment-set/comment-set.component.js +4 -4
  55. package/esm5/lib/annotations/comments-summary/comments-summary.component.js +4 -4
  56. package/esm5/lib/annotations/pipes/date/date.pipe.js +3 -3
  57. package/esm5/lib/annotations/services/annotation-api/annotation-api.service.js +3 -3
  58. package/esm5/lib/annotations/services/tags/tags.services.js +5 -5
  59. package/esm5/lib/icp/icp-update.service.js +4 -4
  60. package/esm5/lib/media-viewer.component.js +13 -11
  61. package/esm5/lib/print.service.js +1 -1
  62. package/esm5/lib/redaction/components/redaction.component.js +3 -3
  63. package/esm5/lib/shared/util/services/number.helper.service.js +1 -1
  64. package/esm5/lib/store/bookmarks-store-utils.js +4 -4
  65. package/esm5/lib/store/effects/annotation.effects.js +7 -7
  66. package/esm5/lib/store/effects/bookmarks.effects.js +13 -13
  67. package/esm5/lib/store/effects/document.effects.js +7 -7
  68. package/esm5/lib/store/effects/icp.effects.js +5 -5
  69. package/esm5/lib/store/effects/redaction.effects.js +11 -11
  70. package/esm5/lib/store/reducers/annotations.reducer.js +25 -25
  71. package/esm5/lib/store/reducers/bookmarks.reducer.js +14 -14
  72. package/esm5/lib/store/reducers/document.reducer.js +13 -13
  73. package/esm5/lib/store/reducers/icp.reducer.js +8 -8
  74. package/esm5/lib/store/reducers/redaction.reducer.js +15 -15
  75. package/esm5/lib/store/reducers/tags.reducer.js +14 -14
  76. package/esm5/lib/store/selectors/annotation.selectors.js +4 -4
  77. package/esm5/lib/store/store-utils.js +12 -12
  78. package/esm5/lib/toolbar/main-toolbar/main-toolbar.component.js +3 -3
  79. package/esm5/lib/toolbar/search-bar/search-bar.component.js +3 -3
  80. package/esm5/lib/toolbar/toolbar-button-visibility.service.js +1 -1
  81. package/esm5/lib/toolbar/toolbar-event.service.js +1 -1
  82. package/esm5/lib/viewers/image-viewer/image-viewer.component.js +5 -5
  83. package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.js +5 -5
  84. package/esm5/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.js +1 -1
  85. package/esm5/lib/viewers/pdf-viewer/pdf-viewer.component.js +7 -7
  86. package/esm5/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.js +7 -7
  87. package/esm5/lib/viewers/pdf-viewer/side-bar/side-bar.component.js +3 -3
  88. package/esm5/lib/viewers/unsupported-viewer/unsupported-viewer.component.js +3 -3
  89. package/esm5/lib/viewers/viewer-event.service.js +1 -1
  90. package/esm5/lib/viewers/viewer-util.service.js +1 -1
  91. package/esm5/public_api.js +19 -1
  92. package/fesm2015/hmcts-media-viewer.js +2624 -184
  93. package/fesm2015/hmcts-media-viewer.js.map +1 -1
  94. package/fesm5/hmcts-media-viewer.js +2581 -146
  95. package/fesm5/hmcts-media-viewer.js.map +1 -1
  96. package/hmcts-media-viewer-v2.8.2.tgz +0 -0
  97. package/hmcts-media-viewer.d.ts +63 -81
  98. package/hmcts-media-viewer.metadata.json +1 -1
  99. package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts +3 -3
  100. package/lib/annotations/comment-set/comment-set-header/comment-set-header.component.d.ts +1 -1
  101. package/lib/media-viewer.component.d.ts +1 -0
  102. package/lib/store/selectors/annotation.selectors.d.ts +3 -3
  103. package/lib/store/selectors/redaction.selectors.d.ts +1 -1
  104. package/lib/store/selectors/tag.selectors.d.ts +1 -1
  105. package/lib/toolbar/icp-event.service.d.ts +4 -4
  106. package/lib/toolbar/toolbar-event.service.d.ts +5 -5
  107. package/lib/viewers/image-viewer/image-viewer.component.d.ts +1 -1
  108. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.d.ts +1 -1
  109. package/lib/viewers/viewer-event.service.d.ts +1 -1
  110. package/package.json +7 -10
  111. package/public_api.d.ts +18 -0
  112. package/hmcts-media-viewer-v2.7.16.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"hmcts-media-viewer.umd.js.map","sources":["../../node_modules/tslib/tslib.es6.js","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.ts","ng://@hmcts/media-viewer/lib/toolbar/icp-event.service.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar-event.service.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ts","ng://@hmcts/media-viewer/lib/print.service.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-exception.model.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar-button-visibility.service.ts","ng://@hmcts/media-viewer/lib/store/actions/document.actions.ts","ng://@hmcts/media-viewer/lib/store/actions/tag.actions.ts","ng://@hmcts/media-viewer/lib/store/actions/icp.actions.ts","ng://@hmcts/media-viewer/lib/store/reducers/document.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/annotation.actions.ts","ng://@hmcts/media-viewer/lib/store/store-utils.ts","ng://@hmcts/media-viewer/lib/store/reducers/annotations.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/tags.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/bookmark.actions.ts","ng://@hmcts/media-viewer/lib/store/bookmarks-store-utils.ts","ng://@hmcts/media-viewer/lib/store/reducers/bookmarks.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/redaction.actions.ts","ng://@hmcts/media-viewer/lib/store/reducers/redaction.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/icp.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/reducers.ts","ng://@hmcts/media-viewer/lib/store/selectors/document.selectors.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-event.service.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-viewer.component.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-util.service.ts","ng://@hmcts/media-viewer/lib/viewers/image-viewer/image-viewer.component.ts","ng://@hmcts/media-viewer/lib/viewers/unsupported-viewer/unsupported-viewer.component.ts","ng://@hmcts/media-viewer/lib/annotations/services/annotation-api/annotation-api.service.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/comment.service.ts","ng://@hmcts/media-viewer/lib/store/selectors/tag.selectors.ts","ng://@hmcts/media-viewer/lib/store/selectors/annotation.selectors.ts","ng://@hmcts/media-viewer/lib/media-viewer.component.ts","ng://@hmcts/media-viewer/lib/shared/util/services/number.helper.service.ts","ng://@hmcts/media-viewer/lib/toolbar/main-toolbar/main-toolbar.component.ts","ng://@hmcts/media-viewer/lib/toolbar/search-bar/search-bar.component.ts","ng://@hmcts/media-viewer/lib/store/selectors/redaction.selectors.ts","ng://@hmcts/media-viewer/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ts","ng://@hmcts/media-viewer/lib/store/selectors/icp.selectors.ts","ng://@hmcts/media-viewer/lib/toolbar/icp-toolbar/icp-toolbar.component.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar.module.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-view/annotation-view.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-set.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ts","ng://@hmcts/media-viewer/lib/annotations/services/tags/tags.services.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/comment.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-render.service.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ts","ng://@hmcts/media-viewer/lib/annotations/comments-summary/comments-summary.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ts","ng://@hmcts/media-viewer/lib/annotations/tags/tags.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/date/date.pipe.ts","ng://@hmcts/media-viewer/lib/annotations/services/bookmarks-api/bookmarks-api.service.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/filter/filter.pipe.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/unsnake/unsnake.pipe.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-date/gov-uk-date.component.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ts","ng://@hmcts/media-viewer/lib/shared/util/helpers/html-templates.helper.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-label/gov-uk-label.component.ts","ng://@hmcts/media-viewer/lib/shared/shared.module.ts","ng://@hmcts/media-viewer/lib/store/selectors/bookmark.selectors.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotations.module.ts","ng://@hmcts/media-viewer/lib/viewers/grab-n-drag.directive.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/side-bar.component.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ts","ng://@hmcts/media-viewer/lib/redaction/components/redaction.component.ts","ng://@hmcts/media-viewer/lib/icp/icp-session-api.service.ts","ng://@hmcts/media-viewer/lib/icp/socket.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-update.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-presenter.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-follower.service.ts","ng://@hmcts/media-viewer/lib/icp/icp.service.ts","ng://@hmcts/media-viewer/lib/store/effects/annotation.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/bookmarks.effects.ts","ng://@hmcts/media-viewer/lib/redaction/services/redaction-api.service.ts","ng://@hmcts/media-viewer/lib/store/effects/redaction.effects.ts","ng://@hmcts/media-viewer/lib/viewers/convertible-content-viewer/document-conversion-api.service.ts","ng://@hmcts/media-viewer/lib/viewers/rotation-persist/rotation-api.service.ts","ng://@hmcts/media-viewer/lib/store/effects/document.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/icp.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/index.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ts","ng://@hmcts/media-viewer/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ts","ng://@hmcts/media-viewer/lib/icp/confirm-exit/confirm-action-dialog.component.ts","ng://@hmcts/media-viewer/lib/bookmark/components/bookmark-icons.component.ts","ng://@hmcts/media-viewer/lib/viewers/rotation-persist/rotation-persist.directive.ts","ng://@hmcts/media-viewer/lib/icp/participants-list/participants-list.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ts","ng://@hmcts/media-viewer/lib/viewers/multimedia-player/multimedia-player.component.ts","ng://@hmcts/media-viewer/lib/media-viewer.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as pdfjsLib from 'pdfjs-dist';\nimport { DownloadManager, PDFViewer } from 'pdfjs-dist/web/pdf_viewer';\nimport 'pdfjs-dist/build/pdf.worker';\nimport { Subject } from 'rxjs';\nimport { SearchOperation, ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\npdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';\n\n/**\n * Values of the state field returned by the find events\n */\nenum FindState {\n FOUND = 0,\n NOT_FOUND = 1,\n WRAPPED = 2,\n PENDING = 3,\n}\n\nexport class PdfJsWrapper {\n\n private zoomValue: number;\n private documentTitle: string;\n private documentOutline: Outline;\n\n constructor(\n private readonly pdfViewer: PDFViewer,\n private readonly downloadManager: DownloadManager,\n private readonly toolbarEvents: ToolbarEventService,\n public readonly documentLoadInit: Subject<string>,\n public readonly documentLoadProgress: Subject<DocumentLoadProgress>,\n public readonly documentLoaded: Subject<any>,\n public readonly outlineLoaded: Subject<Outline>,\n public readonly documentLoadFailed: Subject<Error>,\n public readonly pageRendered: Subject<PageEvent[]>,\n public readonly positionUpdated: Subject<{ location: PdfPosition }>,\n ) {\n this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));\n this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));\n this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');\n\n this.pdfViewer.eventBus.on('pagerendered', e => {}); // not used left for future convenience\n this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));\n\n this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {\n if (event.state !== FindState.PENDING) {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n }\n });\n this.pdfViewer.eventBus.on('updatefindmatchescount', event => {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n });\n this.zoomValue = 1;\n }\n\n private emitDocumentInfo(e) {\n const allPages: PageEvent[] = [...this.pdfViewer._pages].map(page => {\n return {\n div: page.div,\n scale: page.scale,\n rotation: page.rotation,\n id: page.id,\n viewportScale: page.viewport.scale\n };\n });\n this.pageRendered.next(allPages);\n }\n\n public async loadDocument(documentUrl: string) {\n const loadingTask = pdfjsLib.getDocument({\n url: documentUrl,\n cMapUrl: 'assets/minified/cmaps',\n cMapPacked: true,\n withCredentials: true\n });\n\n loadingTask.onProgress = ({ loaded, total }) => {\n this.documentLoadProgress.next({ loaded, total });\n };\n\n this.documentLoadInit.next(documentUrl);\n\n try {\n const pdfDocument = await loadingTask.promise;\n this.documentLoaded.next(pdfDocument);\n this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);\n\n this.pdfViewer.setDocument(pdfDocument);\n this.pdfViewer.linkService.setDocument(pdfDocument, null);\n\n this.documentOutline = await pdfDocument.getOutline();\n this.outlineLoaded.next(this.documentOutline);\n const pdfMetaData = await pdfDocument.getMetadata();\n this.setCurrentPDFTitle(pdfMetaData.info.Title);\n } catch (e) {\n this.documentLoadFailed.next(e);\n }\n }\n\n public downloadFile(url: string, filename: string): void {\n this.downloadManager.downloadUrl(url, filename);\n }\n\n public setPageNumber(pageNumber: number): void {\n this.pdfViewer.currentPageNumber = pageNumber;\n }\n public getPageNumber(): number {\n return this.pdfViewer.currentPageNumber;\n }\n public changePageNumber(numPages: number): void {\n this.pdfViewer.currentPageNumber += numPages;\n }\n\n public search(operation: SearchOperation): void {\n const command = operation.reset ? 'find' : 'findagain';\n\n this.pdfViewer.findController.executeCommand(command, {\n query: operation.searchTerm,\n phraseSearch: true,\n caseSensitive: operation.matchCase,\n entireWord: operation.wholeWord,\n highlightAll: operation.highlightAll,\n findPrevious: operation.previous,\n });\n }\n\n public clearSearch(): void {\n this.pdfViewer.eventBus.dispatch('findbarclose');\n }\n\n public navigateTo(destination: object | number) {\n if (destination instanceof Object) {\n if (!destination[1].name.includes('XYZ')) {\n destination[1] = { name: 'XYZ' };\n destination[2] = destination[2] || null;\n destination[3] = destination[3] || null;\n }\n destination[4] = this.zoomValue;\n }\n this.pdfViewer.linkService.navigateTo(destination);\n }\n\n public setZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n public stepZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n private getZoomValue(zoomValue: number): number {\n if (isNaN(zoomValue)) { return this.zoomValue; }\n if (zoomValue > 5) { return 5; }\n if (zoomValue < 0.1) { return 0.1; }\n\n return +zoomValue.toFixed(2);\n }\n\n public rotate(rotation: number): number {\n return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;\n }\n\n public resetRotation(rotation: number): number {\n return this.pdfViewer.pagesRotation = rotation;\n }\n\n public getNormalisedPagesRotation(): number {\n return this.pdfViewer.pagesRotation;\n }\n\n public getCurrentPDFZoomValue(): number {\n return this.pdfViewer.currentScaleValue;\n }\n\n public setCurrentPDFTitle(title: string) {\n this.documentTitle = title;\n }\n\n public getCurrentPDFTitle(): string {\n return this.documentTitle;\n }\n}\n\nexport interface DocumentLoadProgress {\n loaded: number;\n total: number;\n}\n\nexport interface PageEvent {\n div: object;\n scale: number;\n rotation: number;\n id: string;\n viewportScale: number;\n}\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n export const enabled = new BehaviorSubject(false);\n export const sessionLaunch = new Subject();\n export const becomingPresenter = new Subject();\n export const stoppingPresenting = new Subject();\n export const leavingSession = new BehaviorSubject(false);\n export const sessionExitConfirmed = new Subject();\n export const participantsListVisible = new BehaviorSubject(false);\n\nexport const launchSession = () => {\n sessionLaunch.next();\n};\n\nexport const enable = () => {\n enabled.next(true);\n launchSession();\n};\n\nexport const becomePresenter = () => {\n becomingPresenter.next();\n};\n\nexport const stopPresenting = () => {\n stoppingPresenting.next();\n};\n\nexport const leaveSession = () => {\n leavingSession.next(true);\n};\n\nexport const confirmExit = () => {\n sessionExitConfirmed.next();\n participantsListVisible.next(false);\n enabled.next(false);\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport * as icpEvents from './icp-event.service';\nimport { participantsListVisible } from './icp-event.service';\n\n// Toolbar Custom-Event Types\nexport type HighlightMode = boolean;\nexport type DrawMode = boolean;\nexport interface SearchOperation {\n searchTerm: string;\n highlightAll: boolean;\n matchCase: boolean;\n wholeWord: boolean;\n previous: boolean;\n reset: boolean;\n}\nexport interface SearchResultsCount {\n current: number;\n total: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToolbarEventService {\n\n public readonly highlightModeSubject = new BehaviorSubject<HighlightMode>(false);\n public readonly drawModeSubject = new BehaviorSubject<DrawMode>(false);\n public readonly rotateSubject = new Subject<number>();\n public readonly searchSubject = new Subject<SearchOperation>();\n public readonly searchResultsCountSubject = new Subject<SearchResultsCount>();\n public readonly zoomSubject = new Subject<number>();\n public readonly stepZoomSubject = new Subject<number>();\n public readonly zoomValueSubject = new BehaviorSubject<number>(1);\n public readonly pageCountSubject = new Subject<number>();\n public readonly printSubject = new Subject();\n public readonly downloadSubject = new Subject();\n public readonly setCurrentPageSubject = new Subject<number>();\n public readonly setCurrentPageInputValueSubject = new Subject<number>();\n public readonly changePageByDeltaSubject = new Subject<number>();\n public readonly showCommentSummary = new BehaviorSubject<boolean>(false);\n public readonly grabNDrag = new BehaviorSubject<boolean>(false);\n public readonly saveRotationSubject = new Subject();\n\n public readonly redactionMode = new BehaviorSubject(false);\n public readonly redactionPreview = new Subject<boolean>();\n public readonly applyRedactToDocument = new Subject();\n public readonly clearAllRedactMarkers = new Subject();\n\n public readonly sidebarOpen = new BehaviorSubject(false);\n public readonly searchBarHidden = new BehaviorSubject(true);\n public readonly commentsPanelVisible = new BehaviorSubject(false);\n\n public readonly icp = icpEvents;\n\n\n /**\n * Reset the stateful behaviour subjects\n */\n public reset(): void {\n this.setCurrentPageSubject.next(1);\n this.zoomValueSubject.next(1);\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(false);\n this.showCommentSummary.next(false);\n }\n\n // Function to inform Observers that highlightMode has been enabled\n public toggleHighlightMode(): void {\n // Highlight and Draw states are mutually exclusive\n if (this.highlightModeSubject.getValue() === false) {\n this.drawModeSubject.next(false);\n this.highlightModeSubject.next(true);\n } else {\n this.highlightModeSubject.next(false);\n }\n }\n\n // Function to inform Observers that ToggleMode has been enabled\n public toggleDrawMode(): void {\n if (this.drawModeSubject.getValue() === false) {\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(true);\n } else {\n this.drawModeSubject.next(false);\n }\n }\n\n public rotate(angle: number): void {\n this.rotateSubject.next(angle);\n }\n\n public search(phrase: SearchOperation): void {\n this.searchSubject.next(phrase);\n }\n\n public getSearchResultsCount(): Observable<SearchResultsCount> {\n return this.searchResultsCountSubject.asObservable();\n }\n\n public zoom(value: number): void {\n this.zoomSubject.next(value);\n }\n\n public stepZoom(value: number): void {\n this.stepZoomSubject.next(value);\n }\n\n public getZoomValue(): Observable<number> {\n return this.zoomValueSubject.asObservable();\n }\n\n public getPageCount(): Observable<number> {\n return this.pageCountSubject.asObservable();\n }\n\n public print(): void {\n this.printSubject.next();\n }\n\n public download(): void {\n this.downloadSubject.next();\n }\n\n public setPage(value: number): void {\n this.setCurrentPageSubject.next(value);\n }\n\n public incrementPage(value: number): void {\n this.changePageByDeltaSubject.next(value);\n }\n\n public getCurrentPageNumber(): Observable<number> {\n return this.setCurrentPageInputValueSubject.asObservable();\n }\n\n public getShowCommentSummary(): Observable<boolean> {\n return this.showCommentSummary.asObservable();\n }\n\n public toggleCommentsSummary(value: boolean): void {\n this.showCommentSummary.next(value);\n }\n\n public saveRotation(): void {\n this.saveRotationSubject.next();\n }\n\n public toggleGrabNDrag(): void {\n this.grabNDrag.next(!this.grabNDrag.getValue());\n }\n\n toggleSideBar(toggle: boolean) {\n this.sidebarOpen.next(toggle);\n }\n\n public toggleRedactionMode(): void {\n this.redactionMode.next(!this.redactionMode.getValue());\n }\n\n public toggleRedactionPreview(viewMode: boolean): void {\n this.redactionPreview.next(viewMode);\n }\n\n public unmarkAll(): void {\n this.clearAllRedactMarkers.next();\n }\n\n public applyRedactionToDocument(): void {\n this.applyRedactToDocument.next();\n }\n\n public toggleCommentsPanel(isVisible: boolean) {\n if (isVisible) {\n this.toggleParticipantsList(!isVisible);\n }\n this.commentsPanelVisible.next(isVisible);\n }\n\n public toggleParticipantsList(isVisible: boolean) {\n if (isVisible) {\n this.toggleCommentsPanel(!isVisible);\n }\n this.icp.participantsListVisible.next(isVisible);\n }\n}\n","import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';\nimport { ElementRef, Injectable } from '@angular/core';\nimport {DocumentLoadProgress, PageEvent, PdfJsWrapper} from './pdf-js-wrapper';\nimport { Subject } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\n@Injectable({providedIn: 'root'})\nexport class PdfJsWrapperFactory {\n\n private linkService: pdfjsViewer.PDFLinkService;\n private eventBus: pdfjsViewer.EventBus;\n private pdfJsWrapper: PdfJsWrapper;\n\n constructor(private readonly toolbarEvents: ToolbarEventService) {\n this.linkService = new pdfjsViewer.PDFLinkService();\n this.eventBus = new pdfjsViewer.EventBus();\n }\n\n public create(container: ElementRef): PdfJsWrapper {\n const pdfFindController = new pdfjsViewer.PDFFindController({\n linkService: this.linkService,\n eventBus: this.eventBus\n });\n\n const pdfViewer = new pdfjsViewer.PDFViewer({\n container: container.nativeElement,\n linkService: this.linkService,\n findController: pdfFindController,\n eventBus: this.eventBus,\n imageResourcesPath: '/assets/images/',\n textLayerMode: 2\n });\n\n this.linkService.setViewer(pdfViewer);\n\n this.pdfJsWrapper = new PdfJsWrapper(\n pdfViewer,\n new pdfjsViewer.DownloadManager({}),\n this.toolbarEvents,\n new Subject<string>(),\n new Subject<DocumentLoadProgress>(),\n new Subject<any>(),\n new Subject<Outline>(),\n new Subject(),\n new Subject<PageEvent[]>(),\n new Subject<{ location: PdfPosition }>()\n );\n\n return this.pdfJsWrapper;\n }\n\n pdfWrapper() {\n return this.pdfJsWrapper;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintService {\n\n printDocumentNatively(url: string): void {\n const printWindow = window.open(url);\n printWindow.print();\n }\n\n printElementNatively(element: HTMLElement, width: number, height: number): void {\n const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);\n\n printWindow.document.write(element.innerHTML);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","export enum ResponseType {\n SUCCESS = 'SUCCESS',\n FAILURE = 'FAILURE',\n UNSUPPORTED = 'UNSUPPORTED'\n}\n\nexport interface ExceptionDetail {\n httpResponseCode?: string;\n message?: string;\n}\n\nexport class ViewerException {\n exceptionType?: string;\n detail?: ExceptionDetail;\n\n constructor(exceptionType?: string, detail?: ExceptionDetail) {\n this.exceptionType = exceptionType;\n this.detail = detail;\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({providedIn: 'root'})\nexport class ToolbarButtonVisibilityService {\n\n public showPrint = false;\n public showDownload = false;\n public showNavigation = false;\n public showZoom = false;\n public showRotate = false;\n public showPresentationMode = false;\n public showRedact = false;\n public showOpenFile = false;\n public showBookmark = false;\n public showHighlightButton = false;\n public showDrawButton = false;\n public showSearchBar = false;\n public showSidebar = false;\n public showCommentSummary = false;\n public showGrabNDragButton = false;\n public showSaveRotationButton = false;\n\n /**\n * Reset the visibility of all buttons to false then set the value from the options\n */\n public setup(options: Partial<ToolbarButtonVisibilityService>): void {\n this.showPrint = false;\n this.showDownload = false;\n this.showNavigation = false;\n this.showZoom = false;\n this.showRotate = false;\n this.showPresentationMode = false;\n this.showRedact = false;\n this.showOpenFile = false;\n this.showBookmark = false;\n this.showHighlightButton = false;\n this.showDrawButton = false;\n this.showSearchBar = false;\n this.showSidebar = false;\n this.showCommentSummary = false;\n this.showGrabNDragButton = false;\n this.showSaveRotationButton = false;\n\n for (const key in options) {\n this[key] = options[key];\n }\n }\n}\n\n/**\n * Default toolbar state for the PDF viewer\n */\nexport const defaultPdfOptions = {\n showPrint: true,\n showDownload: true,\n showNavigation: true,\n showZoom: true,\n showRotate: true,\n showSearchBar: true,\n showSidebar: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showPresentationMode: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for the image viewer\n */\nexport const defaultImageOptions = {\n showPrint: true,\n showDownload: true,\n showZoom: true,\n showRotate: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for multimedia\n */\nexport const defaultMultimediaOptions = {\n showDownload: true\n};\n\n/**\n * Default toolbar state for unsupported media\n */\nexport const defaultUnsupportedOptions = {\n showDownload: true,\n showPrint: true\n};\n","import { Action } from '@ngrx/store';\nimport { PageEvent } from '../../viewers/pdf-viewer/pdf-js/pdf-js-wrapper';\nimport { Rotation } from '../../viewers/rotation-persist/rotation.model';\nimport { PdfPosition } from '../reducers/document.reducer';\n\nexport const SET_DOCUMENT_ID = '[Document] Set Document Id';\nexport const POSITION_UPDATED = '[Document] Position Updated';\nexport const ADD_PAGES = '[Document] Add Pages';\nexport const CONVERT = '[Document] Convert';\nexport const CONVERT_SUCCESS = '[Document] Convert Success';\nexport const CONVERT_FAIL = '[Document] Convert Fail';\nexport const CLEAR_CONVERT_DOC_URL = '[Document] Clear Convert Doc Url';\n\nexport const LOAD_ROTATION = '[Document] Load Rotation';\nexport const LOAD_ROTATION_SUCCESS = '[Document] Load Rotation Success';\nexport const LOAD_ROTATION_FAIL = '[Document] Load Rotation Fail';\nexport const SAVE_ROTATION = '[Document] Save Rotation';\nexport const SAVE_ROTATION_SUCCESS = '[Document] Save Rotation Success';\nexport const SAVE_ROTATION_FAIL = '[Document] Save Rotation Fail';\n\nexport class SetDocumentId implements Action {\n readonly type = SET_DOCUMENT_ID;\n constructor(public payload: string) { }\n}\n\nexport class AddPages implements Action {\n readonly type = ADD_PAGES;\n constructor(public payload: PageEvent[]) { }\n}\n\nexport class PdfPositionUpdate implements Action {\n readonly type = POSITION_UPDATED;\n constructor(public payload: PdfPosition) {}\n}\n\nexport class Convert implements Action {\n readonly type = CONVERT;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertSuccess implements Action {\n readonly type = CONVERT_SUCCESS;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertFailure implements Action {\n readonly type = CONVERT_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class ClearConvertDocUrl implements Action {\n readonly type = CLEAR_CONVERT_DOC_URL;\n}\n\nexport class LoadRotation implements Action {\n readonly type = LOAD_ROTATION;\n constructor(public payload: string) {\n }\n}\n\nexport class LoadRotationSuccess implements Action {\n readonly type = LOAD_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class LoadRotationFailure implements Action {\n readonly type = LOAD_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport class SaveRotation implements Action {\n readonly type = SAVE_ROTATION;\n constructor(public payload: Rotation) {\n }\n}\n\nexport class SaveRotationSuccess implements Action {\n readonly type = SAVE_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class SaveRotationFailure implements Action {\n readonly type = SAVE_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport type DocumentActions =\n | AddPages | SetDocumentId | Convert\n | ConvertSuccess | ConvertFailure | ClearConvertDocUrl\n | PdfPositionUpdate | LoadRotation | LoadRotationSuccess\n | LoadRotationFailure | SaveRotation | SaveRotationSuccess\n | SaveRotationFailure;\n","import { Action } from '@ngrx/store';\nimport {TagsModel} from '../../annotations/models/tags.model';\nexport const UPDATE_TAGS = '[Tags] Update Tags';\nexport const ADD_FILTER_TAGS = '[Tags] Add Filter Tags';\nexport const CLEAR_FILTER_TAGS = '[Tags] Clear Filter Tags';\n\nexport class UpdateTags implements Action {\n readonly type = UPDATE_TAGS;\n constructor(public payload: {tags: TagsModel[]; annoId: string}) {}\n}\n\nexport class AddFilterTags implements Action {\n readonly type = ADD_FILTER_TAGS;\n constructor(public payload: {[id: string]: boolean}) {}\n}\n\nexport class ClearFilterTags implements Action {\n readonly type = CLEAR_FILTER_TAGS;\n}\n\n\nexport type TagsActions =\n | UpdateTags\n | AddFilterTags\n | ClearFilterTags;\n","import { Action } from '@ngrx/store';\nimport { IcpParticipant, IcpSession } from '../../icp/icp.interfaces';\n\nexport const SET_CASE_ID = '[Icp] Set Case Id';\nexport const LOAD_ICP_SESSION = '[Icp] Load Session';\nexport const LOAD_ICP_SESSION_FAIL = '[Icp] Load Session Failure';\nexport const JOIN_ICP_SOCKET_SESSION = '[Icp] Join Socket Session';\nexport const ICP_SOCKET_SESSION_JOINED = '[Icp] Socket Session Joined';\nexport const LEAVE_ICP_SOCKET_SESSION = '[Icp] Leave Socket Session';\nexport const ICP_PRESENTER_UPDATED = '[Icp] Presenter Updated';\nexport const ICP_PARTICIPANT_LIST_UPDATED = '[Icp] Participant List Updated';\n\nexport class SetCaseId implements Action {\n readonly type = SET_CASE_ID;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSession implements Action {\n readonly type = LOAD_ICP_SESSION;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSessionFailure implements Action {\n readonly type = LOAD_ICP_SESSION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class JoinIcpSocketSession implements Action {\n readonly type = JOIN_ICP_SOCKET_SESSION;\n constructor(public payload: { username: string, session: IcpSession }) {}\n}\n\nexport class IcpSocketSessionJoined implements Action {\n readonly type = ICP_SOCKET_SESSION_JOINED;\n constructor(public payload: { session: IcpSession, participantInfo: { client: IcpParticipant, presenter: IcpParticipant } }) {}\n}\n\nexport class LeaveIcpSocketSession implements Action {\n readonly type = LEAVE_ICP_SOCKET_SESSION;\n constructor() {}\n}\n\nexport class IcpPresenterUpdated implements Action {\n readonly type = ICP_PRESENTER_UPDATED;\n constructor(public payload: IcpParticipant) {}\n}\n\nexport class IcpParticipantListUpdated implements Action {\n readonly type = ICP_PARTICIPANT_LIST_UPDATED;\n constructor(public payload: any) {}\n}\n\nexport type IcpActions =\n | SetCaseId\n | LoadIcpSession\n | LoadIcpSessionFailure\n | JoinIcpSocketSession\n | IcpSocketSessionJoined\n | LeaveIcpSocketSession\n | IcpPresenterUpdated\n | IcpParticipantListUpdated;\n","import * as fromActions from '../actions/document.actions';\n\nexport interface DocumentState {\n convertedDocument: {\n url: string;\n error: string;\n };\n documentId: string;\n pdfPosition: PdfPosition;\n pages: {[id: string]: DocumentPages};\n hasDifferentPageSize: boolean;\n rotation: number;\n rotationLoaded: boolean;\n loaded: boolean;\n loading: boolean;\n}\n\nexport interface DocumentPages {\n numberOfPages: number;\n styles: { left: number, height: number, width: number };\n scaleRotation: { scale: string; rotation: string };\n viewportScale: number;\n}\n\nexport interface PdfPosition {\n pageNumber: number;\n scale: number;\n top: number;\n left: number;\n rotation: number;\n}\n\nexport const initialDocumentState: DocumentState = {\n convertedDocument: undefined,\n documentId: undefined,\n pdfPosition: undefined,\n pages: {},\n hasDifferentPageSize: false,\n rotation: undefined,\n rotationLoaded: false,\n loading: false,\n loaded: false\n};\n\nexport function docReducer (state = initialDocumentState,\n action: fromActions.DocumentActions): DocumentState {\n\n switch (action.type) {\n\n case fromActions.CONVERT_SUCCESS: {\n const convertedDocument = {\n url: action.payload,\n error: undefined\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CONVERT_FAIL: {\n const convertedDocument = {\n url: undefined,\n error: action.payload\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CLEAR_CONVERT_DOC_URL: {\n const convertedDocument = undefined;\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.LOAD_ROTATION: {\n return {\n ...state,\n rotationLoaded: false\n };\n }\n\n case fromActions.LOAD_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata ? metadata.rotationAngle : 0;\n return {\n ...state,\n rotation,\n rotationLoaded: true\n };\n }\n\n case fromActions.LOAD_ROTATION_FAIL: {\n return {\n ...state,\n rotation: 0,\n rotationLoaded: true\n };\n }\n\n case fromActions.SAVE_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata.rotationAngle;\n return {\n ...state,\n rotation\n };\n }\n\n case fromActions.SET_DOCUMENT_ID : {\n return {\n ...state,\n documentId: action.payload\n };\n }\n\n case fromActions.ADD_PAGES: {\n const payload = action.payload;\n let pages = {};\n let pageHeight;\n let pageWidth;\n let hasDifferentPageSize = state.hasDifferentPageSize;\n payload.forEach(page => {\n if (!hasDifferentPageSize && pageHeight && pageWidth &&\n (pageHeight !== page.div['scrollHeight'] || pageWidth !== page.div['scrollWidth'])) {\n hasDifferentPageSize = true;\n } else {\n pageHeight = page.div['scrollHeight'];\n pageWidth = page.div['scrollWidth'];\n }\n const styles = {\n left: page.div['offsetLeft'],\n height: page.div['scrollHeight'],\n width: page.div['scrollWidth']\n };\n\n const scaleRotation = {\n scale: page.scale,\n rotation: page.rotation\n };\n\n const p = {\n styles,\n scaleRotation,\n viewportScale: page.viewportScale\n };\n\n pages = {\n ...pages,\n [page.id]: p\n };\n\n });\n return {\n ...state,\n pages,\n hasDifferentPageSize\n };\n }\n\n case fromActions.POSITION_UPDATED: {\n const pdfPosition = action.payload;\n return {\n ...state,\n pdfPosition\n };\n }\n }\n return state;\n}\nexport const getDocPages = (state: DocumentState) => state.pages;\nexport const getDocId = (state: DocumentState) => state.documentId;\nexport const getPdfPos = (state: DocumentState) => state.pdfPosition;\nexport const getHasDifferentPageSizes = (state: DocumentState) => state.hasDifferentPageSize;\nexport const getRotation = (state: DocumentState) => state.rotation;\nexport const rotationLoaded = (state: DocumentState) => state.rotationLoaded;\nexport const getConvertedDocument = (state: DocumentState) => state.convertedDocument;\n","import { Action } from '@ngrx/store';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { Filters } from '../models/filters.interface';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\n\nexport const LOAD_ANNOTATION_SET = '[Annotations] Load Annotation Set';\nexport const LOAD_ANNOTATION_SET_SUCCESS = '[Annotations] Load Annotation Set Success';\nexport const LOAD_ANNOTATION_SET_FAIL = '[Annotations] Load Annotation Set Fail';\n\nexport const SAVE_ANNOTATION = '[Annotations] Save Annotation';\nexport const SAVE_ANNOTATION_SUCCESS = '[Annotations] Save Annotation Success';\nexport const SAVE_ANNOTATION_FAIL = '[Annotations] Save Annotation Fail';\nexport const ADD_OR_EDIT_COMMENT = '[Annotations] Add or Edit Comment';\n\nexport const DELETE_ANNOTATION = '[Annotations] Delete Annotation';\nexport const DELETE_ANNOTATION_SUCCESS = '[Annotations] Delete Annotation Success';\nexport const DELETE_ANNOTATION_FAIL = '[Annotations] Delete Annotation Fail';\n\nexport const SELECT_ANNOTATION = '[Annotations] Select Annotation';\nexport const SEARCH_COMMENT = '[Comments] Search Comments';\nexport const APPLY_COMMENT_SUMMARY_FILTER = '[Comments] Apply Comment Summary Filter';\nexport const CLEAR_COMMENT_SUMMARY_FILTER = '[Comments] Clear Comment Summary Filter';\n\nexport class LoadAnnotationSet implements Action {\n readonly type = LOAD_ANNOTATION_SET;\n constructor(public payload: string) { }\n}\n\nexport class LoadAnnotationSetSucess implements Action {\n readonly type = LOAD_ANNOTATION_SET_SUCCESS;\n constructor(public payload: { status: number, body: AnnotationSet }) { }\n}\n\nexport class LoadAnnotationSetFail implements Action {\n readonly type = LOAD_ANNOTATION_SET_FAIL;\n constructor(public payload: { status: number, body: any }) { }\n}\n\nexport class SaveAnnotation implements Action {\n readonly type = SAVE_ANNOTATION;\n constructor(public payload: Annotation) { }\n}\n\nexport class SaveAnnotationSuccess implements Action {\n readonly type = SAVE_ANNOTATION_SUCCESS;\n constructor(public payload: any) { }\n}\n\nexport class SaveAnnotationFail implements Action {\n readonly type = SAVE_ANNOTATION_FAIL;\n constructor(public payload: Error) { }\n}\n\nexport class AddOrEditComment implements Action {\n readonly type = ADD_OR_EDIT_COMMENT;\n constructor(public payload: Comment) { }\n}\n\nexport class DeleteAnnotation implements Action {\n readonly type = DELETE_ANNOTATION;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationSuccess implements Action {\n readonly type = DELETE_ANNOTATION_SUCCESS;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationFail implements Action {\n readonly type = DELETE_ANNOTATION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class SelectedAnnotation implements Action {\n readonly type = SELECT_ANNOTATION;\n constructor(public payload: SelectionAnnotation) {}\n}\n\nexport class SearchComment implements Action {\n readonly type = SEARCH_COMMENT;\n constructor(public payload: string) {}\n}\n\nexport class ApplyCommentSymmaryFilter implements Action {\n readonly type = APPLY_COMMENT_SUMMARY_FILTER;\n constructor(public payload: Filters) {}\n}\n\nexport class ClearCommentSummaryFilters implements Action {\n readonly type = CLEAR_COMMENT_SUMMARY_FILTER;\n}\n\nexport type AnnotationsActions =\n | LoadAnnotationSet\n | LoadAnnotationSetSucess\n | LoadAnnotationSetFail\n | SaveAnnotation\n | SaveAnnotationSuccess\n | SaveAnnotationFail\n | AddOrEditComment\n | DeleteAnnotation\n | DeleteAnnotationSuccess\n | DeleteAnnotationFail\n | SelectedAnnotation\n | SearchComment\n | ApplyCommentSymmaryFilter\n | ClearCommentSummaryFilters;\n","import { Annotation } from '../annotations/annotation-set/annotation-view/annotation.model';\nimport moment from 'moment-timezone';\nimport { Redaction } from '../redaction/services/redaction.model';\nimport { Filters } from './models/filters.interface';\nimport { Comment } from '../annotations/comment-set/comment/comment.model';\n\n/*\n @dynamic\n marking class as dynamic to stop compiler throwing error for lambda in static function\n see https://github.com/angular/angular/issues/19698#issuecomment-338340211\n */\nexport class StoreUtils {\n\n static groupByKeyEntities(annotations, key): {[id: string]: any[]} {\n return annotations.reduce((h, obj) =>\n Object.assign(h, { [obj[key]]: ( h[obj[key]] || [] ).concat(obj) }), {});\n }\n\n static generateCommentsEntities(annotations): {[id: string]: Comment} {\n return annotations.reduce(\n (commentEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n if (annotation.comments.length) {\n const comment = {\n ...annotation.comments[0] || '',\n tags: [...annotation.tags || []]\n };\n return {\n ...commentEntities,\n [annotation.id]: comment\n };\n }\n return {\n ...commentEntities\n };\n }, {});\n }\n\n static genTagNameEntities(annotations) {\n const filterAnnoWithoutCommentsTags = annotations.filter(a => (a.comments.length && a.tags.length));\n const allTags = filterAnnoWithoutCommentsTags.map(anno => this.groupByKeyEntities(anno.tags, 'name'));\n const groupedByName = allTags.reduce(\n (tagEntitiy: { [id: string]: Annotation }, tagItem) => {\n return {\n ...tagEntitiy,\n ...tagItem\n };\n }, {});\n\n return this.genNameEnt(annotations, groupedByName);\n }\n\n static genNameEnt(annos, groupedByName) {\n return Object.keys(groupedByName).reduce(\n (tagNameEnt, key) => {\n const readyAnno = annos.filter(anno => anno.tags.find(tag => tag.name === key))\n .map(anno => anno.id)\n .reduce((obj: {[id: string]: string}, anno: string) => ({ ...obj, [anno]: anno }), {});\n\n return {\n ...tagNameEnt,\n [key]: readyAnno\n };\n }, {});\n\n }\n\n static generateAnnotationEntities(anno): {[id: string]: Annotation} {\n return anno.reduce(\n (annoEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n const annot = {\n ...annotation,\n positionTop: annotation.rectangles[0].y // todo remove this\n };\n return {\n ...annoEntities,\n [annotation.id]: annot\n };\n }, {});\n }\n\n static generateRedactionEntities(redactions: Redaction[]): { [id: string]: Redaction } {\n return redactions.reduce(\n (redactEntities: { [id: string]: Redaction }, redaction: Redaction) => {\n return {\n ...redactEntities,\n [redaction.redactionId]: redaction\n };\n }, {});\n }\n\n static resetCommentEntSelect(ent: { [id: string]: Comment }) {\n return Object.keys(ent).reduce((object, key) => {\n object[key] = {\n ...ent[key],\n editable: false,\n selected: false\n };\n return object;\n }, {});\n }\n\n static filterCommentsSummary(comments: Array<Comment>, filters: Filters) {\n if (Object.keys(filters).length) {\n const tagFilterApplied = Object.keys(filters.tagFilters)\n .filter(key => filters.tagFilters[key] === true).length;\n const dateFilterApplied = (filters.dateRangeFrom || filters.dateRangeTo);\n const filteredComments = comments.filter(comment => {\n let hasTagFilter = false;\n let hasDateFilter = false;\n // check tags\n if (filters.hasOwnProperty('tagFilters')) {\n Object.keys(filters.tagFilters).forEach(filter => {\n const label = filters.tagFilters[filter];\n if (label) {\n return comment.tags.forEach(tag => {\n if (tag.name === filter && !hasTagFilter) {\n hasTagFilter = true;\n }\n });\n }});\n }\n // check for dates\n if (dateFilterApplied) {\n const commentDate = moment(comment.lastModifiedDate);\n const dateFrom = filters.dateRangeFrom !== null ? moment(filters.dateRangeFrom) : undefined;\n const dateTo = filters.dateRangeTo !== null ? moment(filters.dateRangeTo) : undefined;\n\n if (dateTo && dateFrom) {\n if (commentDate > dateFrom && commentDate < dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateTo && !dateFrom) {\n if (commentDate <= dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateFrom && !dateTo) {\n if (commentDate > dateFrom) {\n hasDateFilter = true;\n }\n }\n }\n\n return (hasTagFilter || hasDateFilter);\n });\n return (tagFilterApplied || dateFilterApplied) ? filteredComments : comments;\n } else {\n return comments;\n }\n }\n}\n","import uuid from 'uuid/v4';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\nimport { StoreUtils } from '../store-utils';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { Filters } from '../models/filters.interface';\n\nexport interface AnnotationSetState {\n annotationSet: any;\n annotationEntities: {[id: string]: any};\n annotationPageEntities: {[id: string]: Annotation[]};\n commentEntities: {[id: string]: Comment};\n selectedAnnotation: SelectionAnnotation;\n commentSearchQueries: { commentSearch: string };\n commentSummaryFilters: {hasFilter: boolean; filters: Filters};\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialState: AnnotationSetState = {\n annotationSet: {},\n annotationEntities: {},\n commentEntities: {},\n annotationPageEntities: {},\n selectedAnnotation: null,\n commentSearchQueries: {commentSearch: ''},\n commentSummaryFilters: {hasFilter: false, filters: {}},\n loading: false,\n loaded: false,\n};\n\nexport function reducer (\n state = initialState,\n action: fromAnnotations.AnnotationsActions\n): AnnotationSetState {\n switch (action.type) {\n\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n const annotationSet = {\n ...state.annotationSet,\n documentId: action.payload\n };\n return {\n ...initialState,\n annotationSet,\n loading: true\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS:\n case fromAnnotations.LOAD_ANNOTATION_SET_FAIL: {\n const annotationSet = action.payload.status === 200 ? action.payload.body :\n {\n ...state.annotationSet,\n annotations: [],\n id: uuid()\n };\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotationSet.annotations);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotationSet.annotations, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotationSet.annotations);\n return {\n ...state,\n annotationSet,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const anno = action.payload;\n const annEntities = {\n ...state.annotationEntities,\n [anno.id]: anno\n };\n const annotArray = Object.keys(annEntities).map(key => annEntities[key]);\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotArray);\n const selectedAnnotation = {\n ...state.selectedAnnotation,\n annotationId : anno.id,\n editable: false\n };\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n selectedAnnotation,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const page = state.annotationEntities[id].page;\n const annotationEntities = {\n ...state.annotationEntities\n };\n delete annotationEntities[id];\n const pageAnnotationsRemoved = [\n ...state.annotationPageEntities[page].filter(anno => anno.id !== id)\n ];\n const annotationPageEntities = {\n ...state.annotationPageEntities,\n [page]: pageAnnotationsRemoved\n };\n const commentEntities = {\n ...state.commentEntities\n };\n if (state.commentEntities[id]) {\n delete commentEntities[id];\n }\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities\n };\n }\n\n case fromAnnotations.ADD_OR_EDIT_COMMENT: {\n const comment = {\n [action.payload.annotationId]: action.payload\n };\n const comments = {\n ...state.commentEntities,\n ...comment\n };\n return {\n ...state,\n commentEntities: comments\n };\n }\n\n case fromAnnotations.SELECT_ANNOTATION: {\n const payload = action.payload;\n const commentEntity = {\n ...state.commentEntities[payload.annotationId],\n editable: payload.editable,\n selected: payload.selected\n };\n\n const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n\n const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {\n ...resetCommentEntSelect,\n [payload.annotationId]: commentEntity\n } : {...resetCommentEntSelect};\n\n return {\n ...state,\n commentEntities,\n selectedAnnotation: action.payload\n };\n }\n\n case fromAnnotations.SEARCH_COMMENT: {\n const commentSearchQueries = {\n ...state.commentSearchQueries,\n commentSearch: action.payload\n };\n\n const commentEntities = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n return {\n ...state,\n commentEntities,\n commentSearchQueries\n };\n }\n\n case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {\n const payload = action.payload;\n const hasTagFilter = () => {\n let isFiltered = false;\n if (payload.tagFilters) {\n Object.keys(payload.tagFilters).map(filter => {\n if (payload.tagFilters[filter] && !isFiltered) {\n isFiltered = true;\n }\n });\n }\n return isFiltered;\n };\n const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);\n const commentSummaryFilters = {\n hasFilter,\n filters: payload\n };\n return {\n ...state,\n commentSummaryFilters: commentSummaryFilters\n };\n }\n\n case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {\n\n return {\n ...state,\n commentSummaryFilters : {...initialState.commentSummaryFilters}\n };\n }\n }\n\n\n return state;\n}\n\nexport const getAnnoSet = (state: AnnotationSetState) => state.annotationSet;\nexport const getCommentEnts = (state: AnnotationSetState) => state.commentEntities;\nexport const getAnnoPageEnt = (state: AnnotationSetState) => state.annotationPageEntities;\nexport const getAnnoEnt = (state: AnnotationSetState) => state.annotationEntities;\nexport const getSelectedAnno = (state: AnnotationSetState) => state.selectedAnnotation;\nexport const commentSearchQ = (state: AnnotationSetState) => state.commentSearchQueries;\nexport const getSummaryFilters = (state: AnnotationSetState) => state.commentSummaryFilters;\n","import * as fromAnnotations from '../actions/annotation.actions';\nimport * as fromTags from '../actions/tag.actions';\nimport {StoreUtils} from '../store-utils';\nimport {Annotation} from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport interface TagsState {\n tagNameEnt: {[id: string]: string[]};\n filteredComments: {[id: string]: string[]};\n filteredPageEntities: {[id: string]: Annotation[]};\n annotations: Annotation[];\n formFilterState: {[id: string]: boolean};\n filters: string[];\n}\n\nexport const initialTagState: TagsState = {\n tagNameEnt: {},\n annotations: [],\n filteredPageEntities: {},\n filteredComments: {},\n formFilterState: {},\n filters: []\n};\n\nexport function tagsReducer (\n state = initialTagState,\n action: fromAnnotations.AnnotationsActions | fromTags.TagsActions\n): TagsState {\n switch (action.type) {\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n\n return {\n ...state,\n ...initialTagState\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS: {\n const annotations = action.payload.body.annotations;\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n tagNameEnt,\n annotations\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const payload = action.payload;\n\n const anno = [...state.annotations].filter(a => a.id !== payload.id) || [];\n const annotations = [...anno, payload];\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n annotations,\n tagNameEnt\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const annotations = [...state.annotations].filter(a => a.id !== id);\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n const filteredComments = {\n ...state.filteredComments\n };\n delete filteredComments[id];\n return {\n ...state,\n annotations,\n tagNameEnt,\n filteredComments,\n filteredPageEntities,\n filters: []\n };\n }\n\n\n case fromTags.ADD_FILTER_TAGS: {\n const formFilterState = action.payload;\n\n const filters = Object.keys(formFilterState).reduce((arr: string[], key: string) => {\n return formFilterState[key] ? [...arr, key] : arr;\n }, []);\n\n const filteredComments = filters.reduce((obj: {[id: string]: string}, f) => {\n return {\n ...obj,\n ...state.tagNameEnt[f]\n };\n }, {});\n\n const annotations = Object.keys(filteredComments).map(key => state.annotations.filter(a => a.id === key)[0]);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n return {\n ...state,\n filters,\n filteredComments,\n filteredPageEntities,\n };\n }\n\n case fromTags.CLEAR_FILTER_TAGS: {\n return {\n ...state,\n filters: [],\n filteredComments: {},\n filteredPageEntities: {},\n };\n }\n\n }\n\n return state;\n}\n\nexport const getTagNameEnt = (state: TagsState) => state.tagNameEnt;\nexport const getFilters = (state: TagsState) => state.filters;\nexport const getFilteredComments = (state: TagsState) => state.filteredComments;\nexport const getFilteredPageEnt = (state: TagsState) => state.filteredPageEntities;\n","import { Action } from '@ngrx/store';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const LOAD_BOOKMARKS = '[Bookmarks] Load Bookmarks';\nexport const LOAD_BOOKMARKS_SUCCESS = '[Bookmarks] Load Bookmarks Success';\nexport const LOAD_BOOKMARKS_FAIL = '[Bookmarks] Load Bookmarks Failure';\nexport const CREATE_BOOKMARK = '[Bookmarks] Create Bookmark';\nexport const CREATE_BOOKMARK_SUCCESS = '[Bookmarks] Create Bookmark Success';\nexport const CREATE_BOOKMARK_FAIL = '[Bookmarks] Create Bookmark Failure';\nexport const DELETE_BOOKMARK = '[Bookmarks] Delete Bookmark';\nexport const DELETE_BOOKMARK_SUCCESS = '[Bookmarks] Delete Bookmark Success';\nexport const DELETE_BOOKMARK_FAIL = '[Bookmarks] Delete Bookmark Failure';\nexport const MOVE_BOOKMARK = '[Bookmarks] Move Bookmark';\nexport const MOVE_BOOKMARK_SUCCESS = '[Bookmarks] Move Bookmark Success';\nexport const MOVE_BOOKMARK_FAIL = '[Bookmarks] Move Bookmark Failure';\nexport const UPDATE_BOOKMARK = '[Bookmarks] Update Bookmark';\nexport const UPDATE_BOOKMARK_SUCCESS = '[Bookmarks] Update Bookmark Success';\nexport const UPDATE_BOOKMARK_FAIL = '[Bookmarks] Update Bookmark Failure';\n\nexport class LoadBookmarks implements Action {\n readonly type = LOAD_BOOKMARKS;\n constructor() {}\n}\n\nexport class LoadBookmarksSuccess implements Action {\n readonly type = LOAD_BOOKMARKS_SUCCESS;\n constructor(public payload: { body: Bookmark[], status: number}) { }\n}\n\nexport class LoadBookmarksFailure implements Action {\n readonly type = LOAD_BOOKMARKS_FAIL;\n constructor(public payload: { body: any, status: number }) { }\n}\n\nexport class CreateBookmark implements Action {\n readonly type = CREATE_BOOKMARK;\n constructor(public payload: Bookmark) { }\n}\n\nexport class CreateBookmarkSuccess implements Action {\n readonly type = CREATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class CreateBookmarkFailure implements Action {\n readonly type = CREATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\nexport class DeleteBookmark implements Action {\n readonly type = DELETE_BOOKMARK;\n constructor(public payload: { deleted: string[], updated: Bookmark }) {}\n}\n\nexport class DeleteBookmarkSuccess implements Action {\n readonly type = DELETE_BOOKMARK_SUCCESS;\n constructor(public payload: string[]) {}\n}\n\nexport class DeleteBookmarkFailure implements Action {\n readonly type = DELETE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class MoveBookmark implements Action {\n readonly type = MOVE_BOOKMARK;\n constructor(public payload: Bookmark[]) {}\n}\n\nexport class MoveBookmarkSuccess implements Action {\n readonly type = MOVE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark[]) { }\n}\n\nexport class MoveBookmarkFailure implements Action {\n readonly type = MOVE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class UpdateBookmark implements Action {\n readonly type = UPDATE_BOOKMARK;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkSuccess implements Action {\n readonly type = UPDATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkFailure implements Action {\n readonly type = UPDATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\n\nexport type BookmarksActions =\n | LoadBookmarks | LoadBookmarksSuccess | LoadBookmarksFailure\n | CreateBookmark | CreateBookmarkSuccess | CreateBookmarkFailure\n | DeleteBookmark | DeleteBookmarkSuccess | DeleteBookmarkFailure\n | UpdateBookmark | UpdateBookmarkSuccess | UpdateBookmarkFailure\n | MoveBookmark | MoveBookmarkSuccess | MoveBookmarkFailure;\n","import { Bookmark } from '../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const getBookmarkChildren = (bookmarks: Bookmark[]) => {\n if (bookmarks) {\n return bookmarks.reduce((childIds, bookmark) => {\n if (bookmark.children && bookmark.children.length > 0) {\n return [...childIds, bookmark.id, ...getBookmarkChildren(bookmark.children)];\n }\n return [...childIds, bookmark.id];\n }, []);\n } else {\n return [];\n }\n};\n\nexport const generateBookmarkEntities = (bookmarks: Bookmark[]): {[id: string]: Bookmark} => {\n return bookmarks.reduce(\n (bookmarkEntities, bookmark) =>\n Object.assign(bookmarkEntities, { [bookmark.id]: bookmark }),\n {});\n};\n\nconst indexEntities = (entities: { [id: string]: Bookmark }) => {\n const entityIds = Object.keys(entities);\n for (let index = 0; entityIds.length > 0; index++) {\n let keysToRemove = [];\n entityIds.forEach(key => {\n if (!entities[key].previous || !entityIds.includes(entities[key].previous.toString())) {\n entities[key].index = index;\n keysToRemove.push(key);\n }\n });\n keysToRemove.forEach(key => entityIds.splice(entityIds.indexOf(key), 1));\n keysToRemove = [];\n }\n};\n\nexport const generateBookmarkNodes = (entities: { [id: string]: Bookmark }) => {\n const bookmarkEntities = JSON.parse(JSON.stringify(entities));\n indexEntities(bookmarkEntities);\n return Object.keys(bookmarkEntities).reduce((nodes, bookmarkId) => {\n const bookmarkEntity = bookmarkEntities[bookmarkId];\n if (bookmarkEntity.parent) {\n const parentEntity = bookmarkEntities[bookmarkEntity.parent];\n if (!parentEntity.children) {\n parentEntity.children = [];\n }\n parentEntity.children[bookmarkEntity.index] = bookmarkEntity;\n } else {\n nodes[bookmarkEntity.index] = bookmarkEntity;\n }\n return nodes;\n }, []);\n};\n","import * as fromBookmarks from '../actions/bookmark.actions';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport { StoreUtils } from '../store-utils';\nimport { generateBookmarkEntities } from '../bookmarks-store-utils';\n\nexport interface BookmarksState {\n bookmarks: Bookmark[];\n bookmarkEntities: { [id: string]: Bookmark };\n bookmarkPageEntities: {[id: string]: any};\n editableBookmark: string;\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialBookmarksState: BookmarksState = {\n bookmarks: [],\n bookmarkEntities: {},\n bookmarkPageEntities: {},\n editableBookmark: undefined,\n loaded: false,\n loading: false\n};\n\nexport function bookmarksReducer (state = initialBookmarksState,\n action: fromBookmarks.BookmarksActions): BookmarksState {\n\n switch (action.type) {\n\n case fromBookmarks.LOAD_BOOKMARKS: {\n return {\n ...state,\n loading: true\n };\n }\n\n case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:\n case fromBookmarks.LOAD_BOOKMARKS_FAIL: {\n const bookmarks = action.payload.status === 200 ? action.payload.body : [];\n const bookmarkEntities = generateBookmarkEntities(bookmarks);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');\n\n return {\n ...state,\n bookmarks,\n bookmarkEntities,\n bookmarkPageEntities,\n loaded: true\n };\n }\n\n case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: bookmark,\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = bookmark.id;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {\n const movedBookmarks = generateBookmarkEntities(action.payload);\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n ...movedBookmarks\n };\n return {\n ...state,\n bookmarkEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {\n const bookmarkIds: string[] = action.payload;\n const bookmarkEntities = { ...state.bookmarkEntities };\n const bookmarkPageEntities = { ...state.bookmarkPageEntities };\n const removeBookmarksByPage: {[pageNumber: number]: string[]} = {};\n bookmarkIds.forEach(bookmarkId => {\n if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);\n } else {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];\n }\n delete bookmarkEntities[bookmarkId];\n });\n\n Object.entries(removeBookmarksByPage).forEach(\n ([pageNumber, bmrkIds]) => {\n bookmarkPageEntities[pageNumber] = bookmarkPageEntities[pageNumber].filter(bookmarkId => bmrkIds.includes(bookmarkId));\n }\n );\n\n return {\n ...state,\n bookmarkEntities,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: { ...bookmark }\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = undefined;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n }\n return state;\n}\n\nexport const getBookmarks = (state: BookmarksState) => state.bookmarks;\nexport const getBookmarkEnts = (state: BookmarksState) => state.bookmarkEntities;\nexport const getBookmarkPageEnt = (state: BookmarksState) => state.bookmarkPageEntities;\nexport const getEditBookmark = (state: BookmarksState) => state.editableBookmark;\n","import { Action } from '@ngrx/store';\nimport { Redaction } from '../../redaction/services/redaction.model';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport const LOAD_REDACTIONS = '[Redaction] Load Redaction';\nexport const LOAD_REDACTION_SUCCESS = '[Redaction] Load Redaction Success';\nexport const LOAD_REDACTION_FAIL = '[Redaction] Load Redaction Fail';\n\nexport const SAVE_REDACTION = '[Redaction] Save Redaction';\nexport const SAVE_REDACTION_SUCCESS = '[Redaction] Save Redaction Success';\nexport const SAVE_REDACTION_FAIL = '[Redaction] Save Redaction Fail';\n\nexport const DELETE_REDACTION = '[Redaction] Delete Redaction';\nexport const DELETE_REDACTION_SUCCESS = '[Redaction] Delete Redaction Success';\nexport const DELETE_REDACTION_FAIL = '[Redaction] Delete Redaction Fail';\n\nexport const SELECT_REDACTION = '[Redaction] Select Redaction';\n\nexport const REDACT = '[Redaction] Redact';\nexport const REDACT_SUCCESS = '[Redaction] Redact Success';\nexport const REDACT_FAIL = '[Redaction] Redact Fail';\nexport const RESET_REDACTED_DOCUMENT = '[Redaction] Reset Redacted Document';\n\nexport const UNMARK_ALL = '[Redaction] Unmark All';\nexport const UNMARK_ALL_SUCCESS = '[Redaction] Unmark All Success';\n\n\nexport class LoadRedactions implements Action {\n readonly type = LOAD_REDACTIONS;\n constructor(public payload: any) {}\n}\n\nexport class LoadRedactionSuccess implements Action {\n readonly type = LOAD_REDACTION_SUCCESS;\n constructor(public payload: Redaction[]) {}\n}\n\nexport class LoadRedactionFailure implements Action {\n readonly type = LOAD_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SaveRedaction implements Action {\n readonly type = SAVE_REDACTION;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionSuccess implements Action {\n readonly type = SAVE_REDACTION_SUCCESS;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionFailure implements Action {\n readonly type = SAVE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedaction implements Action {\n readonly type = DELETE_REDACTION;\n constructor(public payload: Annotation) {}\n}\n\nexport class DeleteRedactionSuccess implements Action {\n readonly type = DELETE_REDACTION_SUCCESS;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedactionFailure implements Action {\n readonly type = DELETE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SelectRedaction implements Action {\n readonly type = SELECT_REDACTION;\n constructor(public payload: any) {}\n}\n\nexport class Redact implements Action {\n readonly type = REDACT;\n constructor(public payload: { redactions: Redaction[], documentId: string }) {}\n}\n\nexport class RedactSuccess implements Action {\n readonly type = REDACT_SUCCESS;\n constructor(public payload: { blob: Blob, filename: string }) {}\n}\n\nexport class RedactFailure implements Action {\n readonly type = REDACT_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class ResetRedactedDocument implements Action {\n readonly type = RESET_REDACTED_DOCUMENT;\n}\n\n\nexport class UnmarkAll implements Action {\n readonly type = UNMARK_ALL;\n constructor(public payload: string) {}\n}\n\nexport class UnmarkAllSuccess implements Action {\n readonly type = UNMARK_ALL_SUCCESS;\n}\n\nexport type RedactionActions =\n | LoadRedactions | LoadRedactionSuccess | LoadRedactionFailure\n | SaveRedaction | SaveRedactionSuccess | SaveRedactionFailure\n | DeleteRedaction | DeleteRedactionSuccess | DeleteRedactionFailure\n | SelectRedaction\n | Redact | RedactSuccess | RedactFailure | ResetRedactedDocument\n | UnmarkAll | UnmarkAllSuccess;\n","import * as fromRedaction from '../actions/redaction.actions';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport {StoreUtils} from '../store-utils';\nimport {SelectionAnnotation} from '../../annotations/models/event-select.model';\nimport { Redaction } from '../../redaction/services/redaction.model'; // todo rename\n\n\nexport interface RedactionState {\n redactionEntities: { [id: string]: Redaction };\n redactionPageEntities: { [id: string]: any };\n selectedRedaction: SelectionAnnotation | {};\n redactedDocumentInfo: { blob: Blob, filename: string };\n documentId: string;\n}\n\nexport const initialRedactionState: RedactionState = {\n redactionEntities: {},\n redactionPageEntities: {},\n selectedRedaction: {},\n redactedDocumentInfo: undefined,\n documentId: undefined\n};\n\nexport function redactionReducer (\n state = initialRedactionState,\n action: fromRedaction.RedactionActions | fromAnnotations.AnnotationsActions\n): RedactionState {\n switch (action.type) {\n\n case fromRedaction.LOAD_REDACTIONS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n\n case fromRedaction.LOAD_REDACTION_SUCCESS: {\n const payload = action.payload;\n if (payload) {\n const redactionEntities = StoreUtils.generateRedactionEntities(payload);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n return {\n ...state\n };\n }\n\n case fromRedaction.SAVE_REDACTION_SUCCESS: {\n const { payload } = action;\n const redactionEntities = {\n ...state.redactionEntities,\n [payload.redactionId]: payload\n };\n const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n\n case fromRedaction.SELECT_REDACTION:\n case fromAnnotations.SELECT_ANNOTATION: {\n return {\n ...state,\n selectedRedaction: action.payload\n };\n }\n\n case fromRedaction.DELETE_REDACTION_SUCCESS: {\n const page = action.payload.page;\n const id = action.payload.redactionId;\n const redactionEntities = {\n ...state.redactionEntities\n };\n delete redactionEntities[id];\n const pageRedactionRemoved = [\n ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id)\n ];\n const redactionPageEntities = {\n ...state.redactionPageEntities,\n [page]: pageRedactionRemoved\n };\n\n return {\n ...state,\n redactionPageEntities,\n redactionEntities,\n };\n }\n\n case fromRedaction.REDACT_SUCCESS: {\n const redactedDocumentInfo = action.payload;\n return {\n ...state,\n ...initialRedactionState,\n redactedDocumentInfo\n };\n }\n\n case fromRedaction.RESET_REDACTED_DOCUMENT: {\n return {\n ...state,\n redactedDocumentInfo: undefined\n };\n }\n\n case fromRedaction.UNMARK_ALL_SUCCESS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n }\n\n return state;\n}\n\n\nexport const getRedactionEnt = (state: RedactionState) => state.redactionEntities;\nexport const getPageEnt = (state: RedactionState) => state.redactionPageEntities;\nexport const getSelectedRedaction = (state: RedactionState) => state.selectedRedaction;\nexport const getRedactedDocInfo = (state: RedactionState) => state.redactedDocumentInfo;\n","import * as fromIcpActions from '../actions/icp.actions';\nimport { IcpSession, IcpState } from '../../icp/icp.interfaces';\n\nexport const initialIcpSessionState: IcpState = {\n session: null,\n presenter: null,\n client: null,\n participants: []\n};\n\nexport function icpReducer (state = initialIcpSessionState,\n action: fromIcpActions.IcpActions): IcpState {\n\n switch (action.type) {\n\n case fromIcpActions.SET_CASE_ID: {\n const caseId = action.payload;\n const session = {...state.session, caseId};\n return {\n ...state,\n session\n };\n }\n\n case fromIcpActions.ICP_SOCKET_SESSION_JOINED: {\n const session: IcpSession = action.payload.session;\n const participantInfo = action.payload.participantInfo;\n return {\n ...state,\n session,\n client: participantInfo.client,\n presenter: participantInfo.presenter,\n };\n }\n\n case fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED: {\n const updatedParticipants: any = action.payload;\n const participants = Object.keys(updatedParticipants)\n .map(id => ({ id: id, username: updatedParticipants[id] }));\n return {\n ...state,\n participants\n };\n }\n\n case fromIcpActions.ICP_PRESENTER_UPDATED: {\n const presenter = action.payload;\n return {\n ...state, presenter\n };\n }\n\n case fromIcpActions.LEAVE_ICP_SOCKET_SESSION: {\n return {\n ...state,\n ...initialIcpSessionState\n };\n }\n }\n return state;\n}\n\nexport const getIcpSession = (state: IcpState) => state.session;\nexport const getPresenter = (state: IcpState) => state.presenter;\nexport const getClient = (state: IcpState) => state.client;\nexport const getParticipants = (state: IcpState) => state.participants;\n","import { ActionReducerMap, createFeatureSelector } from '@ngrx/store';\nimport * as fromDocument from './document.reducer';\nimport * as fromAnnotation from './annotations.reducer';\nimport * as fromTags from './tags.reducer';\nimport * as fromBookmarks from './bookmarks.reducer';\nimport * as fromRedaction from './redaction.reducer';\nimport * as fromIcp from './icp.reducer';\nimport { IcpState } from '../../icp/icp.interfaces';\n\nexport interface State {\n document: fromDocument.DocumentState;\n annotations: fromAnnotation.AnnotationSetState;\n tags: fromTags.TagsState;\n bookmarks: fromBookmarks.BookmarksState;\n redactions: fromRedaction.RedactionState;\n icp: IcpState;\n}\n\nexport const reducers: ActionReducerMap<State> = {\n document: fromDocument.docReducer,\n annotations: fromAnnotation.reducer,\n tags: fromTags.tagsReducer,\n bookmarks: fromBookmarks.bookmarksReducer,\n redactions: fromRedaction.redactionReducer,\n icp: fromIcp.icpReducer,\n};\n\nexport const getMVState = createFeatureSelector<State>('media-viewer');\n\nexport * from './document.reducer';\nexport * from './annotations.reducer';\nexport * from './tags.reducer';\nexport * from './bookmarks.reducer';\nexport * from './redaction.reducer';\nexport * from './icp.reducer';\n","import { createSelector } from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromDocument from '../reducers/document.reducer';\n\nexport const getDocumentState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.document\n);\n\nexport const getPages = createSelector(\n getDocumentState,\n fromDocument.getDocPages\n);\n\nexport const getPageList = createSelector(\n getPages,\n (pages) => Object.values(pages)\n);\n\nexport const getDocumentId = createSelector(\n getDocumentState,\n fromDocument.getDocId\n);\n\nexport const getPdfPosition = createSelector(\n getDocumentState,\n fromDocument.getPdfPos\n);\n\nexport const getPageDifference = createSelector(\n getDocumentState,\n fromDocument.getHasDifferentPageSizes\n);\n\nexport const getConvertedDocument = createSelector(\n getDocumentState,\n fromDocument.getConvertedDocument\n);\n\nexport const getRotation = createSelector(\n getDocumentState,\n fromDocument.getRotation\n);\n\nexport const rotationLoaded = createSelector(\n getDocumentState,\n fromDocument.rotationLoaded\n);\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Rectangle } from '../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\n\nexport interface Highlight {\n page: number;\n rectangles: Rectangle[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ViewerEventService {\n\n public readonly textHighlight = new Subject<Highlight>();\n public readonly boxHighlight = new Subject<Highlight>();\n public readonly ctxToolbarCleared = new Subject();\n public readonly navigationEvent = new Subject<any[]>();\n\n constructor() {}\n\n public textSelected(selectionData: Highlight): void {\n this.textHighlight.next(selectionData);\n }\n\n public boxSelected(selectionData: Highlight): void {\n this.boxHighlight.next(selectionData);\n }\n\n public clearCtxToolbar(): void {\n this.ctxToolbarCleared.next();\n }\n\n\n public goToDestination(destination: any[]) {\n this.navigationEvent.next(destination);\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, tap, throttleTime } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\n\nimport { DocumentLoadProgress, PageEvent, PdfJsWrapper } from './pdf-js/pdf-js-wrapper';\nimport { PdfJsWrapperFactory } from './pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { PrintService } from '../../print.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { CommentSetComponent } from '../../annotations/comment-set/comment-set.component';\nimport { Outline } from './side-bar/outline-item/outline.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { PdfPositionUpdate } from '../../store/actions/document.actions';\nimport * as fromTagActions from '../../store/actions/tag.actions';\nimport { SetCaseId } from '../../store/actions/icp.actions';\nimport * as fromDocumentsSelector from '../../store/selectors/document.selectors';\nimport { IcpState } from '../../icp/icp.interfaces';\nimport { ViewerEventService } from '../viewer-event.service';\n\n@Component({\n selector: 'mv-pdf-viewer',\n templateUrl: './pdf-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class PdfViewerComponent implements AfterContentInit, OnChanges, OnDestroy {\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() pdfViewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n @Input() downloadUrl: string;\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() enableICP: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n pageHeights = [];\n rotation = 0;\n zoom = 1;\n\n @Input() caseId: string;\n\n highlightMode: Observable<boolean>;\n drawMode: BehaviorSubject<boolean>;\n\n documentOutline: Outline;\n loadingDocument = false;\n loadingDocumentProgress: number;\n errorMessage: string;\n hasDifferentPageSize = false;\n\n @ViewChild('viewerContainer', {static: true}) viewerContainer: ElementRef<HTMLDivElement>;\n @ViewChild('pdfViewer', {static: false}) pdfViewer: ElementRef<HTMLDivElement>;\n\n private pdfWrapper: PdfJsWrapper;\n private $subscription: Subscription;\n private viewerException: ViewerException;\n showCommentsPanel: boolean;\n showIcpParticipantsList: boolean;\n enableGrabNDrag = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private icpStore: Store<IcpState>,\n private readonly pdfJsWrapperFactory: PdfJsWrapperFactory,\n private readonly printService: PrintService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n ) {\n this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {\n this.store.dispatch(new fromTagActions.ClearFilterTags());\n }));\n this.drawMode = toolbarEvents.drawModeSubject;\n }\n\n async ngAfterContentInit(): Promise<void> {\n this.pdfWrapper.documentLoadProgress.subscribe(v => this.onDocumentLoadProgress(v));\n this.pdfWrapper.documentLoaded.subscribe(() => this.onDocumentLoaded());\n this.pdfWrapper.documentLoadFailed.subscribe((error) => this.onDocumentLoadFailed(error));\n this.pdfWrapper.outlineLoaded.subscribe(outline => this.documentOutline = outline);\n this.pdfWrapper.pageRendered.subscribe((event) => this.updatePages(event));\n this.$subscription = this.toolbarEvents.printSubject\n .subscribe(() => this.printService.printDocumentNatively(this.url));\n this.$subscription.add(this.toolbarEvents.downloadSubject.subscribe(() =>\n this.pdfWrapper.downloadFile(this.downloadUrl || this.url, this.downloadFileName)\n ));\n this.$subscription.add(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument(rotate)));\n this.$subscription.add(this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.searchSubject.subscribe(search => this.pdfWrapper.search(search)));\n this.$subscription.add(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.pdfWrapper.setPageNumber(pageNumber))\n );\n this.$subscription.add(\n this.toolbarEvents.changePageByDeltaSubject.subscribe(pageNumber => this.pdfWrapper.changePageNumber(pageNumber))\n );\n this.$subscription.add(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));\n this.$subscription.add(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.showCommentsPanel = toggle;\n })\n );\n this.$subscription.add(this.viewerEvents.navigationEvent.subscribe(dest => this.goToDestination(dest)));\n this.$subscription.add(\n this.toolbarEvents.icp.participantsListVisible.subscribe(toggle => this.showIcpParticipantsList = toggle)\n );\n this.$subscription.add(this.pdfWrapper.positionUpdated.asObservable()\n .pipe(throttleTime(500, asyncScheduler, { leading: true, trailing: true }))\n .subscribe(event => this.store.dispatch(new PdfPositionUpdate(event.location)))\n );\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (!this.pdfWrapper) {\n this.pdfWrapper = this.pdfJsWrapperFactory.create(this.viewerContainer);\n }\n if (changes.url && this.pdfWrapper) {\n await this.loadDocument();\n if (this.enableRedactions) {\n this.toolbarEvents.redactionMode.pipe(filter(value => !!value))\n .subscribe(() => this.resetRotation());\n }\n }\n if (changes.caseId) {\n this.icpStore.dispatch(new SetCaseId(this.caseId));\n }\n }\n\n resetRotation() {\n if (this.hasDifferentPageSize) {\n this.pdfWrapper.resetRotation(0);\n this.rotation = 0;\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n private async loadDocument() {\n this.initDocumentProgress();\n await this.pdfWrapper.loadDocument(this.url);\n this.documentTitle.emit(this.pdfWrapper.getCurrentPDFTitle());\n this.setPageHeights();\n this.$subscription.add(this.store.pipe(select(fromDocumentsSelector.getPageDifference))\n .subscribe(hasDifferentPageSie => this.hasDifferentPageSize = hasDifferentPageSie));\n }\n\n private onDocumentLoadProgress(progress: DocumentLoadProgress) {\n if (progress.total) {\n this.loadingDocumentProgress = Math.min(100, Math.ceil(progress.loaded / progress.total * 100));\n }\n }\n\n private onDocumentLoaded() {\n this.loadingDocument = false;\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n }\n\n private onDocumentLoadFailed(error: Error) {\n this.loadingDocument = false;\n this.viewerException = new ViewerException(error.name, { message: error.message });\n this.errorMessage = `Could not load the document \"${this.url}\"`;\n\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.pdfViewerException.emit(this.viewerException);\n }\n\n private updatePages(event: PageEvent[]) {\n if (this.enableAnnotations) {\n this.store.dispatch(new fromDocumentActions.AddPages(event));\n }\n }\n\n @Input()\n set searchBarHidden(hidden: boolean) {\n if (this.pdfWrapper && hidden) {\n this.pdfWrapper.clearSearch();\n }\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n\n private rotateDocument(rotation: number) {\n const pageNumber = this.pdfWrapper.getPageNumber();\n this.pdfWrapper.rotate(rotation);\n this.pdfWrapper.setPageNumber(pageNumber);\n this.rotation = (this.rotation + rotation) % 360;\n\n this.setPageHeights();\n }\n\n private initDocumentProgress() {\n this.loadingDocument = true;\n this.loadingDocumentProgress = null;\n this.errorMessage = null;\n }\n\n private setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.setZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(zoomFactor);\n this.setPageHeights();\n }\n }\n\n private stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.stepZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(this.zoom, zoomFactor);\n this.setPageHeights();\n }\n }\n\n setPageHeights() {\n this.pageHeights = [];\n const pdfViewerChildren = this.pdfViewer.nativeElement.children;\n for (let i = 0; i < pdfViewerChildren.length; i++) {\n this.pageHeights.push(pdfViewerChildren[i].clientHeight);\n }\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) {\n return 5;\n }\n if (newZoomValue < 0.1) {\n return 0.1;\n }\n return +newZoomValue.toFixed(2);\n }\n\n private goToDestination(destination: any[]) {\n this.pdfWrapper.navigateTo(destination);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerUtilService {\n constructor(\n private http: HttpClient) {\n }\n\n public validateFile(url: string) {\n return this.http.head(url);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PrintService } from '../../print.service';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocument from '../../store/actions/document.actions';\n\n@Component({\n selector: 'mv-image-viewer',\n templateUrl: './image-viewer.component.html'\n})\nexport class ImageViewerComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() imageViewerException = new EventEmitter<ViewerException>();\n\n errorMessage: string;\n\n @ViewChild('img', {static: false}) img: ElementRef;\n rotation = 0;\n zoom = 1;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n private response: Subscription;\n\n showCommentsPanel: boolean;\n enableGrabNDrag = false;\n imageHeight: number;\n imageWidth: number;\n imageLeft: number;\n imageTop: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly viewerUtilService: ViewerUtilService,\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService\n ) { }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.rotateSubject.subscribe(rotation => this.rotateImage(rotation)),\n this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)),\n this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)),\n this.toolbarEvents.printSubject.subscribe(() => this.printService.printDocumentNatively(this.url)),\n this.toolbarEvents.downloadSubject.subscribe(() => this.download()),\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag),\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => this.showCommentsPanel = toggle)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n if (this.response) {\n this.response.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.errorMessage = null;\n this.toolbarEvents.reset();\n }\n }\n\n private rotateImage(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.initAnnoPage(this.img.nativeElement);\n }\n\n private async setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private async stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(this.zoom, zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private download() {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = this.url;\n a.download = this.downloadFileName;\n a.click();\n a.remove();\n }\n\n // the returned promise is a work-around\n setZoomValue(zoomValue) {\n return new Promise((resolve) => {\n this.zoom = zoomValue;\n this.toolbarEvents.zoomValueSubject.next(zoomValue);\n resolve(true);\n });\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) { return 5; }\n if (newZoomValue < 0.1) { return 0.1; }\n return +newZoomValue.toFixed(2);\n }\n\n onLoadError(url) {\n this.response = this.viewerUtilService.validateFile(url)\n .subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n {httpResponseCode: error.status, message: error.message});\n });\n\n this.errorMessage = `Could not load the image \"${this.url}\"`;\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.imageViewerException.emit(this.viewerException);\n }\n\n onLoad(img: any) {\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n this.initAnnoPage(img);\n }\n\n initAnnoPage(img: any) {\n this.imageHeight = this.rotation % 180 !== 0 ? img.offsetWidth : img.offsetHeight;\n this.imageWidth = this.rotation % 180 !== 0 ? img.offsetHeight : img.offsetWidth;\n this.imageLeft = this.rotation % 180 !== 0 ? img.offsetTop : img.offsetLeft;\n this.imageTop = this.rotation % 180 !== 0 ? img.offsetLeft : img.offsetTop;\n const payload: any = [{\n div: {\n scrollHeight: this.imageHeight,\n scrollWidth: this.imageWidth,\n offsetLeft: this.imageLeft,\n },\n pageNumber: 1,\n scale: this.zoom,\n rotation: this.rotation,\n id: 1\n }];\n\n this.store.dispatch(new fromDocument.AddPages(payload));\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\n\n@Component({\n selector: 'mv-unsupported-viewer',\n templateUrl: './unsupported-viewer.component.html'\n})\nexport class UnsupportedViewerComponent implements OnInit, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() typeException: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n @Output() unsupportedViewerException = new EventEmitter<ViewerException>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerUtilService: ViewerUtilService,\n ) {}\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.downloadSubject.subscribe(() => this.downloadLink.nativeElement.click()),\n this.viewerUtilService.validateFile(this.url).subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n }\n )\n );\n\n this.loadStatus.emit(ResponseType.UNSUPPORTED);\n\n if (!this.typeException) {\n this.unsupportedViewerException.emit(this.viewerException);\n }\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Injectable()\nexport class AnnotationApiService {\n\n public annotationApiUrl = '/em-anno';\n\n private annotationSetBaseUrl = '/annotation-sets';\n private annotationBaseUrl = '/annotations';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getAnnotationSet(documentId: string): Observable<any> { // todo add model\n const fixedUrl = `${this.annotationSetsFullUrl}/filter?documentId=${documentId}`;\n return this.httpClient\n .get<AnnotationSet>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public postAnnotationSet(body: Partial<AnnotationSet>): Observable<AnnotationSet> {\n return this.httpClient\n .post<AnnotationSet>(this.annotationSetsFullUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public getComments(annotationSet: Observable<AnnotationSet>): Observable<Comment[]> {\n return annotationSet\n .pipe(\n map(this.sortAnnotations),\n map(this.extractComments)\n );\n }\n\n /**\n * Sort the annotations in the response by page and then y position of their first rectangle\n */\n private sortAnnotations(r: AnnotationSet): Annotation[] {\n return r.annotations.sort((a, b) => a.page !== b.page ? a.page - b.page : a.rectangles[0].y - b.rectangles[0].y);\n }\n\n private extractComments(annotations: Annotation[]) {\n return [].concat(...annotations.map(a => a.comments));\n }\n\n public deleteAnnotation(annotationId: string): Observable<null> {\n const url = `${this.annotationFullsUrl}/${annotationId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public postAnnotation(annotation: Partial<Annotation>): Observable<Annotation> {\n return this.httpClient\n .post<Annotation>(this.annotationFullsUrl, annotation, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n get annotationSetsFullUrl() {\n return this.annotationApiUrl + this.annotationSetBaseUrl;\n }\n\n get annotationFullsUrl() {\n return this.annotationApiUrl + this.annotationBaseUrl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CommentSetComponent } from '../comment-set.component';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { CommentComponent } from './comment.component';\n\n// TODO: replace by NgRx\n@Injectable()\nexport class CommentService {\n\n public readonly unsavedChanges = new Subject<boolean>();\n commentSetComponent: CommentSetComponent;\n\n setCommentSet(commentSetComponent) {\n this.commentSetComponent = commentSetComponent;\n }\n\n onCommentChange(changes: boolean): void {\n this.unsavedChanges.next(changes);\n }\n\n getUnsavedChanges(): Observable<boolean> {\n return this.unsavedChanges.asObservable();\n }\n\n hasUnsavedComments(annotation: Annotation): boolean {\n if (annotation.comments.length > 0) {\n const comment = this.getComment(annotation);\n return comment.hasUnsavedChanges;\n }\n return false;\n }\n\n updateUnsavedCommentsStatus(annotation: Annotation, hasUnsavedChanges: boolean): void {\n const comment = this.getComment(annotation);\n comment.hasUnsavedChanges = hasUnsavedChanges;\n this.allCommentsSaved();\n }\n\n getComment(annotation: Annotation): CommentComponent {\n return this.commentSetComponent.commentComponents\n .find(c => c.comment.annotationId === annotation.comments[0].annotationId);\n }\n\n resetCommentSet(): void {\n this.commentSetComponent = null;\n }\n\n allCommentsSaved(): void {\n this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromTags from '../reducers/tags.reducer';\n\nexport const getTagsRootState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.tags\n);\n\nexport const getTagEntities = createSelector(\n getTagsRootState,\n fromTags.getTagNameEnt\n);\n\nexport const getTagFilters = createSelector(\n getTagsRootState,\n fromTags.getFilters\n);\n\nexport const getTagFiltered = createSelector(\n getTagsRootState,\n fromTags.getFilteredComments\n);\n\nexport const getFilteredPageEntities = createSelector(\n getTagsRootState,\n fromTags.getFilteredPageEnt\n);\n\nexport const getAllTagsArr = createSelector(\n getTagEntities,\n (tagEnt) => Object.keys(tagEnt).map(key => {\n return {\n key,\n length: Object.keys(tagEnt[key]).length\n };\n })\n);\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromAnnotations from '../reducers/annotations.reducer';\nimport * as fromTags from './tag.selectors';\nimport * as fromDocument from './document.selectors';\nimport {StoreUtils} from '../store-utils';\nimport moment from 'moment-timezone';\nexport const getAnnotationsSetState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.annotations\n);\n\nexport const getAnnotationEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoEnt\n);\n\nexport const getSet = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoSet\n);\n\nexport const getDocumentIdSetId = createSelector(\n getSet,\n (annoSet) => {\n return {\n documentId: annoSet.documentId,\n annotationSetId: annoSet.id\n };\n }\n);\n\nexport const getAnnotationSet = createSelector(\n getAnnotationEntities,\n getSet,\n (entities, set) => {\n return {\n ...set,\n annotations: Object.keys(entities).map(key => entities[key])\n };\n }\n);\n\nexport const getSelectedAnnotation = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSelectedAnno\n);\n\nexport const getCommentEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getCommentEnts\n);\n\n\nexport const getPageEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoPageEnt\n);\n\nexport const getComponentSearchQueries = createSelector(\n getAnnotationsSetState,\n fromAnnotations.commentSearchQ\n);\n\nexport const getComponentSearchText = createSelector(\n getComponentSearchQueries,\n (queries) => queries.commentSearch\n);\n\nexport const getCommentSummaryFilters = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSummaryFilters\n);\n\nexport const getAnnoPerPage = createSelector(\n fromDocument.getPages,\n getPageEntities,\n fromTags.getFilteredPageEntities,\n (pages, pageEnt, filteredPageEnt) => {\n const isFiltered: boolean = !!Object.keys(filteredPageEnt).length;\n const entities = isFiltered ? filteredPageEnt : pageEnt;\n if (pages) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: entities[key] ? entities[key] : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n\nexport const getCommentsArray = createSelector(\n getCommentEntities,\n fromDocument.getPages,\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (commentEnts, pages, annoEnts, filtered) => {\n if (commentEnts && annoEnts && pages[1]) {\n const isFiltered: boolean = !!Object.keys(filtered).length;\n const com = isFiltered ? filtered : commentEnts;\n return Object.keys(com).map(key => {\n const page = annoEnts[key].page;\n return {\n ...commentEnts[key],\n page,\n pages\n };\n });\n }\n }\n);\n\nexport const getCommentSummary = createSelector(\n getCommentsArray,\n getCommentSummaryFilters,\n (commentSummary = [], filters) => {\n const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);\n if (comments.length) {\n return comments.map((comment) => {\n return {\n page: comment.page,\n user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),\n date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),\n tags: comment.tags,\n comment: comment.content\n };\n });\n }\n return [''];\n }\n);\n\n\nexport const getFilteredAnnotations = createSelector(\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (annoEnt, filters) => {\n const isFiltered: boolean = !!Object.keys(filters).length;\n const anno = isFiltered ? filters : annoEnt;\n return Object.keys(anno).map(key => annoEnt[key])\n .filter(annotation => annotation.comments && annotation.comments.length > 0);\n }\n);\n","import {\n AfterContentInit, AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n defaultImageOptions, defaultMultimediaOptions,\n defaultPdfOptions,\n defaultUnsupportedOptions,\n ToolbarButtonVisibilityService\n} from './toolbar/toolbar-button-visibility.service';\nimport { AnnotationSet } from './annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from './toolbar/toolbar-event.service';\nimport { AnnotationApiService } from './annotations/services/annotation-api/annotation-api.service';\nimport { ResponseType, ViewerException } from './viewers/viewer-exception.model';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport 'hammerjs';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from './store/reducers/reducers';\nimport * as fromAnnoSelectors from './store/selectors/annotation.selectors';\nimport * as fromDocumentsSelector from './store/selectors/document.selectors';\nimport * as fromAnnoActions from './store/actions/annotation.actions';\nimport * as fromRedactActions from './store/actions/redaction.actions';\nimport * as fromDocumentActions from './store/actions/document.actions';\n\nenum CoreContentTypes {\n PDF = 'pdf',\n IMAGE = 'image'\n}\n\nenum MultimediaContentTypes {\n MP4 = 'mp4',\n MP3 = 'mp3',\n}\n\nenum ConvertibleContentTypes {\n EXCEL = 'excel',\n WORD = 'word',\n POWERPOINT = 'powerpoint',\n TXT = 'txt',\n RTF = 'rtf'\n}\n\n@Component({\n selector: 'mv-media-viewer',\n templateUrl: './media-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaViewerComponent implements OnChanges, OnDestroy, AfterContentInit, AfterViewChecked {\n\n @ViewChild('viewerRef', {static: false}) viewerRef: ElementRef;\n\n @Input() url;\n @Input() downloadFileName: string;\n @Input() contentType: string;\n\n @Input() showToolbar = true;\n @Input() toolbarButtonOverrides: any = {};\n\n @Input()\n public height: string;\n public viewerHeight: string;\n\n @Input() width = '100%';\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() toolbarEventsOutput = new EventEmitter<ToolbarEventService>();\n @Output() unsavedChanges = new EventEmitter<boolean>();\n\n @Input() enableAnnotations = false;\n @Input() annotationApiUrl;\n\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() multimediaPlayerEnabled = false;\n\n\n @Input() caseId: string;\n\n multimediaContent = false;\n convertibleContent = false;\n unsupportedContent = false;\n\n documentTitle: string;\n showCommentSummary: boolean;\n annotationSet$: Observable<AnnotationSet | {}>;\n hasScrollBar: boolean;\n typeException = false;\n hasDifferentPageSize$: Observable<boolean>;\n\n private $subscriptions: Subscription;\n private prevOffset: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly api: AnnotationApiService,\n private readonly commentService: CommentService,\n private elRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n if (this.annotationApiUrl) {\n api.annotationApiUrl = this.annotationApiUrl;\n }\n }\n\n ngAfterContentInit() {\n this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));\n this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));\n this.setToolbarButtons();\n this.toolbarEventsOutput.emit(this.toolbarEvents);\n this.$subscriptions = this.commentService.getUnsavedChanges()\n .subscribe(changes => this.onCommentChange(changes));\n this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()\n .subscribe(changes => this.showCommentSummary = changes));\n }\n\n ngAfterViewChecked(): void {\n if (this.height && this.viewerHeight !== this.height) {\n this.viewerHeight = this.height;\n this.cdr.detectChanges();\n return;\n }\n\n if (!this.height) {\n const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;\n const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;\n const offset = compOffsetTop + viewerOffsetTop;\n\n if (this.prevOffset !== offset) {\n this.viewerHeight = `calc(100vh - ${offset}px)`;\n this.prevOffset = offset;\n this.cdr.detectChanges();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.annotationApiUrl) {\n this.api.annotationApiUrl = this.annotationApiUrl;\n }\n\n if (changes.url) {\n this.toolbarEvents.reset();\n this.commentService.resetCommentSet();\n const documentId = this.extractDMStoreDocId(this.url);\n this.store.dispatch(new fromDocumentActions.SetDocumentId(documentId));\n if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(documentId));\n }\n if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromRedactActions.LoadRedactions(documentId));\n }\n if (this.contentType === 'image') {\n this.documentTitle = null;\n }\n }\n\n if (changes.contentType) {\n this.convertibleContent = this.needsConverting();\n this.multimediaContent = this.isMultimedia();\n this.unsupportedContent = !this.isSupported();\n }\n\n this.setToolbarButtons();\n this.detectOs();\n this.typeException = false;\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n needsConverting(): boolean {\n return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isMultimedia(): boolean {\n return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isSupported(): boolean {\n const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);\n return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n setToolbarButtons() {\n if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {\n this.toolbarButtons.setup({\n ...defaultPdfOptions, showHighlightButton: this.enableAnnotations, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.contentType === CoreContentTypes.IMAGE) {\n this.toolbarButtons.setup({\n ...defaultImageOptions, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.isMultimedia()) {\n this.toolbarButtons.setup({\n ...defaultMultimediaOptions,\n ...this.toolbarButtonOverrides\n });\n } else {\n this.toolbarButtons.setup({\n ...defaultUnsupportedOptions,\n ...this.toolbarButtonOverrides\n });\n }\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n if (!this.isSupported()) {\n this.typeException = false;\n } else {\n this.typeException = true;\n this.contentType = null;\n this.setToolbarButtons();\n }\n }\n\n onCommentChange(changes: boolean) {\n this.unsavedChanges.emit(changes);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle = title;\n }\n\n private extractDMStoreDocId(url: string): string {\n url = url.includes('/documents/') ? url.split('/documents/')[1] : url;\n return url.replace('/binary', '');\n }\n\n detectOs() {\n this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Number Helper Service\n * */\n@Injectable({\n providedIn: 'root'\n})\n\nexport class NumberHelperService {\n constructor() { }\n\n public isNumber(value: string | number): boolean {\n return (\n value !== null\n && value !== undefined\n && value !== ''\n && !isNaN(Number(value.toString()))\n );\n }\n }\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { NumberHelperService } from '../../../lib/shared/util/services/number.helper.service';\n\n@Component({\n selector: 'mv-main-toolbar',\n templateUrl: './main-toolbar.component.html'\n})\nexport class MainToolbarComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input() enableAnnotations = false;\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() contentType = null;\n\n @ViewChild('zoomSelect', {static: false}) public zoomSelect: ElementRef;\n @ViewChild('mvToolbarMain', {static: false}) public mvToolbarMain: ElementRef<HTMLElement>;\n @ViewChild('dropdownMenu', {static: false}) public mvMenuItems: ElementRef<HTMLElement>;\n\n private readonly subscriptions: Subscription[] = [];\n\n public icpEnabled = false;\n public redactionEnabled = false;\n public showCommentsPanel: boolean;\n\n public pageNumber = 1;\n public pageCount = 0;\n public isDropdownMenuOpen = false;\n public dropdownMenuPositions = [\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'bottom'\n },\n {\n overlayX: 'end',\n overlayY: 'top'\n },\n 0,\n 3)\n ];\n\n public zoomScales = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2.5, 3, 5];\n\n allButtonsWidth = 0;\n widthRequiredForBtn: { [id: string]: number } = {};\n\n public constructor(\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private readonly cdr: ChangeDetectorRef,\n private readonly numberHelper: NumberHelperService\n ) {\n }\n\n public ngOnInit() {\n this.subscriptions.push(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.setCurrentPage(pageNumber)),\n this.toolbarEvents.setCurrentPageInputValueSubject.subscribe(pageNumber => this.pageNumber = pageNumber),\n this.toolbarEvents.getPageCount().subscribe(count => this.pageCount = count),\n this.toolbarEvents.icp.enabled.subscribe(enabled => {\n this.icpEnabled = enabled;\n if (this.icpEnabled) {\n this.toolbarEvents.toggleCommentsPanel(!enabled);\n this.toolbarEvents.sidebarOpen.next(false);\n }\n }),\n this.toolbarEvents.redactionMode.subscribe(enabled => {\n this.redactionEnabled = enabled;\n }),\n );\n }\n\n public ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n public ngAfterViewInit() {\n Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {\n this.allButtonsWidth += button.getBoundingClientRect().width;\n this.widthRequiredForBtn[button.id] = this.allButtonsWidth;\n });\n this.cdr.detectChanges();\n }\n\n @HostListener('window:resize', [])\n public onResize() {\n this.cdr.detectChanges();\n }\n\n public onClickHighlightToggle() {\n this.toolbarEvents.toggleHighlightMode();\n }\n public onClickDrawToggle() {\n this.toolbarEvents.toggleDrawMode();\n }\n\n public toggleSideBar() {\n this.toolbarEvents.sidebarOpen.next(!this.toolbarEvents.sidebarOpen.getValue());\n }\n\n public togglePresentBar() {\n this.toolbarEvents.searchBarHidden.next(true);\n this.toolbarEvents.icp.enable();\n }\n\n public increasePageNumber() {\n this.toolbarEvents.incrementPage(1);\n }\n\n public decreasePageNumber() {\n this.toolbarEvents.incrementPage(-1);\n }\n\n public onPageNumberInputChange(pageNumber: string) {\n if (Number(pageNumber) < 1) {\n pageNumber = '1';\n }\n if (Number(pageNumber) > this.pageCount) {\n pageNumber = this.pageCount.toString();\n }\n\n this.toolbarEvents.setPage(Number.parseInt(pageNumber, 10));\n }\n\n private setCurrentPage(pageNumber: number) {\n this.pageNumber = pageNumber;\n }\n\n public rotate(rotation: number) {\n this.toolbarEvents.rotate(rotation);\n }\n\n public printFile() {\n this.toolbarEvents.print();\n }\n\n public downloadFile() {\n this.toolbarEvents.download();\n }\n\n public zoom(zoomFactor: string) {\n this.toolbarEvents.zoom(+zoomFactor);\n }\n\n public stepZoom(zoomFactor: number) {\n this.toolbarEvents.stepZoom(zoomFactor);\n this.zoomSelect.nativeElement.selected = 'selected';\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n public toggleRedactBar() {\n this.toolbarEvents.toggleRedactionMode();\n }\n\n public toggleGrabNDrag() {\n this.toolbarEvents.toggleGrabNDrag();\n }\n\n public isPdf() {\n return this.contentType === 'pdf';\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n\n public toggleMoreOptions() {\n this.isDropdownMenuOpen = !this.isDropdownMenuOpen;\n setTimeout(() => {\n if (this.mvMenuItems) {\n this.mvMenuItems.nativeElement.focus();\n }\n }, 100);\n }\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { SearchResultsCount, ToolbarEventService } from '../toolbar-event.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'mv-search-bar',\n templateUrl: './search-bar.component.html'\n})\nexport class SearchBarComponent implements OnInit, OnDestroy {\n\n @ViewChild('findInput', {static: true}) findInput: ElementRef<HTMLInputElement>;\n\n highlightAll = true;\n matchCase = false;\n wholeWord = false;\n resultsText = '';\n searchText = '';\n resultCount = 0;\n\n private subscriptions: Subscription[] = [];\n\n public advancedSearchVisible = false;\n\n constructor(\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService\n ) { }\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results))\n );\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n public onWindowKeyDown(e: KeyboardEvent): void {\n if (e.code === 'F3' || (e.ctrlKey && e.code === 'KeyF')) {\n e.preventDefault();\n\n this.toolbarEvents.searchBarHidden.next(false);\n setTimeout(() => this.findInput.nativeElement.focus(), 200);\n }\n }\n\n public searchNext(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: false\n });\n }\n\n public searchPrev(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: true,\n reset: false\n });\n }\n\n public search(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: true\n });\n }\n\n private setSearchResultsCount(results: SearchResultsCount): void {\n this.resultCount = results.total;\n this.resultsText = this.resultCount > 0\n ? `Found ${results.current} of ${results.total}`\n : 'No results found';\n }\n\n public onEscapeKeyPress(e: KeyboardEvent): void {\n this.toolbarEvents.searchBarHidden.next(true);\n }\n\n public onEnterKeyPress(e: KeyboardEvent): void {\n this.search();\n }\n\n\n public toggleAdvancedSearch(): void {\n this.advancedSearchVisible = !this.advancedSearchVisible;\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromRedactions from '../reducers/redaction.reducer';\nimport * as fromDocument from './document.selectors';\n\nexport const getRedactionState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.redactions\n);\n\nexport const getRedactionPages = createSelector(\n getRedactionState,\n fromRedactions.getPageEnt\n);\n\nexport const getSelected = createSelector(\n getRedactionState,\n fromRedactions.getSelectedRedaction\n);\n\nexport const getRedactedDocumentInfo = createSelector(\n getRedactionState,\n fromRedactions.getRedactedDocInfo\n);\n\nexport const getRedactionEnt = createSelector(\n getRedactionState,\n fromRedactions.getRedactionEnt\n);\n\nexport const getRedactionArray = createSelector(\n getRedactionEnt,\n fromDocument.getDocumentId,\n (ent, documentId) => {\n const redactions = Object.keys(ent).map(key => ent[key]);\n return { redactions, documentId };\n }\n);\n\nexport const getRedactionsPerPage = createSelector(\n fromDocument.getPages,\n getRedactionPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: pageEnt[key] ? pageEnt[key] : [],\n styles: pages[key].styles\n });\n });\n\n return arr;\n }\n }\n);\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRedactSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { Subscription } from 'rxjs';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\n\n@Component({\n selector: 'mv-redaction-toolbar',\n templateUrl: './redaction-toolbar.component.html'\n})\nexport class RedactionToolbarComponent implements OnInit, OnDestroy {\n\n preview = false;\n hasRedactions = false;\n $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(fromRedactSelectors.getRedactionArray)).subscribe(redactions => {\n this.hasRedactions = !!redactions.redactions.length;\n });\n }\n\n toggleTextRedactionMode() {\n this.toolbarEventService.highlightModeSubject.next(true);\n }\n\n toggleDrawMode() {\n this.toolbarEventService.drawModeSubject.next(true);\n }\n\n togglePreview() {\n this.preview = !this.preview;\n this.toolbarEventService.toggleRedactionPreview(this.preview);\n }\n\n unmarkAll() {\n this.toolbarEventService.unmarkAll();\n }\n\n redact() {\n this.toolbarEventService.applyRedactionToDocument();\n }\n\n toggleRedactBar() {\n this.toolbarEventService.toggleRedactionMode();\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n}\n","import { createSelector } from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromIcp from '../reducers/icp.reducer';\n\nexport const getIcpState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.icp\n);\n\nexport const getIcpSession = createSelector(\n getIcpState,\n fromIcp.getIcpSession\n);\n\nexport const getCaseId = createSelector(\n getIcpSession,\n session => session === null ? null : session.caseId\n);\n\nexport const getPresenter = createSelector(\n getIcpState,\n fromIcp.getPresenter\n);\n\nexport const getPresenterName = createSelector(\n getPresenter,\n presenter => presenter === null ? null : presenter.username\n);\n\nexport const getClient = createSelector(\n getIcpState,\n fromIcp.getClient\n);\n\nexport const isPresenter = createSelector(\n getPresenter,\n getClient,\n (presenter, client) => presenter === null ? undefined : presenter.id === client.id // isPresenter is called when = false.\n);\n\nexport const getParticipants = createSelector(\n getIcpState,\n fromIcp.getParticipants\n);\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpSelectors from '../../store/selectors/icp.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpState } from '../../icp/icp.interfaces';\n\n@Component({\n selector: 'mv-icp-toolbar',\n templateUrl: './icp-toolbar.component.html'\n})\nexport class IcpToolbarComponent implements OnInit, OnDestroy {\n\n presenterName: string;\n isPresenter: boolean;\n\n private $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.pipe(select(fromIcpSelectors.isPresenter))\n .subscribe(isPresenter => this.isPresenter = isPresenter);\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenterName))\n .subscribe(name => this.presenterName = name));\n }\n\n ngOnDestroy() {\n this.$subscription.unsubscribe();\n }\n\n present() {\n this.toolbarEventService.icp.becomePresenter();\n }\n\n stopPresenting() {\n this.toolbarEventService.icp.stopPresenting();\n }\n\n leaveIcpSession() {\n this.toolbarEventService.icp.leaveSession();\n }\n\n showParticipantsList() {\n this.toolbarEventService.toggleParticipantsList(!this.toolbarEventService.icp.participantsListVisible.getValue());\n }\n}\n"," import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MainToolbarComponent } from './main-toolbar/main-toolbar.component';\nimport { SearchBarComponent } from './search-bar/search-bar.component';\nimport { FormsModule } from '@angular/forms';\nimport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nimport { ToolbarEventService } from './toolbar-event.service';\nimport { RedactionToolbarComponent } from './redaction-toolbar/redaction-toolbar.component';\nimport { IcpToolbarComponent } from './icp-toolbar/icp-toolbar.component';\nexport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nexport { ToolbarEventService } from './toolbar-event.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [\n SearchBarComponent,\n MainToolbarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n providers: [\n ToolbarButtonVisibilityService,\n ToolbarEventService\n ],\n exports: [\n MainToolbarComponent,\n SearchBarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n RouterModule\n ]\n})\nexport class ToolbarModule { }\n","import { Component, EventEmitter, Input, Output, ViewChild, ElementRef } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Annotation } from './annotation.model';\nimport { Rectangle } from './rectangle/rectangle.model';\nimport moment from 'moment-timezone';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Component({\n selector: 'mv-annotation',\n templateUrl: './annotation-view.component.html'\n})\nexport class AnnotationViewComponent { // todo rename this to selection vew c\n\n @Input() set annotation(value) {\n this.anno = {...value};\n }\n anno: Annotation;\n selected: boolean;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() set selectedAnnoId(selectedId: { annotationId: string }) {\n if (selectedId) {\n const id = this.anno.id || this.anno.redactionId; // todo make it unique\n this.selected = selectedId.annotationId ? (selectedId.annotationId === id) : false;\n }\n }\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Output() update = new EventEmitter<Annotation>();\n @Output() delete = new EventEmitter<Annotation>();\n @Output() annotationClick = new EventEmitter<SelectionAnnotation>();\n\n @ViewChild('container', {static: false}) container: ElementRef;\n\n constructor(\n private readonly toolbarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>\n ) {}\n\n public onSelect() {\n const annotationId = this.anno.id || this.anno.redactionId;\n this.annotationClick.emit({ annotationId, editable: false, selected: true });\n }\n\n public onRectangleUpdate(rectangle: Rectangle) {\n const annotation = {...this.anno};\n annotation.rectangles = annotation.rectangles.filter(r => r.id !== rectangle.id);\n annotation.rectangles.push(rectangle);\n this.update.emit(annotation);\n }\n\n public deleteHighlight() {\n this.delete.emit(this.anno);\n }\n\n public addOrEditComment() {\n if (this.anno.comments.length === 0) {\n const comment: Comment = {\n annotationId: this.anno.id,\n content: '',\n createdBy: this.anno.createdBy,\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n id: uuid(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n page: null,\n pages: {},\n pageHeight: null,\n selected: false,\n editable: false\n };\n this.store.dispatch(new fromActions.AddOrEditComment(comment));\n\n }\n this.selected = true;\n this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Annotation } from './annotation-view/annotation.model';\nimport { Observable } from 'rxjs';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { CommentService } from '../comment-set/comment/comment.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\n\n@Component({\n selector: 'mv-annotation-set',\n templateUrl: './annotation-set.component.html'\n})\nexport class AnnotationSetComponent implements OnInit {\n\n @Input() page: number;\n @Input() annotations: Annotation[] = [];\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n selectedAnnotation$: Observable<SelectionAnnotation>;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService\n ) {}\n\n ngOnInit(): void {\n this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n public onAnnotationDelete(annotation: Annotation) {\n if (annotation.comments.length > 0) {\n this.commentService.updateUnsavedCommentsStatus(annotation, false);\n }\n this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));\n }\n\n selectAnnotation(selectedAnnotation: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport moment from 'moment-timezone';\n\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/annotation.selectors';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\nimport { Annotation } from '../../annotation-view/annotation.model';\n\n@Injectable()\nexport class HighlightCreateService {\n\n constructor(private toolBarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n saveAnnotation(rectangles: Rectangle[], page: number) {\n this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {\n const anno: Annotation = {\n id: uuid(),\n color: 'FFFF00',\n comments: [],\n page: page,\n rectangles: rectangles,\n type: 'highlight',\n ...anoSetDocId,\n createdBy: '',\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n };\n this.store.dispatch(new fromActions.SaveAnnotation(anno));\n });\n }\n\n applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom ) {\n const { x, y, width, height } = {\n x: +(offsetLeft / zoom).toFixed(2),\n y: +(offsetTop / zoom).toFixed(2),\n width: +(offsetWidth / zoom).toFixed(2),\n height: +(offsetHeight / zoom).toFixed(2)\n };\n const rectangle = { x, y, width, height };\n switch (rotate) {\n case 90:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = y;\n rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);\n break;\n case 180:\n rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);\n rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);\n break;\n case 270:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);\n rectangle.y = x;\n break;\n }\n return rectangle as any;\n }\n\n resetHighlight() {\n window.getSelection().removeAllRanges();\n this.toolBarEvents.highlightModeSubject.next(false);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { Rectangle } from './rectangle.model';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar-event.service';\nimport { HighlightCreateService } from '../../annotation-create/highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-anno-rectangle',\n templateUrl: './rectangle.component.html'\n})\nexport class RectangleComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n @Input() color: String;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() editable: boolean;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Output() select = new EventEmitter<Rectangle>();\n @Output() update = new EventEmitter<Rectangle>();\n\n @ViewChild('rectElement', {static: false}) viewRect: ElementRef;\n\n private subscriptions: Subscription[] = [];\n _selected: boolean;\n enableGrabNDrag = false;\n\n height: number;\n width: number;\n top: number;\n left: number;\n\n _annoRect: Rectangle;\n @Input()\n set annoRect(annoRect: Rectangle) {\n this._annoRect = { ...annoRect };\n this.height = +(annoRect.height * this.zoom).toFixed(2);\n this.width = +(annoRect.width * this.zoom).toFixed(2);\n this.left = +(annoRect.x * this.zoom).toFixed(2);\n this.top = +(annoRect.y * this.zoom).toFixed(2);\n }\n\n get annoRect() {\n return this._annoRect;\n }\n\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rotate) {\n this.adjustForRotation(this.rotate);\n }\n }\n\n ngAfterViewInit() {\n this.subscriptions.push(\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n }\n\n @Input()\n set selected(selected: boolean) {\n this._selected = selected;\n if (this._selected && this.viewRect) {\n this.viewRect.nativeElement.focus();\n }\n }\n\n get selected() {\n return this._selected;\n }\n\n onClick() {\n this.select.emit(this.annoRect);\n }\n\n onUpdate(viewRect: any) {\n const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = viewRect;\n if (this.hasRectangleChanged(viewRect)) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, this.rotate, this.zoom);\n rectangle = { ...this.annoRect, ...rectangle };\n this.update.emit({ ...rectangle });\n }\n }\n\n adjustForRotation(rotation: number) {\n const { top, left, height, width } = this;\n switch (rotation) {\n case 90:\n this.width = height;\n this.height = width;\n this.left = this.pageWidth - top - height;\n this.top = left;\n break;\n case 180:\n this.left = this.pageWidth - left - width;\n this.top = this.pageHeight - top - height;\n break;\n case 270:\n this.width = height;\n this.height = width;\n this.left = top;\n this.top = this.pageHeight - left - width;\n break;\n }\n }\n\n hasRectangleChanged(viewRect): boolean {\n return this.left !== viewRect.offsetLeft ||\n this.top !== viewRect.offsetTop ||\n this.width !== viewRect.offsetWidth ||\n this.height !== viewRect.offsetHeight;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TagsModel } from '../../models/tags.model';\n\n@Injectable()\nexport class TagsServices {\n\n public tagItems: {[id: string]: TagsModel[]};\n\n constructor(private http: HttpClient) {}\n\n public getAllTags(createdBy: string): Observable<TagsModel[]> {\n const url = `/em-anno/tags/${createdBy}`;\n return this.http.get<TagsModel[]>(url);\n }\n\n // @TODO: Move everything below this to NgRx store\n getNewTags(annoid: string): TagsModel[] {\n return this.tagItems ? this.tagItems[annoid] : [];\n }\n\n updateTagItems(items: Array<TagsModel>, annoId: string) {\n const snakeCased = items.map(item => {\n return {\n ...item,\n name: this.snakeCase(item.name)\n };\n });\n\n this.tagItems = {\n ...this.tagItems,\n [annoId]: snakeCased\n };\n }\n\n private snakeCase = string => {\n // transform string_to_snake_case\n return string.replace(/ +/g, ' ') // find space\n .split(/ |\\B(?=[A-Z])/) // split it into array\n .map(word => word.toLowerCase()) // transform to lover case\n .join('_'); // trun array into sting using _\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {Comment} from './comment.model';\nimport {User} from '../../models/user.model';\nimport {Rectangle} from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {CommentService} from './comment.service';\nimport {TagsModel} from '../../models/tags.model';\nimport {TagsServices} from '../../services/tags/tags.services';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromSelector from '../../../store/selectors/annotation.selectors';\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\n\n@Component({\n selector: 'mv-anno-comment',\n templateUrl: './comment.component.html'\n})\nexport class CommentComponent implements OnInit, OnDestroy, AfterContentInit {\n\n CHAR_LIMIT = 5000;\n lastUpdate: string;\n originalComment: string;\n fullComment: string;\n author: User;\n createdBy: string;\n editor: User;\n _comment: Comment;\n _editable: boolean;\n _rectangle;\n totalPrevPagesHeight = 0;\n rectTop;\n rectLeft;\n pageHeight: number;\n hasUnsavedChanges = false;\n selected: boolean;\n searchString: string;\n public tagItems: TagsModel[];\n\n\n @Output() commentClick = new EventEmitter<SelectionAnnotation>();\n @Output() renderComments = new EventEmitter<Comment>();\n @Output() delete = new EventEmitter<Comment>();\n @Output() updated = new EventEmitter<{comment: Comment, tags: TagsModel[]}>();\n @Output() changes = new EventEmitter<boolean>();\n @Input() rotate = 0;\n @Input() zoom = 1;\n @Input() index: number;\n @Input() page: number;\n\n @ViewChild('form', {static: false}) form: ElementRef;\n @ViewChild('editableComment', {static: false}) editableComment: ElementRef<HTMLElement>;\n\n private subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private tagsServices: TagsServices\n ) {}\n\n\n ngOnInit(): void {\n this.subscriptions = this.store.select(fromSelector.getComponentSearchText)\n .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);\n this.reRenderComments();\n }\n\n ngAfterContentInit(): void {\n if (this.tagItems && this.tagItems.length) {\n this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @Input()\n set comment(comment: Comment) {\n this._comment = {...comment};\n this.page = this._comment.page;\n this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;\n this.author = comment.createdByDetails;\n this.createdBy = comment.createdBy;\n this.editor = comment.lastModifiedByDetails;\n this.originalComment = comment.content;\n this.fullComment = this.originalComment;\n this.selected = this._comment.selected;\n this._editable = this._comment.editable;\n this.tagItems = this._comment.tags;\n const pageMarginBottom = 10;\n this.totalPrevPagesHeight = 0;\n for (let i = 0; i < this.page - 1; i++) {\n const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;\n if (height) {\n this.totalPrevPagesHeight += height + pageMarginBottom;\n }\n }\n\n }\n\n get comment() {\n return this._comment;\n }\n\n @Input()\n set annotation(annotation: Annotation) {\n this._rectangle = annotation.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;\n switch (this.rotate) {\n case 90: this.rectTop = this._rectangle.x;\n break;\n case 180: this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);\n break;\n case 270: this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);\n break;\n default: this.rectTop = this._rectangle.y;\n }\n this.rectLeft = this._rectangle.x;\n }\n\n get editable(): boolean {\n return this._editable;\n }\n\n onCommentChange(updatedComment) {\n this.hasUnsavedChanges =\n this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);\n this.commentService.onCommentChange(this.hasUnsavedChanges);\n }\n\n deleteOrCancel() {\n if (!this.editable) {\n this.delete.emit(this._comment);\n } else {\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.fullComment = this.originalComment;\n this.changes.emit(false);\n if (!this.author && !this.fullComment) {\n this.delete.emit(this._comment);\n }\n }\n }\n\n public editOrSave() {\n if (!this.editable) {\n this._editable = true;\n } else {\n this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);\n const tags = this.tagsServices.getNewTags(this._comment.annotationId);\n const payload = {\n comment: this._comment,\n tags\n };\n this.updated.emit(payload);\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.changes.emit(false);\n }\n }\n\n onCommentClick() {\n if (!this.selected) {\n this.selected = true;\n this._editable = false;\n this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });\n }\n }\n\n reRenderComments() {\n this.renderComments.emit(this._comment);\n }\n\n get commentTop(): number {\n return this.totalPrevPagesHeight + (this.rectTop * this.zoom);\n }\n\n\n get height() {\n return this.form.nativeElement.getBoundingClientRect().height / this.zoom;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\n\n@Component({\n selector: 'mv-ctx-toolbar',\n templateUrl: './ctx-toolbar.component.html'\n})\nexport class CtxToolbarComponent implements OnChanges {\n\n readonly defaultHeight;\n readonly defaultWidth;\n\n @Input() zoom;\n @Input() rotate;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Input() canHighlight: boolean;\n @Input() canBookmark: boolean;\n @Input() canComment: boolean;\n @Input() canDelete: boolean;\n\n @Output() createHighlightEvent = new EventEmitter();\n @Output() deleteHighlightEvent = new EventEmitter();\n @Output() addOrEditCommentEvent = new EventEmitter();\n @Output() createBookmarkEvent = new EventEmitter<Rectangle>();\n\n rectangle: Rectangle;\n _rectangles: Rectangle[];\n top: number;\n left: number;\n\n constructor() {\n this.defaultHeight = 70;\n this.defaultWidth = 300;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setRectangle();\n this.top = this.popupTop();\n this.left = this.popupLeft();\n }\n\n @Input() set rectangles(rectangles: Rectangle[]) {\n if (rectangles) {\n this._rectangles = rectangles;\n this.setRectangle();\n }\n }\n\n get rectangles() {\n return this._rectangles;\n }\n\n createHighlight() {\n this.createHighlightEvent.emit();\n this.rectangle = undefined;\n }\n\n deleteHighlight() {\n this.deleteHighlightEvent.emit();\n }\n\n addOrEditComment() {\n this.addOrEditCommentEvent.emit();\n }\n\n createBookmark() {\n this.createBookmarkEvent.emit(this.rectangle);\n this.rectangle = undefined;\n }\n\n setRectangle() {\n const rectangle = this.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n this.rectangle = { ...rectangle };\n switch (this.rotate) {\n case 90:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;\n this.rectangle.y = rectangle.x;\n break;\n case 180:\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;\n break;\n case 270:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = rectangle.y;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;\n break;\n }\n }\n\n popupTop() {\n const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;\n return popupTop <= 0 ? this.defaultHeight : popupTop;\n }\n\n popupLeft() {\n const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);\n if (popupLeft <= 0) {\n return 0;\n } else if (popupLeft >= this.pageWidth - this.defaultWidth) {\n return this.pageWidth - this.defaultWidth;\n } else {\n return popupLeft;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CommentComponent } from './comment/comment.component';\n\n@Injectable()\nexport class CommentSetRenderService {\n\n redrawComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n let prevComment: CommentComponent;\n this.sortComponents(commentComponents, pageHeights, rotate, zoom).forEach((comment: CommentComponent) => {\n this.adjustIfOverlapping(comment, prevComment, zoom);\n prevComment = comment;\n });\n }\n\n sortComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n return commentComponents.sort((a: CommentComponent, b: CommentComponent) => {\n a.rectTop = this.top(a._rectangle, pageHeights[a.page - 1], rotate, zoom);\n b.rectTop = this.top(b._rectangle, pageHeights[b.page - 1], rotate, zoom);\n return this.processSort(a, b);\n });\n }\n\n private adjustIfOverlapping(comment: CommentComponent, prevComment: CommentComponent, zoom: number): void {\n if (prevComment) {\n const endOfPrevComment = prevComment.commentTop + this.height(prevComment);\n if (comment.commentTop <= endOfPrevComment) {\n comment.rectTop = (endOfPrevComment - comment.totalPrevPagesHeight) / zoom;\n }\n }\n }\n\n private processSort(a: CommentComponent, b: CommentComponent): number {\n if (this.onSameLine(a, b)) {\n return a.rectLeft >= b.rectLeft ? 1 : -1;\n }\n return a.commentTop >= b.commentTop ? 1 : -1;\n }\n\n private onSameLine(a: CommentComponent, b: CommentComponent): boolean {\n return this.difference(a.commentTop, b.commentTop) === 0;\n }\n\n private top(rectangle: { x, y, height, width }, height: number, rotate: number, zoom: number) {\n const actualHeight = height / zoom;\n switch (rotate) {\n case 90: return rectangle.x;\n case 180: return actualHeight - (rectangle.y + rectangle.height);\n case 270: return actualHeight - (rectangle.x + rectangle.width);\n default: return rectangle.y;\n }\n }\n\n private height(element: any) {\n return element.form.nativeElement.getBoundingClientRect().height;\n }\n\n private difference(a: number, b: number): number { return Math.abs(a - b); }\n}\n","import {\n Component,\n ElementRef,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n QueryList, SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\n\nimport { AnnotationSet } from '../annotation-set/annotation-set.model';\nimport { Annotation } from '../annotation-set/annotation-view/annotation.model';\nimport { Comment } from './comment/comment.model';\nimport { CommentComponent } from './comment/comment.component';\nimport { CommentService } from './comment/comment.service';\nimport { CommentSetRenderService } from './comment-set-render.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport { TagsModel } from '../models/tags.model';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set',\n templateUrl: './comment-set.component.html',\n })\nexport class CommentSetComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() annotationSet: AnnotationSet;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() height: number;\n @Input() pageHeights = [];\n @Input() contentScrollTop: number;\n\n comments: Comment[];\n tags: TagsModel[];\n private subscriptions: Subscription[] = [];\n public comments$: Observable<Annotation[]>;\n public annoEntities$: Observable<{ [id: string]: Annotation }>;\n\n @ViewChild('container', {static: false}) container: ElementRef<HTMLDivElement>;\n @ViewChild('panel', {static: false}) panel: ElementRef<HTMLDivElement>;\n @ViewChildren('commentComponent') commentComponents: QueryList<CommentComponent>;\n\n showCommentsPanel: boolean;\n\n constructor(private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private readonly renderService: CommentSetRenderService,\n private readonly toolbarEvents: ToolbarEventService) {\n this.clearSelection();\n }\n\n ngOnInit() {\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentsArray));\n this.annoEntities$ = this.store.pipe(select(fromSelectors.getAnnotationEntities));\n this.subscriptions.push(\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.redrawComments();\n this.showCommentsPanel = toggle;\n })\n );\n this.subscriptions.push(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument()));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationSet) {\n this.commentService.setCommentSet(this);\n }\n if (changes.contentScrollTop) {\n if (this.container) {\n this.container.nativeElement.scrollTo(0, this.contentScrollTop);\n }\n }\n }\n\n ngOnDestroy() {\n if (this.subscriptions.length > 0) {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n }\n\n public onSelect(annotationId: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(annotationId));\n }\n\n public onCommentDelete(comment: Comment) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === comment.annotationId);\n const comments = [];\n const annot = {\n ...annotation,\n comments\n };\n this.onAnnotationUpdate(annot);\n this.redrawComments();\n }\n\n redrawComments() {\n setTimeout(() => {\n const componentList: CommentComponent[] = this.commentComponents.map(comment => comment);\n this.renderService.redrawComponents(componentList, this.pageHeights, this.rotate, this.zoom);\n }, 0);\n }\n\n private rotateDocument() {\n if (this.panel) {\n this.panel.nativeElement.style.height = '0';\n }\n }\n\n public onCommentUpdate(payload: {comment: Comment, tags: TagsModel[]} ) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === payload.comment.annotationId);\n const comments = [payload.comment];\n const tags = payload.tags;\n const annot = {\n ...annotation,\n comments,\n tags\n };\n this.onAnnotationUpdate(annot);\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n onContainerClick(e) {\n if (e.path && e.path[0] === this.panel.nativeElement) {\n this.clearSelection();\n }\n }\n\n clearSelection() {\n this.store.dispatch(new fromActions.SelectedAnnotation({ annotationId: '', editable: false, selected: false}));\n }\n\n allCommentsSaved() {\n this.commentService.allCommentsSaved();\n }\n}\n","import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[mvTextAreaAutoExpand]'\n})\nexport class TextareaAutoExpandDirective implements AfterContentChecked {\n\n constructor(private el: ElementRef) {\n }\n\n ngAfterContentChecked(): void {\n this.adjustHeight();\n }\n\n @HostListener('input') onMouseDown() {\n this.adjustHeight();\n }\n\n adjustHeight(): void {\n const nativeElement = this.el.nativeElement;\n nativeElement.style.overflow = 'hidden';\n nativeElement.style.height = 'auto';\n nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';\n }\n\n}\n","import {Component, Input, ViewChild, ElementRef, OnInit, OnDestroy} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport {select, Store} from '@ngrx/store';\n\nimport { PrintService } from '../../print.service';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromAnnoActions from '../../store/actions/annotation.actions';\nimport * as fromTagSelectors from '../../store/selectors/tag.selectors';\n\n@Component({\n selector: 'mv-comments-summary',\n templateUrl: './comments-summary.component.html',\n})\nexport class CommentsSummaryComponent implements OnInit, OnDestroy {\n\n @Input() title: string;\n @Input() contentType: string;\n @ViewChild('outerContainer', {static: false}) container: ElementRef;\n @ViewChild('commentContainer', {static: false}) commentsTable: ElementRef;\n public comments$: Observable<any>;\n public filtersFg: FormGroup;\n private $subscriptions: Subscription;\n allTags$: Observable<{key: string; length: number}[]>;\n showFilters = false;\n hasFilter = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly toolbarEvents: ToolbarEventService,\n private fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.filtersFg = this.fb.group({\n dateRangeFrom: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n dateRangeTo: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n tagFilters: this.fb.group({}),\n });\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentSummary));\n this.buildCheckBoxForm();\n }\n\n ngAfterViewInit() {\n this.container.nativeElement.focus();\n }\n\n buildCheckBoxForm() {\n this.filtersFg.reset();\n const checkboxes = <FormGroup>this.filtersFg.get('tagFilters');\n const filters$ = this.store.pipe(select(fromSelectors.getCommentSummaryFilters));\n this.allTags$ = this.store.pipe(select(fromTagSelectors.getAllTagsArr));\n this.$subscriptions = combineLatest([this.allTags$, filters$]).subscribe(([tags, filters]) => {\n this.hasFilter = filters.hasFilter;\n tags.forEach((val) => {\n const checkBoxValue = (filters.filters.tagFilters &&\n filters.filters.tagFilters.hasOwnProperty(val.key)) ?\n filters.filters.tagFilters[val.key] : false;\n checkboxes.addControl(val.key, new FormControl(checkBoxValue));\n });\n this.filtersFg.updateValueAndValidity();\n });\n }\n\n onClearFilters() {\n this.store.dispatch(new fromAnnoActions.ClearCommentSummaryFilters());\n this.buildCheckBoxForm();\n }\n\n onFilter() {\n const { value } = this.filtersFg;\n const hasDateFrom = (value.dateRangeFrom.year && value.dateRangeFrom.month && value.dateRangeFrom.day);\n const hasDateTo = (value.dateRangeTo.year && value.dateRangeTo.month && value.dateRangeTo.day);\n const dateRangeFrom = hasDateFrom ?\n new Date(value.dateRangeFrom.year, value.dateRangeFrom.month - 1, value.dateRangeFrom.day).getTime() : null;\n const dateRangeTo = hasDateTo ?\n new Date(value.dateRangeTo.year, value.dateRangeTo.month - 1, value.dateRangeTo.day).getTime() : null;\n this.store.dispatch(new fromAnnoActions.ApplyCommentSymmaryFilter({...value, dateRangeFrom, dateRangeTo}));\n }\n\n onFiltersToggle() {\n this.showFilters = !this.showFilters;\n }\n\n public onClose(): void {\n this.toolbarEvents.toggleCommentsSummary(false);\n }\n\n public onPrint(): void {\n this.printService.printElementNatively(this.commentsTable.nativeElement, 1000, 900);\n }\n\n navigateToPage(pageNumber: number) {\n if (this.contentType === 'pdf') {\n this.toolbarEvents.setPage(pageNumber);\n }\n this.toolbarEvents.toggleCommentsSummary(false);\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport uuid from 'uuid';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { HighlightCreateService } from '../highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-box-highlight-create',\n templateUrl: './box-highlight-create.component.html',\n})\nexport class BoxHighlightCreateComponent implements OnInit, OnDestroy {\n\n @Input() page: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Input() rotate: number;\n @Input() zoom: number;\n @Input() container: { top: number, left: number };\n\n @Output() saveSelection = new EventEmitter<{ rectangles: Rectangle[], page: number }>();\n\n @ViewChild('boxHighlight', {static: false}) highlight: ElementRef;\n\n drawStartX = -1;\n drawStartY = -1;\n top: number;\n left: number;\n height: number;\n width: number;\n display: string;\n drawMode: boolean;\n defaultHeight: string;\n defaultWidth: string;\n position: string;\n backgroundColor = 'none';\n\n private subscriptions: Subscription[] = [];\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnInit(): void {\n this.subscriptions = [\n this.toolbarEvents.drawModeSubject.subscribe(drawMode => {\n this.defaultHeight = drawMode ? '100%' : '0px';\n this.defaultWidth = drawMode ? '100%' : '0px';\n })\n ];\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n\n initHighlight({ offsetX, offsetY }) {\n this.position = 'absolute';\n this.backgroundColor = 'yellow';\n this.drawStartX = offsetX;\n this.drawStartY = offsetY;\n\n this.display = 'block';\n this.height = 50;\n this.width = 50;\n\n this.top = this.drawStartY;\n this.left = this.drawStartX;\n\n switch (this.rotate) {\n case 90:\n this.top = this.drawStartY - this.height;\n break;\n case 180:\n this.top = this.drawStartY - this.height;\n this.left = this.drawStartX - this.width;\n break;\n case 270:\n this.left = this.drawStartX - this.width;\n break;\n }\n }\n\n updateHighlight({ offsetX, offsetY }) {\n if (this.drawStartX > 0 && this.drawStartY > 0) {\n this.height = Math.abs(offsetY - this.drawStartY);\n this.width = Math.abs(offsetX - this.drawStartX);\n this.top = Math.min(offsetY, this.drawStartY);\n this.left = Math.min(offsetX, this.drawStartX);\n }\n }\n\n createHighlight() {\n if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle } as any;\n this.saveSelection.emit({ rectangles: [rectangle], page: this.page });\n this.resetHighlight();\n }\n }\n\n private resetHighlight() {\n this.drawStartX = -1;\n this.drawStartY = -1;\n this.display = 'none';\n this.width = 0;\n this.height = 0;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromTagSelectors from '../../../store/selectors/tag.selectors';\nimport * as fromAnnoSelector from '../../../store/selectors/annotation.selectors';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set-header',\n templateUrl: './comment-set-header.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSetHeaderComponent implements OnInit, OnDestroy {\n\n @Input() public showCommentSummary: boolean;\n @Output() public readonly showCommentSummaryDialog = new EventEmitter();\n\n tabs: {isFiltered?: boolean; label: string}[] = [];\n tabSelected = '';\n isFiltered: boolean;\n navigationList: Annotation[];\n $subscriptions: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n public toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n const tagFilter$ = this.store.pipe(select(fromTagSelectors.getTagFilters));\n const filteredAnnotation$ = this.store.pipe(select(fromAnnoSelector.getFilteredAnnotations));\n\n this.$subscriptions = combineLatest([tagFilter$, filteredAnnotation$]).subscribe(([formData, filteredAnno]) => {\n this.navigationList = filteredAnno;\n this.tabs = this.navigationList.length > 0 ?\n [{label: 'comments'}, {label: 'filter'}, {label: 'search'}] : [{label: 'comments'}];\n this.isFiltered = !formData.length;\n this.tabs = [...this.tabs].map((tab) => {\n return !this.isFiltered && tab.label === 'filter' ? {...tab, isFiltered: true} : {...tab, isFiltered: false};\n });\n });\n }\n\n public toggleCommentsSummary(): void {\n this.showCommentSummaryDialog.emit();\n }\n\n selectTab(tab: string) {\n this.tabSelected = tab !== this.tabSelected ? tab : undefined;\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../../annotation-set/annotation-view/annotation.model';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\n\n@Component({\n selector: 'mv-comment-search',\n templateUrl: './comment-search.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSearchComponent implements AfterViewInit, OnDestroy {\n\n @Input() public readonly annotations: Annotation[];\n\n @ViewChild('searchInput', {static: false}) searchInput: ElementRef<HTMLInputElement>;\n\n searchString: string;\n searchResults: Annotation[] = [];\n searchIndex = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>) {}\n\n ngAfterViewInit(): void {\n if (this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }\n\n ngOnDestroy(): void {\n // TODO workaround for tab error\n setTimeout(() => {this.store.dispatch(new fromActions.SearchComment('')); }, 250);\n }\n\n searchComments(searchText: string): void {\n this.clearSearch();\n if (searchText.length > 2) {\n this.searchString = searchText;\n this.searchResults = this.annotations\n .filter(annotation => annotation.comments.length > 0)\n .filter(annotation =>\n annotation.comments[0].content.toLowerCase().includes(this.searchString.toLowerCase()));\n if (this.searchResults.length > 0) {\n this.store.dispatch(new fromActions.SearchComment(searchText));\n }\n }\n }\n\n clearSearch() {\n this.searchString = undefined;\n this.searchResults = [];\n this.searchIndex = 0;\n this.store.dispatch(new fromActions.SearchComment(''));\n }\n}\n","import { AfterViewChecked, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[mvTextHighlight]'\n})\nexport class TextHighlightDirective implements AfterViewChecked {\n\n @Input() textToHighlight: string;\n\n constructor(private element: ElementRef<HTMLElement>) {}\n\n ngAfterViewChecked(): void {\n if (this.textToHighlight) {\n this.highlightInputText(this.textToHighlight);\n }\n }\n\n highlightInputText(textToHighlight: string) {\n this.resetHighlight();\n this.textToHighlight = textToHighlight;\n const searchPattern = new RegExp(textToHighlight, 'gi');\n const hostElement = this.element.nativeElement;\n if (hostElement.innerHTML.match(searchPattern)) {\n hostElement.innerHTML = hostElement.innerHTML\n .replace(searchPattern, this.highlightPattern('$&'));\n }\n this.textToHighlight = undefined;\n }\n\n resetHighlight() {\n const hostElement = this.element.nativeElement;\n const searchPattern = new RegExp(this.highlightPattern('(.*?)'), 'gi');\n while (hostElement.innerHTML.match(searchPattern)) {\n const matchGroups = searchPattern.exec(hostElement.innerHTML);\n if (matchGroups) {\n hostElement.innerHTML = hostElement.innerHTML.replace(matchGroups[0], matchGroups[1]);\n }\n }\n }\n\n private highlightPattern(dynamicText: string) {\n return '<span class=\"mvTextHighlight\">' + dynamicText + '</span>';\n }\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {TagsModel} from '../models/tags.model';\nimport {TagsServices} from '../services/tags/tags.services';\nimport {FormControl} from '@angular/forms';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'mv-tags',\n templateUrl: './tags.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TagsComponent {\n @Input() tagItems: TagsModel[];\n @Input() userId: string;\n @Input() editable: boolean;\n @Input() annoId: string;\n\n public validators = [this.minLength, this.maxLength20];\n public errorMessages: {[id: string]: string} = {\n 'minLength': 'Minimum of 2 characters',\n 'maxLength20': 'Maximum of 20 characters'\n };\n\n constructor(private tagsServices: TagsServices) {}\n\n onUpdateTags(value) {\n this.tagsServices.updateTagItems(value, this.annoId);\n }\n\n public requestAutocompleteItems = (text: string): Observable<any[]> => {\n return this.tagsServices.getAllTags(this.userId);\n }\n\n private minLength(control: FormControl) {\n if (control.value.length < 2) {\n return {\n 'minLength': true\n };\n }\n return null;\n }\n\n private maxLength20(control: FormControl) {\n if (control.value.length >= 20) {\n return {\n 'maxLength20': true\n };\n }\n return null;\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Rectangle } from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comments-navigate',\n templateUrl: './comments-navigate.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentsNavigateComponent implements OnChanges {\n\n @Input() public annotationList: Annotation[];\n @Input() autoSelect = false;\n\n navigationList: any[] = [];\n index = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>, public readonly toolbarEvents: ToolbarEventService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationList) {\n this.initNavigationList();\n }\n }\n\n initNavigationList(): void {\n this.index = 0;\n this.navigationList = [...this.annotationList || []]\n .map(annotation => ({\n content: annotation.comments[0].content,\n annotationId: annotation.id,\n page: annotation.page,\n rectangle: this.upperRectangle(annotation.rectangles),\n }))\n .sort(this.sortComments);\n\n if (this.autoSelect) {\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[0].annotationId,\n editable: false,\n selected: true\n }));\n }\n }\n\n sortComments(mappedCommentA, mappedCommentB) {\n if (mappedCommentA.page !== mappedCommentB.page) {\n return mappedCommentA.page - mappedCommentB.page;\n } else {\n const rectA = mappedCommentA.rectangle;\n const rectB = mappedCommentB.rectangle;\n if (rectA.y !== rectB.y) {\n return rectA.y - rectB.y;\n } else {\n return rectA.x - rectB.x;\n }\n }\n }\n\n nextItem() {\n this.index += 1;\n if (this.index === this.annotationList.length) {\n this.index = 0;\n }\n\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true\n }));\n }\n\n\n prevItem() {\n this.index -= 1;\n if (this.index < 0) {\n this.index = this.navigationList.length - 1;\n }\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId,\n editable: false,\n selected: true\n }));\n }\n\n upperRectangle(rectangles: Rectangle[]) {\n [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);\n return { x: rectangles[0].x, y: rectangles[0].y };\n }\n}\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {select, Store} from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/tag.selectors';\nimport * as fromActions from '../../../../store/actions/tag.actions';\nimport {Observable, Subscription} from 'rxjs';\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\nimport {auditTime, tap} from 'rxjs/operators';\n\n\n@Component({\n selector: 'mv-comment-filter',\n templateUrl: './comment-filter.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentFilterComponent implements OnInit, OnDestroy {\n tagGroup: FormGroup;\n $subscriptions: Subscription;\n filter$: Observable<string[]>;\n allTags$: Observable<any>;\n searchValue: string;\n isPreview = false;\n constructor(\n private store: Store<fromStore.State>,\n private fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.tagGroup = this.fb.group({\n 'tagFilters': this.fb.group({}),\n });\n this.filter$ = this.store.pipe(select(fromSelectors.getTagFilters));\n this.$subscriptions = this.tagGroup.valueChanges.pipe(auditTime(5)).subscribe(value => {\n const tagFilters = value['tagFilters'];\n this.store.dispatch(new fromActions.AddFilterTags(tagFilters));\n });\n this.buildFrom();\n\n }\n\n buildFrom() {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n this.allTags$ = this.store.pipe(select(fromSelectors.getAllTagsArr)).pipe(tap(tags => {\n this.tagGroup.reset();\n tags.forEach((value) => {\n checkboxes.addControl(value.key, new FormControl(false));\n });\n }));\n }\n\n onClearFilters() {\n this.tagGroup.reset();\n this.store.dispatch(new fromActions.ClearFilterTags());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n onRemoveFilter(tagName) {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n checkboxes.controls[tagName].setValue(false);\n }\n\n onToggleFilterView() {\n this.isPreview = !this.isPreview;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport moment from 'moment-timezone';\n/**\n * A moment timezone pipe to support parsing based on time zone abbreviations\n * covers all cases of offset variation due to daylight saving.\n *\n * Same API as DatePipe with additional timezone abbreviation support\n * Official date pipe dropped support for abbreviations names from Angular V5\n */\n@Pipe({\n name: 'momentDate'\n})\nexport class MomentDatePipe extends DatePipe implements PipeTransform {\n\n transform(\n value: string | Date,\n format: string = 'mediumDate',\n timezone: string = 'Europe/London'\n ): string {\n const timezoneOffset = moment(value).tz(timezone).format('Z');\n return super.transform(value, format, timezoneOffset);\n }\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Bookmark } from '../../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\n@Injectable()\nexport class BookmarksApiService {\n\n private readonly ANNOTATIONS_API = '/em-anno';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getBookmarks(documentId: string): Observable<any> {\n return this.httpClient\n .get(`${this.ANNOTATIONS_API}/${documentId}/bookmarks`,\n { observe: 'response' , withCredentials: true });\n }\n\n public createBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .post<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .put<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateMultipleBookmarks(bookmarks: Partial<Bookmark[]>): Observable<Bookmark[]> {\n return this.httpClient\n .put<Bookmark[]>(`${this.ANNOTATIONS_API}/bookmarks_multiple`,\n bookmarks, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteBookmark(bookmarkId: string): Observable<void> {\n return this.httpClient\n .delete<void>(`${this.ANNOTATIONS_API}/bookmarks/${bookmarkId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteMultipleBookmarks(payload: { deleted: string[], updated: Bookmark }): Observable<void> {\n return this.httpClient\n .request<void>('DELETE', `${this.ANNOTATIONS_API}/bookmarks_multiple`,\n { body: payload, observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchText: string, fieldName: string): any[] {\n\n if (!items) {\n return [];\n }\n\n if (!searchText) {\n return items;\n }\n\n return items.filter(item => {\n if (item) {\n if (item[fieldName]) {\n return item[fieldName].toLowerCase().includes(searchText.toLowerCase());\n } else {\n return item.toLowerCase().includes(searchText.toLowerCase());\n }\n }\n return false;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'unsnake'\n})\nexport class UnsnakePipe implements PipeTransform {\n\n transform(items: string): string {\n return items.split('_').join(' ');\n }\n\n}\n","import {Component, Input} from '@angular/core';\n/*\n* Gov UK Date Component\n* Responsible for displaying 3 input fields:\n* day / month / year\n* displaying errorMessage messages\n* */\n@Component({\n selector: 'mv-gov-uk-date',\ntemplateUrl: './gov-uk-date.component.html'\n})\nexport class GovUkDateComponent {\n @Input() config: { id: string; legend: string };\n @Input() errorMessage: {isInvalid: boolean; messages: string[]};\n @Input() formGroup;\n}\n","import {Component, Directive, Input} from '@angular/core';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' mv-gov-uk-error-message',\n template: `\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{message}}\n </span>\n `\n})\nexport class GovUkErrorMessageComponent {\n constructor () { }\n @Input() config: { id: string };\n @Input() errorMessage;\n}\n","/**\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n\n static setDescribedBy(errorMessage, config) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {HtmlTemplatesHelper} from '../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'mv-gov-uk-fieldset',\n template: `\n <fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!isHeading\">\n {{config.legend}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"isHeading\">\n <h1>{{config.legend}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint}}\n </span>\n <ng-content></ng-content>\n </fieldset>\n `\n})\nexport class GovUkFieldsetComponent {\n @Input() config: {legend: string; classes: string, id: string, hint: string, key: string};\n @Input() isHeading: boolean;\n @Input() errorMessage: string[];\n\n setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'mv-gov-label',\n template: `<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </h1>\n <ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </ng-template>\n `\n})\nexport class GovUkLabelComponent {\n constructor () { }\n @Input() config: { label: string, name: string; id: string, isPageHeading, classes: string };\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {GovUkDateComponent} from './gov-uk-date/gov-uk-date.component';\nimport {GovUkErrorMessageComponent} from './gov-uk-error-message/gov-uk-error-message.component';\nimport {GovUkFieldsetComponent} from './gov-uk-fieldset/gov-uk-fieldset.component';\nimport {GovUkLabelComponent} from './gov-uk-label/gov-uk-label.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n RouterModule\n ],\n declarations: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n\n ],\n exports: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n ]\n})\nexport class SharedModule {}\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport { generateBookmarkNodes } from '../bookmarks-store-utils';\nimport * as fromDocument from './document.selectors';\n\nexport const getBookmarkState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.bookmarks\n);\n\nexport const getBookmarkPages = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkPageEnt\n);\n\nexport const getBookmarkEntities = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkEnts\n);\n\nexport const getBookmarkNodes = createSelector(\n getBookmarkEntities,\n (entities) => generateBookmarkNodes(entities)\n);\n\nexport const getEditableBookmark = createSelector(\n getBookmarkState,\n fromBookmarks.getEditBookmark\n);\n\nexport const getBookmarkInfo = createSelector(\n getBookmarkNodes,\n fromDocument.getDocumentId,\n fromDocument.getPdfPosition,\n fromDocument.getPages,\n (bookmarkNodes, docId, pdfPosition, pages) => {\n return {\n pageNumber: pdfPosition.pageNumber - 1,\n xCoordinate: pdfPosition.left,\n yCoordinate: pages[pdfPosition.pageNumber].styles.height - (pdfPosition.top * pages[pdfPosition.pageNumber].viewportScale),\n previous: bookmarkNodes.length > 0 ? bookmarkNodes[bookmarkNodes.length - 1].id : undefined,\n documentId: docId\n };\n }\n);\n\nexport const getBookmarksPerPage = createSelector(\n fromDocument.getPages,\n getBookmarkPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n const pageIdx = Number(key) - 1; // -1 as the thisPages array is 0 indexed\n const thisPage = pageEnt[pageIdx];\n arr.push({\n bookmark: thisPage ? thisPage : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\n\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromDocument from '../../../store/selectors/document.selectors';\nimport * as fromSelectors from '../../../store/selectors/annotation.selectors';\nimport { HighlightCreateService } from '../annotation-create/highlight-create/highlight-create.service';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\nimport { CreateBookmark } from '../../../store/actions/bookmark.actions';\nimport * as fromBookmarks from '../../../store/selectors/bookmark.selectors';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Highlight, ViewerEventService } from '../../../viewers/viewer-event.service';\n\n@Component({\n selector: 'mv-metadata-layer',\n templateUrl: './metadata-layer.component.html'\n})\nexport class MetadataLayerComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n pages: any[] = []; // todo add type\n annoPages$: Observable<any>; // todo add type\n\n drawMode = false;\n highlightPage: number;\n rectangles: Rectangle[];\n\n private $subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly highlightService: HighlightCreateService,\n private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService) {}\n\n ngOnInit(): void {\n this.$subscriptions = this.store.pipe(select(fromDocument.getPages))\n .subscribe(pages => this.pages = Object.values(pages));\n this.annoPages$ = this.store.pipe(select(fromSelectors.getPageEntities));\n\n this.$subscriptions\n .add(this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode))\n .add(this.viewerEvents.textHighlight.subscribe(highlight => this.showContextToolbar(highlight)))\n .add(this.viewerEvents.ctxToolbarCleared.subscribe(() => this.clearContextToolbar()));\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n showContextToolbar(highlight: Highlight) {\n this.highlightPage = highlight.page;\n this.rectangles = highlight.rectangles;\n if (this.rectangles) {\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n }\n\n clearContextToolbar() {\n this.rectangles = undefined;\n }\n\n createHighlight() {\n this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n }\n\n createBookmark(rectangle: Rectangle) {\n this.store.pipe(select(fromBookmarks.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n const selection = window.getSelection().toString();\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo,\n name: selection.length > 0 ? selection.substr(0, 30) : 'new bookmark',\n id: uuid(),\n pageNumber: this.highlightPage - 1,\n xCoordinate: rectangle.x,\n yCoordinate: rectangle.y\n } as any));\n this.toolbarEvents.toggleSideBar(true);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n\n });\n }\n\n saveAnnotation({ rectangles, page }: { rectangles: Rectangle[], page: any}) {\n this.highlightService.saveAnnotation(rectangles, page);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { RouterModule } from '@angular/router';\n\nimport { MutableDivModule } from 'mutable-div';\nimport { TagInputModule } from 'ngx-chips';\nimport {NgxDatatableModule} from '@swimlane/ngx-datatable';\n\nimport { AnnotationApiService } from './services/annotation-api/annotation-api.service';\nimport { AnnotationViewComponent } from './annotation-set/annotation-view/annotation-view.component';\nimport { AnnotationSetComponent } from './annotation-set/annotation-set.component';\nimport { RectangleComponent } from './annotation-set/annotation-view/rectangle/rectangle.component';\nimport { CommentComponent } from './comment-set/comment/comment.component';\nimport { CtxToolbarComponent } from './annotation-set/ctx-toolbar/ctx-toolbar.component';\nimport { CommentSetComponent } from './comment-set/comment-set.component';\nimport { TextareaAutoExpandDirective } from './comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nimport { CommentsSummaryComponent } from './comments-summary/comments-summary.component';\nimport { CommentSetRenderService } from './comment-set/comment-set-render.service';\nimport { BoxHighlightCreateComponent } from './annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nimport { HighlightCreateService } from './annotation-set/annotation-create/highlight-create/highlight-create.service';\nimport { CommentSetHeaderComponent } from './comment-set/comment-set-header/comment-set-header.component';\nimport { CommentSearchComponent } from './comment-set/comment-set-header/comment-search/comment-search.component';\nimport { TextHighlightDirective } from './comment-set/comment/text-highlight/text-highlight.directive';\nimport { TagsComponent } from './tags/tags.component';\nimport { TagsServices } from './services/tags/tags.services';\nimport { CommentsNavigateComponent } from './comment-set/comment-navigate/comments-navigate.component';\nimport {CommentFilterComponent} from './comment-set/comment-set-header/comment-filter/comment-filter.component';\nimport {MomentDatePipe} from './pipes/date/date.pipe';\nimport { BookmarksApiService } from './services/bookmarks-api/bookmarks-api.service';\nimport {FilterPipe} from './pipes/filter/filter.pipe';\nimport {UnsnakePipe} from './pipes/unsnake/unsnake.pipe';\nimport {SharedModule} from '../shared/shared.module';\nimport { MetadataLayerComponent } from './annotation-set/metadata-layer/metadata-layer.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n MutableDivModule,\n TagInputModule,\n RouterModule,\n ReactiveFormsModule,\n NgxDatatableModule,\n SharedModule\n ],\n declarations: [\n MetadataLayerComponent,\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n RectangleComponent,\n CommentComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n TextHighlightDirective,\n CtxToolbarComponent,\n CommentSetComponent,\n CommentsNavigateComponent,\n TextareaAutoExpandDirective,\n CommentsSummaryComponent,\n TagsComponent,\n MomentDatePipe,\n CommentFilterComponent,\n FilterPipe,\n UnsnakePipe\n ],\n entryComponents: [\n AnnotationViewComponent,\n AnnotationSetComponent,\n CommentSetComponent\n ],\n providers: [\n AnnotationApiService,\n BookmarksApiService,\n CommentSetRenderService,\n HighlightCreateService,\n TagsServices\n ],\n exports: [\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n CommentSetComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n CommentsSummaryComponent,\n TagsComponent,\n CommentFilterComponent,\n MomentDatePipe,\n FilterPipe,\n UnsnakePipe,\n MetadataLayerComponent\n ]\n})\nexport class AnnotationsModule { }\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n\n@Directive({\n selector: '[mvGrabNDrag]'\n})\nexport class GrabNDragDirective {\n\n originalPosition: { left: number; top: number };\n private pointerDown = false;\n\n @Input() dragEnabled = false;\n @Input() dragX: Element;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('pointerdown', ['$event'])\n onPointerDown(event: PointerEvent) {\n if (this.dragEnabled) {\n event.preventDefault();\n this.pointerDown = true;\n this.originalPosition = {\n left: event.clientX + this.el.nativeElement.scrollLeft,\n top: event.clientY + this.el.nativeElement.scrollTop,\n };\n }\n }\n\n @HostListener('window:pointermove', ['$event'])\n onPointerMove(event: PointerEvent) {\n if (this.pointerDown && this.dragEnabled) {\n event.preventDefault();\n const scrollDiff = {\n left: this.originalPosition.left - (event.clientX + this.el.nativeElement.scrollLeft),\n top: this.originalPosition.top - (event.clientY + this.el.nativeElement.scrollTop)\n };\n if (this.dragEnabled) {\n this.dragX.scrollLeft += scrollDiff.left;\n this.el.nativeElement.scrollTop += scrollDiff.top;\n }\n }\n }\n\n @HostListener('window:pointerup') onWindowPointerUp() {\n this.pointerDown = false;\n }\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Outline } from './outline-item/outline.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport * as bookmarksSelectors from '../../../store/selectors/bookmark.selectors';\nimport { BookmarkNode } from '../../../store/models/bookmarks.interface';\nimport { CreateBookmark, LoadBookmarks } from '../../../store/actions/bookmark.actions';\nimport { take } from 'rxjs/operators';\nimport uuid from 'uuid';\nimport { ViewerEventService } from '../../viewer-event.service';\nimport { BookmarksState } from '../../../store/reducers/bookmarks.reducer';\n\n@Component({\n selector: 'mv-side-bar',\n templateUrl: './side-bar.component.html'\n})\nexport class SideBarComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() annotationsEnabled: boolean;\n @Input() outline: Outline;\n @Input() url: string;\n @Input() zoom: number;\n @Input() rotate: number;\n\n selectedView = 'outline';\n bookmarkNodes$: Observable<BookmarkNode[]>;\n\n $subscription: Subscription;\n\n constructor(private viewerEvents: ViewerEventService,\n private store: Store<BookmarksState>\n ) {}\n\n ngOnInit(): void {\n this.bookmarkNodes$ = this.store.pipe(select(bookmarksSelectors.getBookmarkNodes));\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editable => this.selectedView = editable ? 'bookmarks' : this.selectedView);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.url && this.url) {\n this.store.dispatch(new LoadBookmarks());\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n goToDestination(destination: any[]) {\n this.viewerEvents.goToDestination(destination);\n }\n\n toggleSidebarView(sidebarView: string) {\n this.selectedView = sidebarView;\n }\n\n onAddBookmarkClick() {\n this.toggleSidebarView('bookmarks');\n this.store.pipe(select(bookmarksSelectors.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo, name: 'new bookmark', id: uuid()\n } as any));\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Outline } from './outline.model';\n\n@Component({\n selector: 'mv-outline-item',\n templateUrl: './outline-item.component.html'\n})\nexport class OutlineItemComponent implements OnInit {\n\n @Input() outline: Outline;\n @Output() navigationEvent = new EventEmitter();\n\n showOutlineItems: boolean;\n\n ngOnInit() {\n this.showOutlineItems = true;\n }\n\n goToDestination(destination: any) {\n if (destination) {\n this.navigationEvent.emit(destination);\n }\n }\n\n toggleOutline() {\n this.showOutlineItems = !this.showOutlineItems;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport {filter, take} from 'rxjs/operators';\n\nimport { Rectangle } from '../../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromRedaSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromDocument from '../../store/selectors/document.selectors';\nimport * as fromActions from '../../store/actions/redaction.actions';\nimport * as fromRedactionActions from '../../store/actions/redaction.actions';\nimport * as fromRedaActions from '../../store/actions/redaction.actions';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\nimport { ViewerEventService } from '../../viewers/viewer-event.service';\nimport { Redaction } from '../services/redaction.model';\n\n@Component({\n selector: 'mv-redactions',\n templateUrl: './redaction.component.html'\n})\nexport class RedactionComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n redactionsPerPage$: Observable<any>; // todo add type\n selectedRedaction$: Observable<SelectionAnnotation | {}>;\n rectangles: Rectangle[];\n drawMode: boolean;\n documentId: string;\n\n private $subscription: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n private readonly viewerEvents: ViewerEventService,\n private toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));\n this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));\n this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);\n this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))\n .subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));\n this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));\n this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));\n this.toolbarEvents.applyRedactToDocument.subscribe(() => {\n this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {\n this.store.dispatch(new fromRedaActions.Redact(redactions));\n });\n });\n this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {\n this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n markTextRedaction(highlight) {\n const redactionHighlight = highlight.rectangles;\n if (redactionHighlight && redactionHighlight.length) {\n this.saveRedaction(highlight.page, [...redactionHighlight]);\n }\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n\n markBoxRedaction({ rectangles, page }) {\n this.saveRedaction(page, rectangles);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n\n saveRedaction(page: number, rectangles: Rectangle[]) {\n const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };\n this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));\n }\n\n onMarkerDelete(event) {\n this.store.dispatch(new fromActions.DeleteRedaction(event));\n }\n\n selectRedaction(event) {\n this.store.dispatch(new fromActions.SelectRedaction(event));\n }\n\n onMarkerUpdate(redaction: Redaction) {\n this.store.dispatch(new fromActions.SaveRedaction(redaction));\n }\n\n downloadDocument({ blob, filename }) {\n if (navigator && navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = filename;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n }\n this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpSessionApiService {\n\n public ICP_SESSION_API = '/icp/sessions';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public loadSession(caseId: string): Observable<any> {\n return this.httpClient\n .get<{username: string, session: IcpSession}>(`${this.ICP_SESSION_API}/${caseId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport socketio from 'socket.io-client/dist/socket.io.js';\n\n@Injectable()\nexport class SocketService implements OnDestroy {\n\n private socket: any;\n subscription: Subscription;\n\n connected$ = new BehaviorSubject<boolean>(false);\n\n constructor() {}\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n connect() {\n this.socket = this.getSocketClient();\n this.socket.on('connect', () => this.connected$.next(true));\n this.socket.on('disconnect', () => this.connected$.next(false));\n }\n\n join(session) {\n this.subscription = this.connected$.subscribe(connected => {\n if (connected) {\n this.socket.emit('join', session);\n }\n });\n }\n\n leave(session) {\n this.socket.emit('leave', session);\n this.subscription.unsubscribe();\n }\n\n emit(event: string, data: any) {\n this.socket.emit(event, data);\n }\n\n listen(event: string): Observable<any> {\n return new Observable( observer => {\n this.socket.on(event, data => {\n observer.next(data);\n });\n return () => this.socket.off(event);\n });\n }\n\n getSocketClient() {\n return socketio('/', {\n path: '/icp/socket.io', agent: true\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SocketService } from './socket.service';\nimport { IcpParticipant, IcpScreenUpdate, IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpUpdateService {\n\n SESSION_JOINED = '[Icp] Client Joined Session';\n CLIENT_DISCONNECTED = '[Icp] Client Disconnected From Session';\n NEW_PARTICIPANT_JOINED = '[Icp] New Participant Joined Session';\n REMOVE_PARTICIPANT = '[Icp] Remove Participant from List';\n PARTICIPANTS_UPDATED = '[Icp] Participants List Updated';\n UPDATE_PRESENTER = '[Icp] New Presenter Starts Presenting';\n PRESENTER_UPDATED = '[Icp] Presenter Updated';\n UPDATE_SCREEN = '[Icp] Update Screen';\n SCREEN_UPDATED = '[Icp] Screen Updated';\n\n session: IcpSession;\n\n constructor(private socket: SocketService) {}\n\n joinSession(username: string, session: IcpSession) {\n this.session = session;\n this.socket.connect();\n this.socket.join({...this.session, username});\n return this.socket.listen(this.SESSION_JOINED);\n }\n\n leaveSession() {\n this.socket.leave(this.session);\n }\n\n newParticipantJoined() {\n return this.socket.listen(this.NEW_PARTICIPANT_JOINED);\n }\n\n clientDisconnected() {\n return this.socket.listen(this.CLIENT_DISCONNECTED);\n }\n\n removeParticipant(participantId) {\n this.socket.emit(this.REMOVE_PARTICIPANT, {\n participantId: participantId, caseId: this.session.caseId\n });\n }\n\n participantListUpdated() {\n return this.socket.listen(this.PARTICIPANTS_UPDATED);\n }\n\n updatePresenter(presenter: IcpParticipant) {\n this.socket.emit(this.UPDATE_PRESENTER, {\n ...this.session, presenterId: presenter.id, presenterName: presenter.username\n });\n }\n\n presenterUpdated() {\n return this.socket.listen(this.PRESENTER_UPDATED);\n }\n\n updateScreen(screen: IcpScreenUpdate) {\n const update = { body: screen, sessionId: this.session.sessionId };\n this.socket.emit(this.UPDATE_SCREEN, update);\n }\n\n screenUpdated() {\n return this.socket.listen(this.SCREEN_UPDATED);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpState, IcpScreenUpdate, IcpSession, IcpParticipant } from './icp.interfaces';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { PdfPosition } from '../store/reducers/document.reducer';\n\n@Injectable()\nexport class IcpPresenterService {\n\n session: IcpSession;\n presenter: IcpParticipant;\n pdfPosition: PdfPosition;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n update(isPresenter: boolean) {\n if (isPresenter) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => {\n this.pdfPosition = pdfPosition;\n this.onPositionUpdate(pdfPosition);\n });\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => {\n this.presenter = presenter;\n }));\n this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined()));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n onPositionUpdate(pdfPosition: PdfPosition) {\n const screen: IcpScreenUpdate = { pdfPosition, document: undefined };\n this.socketService.updateScreen(screen);\n }\n\n onNewParticipantJoined() {\n this.onPositionUpdate(this.pdfPosition);\n this.socketService.updatePresenter(this.presenter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { take } from 'rxjs/operators';\nimport { IcpState, IcpSession } from './icp.interfaces';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\n\n@Injectable()\nexport class IcpFollowerService {\n\n session: IcpSession;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n\n update(isFollower: boolean) {\n if (isFollower) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.socketService.screenUpdated()\n .subscribe(screen => this.followScreenUpdate(screen));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n followScreenUpdate({ pdfPosition }) {\n if (pdfPosition) {\n this.viewerEvents.goToDestination([\n pdfPosition.pageNumber - 1,\n { 'name': 'XYZ' },\n pdfPosition.left,\n pdfPosition.top\n ]);\n }\n this.store.pipe(select(fromDocSelectors.getPdfPosition), take(1))\n .subscribe(position => {\n const rotationDelta = (pdfPosition.rotation - position.rotation) % 360;\n if (rotationDelta !== 0) {\n this.toolbarEvents.rotate(rotationDelta);\n }\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { IcpParticipant, IcpState } from './icp.interfaces';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpPresenterService } from './icp-presenter.service';\nimport { IcpFollowerService } from './icp-follower.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpActions from '../store/actions/icp.actions';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { filter, take } from 'rxjs/operators';\n\n@Injectable()\nexport class IcpService implements OnDestroy {\n\n caseId: string;\n client: IcpParticipant;\n presenter: IcpParticipant;\n isPresenter: boolean;\n\n subscription: Subscription;\n sessionSubscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private readonly presenterSubscriptions: IcpPresenterService,\n private readonly followerSubscriptions: IcpFollowerService,\n private store: Store<IcpState>) {\n this.subscription = this.store.pipe(select(fromIcpSelectors.getCaseId), filter(value => !!value)).subscribe(caseId => {\n this.caseId = caseId;\n });\n this.subscription.add(this.toolbarEvents.icp.sessionLaunch.subscribe(() => {\n if (this.caseId) { this.launchSession(); }\n }));\n }\n\n ngOnDestroy() {\n this.unsubscribeSession();\n this.subscription.unsubscribe();\n }\n\n launchSession() {\n this.store.dispatch(new fromIcpActions.LoadIcpSession(this.caseId));\n this.subscription.add(this.store.pipe(select(fromIcpSelectors.getIcpSession),\n filter(value => !!value && Object.keys(value).length > 1 ),\n take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));\n }\n\n setUpSessionSubscriptions() {\n this.sessionSubscription = this.toolbarEvents.icp.becomingPresenter.subscribe(() => this.becomePresenter());\n this.sessionSubscription.add(this.toolbarEvents.icp.stoppingPresenting.subscribe(() => this.stopPresenting()));\n this.sessionSubscription.add(this.toolbarEvents.icp.sessionExitConfirmed.subscribe(() => this.leavePresentation()));\n this.sessionSubscription.add(\n this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => this.presenter = presenter )\n );\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.getClient)).subscribe(client => this.client = client));\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.isPresenter)).subscribe(isPresenter => {\n this.isPresenter = isPresenter;\n this.presenterSubscriptions.update(isPresenter);\n this.followerSubscriptions.update(!isPresenter);\n }));\n this.sessionSubscription.add(this.socketService.clientDisconnected().subscribe(cli => this.clientDisconnected(cli)));\n this.sessionSubscription.add(this.socketService.presenterUpdated().subscribe(pres => {\n this.store.dispatch(new fromIcpActions.IcpPresenterUpdated(pres));\n }));\n this.sessionSubscription.add(this.socketService.participantListUpdated().subscribe(participants => {\n this.store.dispatch(new fromIcpActions.IcpParticipantListUpdated(participants));\n }));\n }\n\n unsubscribeSession() {\n this.presenterSubscriptions.update(false);\n this.followerSubscriptions.update(false);\n this.sessionSubscription.unsubscribe();\n }\n\n leavePresentation() {\n if (this.isPresenter) {\n this.stopPresenting();\n }\n this.removeParticipant(this.client.id);\n this.socketService.leaveSession();\n this.store.dispatch(new fromIcpActions.LeaveIcpSocketSession());\n this.unsubscribeSession();\n }\n\n stopPresenting() {\n const presenter: IcpParticipant = {username: '', id: ''};\n this.socketService.updatePresenter(presenter);\n }\n\n becomePresenter() {\n this.socketService.updatePresenter(this.client);\n }\n\n clientDisconnected(client) {\n if (client === this.presenter.id) {\n this.stopPresenting();\n }\n this.removeParticipant(client);\n }\n\n removeParticipant(participantId) {\n this.socketService.removeParticipant(participantId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport {catchError, exhaustMap, map, switchMap} from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport {AnnotationApiService} from '../../annotations/services/annotation-api/annotation-api.service';\nimport * as annotationsActions from '../actions/annotation.actions';\n\n@Injectable()\nexport class AnnotationEffects {\n constructor(\n private actions$: Actions,\n private annotationApiService: AnnotationApiService,\n ) { }\n\n @Effect()\n loadAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.LOAD_ANNOTATION_SET),\n map((action: annotationsActions.LoadAnnotationSet) => action.payload),\n switchMap((documentId) => {\n return this.annotationApiService.getAnnotationSet(documentId).pipe(\n map(res => {\n return new annotationsActions.LoadAnnotationSetSucess(res);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n postAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.SAVE_ANNOTATION),\n map((action: annotationsActions.SaveAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.postAnnotation(annotation).pipe(\n map(annotations => {\n return new annotationsActions.SaveAnnotationSuccess(annotations);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n deleteAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.DELETE_ANNOTATION),\n map((action: annotationsActions.DeleteAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.deleteAnnotation(annotation).pipe(\n map(result => {\n return new annotationsActions.DeleteAnnotationSuccess(annotation);\n }),\n catchError(error => {\n return of(new annotationsActions.DeleteAnnotationFail(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { BookmarksApiService } from '../../annotations/services/bookmarks-api/bookmarks-api.service';\nimport * as bookmarksActions from '../actions/bookmark.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocument from '../selectors/document.selectors';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport * as fromStore from '../reducers/reducers';\n\n@Injectable()\nexport class BookmarksEffects {\n\n constructor(private actions$: Actions,\n private store: Store<fromStore.AnnotationSetState|fromBookmarks.BookmarksState>,\n private bookmarksApiService: BookmarksApiService) {}\n\n @Effect()\n loadBookmarks$ = this.actions$.pipe(\n ofType(bookmarksActions.LOAD_BOOKMARKS),\n withLatestFrom(this.store.pipe(select(fromDocument.getDocumentId))),\n map(([, documentId]) => documentId),\n exhaustMap((documentId) =>\n this.bookmarksApiService.getBookmarks(documentId)\n .pipe(\n map(res => new bookmarksActions.LoadBookmarksSuccess(res)),\n catchError(err => of(new bookmarksActions.LoadBookmarksFailure(err)))\n )\n ));\n\n @Effect()\n createBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.CREATE_BOOKMARK),\n map((action: bookmarksActions.CreateBookmark) => action.payload),\n exhaustMap((bookmark) =>\n this.bookmarksApiService.createBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.CreateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.CreateBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n moveBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.MOVE_BOOKMARK),\n map((action: bookmarksActions.MoveBookmark) => action.payload),\n exhaustMap((bookmarks) =>\n this.bookmarksApiService.updateMultipleBookmarks(bookmarks)\n .pipe(\n map(bmrks => new bookmarksActions.MoveBookmarkSuccess(bmrks)),\n catchError(error => of(new bookmarksActions.MoveBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n deleteBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.DELETE_BOOKMARK),\n map((action: bookmarksActions.DeleteBookmark) => action.payload),\n exhaustMap(({ deleted, updated }) =>\n this.bookmarksApiService.deleteMultipleBookmarks({ deleted, updated })\n .pipe(\n switchMap(() => {\n if (updated) {\n return [\n new bookmarksActions.DeleteBookmarkSuccess(deleted),\n new bookmarksActions.UpdateBookmarkSuccess(updated)\n ];\n } else {\n return [new bookmarksActions.DeleteBookmarkSuccess(deleted)];\n }\n }),\n catchError(error => of(new bookmarksActions.DeleteBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n updateBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.UPDATE_BOOKMARK),\n map((action: bookmarksActions.UpdateBookmark) => action.payload),\n switchMap((bookmark) =>\n this.bookmarksApiService.updateBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.UpdateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.UpdateBookmarkFailure(error)))\n )\n ));\n}\n","import {Observable} from 'rxjs';\nimport {HttpClient, HttpResponse} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {catchError, map} from 'rxjs/operators';\nimport { Redaction } from './redaction.model';\n\n@Injectable()\nexport class RedactionApiService {\n\n private markupsApiUrl = '/api/markups';\n private redactApiUrl = '/api/redaction';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRedactions(documentId: string): Observable<HttpResponse<Redaction[]>> {\n const fixedUrl = `${this.markupsApiUrl}/${documentId}`;\n return this.httpClient\n .get<Redaction[]>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRedaction(body): Observable<Redaction> {\n return this.httpClient\n .post<Redaction>(this.markupsApiUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public deleteRedaction(payload): Observable<null> {\n const url = `${this.markupsApiUrl}/${payload.documentId}/${payload.redactionId}`;\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteAllMarkers(documentId): Observable<null> {\n const url = `${this.markupsApiUrl}/${documentId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public redact(payload): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(this.redactApiUrl, payload, { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { RedactionApiService } from '../../redaction/services/redaction-api.service';\nimport * as redactionActions from '../actions/redaction.actions';\nimport { HttpResponse } from '@angular/common/http';\n\n@Injectable()\nexport class RedactionEffects {\n constructor(\n private actions$: Actions,\n private redactionApiService: RedactionApiService,\n ) { }\n\n @Effect()\n loadRedactions$ = this.actions$.pipe(\n ofType(redactionActions.LOAD_REDACTIONS),\n map((action: redactionActions.LoadRedactions) => action.payload),\n switchMap((documentId) => {\n return this.redactionApiService.getRedactions(documentId).pipe(\n map(resp => {\n return new redactionActions.LoadRedactionSuccess(resp.body);\n }),\n catchError(error => {\n return of(new redactionActions.LoadRedactionFailure(error));\n }));\n }));\n\n @Effect()\n saveRedaction$ = this.actions$.pipe(\n ofType(redactionActions.SAVE_REDACTION),\n map((action: redactionActions.SaveRedaction) => action.payload),\n exhaustMap((redaction) => {\n return this.redactionApiService.saveRedaction(redaction).pipe(\n map(resp => {\n return new redactionActions.SaveRedactionSuccess(resp);\n }),\n catchError(error => {\n return of(new redactionActions.SaveRedactionFailure(error));\n }));\n }));\n\n @Effect()\n deleteRedaction$ = this.actions$.pipe(\n ofType(redactionActions.DELETE_REDACTION),\n map((action: redactionActions.DeleteRedaction) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.deleteRedaction(redactionPayload).pipe(\n map(() => {\n return new redactionActions.DeleteRedactionSuccess(redactionPayload);\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n\n @Effect()\n redact$ = this.actions$.pipe(\n ofType(redactionActions.REDACT),\n map((action: redactionActions.Redact) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.redact(redactionPayload).pipe(\n map((result: HttpResponse<Blob>) => {\n const header = result.headers.get('content-disposition').split('filename=');\n const filename = header.length > 1 ? header[1].replace(/\"/g, '')\n : `redacted-document-${redactionPayload.documentId}`;\n return new redactionActions.RedactSuccess({ blob: result.body, filename });\n }),\n catchError(error => {\n return of(new redactionActions.RedactFailure(error));\n }));\n }));\n\n @Effect()\n unmarkAll$ = this.actions$.pipe(\n ofType(redactionActions.UNMARK_ALL),\n map((action: redactionActions.UnmarkAll) => action.payload),\n exhaustMap((documentId) => {\n return this.redactionApiService.deleteAllMarkers(documentId).pipe(\n map(result => {\n return new redactionActions.UnmarkAllSuccess();\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentConversionApiService {\n\n private documentConversionUrl = '/doc-assembly/convert';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public convert(documentId): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(`${this.documentConversionUrl}/${documentId}`, {},\n { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(error => of(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\n\n@Injectable()\nexport class RotationApiService {\n\n public rotationApiUrl = '/em-anno/metadata';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRotation(documentId: string): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/${documentId}`;\n return this.httpClient\n .get<Rotation>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRotation(payload: Rotation): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/`;\n return this.httpClient\n .post<any>(fixedUrl, payload, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { DocumentConversionApiService } from '../../viewers/convertible-content-viewer/document-conversion-api.service';\nimport { RotationApiService } from '../../viewers/rotation-persist/rotation-api.service';\nimport { of } from 'rxjs';\nimport * as documentActions from '../actions/document.actions';\n\n@Injectable()\nexport class DocumentEffects {\n constructor(\n private actions$: Actions,\n private documentConversionService: DocumentConversionApiService,\n private rotationApiService: RotationApiService,\n ) { }\n\n @Effect()\n convert$ = this.actions$.pipe(\n ofType(documentActions.CONVERT),\n map((action: documentActions.Convert) => action.payload),\n exhaustMap((documentId) => {\n return this.documentConversionService.convert(documentId).pipe(\n map((result: HttpResponse<Blob>) => {\n const url = URL.createObjectURL(result.body);\n return new documentActions.ConvertSuccess(url);\n }),\n catchError(error => {\n return of(new documentActions.ConvertFailure(error));\n }));\n }));\n\n @Effect()\n loadRotation$ = this.actions$.pipe(\n ofType(documentActions.LOAD_ROTATION),\n map((action: documentActions.LoadRotation) => action.payload),\n switchMap((documentId) => {\n return this.rotationApiService.getRotation(documentId).pipe(\n map(resp => {\n return new documentActions.LoadRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.LoadRotationFailure(error));\n }));\n }));\n\n @Effect()\n saveRotation$ = this.actions$.pipe(\n ofType(documentActions.SAVE_ROTATION),\n map((action: documentActions.SaveRotation) => action.payload),\n switchMap((payload) => {\n return this.rotationApiService.saveRotation(payload).pipe(\n map(resp => {\n return new documentActions.SaveRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.SaveRotationFailure(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { IcpSessionApiService } from '../../icp/icp-session-api.service';\nimport { IcpUpdateService } from '../../icp/icp-update.service';\nimport * as icpActions from '../actions/icp.actions' ;\nimport { IcpSession } from '../../icp/icp.interfaces';\n\n@Injectable()\nexport class IcpEffects {\n\n constructor(private actions$: Actions,\n private icpApiService: IcpSessionApiService,\n private icpUpdateService: IcpUpdateService) {}\n\n @Effect()\n loadIcpSession$ = this.actions$.pipe(\n ofType(icpActions.LOAD_ICP_SESSION),\n map((action: icpActions.LoadIcpSession) => action.payload),\n exhaustMap((caseId: string) =>\n this.icpApiService.loadSession(caseId)\n .pipe(\n map(res => new icpActions.JoinIcpSocketSession(res)),\n catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))\n )\n ));\n\n\n @Effect()\n joinIcpSocketSession$ = this.actions$.pipe(\n ofType(icpActions.JOIN_ICP_SOCKET_SESSION),\n map((action: icpActions.JoinIcpSocketSession) => action.payload),\n switchMap((res: {username: string, session: IcpSession}) =>\n this.icpUpdateService.joinSession(res.username, res.session)\n .pipe(map(participants => new icpActions.IcpSocketSessionJoined({session: res.session, participantInfo: participants})))\n ));\n}\n","import { AnnotationEffects } from './annotation.effects';\nimport { BookmarksEffects } from './bookmarks.effects';\nimport { RedactionEffects } from './redaction.effects';\nimport { DocumentEffects } from './document.effects';\nimport { IcpEffects } from './icp.effects';\n\nexport const effects: any[] = [AnnotationEffects, BookmarksEffects, RedactionEffects, DocumentEffects, IcpEffects];\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TreeNode } from 'angular-tree-component';\n\nimport { DeleteBookmark, MoveBookmark, UpdateBookmark } from '../../../../store/actions/bookmark.actions';\nimport { Bookmark, BookmarkNode } from '../../../../store/models/bookmarks.interface';\nimport * as bookmarksSelectors from '../../../../store/selectors/bookmark.selectors';\nimport { AnnotationSetState} from '../../../../store/reducers/annotations.reducer';\nimport { DocumentPages } from '../../../../store/reducers/document.reducer';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport * as fromBookmarks from '../../../../store/reducers/bookmarks.reducer';\nimport { getBookmarkChildren } from '../../../../store/bookmarks-store-utils';\n\n@Component({\n selector: 'mv-bookmarks',\n templateUrl: './bookmarks.component.html'\n})\nexport class BookmarksComponent implements OnInit, OnDestroy {\n\n @Input() bookmarkNodes: BookmarkNode[];\n @Input() zoom: number;\n @Input() rotate: number;\n @Output() goToDestination = new EventEmitter<any[]>();\n\n pageLookup: {[pageId: number]: DocumentPages } = {};\n editableBookmark: string;\n BOOKMARK_CHAR_LIMIT = 30;\n\n options = {\n allowDrag: true,\n allowDrop: true\n };\n\n $subscription: Subscription;\n\n constructor(private store: Store<fromBookmarks.BookmarksState|AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editableId => this.editableBookmark = editableId);\n this.$subscription.add(this.store.select(fromDocument.getPages)\n .subscribe(pages => {\n\n Object.keys(pages).map(key => {\n this.pageLookup[key] = pages[key];\n });\n\n }));\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n editBookmark(id) {\n this.editableBookmark = id;\n }\n\n onBookmarkMove({ node, from, to }: any) {\n let movedBookmarks = [{\n ...node,\n previous: to.index > 0 ? to.parent.children[to.index - 1].id : undefined,\n parent: to.parent.documentId ? to.parent.id : undefined\n }];\n let fromNext = this.getSibling(from, from.index);\n fromNext = fromNext && fromNext.id === node.previous ? this.getSibling(from, from.index + 1) : fromNext;\n if (fromNext) {\n movedBookmarks = [...movedBookmarks, { ...fromNext, previous: node.previous }];\n }\n const toNext = this.getSibling(to, to.index + 1);\n if (toNext) {\n movedBookmarks = [ ...movedBookmarks, { ...toNext, previous: node.id }];\n }\n this.store.dispatch(new MoveBookmark(movedBookmarks));\n }\n\n deleteBookmark(node: TreeNode) {\n let next: Bookmark;\n const siblings = node.parent.children;\n if (siblings.length > node.index + 1) {\n next = siblings[node.index + 1].data;\n next.previous = node.data.previous;\n }\n this.store.dispatch(new DeleteBookmark({\n deleted: [node.data.id, ...getBookmarkChildren(node.data.children)], updated: next\n }));\n }\n\n updateBookmark(bookmark: Bookmark, name) {\n const editedBookmark = {\n ... bookmark,\n name\n };\n this.store.dispatch(new UpdateBookmark(editedBookmark));\n this.editableBookmark = undefined;\n }\n\n goToBookmark(bookmark: Bookmark) {\n const thisPage = this.pageLookup[bookmark.pageNumber + 1];\n const defaultHeight = thisPage.styles.height;\n const defaultScaleY = this.scaledY(bookmark.yCoordinate, defaultHeight, thisPage);\n\n let top = 0, left = 0;\n switch (this.rotate) {\n case 90:\n left = - defaultScaleY;\n break;\n case 180:\n top = this.scaledY(bookmark.yCoordinate, (defaultHeight - (24 * this.zoom)), thisPage);\n break;\n case 270:\n left = defaultScaleY;\n break;\n default:\n top = defaultScaleY;\n }\n\n this.goToDestination.emit([\n bookmark.pageNumber,\n { 'name': 'XYZ' },\n left,\n top\n ]);\n }\n\n private getSibling(node, index) {\n return node.parent.children.length > index ? node.parent.children[index] : undefined;\n }\n\n private scaledY(yCoordinate: number, height: number, page: DocumentPages): number {\n const viewportScale = page.viewportScale / this.zoom;\n return ((height / this.zoom) - yCoordinate) / viewportScale;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/document.reducer';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { Subscription } from 'rxjs';\nimport * as fromSelectors from '../../store/selectors/document.selectors';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'mv-conversion-viewer',\n templateUrl: './convertible-content-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ConvertibleContentViewerComponent implements OnInit, OnDestroy {\n\n @Input() originalUrl;\n @Input() downloadFileName: string;\n\n @Input() height;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n private $subscription: Subscription;\n convertedUrl: string;\n\n constructor(private store: Store<fromStore.DocumentState>) {\n }\n\n ngOnInit(): void {\n this.store.dispatch(new fromDocumentActions.Convert(this.extractDMStoreDocId(this.originalUrl)));\n this.$subscription = this.store.pipe(select(fromSelectors.getConvertedDocument), filter(value => !!value))\n .subscribe((docInfo) => {\n if (docInfo.url) {\n this.convertedUrl = docInfo.url;\n this.store.dispatch(new fromDocumentActions.ClearConvertDocUrl());\n } else {\n this.onLoadException(new ViewerException(docInfo.error));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle.emit(title);\n }\n\n // todo move this to common place for media viewer and pdf\n private extractDMStoreDocId(url: string): string {\n\n if (url.includes('/documents/')) {\n url = url.split('/documents/')[1];\n } else if (url.includes('/documentsv2/')) {\n url = url.split('/documentsv2/')[1];\n }\n return url.replace('/binary', '');\n }\n}\n","import { Component } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\n\n@Component({\n selector: 'mv-confirm-action',\n templateUrl: './confirm-action-dialog.component.html',\n})\nexport class ConfirmActionDialogComponent {\n\n constructor(private toolbarEvents: ToolbarEventService) {}\n\n onCancel() {\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n\n onConfirm() {\n this.toolbarEvents.icp.confirmExit();\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n}\n","import {Bookmark, BookmarksPerPage} from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport {Component, Input, OnInit} from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/bookmark.selectors';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'mv-bookmark-icons',\n templateUrl: './bookmark-icons.component.html'\n})\nexport class BookmarkIconsComponent implements OnInit {\n\n @Input() zoom: number;\n @Input() rotate: number;\n bookmarksPerPage$: Observable<BookmarksPerPage[]>;\n bookmarks: Bookmark[];\n documentId: string;\n\n constructor(private store: Store<fromStore.State>) {}\n\n ngOnInit(): void {\n this.bookmarksPerPage$ = this.store.pipe(select(fromSelectors.getBookmarksPerPage));\n }\n\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocuments from '../../store/selectors/document.selectors';\nimport { filter, take } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\nimport { ResponseType } from '../viewer-exception.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Subscription } from 'rxjs';\n\n\n@Directive({\n selector: '[mvRotationPersist]'\n})\nexport class RotationPersistDirective implements OnInit, OnDestroy {\n\n documentId: string;\n rotation = 0;\n savedRotation = 0;\n\n $subscriptions: Subscription;\n\n constructor(private el: ElementRef,\n private store: Store<fromStore.DocumentState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private toolbarEvents: ToolbarEventService) {\n }\n\n ngOnInit() {\n this.$subscriptions = this.toolbarEvents.rotateSubject.subscribe(rotation => this.onRotate(rotation));\n this.$subscriptions\n .add(this.toolbarEvents.saveRotationSubject.subscribe(() => this.saveRotation()))\n .add(this.store.pipe(select(fromDocuments.getRotation))\n .subscribe(rotation => this.savedRotation = rotation))\n .add(this.store.pipe(select(fromDocuments.getDocumentId))\n .subscribe(documentId => this.documentId = documentId));\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n @HostListener('mediaLoadStatus', ['$event'])\n onMediaLoad(status: ResponseType) {\n this.rotation = 0;\n this.store.dispatch(new fromDocumentActions.LoadRotation(this.documentId));\n this.store.pipe(select(fromDocuments.rotationLoaded),\n filter(value => !!value),\n take(1))\n .subscribe(() => {\n if (this.savedRotation) {\n this.toolbarEvents.rotateSubject.next(this.savedRotation);\n }\n });\n }\n\n private onRotate(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.toolbarButtons.showSaveRotationButton = this.savedRotation !== this.rotation;\n }\n\n private saveRotation() {\n const payload: Rotation = {\n documentId: this.documentId,\n rotationAngle: this.rotation\n };\n this.store.dispatch(new fromDocumentActions.SaveRotation(payload));\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { IcpParticipant, IcpState } from '../icp.interfaces';\nimport { select, Store } from '@ngrx/store';\nimport * as fromSelectors from '../../store/selectors/icp.selectors';\n\n@Component({\n selector: 'mv-participants-list',\n templateUrl: './participants-list.component.html'\n})\nexport class ParticipantsListComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n participants$: Observable<IcpParticipant[]>;\n presenter$: Observable<IcpParticipant>;\n isPresenter$: Observable<boolean>;\n\n showParticipantsList = false;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.participants$ = this.store.pipe(select(fromSelectors.getParticipants));\n this.presenter$ = this.store.pipe(select(fromSelectors.getPresenter));\n this.isPresenter$ = this.store.pipe(select(fromSelectors.isPresenter));\n\n this.subscription = this.toolbarEvents.icp.participantsListVisible.subscribe(isVisible => this.showParticipantsList = isVisible);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport uuid from 'uuid';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport { ViewerEventService } from '../../../../viewers/viewer-event.service';\nimport * as fromAnnotationActions from '../../../../store/actions/annotation.actions';\nimport { HighlightCreateService } from './highlight-create.service';\n\n@Directive({\n selector: '[mvCreateTextHighlight]'\n})\nexport class HighlightCreateDirective implements OnInit, OnDestroy {\n\n pageHeight: number;\n pageWidth: number;\n zoom: number;\n rotate: number;\n allPages: object;\n\n $subscription: Subscription;\n\n constructor(private element: ElementRef<HTMLElement>,\n private toolbarEvents: ToolbarEventService,\n private viewerEvents: ViewerEventService,\n private highlightService: HighlightCreateService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.select(fromDocument.getPages).subscribe(pages => {\n if (pages[1]) {\n this.allPages = pages;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n }\n }\n\n @HostListener('mouseup', ['$event'])\n onMouseUp(mouseEvent: MouseEvent) {\n const pageElement = (<HTMLElement>(mouseEvent.target as HTMLElement).offsetParent).offsetParent;\n const page = parseInt(pageElement.getAttribute('data-page-number'), 10);\n if (this.toolbarEvents.highlightModeSubject.getValue()) {\n const rectangles = this.getRectangles(mouseEvent, page);\n this.viewerEvents.textSelected({ page, rectangles });\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onPdfViewerClick(event: MouseEvent) {\n this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({\n annotationId: '', selected: false, editable: false\n }));\n this.viewerEvents.clearCtxToolbar();\n }\n\n private getRectangles(event: MouseEvent, page) {\n this.pageHeight = this.allPages[page].styles.height;\n this.pageWidth = this.allPages[page].styles.width;\n this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);\n this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);\n const selection = window.getSelection();\n if (selection) {\n const localElement = <HTMLElement>event.target;\n\n this.removeEnhancedTextModeStyling(localElement);\n\n if (selection.rangeCount && !selection.isCollapsed) {\n const range = selection.getRangeAt(0).cloneRange();\n const clientRects = range.getClientRects();\n\n if (clientRects) {\n const parentRect = localElement.parentElement.getBoundingClientRect();\n const selectionRectangles: Rectangle[] = [];\n for (let i = 0; i < clientRects.length; i++) {\n const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);\n selectionRectangles.push(selectionRectangle);\n }\n return selectionRectangles;\n }\n }\n }\n }\n\n private createTextRectangle(rect: any, parentRect: any): Rectangle {\n const height = rect.bottom - rect.top;\n const width = rect.right - rect.left;\n const top = rect.top - parentRect.top;\n const left = rect.left - parentRect.left;\n\n let rectangle = this.highlightService.applyRotation(this.pageHeight, this.pageWidth, height, width, top, left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle };\n\n return rectangle as Rectangle;\n }\n\n private removeEnhancedTextModeStyling(element: HTMLElement) {\n if (element.parentElement.children) {\n for (let i = 0; i < element.parentElement.children.length; i++) {\n const child = <HTMLElement>element.parentElement.children[i];\n\n child.style.padding = '0';\n // regex will be targeting the translate style in string\n // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)\n const translateCSSRegex = /translate[XYZ]\\(-?\\d*(\\.\\d+)?(px)?\\)/g;\n child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType } from '../viewer-exception.model';\n\n@Component({\n selector: 'mv-multimedia-player',\n templateUrl: './multimedia-player.component.html'\n})\nexport class MultimediaPlayerComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() multimediaOn: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n @ViewChild('videoPlayer', {static: false}) videoPlayer: ElementRef;\n\n playbackMsg = 'loading';\n\n private subscription: Subscription;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n ) {}\n\n public ngOnInit(): void {\n this.subscription = this.toolbarEvents.downloadSubject\n .subscribe(() => this.downloadLink.nativeElement.click());\n this.loadStatus.emit(ResponseType.SUCCESS);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.reloadVideo();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n reloadVideo() {\n if (this.videoPlayer) {\n this.playbackMsg = 'loading';\n this.videoPlayer.nativeElement.load();\n }\n }\n\n onSuccess() {\n this.playbackMsg = 'success';\n }\n\n onError() {\n this.playbackMsg = 'error';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';\nimport { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';\nimport { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';\nimport { MediaViewerComponent } from './media-viewer.component';\nimport { ToolbarModule } from './toolbar/toolbar.module';\nimport { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationsModule } from './annotations/annotations.module';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport { GrabNDragDirective } from './viewers/grab-n-drag.directive';\nimport { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';\nimport { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule} from '@ngrx/store';\nimport { RedactionComponent } from './redaction/components/redaction.component';\nimport { IcpSessionApiService } from './icp/icp-session-api.service';\nimport { IcpUpdateService } from './icp/icp-update.service';\nimport { IcpService } from './icp/icp.service';\nimport { SocketService } from './icp/socket.service';\nimport { reducers} from './store/reducers/reducers';\nimport { effects } from './store/effects/index';\nimport { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nimport { RedactionApiService } from './redaction/services/redaction-api.service';\nimport { MutableDivModule } from 'mutable-div';\nimport { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';\nimport { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';\nimport { IcpPresenterService } from './icp/icp-presenter.service';\nimport { IcpFollowerService } from './icp/icp-follower.service';\nimport { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';\nimport { TreeModule } from 'angular-tree-component';\nimport { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';\nimport { RotationApiService } from './viewers/rotation-persist/rotation-api.service';\nimport { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';\nimport { ParticipantsListComponent } from './icp/participants-list/participants-list.component';\nimport { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nimport {MultimediaPlayerComponent} from './viewers/multimedia-player/multimedia-player.component';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n ToolbarModule,\n AnnotationsModule,\n TagInputModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n StoreModule.forFeature('media-viewer', reducers),\n EffectsModule.forFeature(effects),\n TreeModule.forRoot(),\n MutableDivModule\n ],\n declarations: [\n PdfViewerComponent,\n SideBarComponent,\n BookmarksComponent,\n OutlineItemComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent,\n MultimediaPlayerComponent,\n MediaViewerComponent,\n ConvertibleContentViewerComponent,\n GrabNDragDirective,\n RotationPersistDirective,\n HighlightCreateDirective,\n ConfirmActionDialogComponent,\n RedactionComponent, // todo made put this into module\n BookmarkIconsComponent,\n ParticipantsListComponent\n ],\n entryComponents: [\n PdfViewerComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent\n ],\n providers: [\n PdfJsWrapperFactory,\n CommentService,\n RedactionApiService,\n IcpSessionApiService,\n IcpUpdateService,\n SocketService,\n IcpService,\n IcpPresenterService,\n IcpFollowerService,\n RedactionApiService,\n DocumentConversionApiService,\n RotationApiService,\n ],\n exports: [\n MediaViewerComponent\n ]\n})\nexport class MediaViewerModule { }\n"],"names":["pdfjsLib.GlobalWorkerOptions","tslib_1.__spread","pdfjsLib.getDocument","BehaviorSubject","Subject","Injectable","pdfjsViewer.PDFLinkService","pdfjsViewer.EventBus","pdfjsViewer.PDFFindController","pdfjsViewer.PDFViewer","pdfjsViewer.DownloadManager","fromActions.CONVERT_SUCCESS","fromActions.CONVERT_FAIL","fromActions.CLEAR_CONVERT_DOC_URL","fromActions.LOAD_ROTATION","fromActions.LOAD_ROTATION_SUCCESS","fromActions.LOAD_ROTATION_FAIL","fromActions.SAVE_ROTATION_SUCCESS","fromActions.SET_DOCUMENT_ID","fromActions.ADD_PAGES","fromActions.POSITION_UPDATED","fromAnnotations.LOAD_ANNOTATION_SET","fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS","fromAnnotations.LOAD_ANNOTATION_SET_FAIL","fromAnnotations.SAVE_ANNOTATION_SUCCESS","fromAnnotations.DELETE_ANNOTATION_SUCCESS","fromAnnotations.ADD_OR_EDIT_COMMENT","fromAnnotations.SELECT_ANNOTATION","fromAnnotations.SEARCH_COMMENT","fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER","fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER","fromTags.ADD_FILTER_TAGS","fromTags.CLEAR_FILTER_TAGS","fromBookmarks.LOAD_BOOKMARKS","fromBookmarks.LOAD_BOOKMARKS_SUCCESS","fromBookmarks.LOAD_BOOKMARKS_FAIL","fromBookmarks.CREATE_BOOKMARK_SUCCESS","fromBookmarks.MOVE_BOOKMARK_SUCCESS","fromBookmarks.DELETE_BOOKMARK_SUCCESS","fromBookmarks.UPDATE_BOOKMARK_SUCCESS","fromRedaction.LOAD_REDACTIONS","fromRedaction.LOAD_REDACTION_SUCCESS","fromRedaction.SAVE_REDACTION_SUCCESS","fromRedaction.SELECT_REDACTION","fromRedaction.DELETE_REDACTION_SUCCESS","fromRedaction.REDACT_SUCCESS","fromRedaction.RESET_REDACTED_DOCUMENT","fromRedaction.UNMARK_ALL_SUCCESS","fromIcpActions.SET_CASE_ID","fromIcpActions.ICP_SOCKET_SESSION_JOINED","fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED","fromIcpActions.ICP_PRESENTER_UPDATED","fromIcpActions.LEAVE_ICP_SOCKET_SESSION","fromDocument.docReducer","fromAnnotation.reducer","fromTags.tagsReducer","fromBookmarks.bookmarksReducer","fromRedaction.redactionReducer","fromIcp.icpReducer","createFeatureSelector","createSelector","fromFeature.getMVState","fromDocument.getDocPages","fromDocument.getDocId","fromDocument.getPdfPos","fromDocument.getHasDifferentPageSizes","getConvertedDocument","fromDocument.getConvertedDocument","getRotation","fromDocument.getRotation","rotationLoaded","fromDocument.rotationLoaded","store","EventEmitter","tap","fromTagActions.ClearFilterTags","throttleTime","asyncScheduler","filter","select","fromDocumentsSelector.getPageDifference","fromDocumentActions.AddPages","Component","ViewEncapsulation","Store","Output","Input","ViewChild","HttpClient","fromDocument.AddPages","tslib_1.__values","map","catchError","fromTags.getTagNameEnt","fromTags.getFilters","fromTags.getFilteredComments","fromTags.getFilteredPageEnt","fromAnnotations.getAnnoEnt","fromAnnotations.getAnnoSet","fromAnnotations.getSelectedAnno","fromAnnotations.getCommentEnts","fromAnnotations.getAnnoPageEnt","fromAnnotations.commentSearchQ","fromAnnotations.getSummaryFilters","fromDocument.getPages","fromTags.getFilteredPageEntities","fromTags.getTagFiltered","fromAnnoSelectors.getAnnotationSet","fromDocumentActions.SetDocumentId","fromAnnoActions.LoadAnnotationSet","fromRedactActions.LoadRedactions","ElementRef","ChangeDetectorRef","ConnectionPositionPair","HostListener","fromRedactions.getPageEnt","fromRedactions.getSelectedRedaction","fromRedactions.getRedactedDocInfo","getRedactionEnt","fromRedactions.getRedactionEnt","fromDocument.getDocumentId","fromRedactSelectors.getRedactionArray","getIcpSession","fromIcp.getIcpSession","getPresenter","fromIcp.getPresenter","getClient","fromIcp.getClient","getParticipants","fromIcp.getParticipants","fromIcpSelectors.isPresenter","isPresenter","fromIcpSelectors.getPresenterName","NgModule","CommonModule","FormsModule","OverlayModule","RouterModule","uuid","fromActions.AddOrEditComment","fromSelectors.getSelectedAnnotation","fromActions.SaveAnnotation","fromActions.DeleteAnnotation","fromActions.SelectedAnnotation","fromSelectors.getDocumentIdSetId","take","fromSelector.getComponentSearchText","distinctUntilChanged","fromSelectors.getCommentsArray","fromSelectors.getAnnotationEntities","ViewChildren","Directive","FormGroup","FormControl","fromSelectors.getCommentSummary","fromSelectors.getCommentSummaryFilters","fromTagSelectors.getAllTagsArr","combineLatest","fromAnnoActions.ClearCommentSummaryFilters","fromAnnoActions.ApplyCommentSymmaryFilter","FormBuilder","fromTagSelectors.getTagFilters","fromAnnoSelector.getFilteredAnnotations","fromActions.SearchComment","fromSelectors.getTagFilters","auditTime","fromActions.AddFilterTags","fromSelectors.getAllTagsArr","fromActions.ClearFilterTags","tslib_1.__extends","Pipe","DatePipe","ReactiveFormsModule","fromBookmarks.getBookmarkPageEnt","fromBookmarks.getBookmarkEnts","fromBookmarks.getEditBookmark","fromDocument.getPdfPosition","fromSelectors.getPageEntities","fromBookmarks.getBookmarkInfo","A11yModule","HttpClientModule","MutableDivModule","TagInputModule","NgxDatatableModule","bookmarksSelectors.getBookmarkNodes","bookmarksSelectors.getEditableBookmark","bookmarksSelectors.getBookmarkInfo","fromSelectors.getRedactionsPerPage","fromSelectors.getSelected","fromSelectors.getRedactedDocumentInfo","fromRedaSelectors.getRedactionArray","fromRedaActions.Redact","fromRedaActions.UnmarkAll","fromRedactionActions.SaveRedaction","fromActions.DeleteRedaction","fromActions.SelectRedaction","fromActions.SaveRedaction","fromRedactionActions.ResetRedactedDocument","Observable","fromDocSelectors.getPdfPosition","fromIcpSelectors.getPresenter","fromIcpSelectors.getCaseId","fromIcpActions.LoadIcpSession","fromIcpSelectors.getIcpSession","fromIcpSelectors.getClient","fromIcpActions.IcpPresenterUpdated","fromIcpActions.IcpParticipantListUpdated","fromIcpActions.LeaveIcpSocketSession","ofType","annotationsActions.LOAD_ANNOTATION_SET","switchMap","annotationsActions.LoadAnnotationSetSucess","of","annotationsActions.LoadAnnotationSetFail","annotationsActions.SAVE_ANNOTATION","exhaustMap","annotationsActions.SaveAnnotationSuccess","annotationsActions.DELETE_ANNOTATION","annotationsActions.DeleteAnnotationSuccess","annotationsActions.DeleteAnnotationFail","Actions","tslib_1.__decorate","Effect","bookmarksActions.LOAD_BOOKMARKS","withLatestFrom","bookmarksActions.LoadBookmarksSuccess","bookmarksActions.LoadBookmarksFailure","bookmarksActions.CREATE_BOOKMARK","bookmarksActions.CreateBookmarkSuccess","bookmarksActions.CreateBookmarkFailure","bookmarksActions.MOVE_BOOKMARK","bookmarksActions.MoveBookmarkSuccess","bookmarksActions.MoveBookmarkFailure","bookmarksActions.DELETE_BOOKMARK","bookmarksActions.DeleteBookmarkSuccess","bookmarksActions.UpdateBookmarkSuccess","bookmarksActions.DeleteBookmarkFailure","bookmarksActions.UPDATE_BOOKMARK","bookmarksActions.UpdateBookmarkFailure","redactionActions.LOAD_REDACTIONS","redactionActions.LoadRedactionSuccess","redactionActions.LoadRedactionFailure","redactionActions.SAVE_REDACTION","redactionActions.SaveRedactionSuccess","redactionActions.SaveRedactionFailure","redactionActions.DELETE_REDACTION","redactionActions.DeleteRedactionSuccess","redactionActions.DeleteRedactionFailure","redactionActions.REDACT","redactionActions.RedactSuccess","redactionActions.RedactFailure","redactionActions.UNMARK_ALL","redactionActions.UnmarkAllSuccess","documentActions.CONVERT","documentActions.ConvertSuccess","documentActions.ConvertFailure","documentActions.LOAD_ROTATION","documentActions.LoadRotationSuccess","documentActions.LoadRotationFailure","documentActions.SAVE_ROTATION","documentActions.SaveRotationSuccess","documentActions.SaveRotationFailure","icpActions.LOAD_ICP_SESSION","icpActions.JoinIcpSocketSession","icpActions.LoadIcpSessionFailure","icpActions.JOIN_ICP_SOCKET_SESSION","icpActions.IcpSocketSessionJoined","effects","fromDocumentActions.Convert","fromSelectors.getConvertedDocument","fromDocumentActions.ClearConvertDocUrl","fromSelectors.getBookmarksPerPage","fromDocuments.getRotation","fromDocuments.getDocumentId","fromDocumentActions.LoadRotation","fromDocuments.rotationLoaded","fromDocumentActions.SaveRotation","fromSelectors.getParticipants","fromSelectors.getPresenter","fromSelectors.isPresenter","fromAnnotationActions.SelectedAnnotation","StoreModule","EffectsModule","TreeModule"],"mappings":"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"}
1
+ {"version":3,"file":"hmcts-media-viewer.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.ts","ng://@hmcts/media-viewer/lib/toolbar/icp-event.service.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar-event.service.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.ts","ng://@hmcts/media-viewer/lib/print.service.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-exception.model.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar-button-visibility.service.ts","ng://@hmcts/media-viewer/lib/store/actions/document.actions.ts","ng://@hmcts/media-viewer/lib/store/actions/tag.actions.ts","ng://@hmcts/media-viewer/lib/store/actions/icp.actions.ts","ng://@hmcts/media-viewer/lib/store/reducers/document.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/annotation.actions.ts","ng://@hmcts/media-viewer/lib/store/store-utils.ts","ng://@hmcts/media-viewer/lib/store/reducers/annotations.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/tags.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/bookmark.actions.ts","ng://@hmcts/media-viewer/lib/store/bookmarks-store-utils.ts","ng://@hmcts/media-viewer/lib/store/reducers/bookmarks.reducer.ts","ng://@hmcts/media-viewer/lib/store/actions/redaction.actions.ts","ng://@hmcts/media-viewer/lib/store/reducers/redaction.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/icp.reducer.ts","ng://@hmcts/media-viewer/lib/store/reducers/reducers.ts","ng://@hmcts/media-viewer/lib/store/selectors/document.selectors.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-event.service.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/pdf-viewer.component.ts","ng://@hmcts/media-viewer/lib/viewers/viewer-util.service.ts","ng://@hmcts/media-viewer/lib/viewers/image-viewer/image-viewer.component.ts","ng://@hmcts/media-viewer/lib/viewers/unsupported-viewer/unsupported-viewer.component.ts","ng://@hmcts/media-viewer/lib/annotations/services/annotation-api/annotation-api.service.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/comment.service.ts","ng://@hmcts/media-viewer/lib/store/selectors/tag.selectors.ts","ng://@hmcts/media-viewer/lib/store/selectors/annotation.selectors.ts","ng://@hmcts/media-viewer/lib/media-viewer.component.ts","ng://@hmcts/media-viewer/lib/shared/util/services/number.helper.service.ts","ng://@hmcts/media-viewer/lib/toolbar/main-toolbar/main-toolbar.component.ts","ng://@hmcts/media-viewer/lib/toolbar/search-bar/search-bar.component.ts","ng://@hmcts/media-viewer/lib/store/selectors/redaction.selectors.ts","ng://@hmcts/media-viewer/lib/toolbar/redaction-toolbar/redaction-toolbar.component.ts","ng://@hmcts/media-viewer/lib/store/selectors/icp.selectors.ts","ng://@hmcts/media-viewer/lib/toolbar/icp-toolbar/icp-toolbar.component.ts","ng://@hmcts/media-viewer/lib/toolbar/toolbar.module.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-view/annotation-view.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-set.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-view/rectangle/rectangle.component.ts","ng://@hmcts/media-viewer/lib/annotations/services/tags/tags.services.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/comment.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-render.service.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive.ts","ng://@hmcts/media-viewer/lib/annotations/comments-summary/comments-summary.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-set-header.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-search/comment-search.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment/text-highlight/text-highlight.directive.ts","ng://@hmcts/media-viewer/lib/annotations/tags/tags.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-navigate/comments-navigate.component.ts","ng://@hmcts/media-viewer/lib/annotations/comment-set/comment-set-header/comment-filter/comment-filter.component.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/date/date.pipe.ts","ng://@hmcts/media-viewer/lib/annotations/services/bookmarks-api/bookmarks-api.service.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/filter/filter.pipe.ts","ng://@hmcts/media-viewer/lib/annotations/pipes/unsnake/unsnake.pipe.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-date/gov-uk-date.component.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-error-message/gov-uk-error-message.component.ts","ng://@hmcts/media-viewer/lib/shared/util/helpers/html-templates.helper.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-fieldset/gov-uk-fieldset.component.ts","ng://@hmcts/media-viewer/lib/shared/gov-uk-label/gov-uk-label.component.ts","ng://@hmcts/media-viewer/lib/shared/shared.module.ts","ng://@hmcts/media-viewer/lib/store/selectors/bookmark.selectors.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/metadata-layer/metadata-layer.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotations.module.ts","ng://@hmcts/media-viewer/lib/viewers/grab-n-drag.directive.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/side-bar.component.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/outline-item/outline-item.component.ts","ng://@hmcts/media-viewer/lib/redaction/components/redaction.component.ts","ng://@hmcts/media-viewer/lib/icp/icp-session-api.service.ts","ng://@hmcts/media-viewer/lib/icp/socket.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-update.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-presenter.service.ts","ng://@hmcts/media-viewer/lib/icp/icp-follower.service.ts","ng://@hmcts/media-viewer/lib/icp/icp.service.ts","ng://@hmcts/media-viewer/lib/store/effects/annotation.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/bookmarks.effects.ts","ng://@hmcts/media-viewer/lib/redaction/services/redaction-api.service.ts","ng://@hmcts/media-viewer/lib/store/effects/redaction.effects.ts","ng://@hmcts/media-viewer/lib/viewers/convertible-content-viewer/document-conversion-api.service.ts","ng://@hmcts/media-viewer/lib/viewers/rotation-persist/rotation-api.service.ts","ng://@hmcts/media-viewer/lib/store/effects/document.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/icp.effects.ts","ng://@hmcts/media-viewer/lib/store/effects/index.ts","ng://@hmcts/media-viewer/lib/viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component.ts","ng://@hmcts/media-viewer/lib/viewers/convertible-content-viewer/convertible-content-viewer.component.ts","ng://@hmcts/media-viewer/lib/icp/confirm-exit/confirm-action-dialog.component.ts","ng://@hmcts/media-viewer/lib/bookmark/components/bookmark-icons.component.ts","ng://@hmcts/media-viewer/lib/viewers/rotation-persist/rotation-persist.directive.ts","ng://@hmcts/media-viewer/lib/icp/participants-list/participants-list.component.ts","ng://@hmcts/media-viewer/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.ts","ng://@hmcts/media-viewer/lib/viewers/multimedia-player/multimedia-player.component.ts","ng://@hmcts/media-viewer/lib/media-viewer.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as pdfjsLib from 'pdfjs-dist';\nimport { DownloadManager, PDFViewer } from 'pdfjs-dist/web/pdf_viewer';\nimport 'pdfjs-dist/build/pdf.worker';\nimport { Subject } from 'rxjs';\nimport { SearchOperation, ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\npdfjsLib.GlobalWorkerOptions.workerSrc = '/assets/build/pdf.worker.min.js';\n\n/**\n * Values of the state field returned by the find events\n */\nenum FindState {\n FOUND = 0,\n NOT_FOUND = 1,\n WRAPPED = 2,\n PENDING = 3,\n}\n\nexport class PdfJsWrapper {\n\n private zoomValue: number;\n private documentTitle: string;\n private documentOutline: Outline;\n\n constructor(\n private readonly pdfViewer: PDFViewer,\n private readonly downloadManager: DownloadManager,\n private readonly toolbarEvents: ToolbarEventService,\n public readonly documentLoadInit: Subject<string>,\n public readonly documentLoadProgress: Subject<DocumentLoadProgress>,\n public readonly documentLoaded: Subject<any>,\n public readonly outlineLoaded: Subject<Outline>,\n public readonly documentLoadFailed: Subject<Error>,\n public readonly pageRendered: Subject<PageEvent[]>,\n public readonly positionUpdated: Subject<{ location: PdfPosition }>,\n ) {\n this.pdfViewer.eventBus.on('updateviewarea', e => positionUpdated.next(e));\n this.pdfViewer.eventBus.on('pagechanging', e => this.toolbarEvents.setCurrentPageInputValueSubject.next(e.pageNumber));\n this.pdfViewer.eventBus.on('pagesinit', () => this.pdfViewer.currentScaleValue = '1');\n\n this.pdfViewer.eventBus.on('pagerendered', e => {}); // not used left for future convenience\n this.pdfViewer.eventBus.on('pagesloaded', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('scalechanging', (e) => this.emitDocumentInfo(e));\n this.pdfViewer.eventBus.on('rotationchanging', (e) => this.emitDocumentInfo(e));\n\n this.pdfViewer.eventBus.on('updatefindcontrolstate', event => {\n if (event.state !== FindState.PENDING) {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n }\n });\n this.pdfViewer.eventBus.on('updatefindmatchescount', event => {\n this.toolbarEvents.searchResultsCountSubject.next(event.matchesCount);\n });\n this.zoomValue = 1;\n }\n\n private emitDocumentInfo(e) {\n const allPages: PageEvent[] = [...this.pdfViewer._pages].map(page => {\n return {\n div: page.div,\n scale: page.scale,\n rotation: page.rotation,\n id: page.id,\n viewportScale: page.viewport.scale\n };\n });\n this.pageRendered.next(allPages);\n }\n\n public async loadDocument(documentUrl: string) {\n const loadingTask = pdfjsLib.getDocument({\n url: documentUrl,\n cMapUrl: 'assets/minified/cmaps',\n cMapPacked: true,\n withCredentials: true\n });\n\n loadingTask.onProgress = ({ loaded, total }) => {\n this.documentLoadProgress.next({ loaded, total });\n };\n\n this.documentLoadInit.next(documentUrl);\n\n try {\n const pdfDocument = await loadingTask.promise;\n this.documentLoaded.next(pdfDocument);\n this.toolbarEvents.pageCountSubject.next(pdfDocument.numPages);\n\n this.pdfViewer.setDocument(pdfDocument);\n this.pdfViewer.linkService.setDocument(pdfDocument, null);\n\n this.documentOutline = await pdfDocument.getOutline();\n this.outlineLoaded.next(this.documentOutline);\n const pdfMetaData = await pdfDocument.getMetadata();\n this.setCurrentPDFTitle(pdfMetaData.info.Title);\n } catch (e) {\n this.documentLoadFailed.next(e);\n }\n }\n\n public downloadFile(url: string, filename: string): void {\n this.downloadManager.downloadUrl(url, filename);\n }\n\n public setPageNumber(pageNumber: number): void {\n this.pdfViewer.currentPageNumber = pageNumber;\n }\n public getPageNumber(): number {\n return this.pdfViewer.currentPageNumber;\n }\n public changePageNumber(numPages: number): void {\n this.pdfViewer.currentPageNumber += numPages;\n }\n\n public search(operation: SearchOperation): void {\n const command = operation.reset ? 'find' : 'findagain';\n\n this.pdfViewer.findController.executeCommand(command, {\n query: operation.searchTerm,\n phraseSearch: true,\n caseSensitive: operation.matchCase,\n entireWord: operation.wholeWord,\n highlightAll: operation.highlightAll,\n findPrevious: operation.previous,\n });\n }\n\n public clearSearch(): void {\n this.pdfViewer.eventBus.dispatch('findbarclose');\n }\n\n public navigateTo(destination: object | number) {\n if (destination instanceof Object) {\n if (!destination[1].name.includes('XYZ')) {\n destination[1] = { name: 'XYZ' };\n destination[2] = destination[2] || null;\n destination[3] = destination[3] || null;\n }\n destination[4] = this.zoomValue;\n }\n this.pdfViewer.linkService.navigateTo(destination);\n }\n\n public setZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = this.getZoomValue(zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n public stepZoom(zoomValue: number): void {\n this.pdfViewer.currentScaleValue = +this.getZoomValue((+this.pdfViewer.currentScaleValue) + zoomValue);\n this.zoomValue = this.pdfViewer.currentScaleValue;\n this.toolbarEvents.zoomValueSubject.next(this.pdfViewer.currentScaleValue);\n }\n\n private getZoomValue(zoomValue: number): number {\n if (isNaN(zoomValue)) { return this.zoomValue; }\n if (zoomValue > 5) { return 5; }\n if (zoomValue < 0.1) { return 0.1; }\n\n return +zoomValue.toFixed(2);\n }\n\n public rotate(rotation: number): number {\n return this.pdfViewer.pagesRotation = (this.pdfViewer.pagesRotation + rotation) % 360;\n }\n\n public resetRotation(rotation: number): number {\n return this.pdfViewer.pagesRotation = rotation;\n }\n\n public getNormalisedPagesRotation(): number {\n return this.pdfViewer.pagesRotation;\n }\n\n public getCurrentPDFZoomValue(): number {\n return this.pdfViewer.currentScaleValue;\n }\n\n public setCurrentPDFTitle(title: string) {\n this.documentTitle = title;\n }\n\n public getCurrentPDFTitle(): string {\n return this.documentTitle;\n }\n}\n\nexport interface DocumentLoadProgress {\n loaded: number;\n total: number;\n}\n\nexport interface PageEvent {\n div: object;\n scale: number;\n rotation: number;\n id: string;\n viewportScale: number;\n}\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n export const enabled = new BehaviorSubject(false);\n export const sessionLaunch = new Subject();\n export const becomingPresenter = new Subject();\n export const stoppingPresenting = new Subject();\n export const leavingSession = new BehaviorSubject(false);\n export const sessionExitConfirmed = new Subject();\n export const participantsListVisible = new BehaviorSubject(false);\n\nexport const launchSession = () => {\n sessionLaunch.next();\n};\n\nexport const enable = () => {\n enabled.next(true);\n launchSession();\n};\n\nexport const becomePresenter = () => {\n becomingPresenter.next();\n};\n\nexport const stopPresenting = () => {\n stoppingPresenting.next();\n};\n\nexport const leaveSession = () => {\n leavingSession.next(true);\n};\n\nexport const confirmExit = () => {\n sessionExitConfirmed.next();\n participantsListVisible.next(false);\n enabled.next(false);\n};\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport * as icpEvents from './icp-event.service';\nimport { participantsListVisible } from './icp-event.service';\n\n// Toolbar Custom-Event Types\nexport type HighlightMode = boolean;\nexport type DrawMode = boolean;\nexport interface SearchOperation {\n searchTerm: string;\n highlightAll: boolean;\n matchCase: boolean;\n wholeWord: boolean;\n previous: boolean;\n reset: boolean;\n}\nexport interface SearchResultsCount {\n current: number;\n total: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToolbarEventService {\n\n public readonly highlightModeSubject = new BehaviorSubject<HighlightMode>(false);\n public readonly drawModeSubject = new BehaviorSubject<DrawMode>(false);\n public readonly rotateSubject = new Subject<number>();\n public readonly searchSubject = new Subject<SearchOperation>();\n public readonly searchResultsCountSubject = new Subject<SearchResultsCount>();\n public readonly zoomSubject = new Subject<number>();\n public readonly stepZoomSubject = new Subject<number>();\n public readonly zoomValueSubject = new BehaviorSubject<number>(1);\n public readonly pageCountSubject = new Subject<number>();\n public readonly printSubject = new Subject();\n public readonly downloadSubject = new Subject();\n public readonly setCurrentPageSubject = new Subject<number>();\n public readonly setCurrentPageInputValueSubject = new Subject<number>();\n public readonly changePageByDeltaSubject = new Subject<number>();\n public readonly showCommentSummary = new BehaviorSubject<boolean>(false);\n public readonly grabNDrag = new BehaviorSubject<boolean>(false);\n public readonly saveRotationSubject = new Subject();\n\n public readonly redactionMode = new BehaviorSubject(false);\n public readonly redactionPreview = new Subject<boolean>();\n public readonly applyRedactToDocument = new Subject();\n public readonly clearAllRedactMarkers = new Subject();\n\n public readonly sidebarOpen = new BehaviorSubject(false);\n public readonly searchBarHidden = new BehaviorSubject(true);\n public readonly commentsPanelVisible = new BehaviorSubject(false);\n\n public readonly icp = icpEvents;\n\n\n /**\n * Reset the stateful behaviour subjects\n */\n public reset(): void {\n this.setCurrentPageSubject.next(1);\n this.zoomValueSubject.next(1);\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(false);\n this.showCommentSummary.next(false);\n }\n\n // Function to inform Observers that highlightMode has been enabled\n public toggleHighlightMode(): void {\n // Highlight and Draw states are mutually exclusive\n if (this.highlightModeSubject.getValue() === false) {\n this.drawModeSubject.next(false);\n this.highlightModeSubject.next(true);\n } else {\n this.highlightModeSubject.next(false);\n }\n }\n\n // Function to inform Observers that ToggleMode has been enabled\n public toggleDrawMode(): void {\n if (this.drawModeSubject.getValue() === false) {\n this.highlightModeSubject.next(false);\n this.drawModeSubject.next(true);\n } else {\n this.drawModeSubject.next(false);\n }\n }\n\n public rotate(angle: number): void {\n this.rotateSubject.next(angle);\n }\n\n public search(phrase: SearchOperation): void {\n this.searchSubject.next(phrase);\n }\n\n public getSearchResultsCount(): Observable<SearchResultsCount> {\n return this.searchResultsCountSubject.asObservable();\n }\n\n public zoom(value: number): void {\n this.zoomSubject.next(value);\n }\n\n public stepZoom(value: number): void {\n this.stepZoomSubject.next(value);\n }\n\n public getZoomValue(): Observable<number> {\n return this.zoomValueSubject.asObservable();\n }\n\n public getPageCount(): Observable<number> {\n return this.pageCountSubject.asObservable();\n }\n\n public print(): void {\n this.printSubject.next();\n }\n\n public download(): void {\n this.downloadSubject.next();\n }\n\n public setPage(value: number): void {\n this.setCurrentPageSubject.next(value);\n }\n\n public incrementPage(value: number): void {\n this.changePageByDeltaSubject.next(value);\n }\n\n public getCurrentPageNumber(): Observable<number> {\n return this.setCurrentPageInputValueSubject.asObservable();\n }\n\n public getShowCommentSummary(): Observable<boolean> {\n return this.showCommentSummary.asObservable();\n }\n\n public toggleCommentsSummary(value: boolean): void {\n this.showCommentSummary.next(value);\n }\n\n public saveRotation(): void {\n this.saveRotationSubject.next();\n }\n\n public toggleGrabNDrag(): void {\n this.grabNDrag.next(!this.grabNDrag.getValue());\n }\n\n toggleSideBar(toggle: boolean) {\n this.sidebarOpen.next(toggle);\n }\n\n public toggleRedactionMode(): void {\n this.redactionMode.next(!this.redactionMode.getValue());\n }\n\n public toggleRedactionPreview(viewMode: boolean): void {\n this.redactionPreview.next(viewMode);\n }\n\n public unmarkAll(): void {\n this.clearAllRedactMarkers.next();\n }\n\n public applyRedactionToDocument(): void {\n this.applyRedactToDocument.next();\n }\n\n public toggleCommentsPanel(isVisible: boolean) {\n if (isVisible) {\n this.toggleParticipantsList(!isVisible);\n }\n this.commentsPanelVisible.next(isVisible);\n }\n\n public toggleParticipantsList(isVisible: boolean) {\n if (isVisible) {\n this.toggleCommentsPanel(!isVisible);\n }\n this.icp.participantsListVisible.next(isVisible);\n }\n}\n","import * as pdfjsViewer from 'pdfjs-dist/web/pdf_viewer';\nimport { ElementRef, Injectable } from '@angular/core';\nimport {DocumentLoadProgress, PageEvent, PdfJsWrapper} from './pdf-js-wrapper';\nimport { Subject } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Outline } from '../side-bar/outline-item/outline.model';\nimport { PdfPosition } from '../../../store/reducers/document.reducer';\n\n@Injectable({providedIn: 'root'})\nexport class PdfJsWrapperFactory {\n\n private linkService: pdfjsViewer.PDFLinkService;\n private eventBus: pdfjsViewer.EventBus;\n private pdfJsWrapper: PdfJsWrapper;\n\n constructor(private readonly toolbarEvents: ToolbarEventService) {\n this.linkService = new pdfjsViewer.PDFLinkService();\n this.eventBus = new pdfjsViewer.EventBus();\n }\n\n public create(container: ElementRef): PdfJsWrapper {\n const pdfFindController = new pdfjsViewer.PDFFindController({\n linkService: this.linkService,\n eventBus: this.eventBus\n });\n\n const pdfViewer = new pdfjsViewer.PDFViewer({\n container: container.nativeElement,\n linkService: this.linkService,\n findController: pdfFindController,\n eventBus: this.eventBus,\n imageResourcesPath: '/assets/images/',\n textLayerMode: 2\n });\n\n this.linkService.setViewer(pdfViewer);\n\n this.pdfJsWrapper = new PdfJsWrapper(\n pdfViewer,\n new pdfjsViewer.DownloadManager({}),\n this.toolbarEvents,\n new Subject<string>(),\n new Subject<DocumentLoadProgress>(),\n new Subject<any>(),\n new Subject<Outline>(),\n new Subject(),\n new Subject<PageEvent[]>(),\n new Subject<{ location: PdfPosition }>()\n );\n\n return this.pdfJsWrapper;\n }\n\n pdfWrapper() {\n return this.pdfJsWrapper;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintService {\n\n printDocumentNatively(url: string): void {\n const printWindow = window.open(url);\n printWindow.print();\n }\n\n printElementNatively(element: HTMLElement, width: number, height: number): void {\n const printWindow = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);\n\n printWindow.document.write(element.innerHTML);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","export enum ResponseType {\n SUCCESS = 'SUCCESS',\n FAILURE = 'FAILURE',\n UNSUPPORTED = 'UNSUPPORTED'\n}\n\nexport interface ExceptionDetail {\n httpResponseCode?: string;\n message?: string;\n}\n\nexport class ViewerException {\n exceptionType?: string;\n detail?: ExceptionDetail;\n\n constructor(exceptionType?: string, detail?: ExceptionDetail) {\n this.exceptionType = exceptionType;\n this.detail = detail;\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n@Injectable({providedIn: 'root'})\nexport class ToolbarButtonVisibilityService {\n\n public showPrint = false;\n public showDownload = false;\n public showNavigation = false;\n public showZoom = false;\n public showRotate = false;\n public showPresentationMode = false;\n public showRedact = false;\n public showOpenFile = false;\n public showBookmark = false;\n public showHighlightButton = false;\n public showDrawButton = false;\n public showSearchBar = false;\n public showSidebar = false;\n public showCommentSummary = false;\n public showGrabNDragButton = false;\n public showSaveRotationButton = false;\n\n /**\n * Reset the visibility of all buttons to false then set the value from the options\n */\n public setup(options: Partial<ToolbarButtonVisibilityService>): void {\n this.showPrint = false;\n this.showDownload = false;\n this.showNavigation = false;\n this.showZoom = false;\n this.showRotate = false;\n this.showPresentationMode = false;\n this.showRedact = false;\n this.showOpenFile = false;\n this.showBookmark = false;\n this.showHighlightButton = false;\n this.showDrawButton = false;\n this.showSearchBar = false;\n this.showSidebar = false;\n this.showCommentSummary = false;\n this.showGrabNDragButton = false;\n this.showSaveRotationButton = false;\n\n for (const key in options) {\n this[key] = options[key];\n }\n }\n}\n\n/**\n * Default toolbar state for the PDF viewer\n */\nexport const defaultPdfOptions = {\n showPrint: true,\n showDownload: true,\n showNavigation: true,\n showZoom: true,\n showRotate: true,\n showSearchBar: true,\n showSidebar: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showPresentationMode: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for the image viewer\n */\nexport const defaultImageOptions = {\n showPrint: true,\n showDownload: true,\n showZoom: true,\n showRotate: true,\n showGrabNDragButton: true,\n showCommentSummary: true,\n showRedact: true\n};\n\n/**\n * Default toolbar state for multimedia\n */\nexport const defaultMultimediaOptions = {\n showDownload: true\n};\n\n/**\n * Default toolbar state for unsupported media\n */\nexport const defaultUnsupportedOptions = {\n showDownload: true,\n showPrint: true\n};\n","import { Action } from '@ngrx/store';\nimport { PageEvent } from '../../viewers/pdf-viewer/pdf-js/pdf-js-wrapper';\nimport { Rotation } from '../../viewers/rotation-persist/rotation.model';\nimport { PdfPosition } from '../reducers/document.reducer';\n\nexport const SET_DOCUMENT_ID = '[Document] Set Document Id';\nexport const POSITION_UPDATED = '[Document] Position Updated';\nexport const ADD_PAGES = '[Document] Add Pages';\nexport const CONVERT = '[Document] Convert';\nexport const CONVERT_SUCCESS = '[Document] Convert Success';\nexport const CONVERT_FAIL = '[Document] Convert Fail';\nexport const CLEAR_CONVERT_DOC_URL = '[Document] Clear Convert Doc Url';\n\nexport const LOAD_ROTATION = '[Document] Load Rotation';\nexport const LOAD_ROTATION_SUCCESS = '[Document] Load Rotation Success';\nexport const LOAD_ROTATION_FAIL = '[Document] Load Rotation Fail';\nexport const SAVE_ROTATION = '[Document] Save Rotation';\nexport const SAVE_ROTATION_SUCCESS = '[Document] Save Rotation Success';\nexport const SAVE_ROTATION_FAIL = '[Document] Save Rotation Fail';\n\nexport class SetDocumentId implements Action {\n readonly type = SET_DOCUMENT_ID;\n constructor(public payload: string) { }\n}\n\nexport class AddPages implements Action {\n readonly type = ADD_PAGES;\n constructor(public payload: PageEvent[]) { }\n}\n\nexport class PdfPositionUpdate implements Action {\n readonly type = POSITION_UPDATED;\n constructor(public payload: PdfPosition) {}\n}\n\nexport class Convert implements Action {\n readonly type = CONVERT;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertSuccess implements Action {\n readonly type = CONVERT_SUCCESS;\n constructor(public payload: string ) {}\n}\n\nexport class ConvertFailure implements Action {\n readonly type = CONVERT_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class ClearConvertDocUrl implements Action {\n readonly type = CLEAR_CONVERT_DOC_URL;\n}\n\nexport class LoadRotation implements Action {\n readonly type = LOAD_ROTATION;\n constructor(public payload: string) {\n }\n}\n\nexport class LoadRotationSuccess implements Action {\n readonly type = LOAD_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class LoadRotationFailure implements Action {\n readonly type = LOAD_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport class SaveRotation implements Action {\n readonly type = SAVE_ROTATION;\n constructor(public payload: Rotation) {\n }\n}\n\nexport class SaveRotationSuccess implements Action {\n readonly type = SAVE_ROTATION_SUCCESS;\n constructor(public payload: { rotationAngle: number }) {\n }\n}\n\nexport class SaveRotationFailure implements Action {\n readonly type = SAVE_ROTATION_FAIL;\n constructor(public payload: Error) {\n }\n}\n\nexport type DocumentActions =\n | AddPages | SetDocumentId | Convert\n | ConvertSuccess | ConvertFailure | ClearConvertDocUrl\n | PdfPositionUpdate | LoadRotation | LoadRotationSuccess\n | LoadRotationFailure | SaveRotation | SaveRotationSuccess\n | SaveRotationFailure;\n","import { Action } from '@ngrx/store';\nimport {TagsModel} from '../../annotations/models/tags.model';\nexport const UPDATE_TAGS = '[Tags] Update Tags';\nexport const ADD_FILTER_TAGS = '[Tags] Add Filter Tags';\nexport const CLEAR_FILTER_TAGS = '[Tags] Clear Filter Tags';\n\nexport class UpdateTags implements Action {\n readonly type = UPDATE_TAGS;\n constructor(public payload: {tags: TagsModel[]; annoId: string}) {}\n}\n\nexport class AddFilterTags implements Action {\n readonly type = ADD_FILTER_TAGS;\n constructor(public payload: {[id: string]: boolean}) {}\n}\n\nexport class ClearFilterTags implements Action {\n readonly type = CLEAR_FILTER_TAGS;\n}\n\n\nexport type TagsActions =\n | UpdateTags\n | AddFilterTags\n | ClearFilterTags;\n","import { Action } from '@ngrx/store';\nimport { IcpParticipant, IcpSession } from '../../icp/icp.interfaces';\n\nexport const SET_CASE_ID = '[Icp] Set Case Id';\nexport const LOAD_ICP_SESSION = '[Icp] Load Session';\nexport const LOAD_ICP_SESSION_FAIL = '[Icp] Load Session Failure';\nexport const JOIN_ICP_SOCKET_SESSION = '[Icp] Join Socket Session';\nexport const ICP_SOCKET_SESSION_JOINED = '[Icp] Socket Session Joined';\nexport const LEAVE_ICP_SOCKET_SESSION = '[Icp] Leave Socket Session';\nexport const ICP_PRESENTER_UPDATED = '[Icp] Presenter Updated';\nexport const ICP_PARTICIPANT_LIST_UPDATED = '[Icp] Participant List Updated';\n\nexport class SetCaseId implements Action {\n readonly type = SET_CASE_ID;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSession implements Action {\n readonly type = LOAD_ICP_SESSION;\n constructor(public payload: string) {}\n}\n\nexport class LoadIcpSessionFailure implements Action {\n readonly type = LOAD_ICP_SESSION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class JoinIcpSocketSession implements Action {\n readonly type = JOIN_ICP_SOCKET_SESSION;\n constructor(public payload: { username: string, session: IcpSession }) {}\n}\n\nexport class IcpSocketSessionJoined implements Action {\n readonly type = ICP_SOCKET_SESSION_JOINED;\n constructor(public payload: { session: IcpSession, participantInfo: { client: IcpParticipant, presenter: IcpParticipant } }) {}\n}\n\nexport class LeaveIcpSocketSession implements Action {\n readonly type = LEAVE_ICP_SOCKET_SESSION;\n constructor() {}\n}\n\nexport class IcpPresenterUpdated implements Action {\n readonly type = ICP_PRESENTER_UPDATED;\n constructor(public payload: IcpParticipant) {}\n}\n\nexport class IcpParticipantListUpdated implements Action {\n readonly type = ICP_PARTICIPANT_LIST_UPDATED;\n constructor(public payload: any) {}\n}\n\nexport type IcpActions =\n | SetCaseId\n | LoadIcpSession\n | LoadIcpSessionFailure\n | JoinIcpSocketSession\n | IcpSocketSessionJoined\n | LeaveIcpSocketSession\n | IcpPresenterUpdated\n | IcpParticipantListUpdated;\n","import * as fromActions from '../actions/document.actions';\n\nexport interface DocumentState {\n convertedDocument: {\n url: string;\n error: string;\n };\n documentId: string;\n pdfPosition: PdfPosition;\n pages: {[id: string]: DocumentPages};\n hasDifferentPageSize: boolean;\n rotation: number;\n rotationLoaded: boolean;\n loaded: boolean;\n loading: boolean;\n}\n\nexport interface DocumentPages {\n numberOfPages: number;\n styles: { left: number, height: number, width: number };\n scaleRotation: { scale: string; rotation: string };\n viewportScale: number;\n}\n\nexport interface PdfPosition {\n pageNumber: number;\n scale: number;\n top: number;\n left: number;\n rotation: number;\n}\n\nexport const initialDocumentState: DocumentState = {\n convertedDocument: undefined,\n documentId: undefined,\n pdfPosition: undefined,\n pages: {},\n hasDifferentPageSize: false,\n rotation: undefined,\n rotationLoaded: false,\n loading: false,\n loaded: false\n};\n\nexport function docReducer (state = initialDocumentState,\n action: fromActions.DocumentActions): DocumentState {\n\n switch (action.type) {\n\n case fromActions.CONVERT_SUCCESS: {\n const convertedDocument = {\n url: action.payload,\n error: undefined\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CONVERT_FAIL: {\n const convertedDocument = {\n url: undefined,\n error: action.payload\n };\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.CLEAR_CONVERT_DOC_URL: {\n const convertedDocument = undefined;\n return {\n ...state,\n convertedDocument\n };\n }\n\n case fromActions.LOAD_ROTATION: {\n return {\n ...state,\n rotationLoaded: false\n };\n }\n\n case fromActions.LOAD_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata ? metadata.rotationAngle : 0;\n return {\n ...state,\n rotation,\n rotationLoaded: true\n };\n }\n\n case fromActions.LOAD_ROTATION_FAIL: {\n return {\n ...state,\n rotation: 0,\n rotationLoaded: true\n };\n }\n\n case fromActions.SAVE_ROTATION_SUCCESS: {\n const metadata = action.payload;\n const rotation = metadata.rotationAngle;\n return {\n ...state,\n rotation\n };\n }\n\n case fromActions.SET_DOCUMENT_ID : {\n return {\n ...state,\n documentId: action.payload\n };\n }\n\n case fromActions.ADD_PAGES: {\n const payload = action.payload;\n let pages = {};\n let pageHeight;\n let pageWidth;\n let hasDifferentPageSize = state.hasDifferentPageSize;\n payload.forEach(page => {\n if (!hasDifferentPageSize && pageHeight && pageWidth &&\n (pageHeight !== page.div['scrollHeight'] || pageWidth !== page.div['scrollWidth'])) {\n hasDifferentPageSize = true;\n } else {\n pageHeight = page.div['scrollHeight'];\n pageWidth = page.div['scrollWidth'];\n }\n const styles = {\n left: page.div['offsetLeft'],\n height: page.div['scrollHeight'],\n width: page.div['scrollWidth']\n };\n\n const scaleRotation = {\n scale: page.scale,\n rotation: page.rotation\n };\n\n const p = {\n styles,\n scaleRotation,\n viewportScale: page.viewportScale\n };\n\n pages = {\n ...pages,\n [page.id]: p\n };\n\n });\n return {\n ...state,\n pages,\n hasDifferentPageSize\n };\n }\n\n case fromActions.POSITION_UPDATED: {\n const pdfPosition = action.payload;\n return {\n ...state,\n pdfPosition\n };\n }\n }\n return state;\n}\nexport const getDocPages = (state: DocumentState) => state.pages;\nexport const getDocId = (state: DocumentState) => state.documentId;\nexport const getPdfPos = (state: DocumentState) => state.pdfPosition;\nexport const getHasDifferentPageSizes = (state: DocumentState) => state.hasDifferentPageSize;\nexport const getRotation = (state: DocumentState) => state.rotation;\nexport const rotationLoaded = (state: DocumentState) => state.rotationLoaded;\nexport const getConvertedDocument = (state: DocumentState) => state.convertedDocument;\n","import { Action } from '@ngrx/store';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { Filters } from '../models/filters.interface';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\n\nexport const LOAD_ANNOTATION_SET = '[Annotations] Load Annotation Set';\nexport const LOAD_ANNOTATION_SET_SUCCESS = '[Annotations] Load Annotation Set Success';\nexport const LOAD_ANNOTATION_SET_FAIL = '[Annotations] Load Annotation Set Fail';\n\nexport const SAVE_ANNOTATION = '[Annotations] Save Annotation';\nexport const SAVE_ANNOTATION_SUCCESS = '[Annotations] Save Annotation Success';\nexport const SAVE_ANNOTATION_FAIL = '[Annotations] Save Annotation Fail';\nexport const ADD_OR_EDIT_COMMENT = '[Annotations] Add or Edit Comment';\n\nexport const DELETE_ANNOTATION = '[Annotations] Delete Annotation';\nexport const DELETE_ANNOTATION_SUCCESS = '[Annotations] Delete Annotation Success';\nexport const DELETE_ANNOTATION_FAIL = '[Annotations] Delete Annotation Fail';\n\nexport const SELECT_ANNOTATION = '[Annotations] Select Annotation';\nexport const SEARCH_COMMENT = '[Comments] Search Comments';\nexport const APPLY_COMMENT_SUMMARY_FILTER = '[Comments] Apply Comment Summary Filter';\nexport const CLEAR_COMMENT_SUMMARY_FILTER = '[Comments] Clear Comment Summary Filter';\n\nexport class LoadAnnotationSet implements Action {\n readonly type = LOAD_ANNOTATION_SET;\n constructor(public payload: string) { }\n}\n\nexport class LoadAnnotationSetSucess implements Action {\n readonly type = LOAD_ANNOTATION_SET_SUCCESS;\n constructor(public payload: { status: number, body: AnnotationSet }) { }\n}\n\nexport class LoadAnnotationSetFail implements Action {\n readonly type = LOAD_ANNOTATION_SET_FAIL;\n constructor(public payload: { status: number, body: any }) { }\n}\n\nexport class SaveAnnotation implements Action {\n readonly type = SAVE_ANNOTATION;\n constructor(public payload: Annotation) { }\n}\n\nexport class SaveAnnotationSuccess implements Action {\n readonly type = SAVE_ANNOTATION_SUCCESS;\n constructor(public payload: any) { }\n}\n\nexport class SaveAnnotationFail implements Action {\n readonly type = SAVE_ANNOTATION_FAIL;\n constructor(public payload: Error) { }\n}\n\nexport class AddOrEditComment implements Action {\n readonly type = ADD_OR_EDIT_COMMENT;\n constructor(public payload: Comment) { }\n}\n\nexport class DeleteAnnotation implements Action {\n readonly type = DELETE_ANNOTATION;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationSuccess implements Action {\n readonly type = DELETE_ANNOTATION_SUCCESS;\n constructor(public payload: string) { }\n}\n\nexport class DeleteAnnotationFail implements Action {\n readonly type = DELETE_ANNOTATION_FAIL;\n constructor(public payload: Error) {}\n}\n\nexport class SelectedAnnotation implements Action {\n readonly type = SELECT_ANNOTATION;\n constructor(public payload: SelectionAnnotation) {}\n}\n\nexport class SearchComment implements Action {\n readonly type = SEARCH_COMMENT;\n constructor(public payload: string) {}\n}\n\nexport class ApplyCommentSymmaryFilter implements Action {\n readonly type = APPLY_COMMENT_SUMMARY_FILTER;\n constructor(public payload: Filters) {}\n}\n\nexport class ClearCommentSummaryFilters implements Action {\n readonly type = CLEAR_COMMENT_SUMMARY_FILTER;\n}\n\nexport type AnnotationsActions =\n | LoadAnnotationSet\n | LoadAnnotationSetSucess\n | LoadAnnotationSetFail\n | SaveAnnotation\n | SaveAnnotationSuccess\n | SaveAnnotationFail\n | AddOrEditComment\n | DeleteAnnotation\n | DeleteAnnotationSuccess\n | DeleteAnnotationFail\n | SelectedAnnotation\n | SearchComment\n | ApplyCommentSymmaryFilter\n | ClearCommentSummaryFilters;\n","import { Annotation } from '../annotations/annotation-set/annotation-view/annotation.model';\nimport moment from 'moment-timezone';\nimport { Redaction } from '../redaction/services/redaction.model';\nimport { Filters } from './models/filters.interface';\nimport { Comment } from '../annotations/comment-set/comment/comment.model';\n\n/*\n @dynamic\n marking class as dynamic to stop compiler throwing error for lambda in static function\n see https://github.com/angular/angular/issues/19698#issuecomment-338340211\n */\nexport class StoreUtils {\n\n static groupByKeyEntities(annotations, key): {[id: string]: any[]} {\n return annotations.reduce((h, obj) =>\n Object.assign(h, { [obj[key]]: ( h[obj[key]] || [] ).concat(obj) }), {});\n }\n\n static generateCommentsEntities(annotations): {[id: string]: Comment} {\n return annotations.reduce(\n (commentEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n if (annotation.comments.length) {\n const comment = {\n ...annotation.comments[0] || '',\n tags: [...annotation.tags || []]\n };\n return {\n ...commentEntities,\n [annotation.id]: comment\n };\n }\n return {\n ...commentEntities\n };\n }, {});\n }\n\n static genTagNameEntities(annotations) {\n const filterAnnoWithoutCommentsTags = annotations.filter(a => (a.comments.length && a.tags.length));\n const allTags = filterAnnoWithoutCommentsTags.map(anno => this.groupByKeyEntities(anno.tags, 'name'));\n const groupedByName = allTags.reduce(\n (tagEntitiy: { [id: string]: Annotation }, tagItem) => {\n return {\n ...tagEntitiy,\n ...tagItem\n };\n }, {});\n\n return this.genNameEnt(annotations, groupedByName);\n }\n\n static genNameEnt(annos, groupedByName) {\n return Object.keys(groupedByName).reduce(\n (tagNameEnt, key) => {\n const readyAnno = annos.filter(anno => anno.tags.find(tag => tag.name === key))\n .map(anno => anno.id)\n .reduce((obj: {[id: string]: string}, anno: string) => ({ ...obj, [anno]: anno }), {});\n\n return {\n ...tagNameEnt,\n [key]: readyAnno\n };\n }, {});\n\n }\n\n static generateAnnotationEntities(anno): {[id: string]: Annotation} {\n return anno.reduce(\n (annoEntities: { [id: string]: Annotation }, annotation: Annotation) => {\n const annot = {\n ...annotation,\n positionTop: annotation.rectangles[0].y // todo remove this\n };\n return {\n ...annoEntities,\n [annotation.id]: annot\n };\n }, {});\n }\n\n static generateRedactionEntities(redactions: Redaction[]): { [id: string]: Redaction } {\n return redactions.reduce(\n (redactEntities: { [id: string]: Redaction }, redaction: Redaction) => {\n return {\n ...redactEntities,\n [redaction.redactionId]: redaction\n };\n }, {});\n }\n\n static resetCommentEntSelect(ent: { [id: string]: Comment }) {\n return Object.keys(ent).reduce((object, key) => {\n object[key] = {\n ...ent[key],\n editable: false,\n selected: false\n };\n return object;\n }, {});\n }\n\n static filterCommentsSummary(comments: Array<Comment>, filters: Filters) {\n if (Object.keys(filters).length) {\n const tagFilterApplied = Object.keys(filters.tagFilters)\n .filter(key => filters.tagFilters[key] === true).length;\n const dateFilterApplied = (filters.dateRangeFrom || filters.dateRangeTo);\n const filteredComments = comments.filter(comment => {\n let hasTagFilter = false;\n let hasDateFilter = false;\n // check tags\n if (filters.hasOwnProperty('tagFilters')) {\n Object.keys(filters.tagFilters).forEach(filter => {\n const label = filters.tagFilters[filter];\n if (label) {\n return comment.tags.forEach(tag => {\n if (tag.name === filter && !hasTagFilter) {\n hasTagFilter = true;\n }\n });\n }});\n }\n // check for dates\n if (dateFilterApplied) {\n const commentDate = moment(comment.lastModifiedDate);\n const dateFrom = filters.dateRangeFrom !== null ? moment(filters.dateRangeFrom) : undefined;\n const dateTo = filters.dateRangeTo !== null ? moment(filters.dateRangeTo) : undefined;\n\n if (dateTo && dateFrom) {\n if (commentDate > dateFrom && commentDate < dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateTo && !dateFrom) {\n if (commentDate <= dateTo) {\n hasDateFilter = true;\n }\n }\n if (dateFrom && !dateTo) {\n if (commentDate > dateFrom) {\n hasDateFilter = true;\n }\n }\n }\n\n return (hasTagFilter || hasDateFilter);\n });\n return (tagFilterApplied || dateFilterApplied) ? filteredComments : comments;\n } else {\n return comments;\n }\n }\n}\n","import uuid from 'uuid/v4';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../annotations/comment-set/comment/comment.model';\nimport { StoreUtils } from '../store-utils';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { Filters } from '../models/filters.interface';\n\nexport interface AnnotationSetState {\n annotationSet: any;\n annotationEntities: {[id: string]: any};\n annotationPageEntities: {[id: string]: Annotation[]};\n commentEntities: {[id: string]: Comment};\n selectedAnnotation: SelectionAnnotation;\n commentSearchQueries: { commentSearch: string };\n commentSummaryFilters: {hasFilter: boolean; filters: Filters};\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialState: AnnotationSetState = {\n annotationSet: {},\n annotationEntities: {},\n commentEntities: {},\n annotationPageEntities: {},\n selectedAnnotation: null,\n commentSearchQueries: {commentSearch: ''},\n commentSummaryFilters: {hasFilter: false, filters: {}},\n loading: false,\n loaded: false,\n};\n\nexport function reducer (\n state = initialState,\n action: fromAnnotations.AnnotationsActions\n): AnnotationSetState {\n switch (action.type) {\n\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n const annotationSet = {\n ...state.annotationSet,\n documentId: action.payload\n };\n return {\n ...initialState,\n annotationSet,\n loading: true\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS:\n case fromAnnotations.LOAD_ANNOTATION_SET_FAIL: {\n const annotationSet = action.payload.status === 200 ? action.payload.body :\n {\n ...state.annotationSet,\n annotations: [],\n id: uuid()\n };\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotationSet.annotations);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotationSet.annotations, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotationSet.annotations);\n return {\n ...state,\n annotationSet,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const anno = action.payload;\n const annEntities = {\n ...state.annotationEntities,\n [anno.id]: anno\n };\n const annotArray = Object.keys(annEntities).map(key => annEntities[key]);\n const annotationEntities = StoreUtils.generateAnnotationEntities(annotArray);\n const annotationPageEntities = StoreUtils.groupByKeyEntities(annotArray, 'page');\n const commentEntities = StoreUtils.generateCommentsEntities(annotArray);\n const selectedAnnotation = {\n ...state.selectedAnnotation,\n annotationId : anno.id,\n editable: false\n };\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities,\n selectedAnnotation,\n loading: false,\n loaded: true\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const page = state.annotationEntities[id].page;\n const annotationEntities = {\n ...state.annotationEntities\n };\n delete annotationEntities[id];\n const pageAnnotationsRemoved = [\n ...state.annotationPageEntities[page].filter(anno => anno.id !== id)\n ];\n const annotationPageEntities = {\n ...state.annotationPageEntities,\n [page]: pageAnnotationsRemoved\n };\n const commentEntities = {\n ...state.commentEntities\n };\n if (state.commentEntities[id]) {\n delete commentEntities[id];\n }\n return {\n ...state,\n annotationEntities,\n annotationPageEntities,\n commentEntities\n };\n }\n\n case fromAnnotations.ADD_OR_EDIT_COMMENT: {\n const comment = {\n [action.payload.annotationId]: action.payload\n };\n const comments = {\n ...state.commentEntities,\n ...comment\n };\n return {\n ...state,\n commentEntities: comments\n };\n }\n\n case fromAnnotations.SELECT_ANNOTATION: {\n const payload = action.payload;\n const commentEntity = {\n ...state.commentEntities[payload.annotationId],\n editable: payload.editable,\n selected: payload.selected\n };\n\n const resetCommentEntSelect = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n\n const commentEntities = payload.annotationId && state.commentEntities[payload.annotationId] ? {\n ...resetCommentEntSelect,\n [payload.annotationId]: commentEntity\n } : {...resetCommentEntSelect};\n\n return {\n ...state,\n commentEntities,\n selectedAnnotation: action.payload\n };\n }\n\n case fromAnnotations.SEARCH_COMMENT: {\n const commentSearchQueries = {\n ...state.commentSearchQueries,\n commentSearch: action.payload\n };\n\n const commentEntities = StoreUtils.resetCommentEntSelect({...state.commentEntities});\n return {\n ...state,\n commentEntities,\n commentSearchQueries\n };\n }\n\n case fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER: {\n const payload = action.payload;\n const hasTagFilter = () => {\n let isFiltered = false;\n if (payload.tagFilters) {\n Object.keys(payload.tagFilters).map(filter => {\n if (payload.tagFilters[filter] && !isFiltered) {\n isFiltered = true;\n }\n });\n }\n return isFiltered;\n };\n const hasFilter = (hasTagFilter() || !!payload.dateRangeFrom || !!payload.dateRangeTo);\n const commentSummaryFilters = {\n hasFilter,\n filters: payload\n };\n return {\n ...state,\n commentSummaryFilters: commentSummaryFilters\n };\n }\n\n case fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER: {\n\n return {\n ...state,\n commentSummaryFilters : {...initialState.commentSummaryFilters}\n };\n }\n }\n\n\n return state;\n}\n\nexport const getAnnoSet = (state: AnnotationSetState) => state.annotationSet;\nexport const getCommentEnts = (state: AnnotationSetState) => state.commentEntities;\nexport const getAnnoPageEnt = (state: AnnotationSetState) => state.annotationPageEntities;\nexport const getAnnoEnt = (state: AnnotationSetState) => state.annotationEntities;\nexport const getSelectedAnno = (state: AnnotationSetState) => state.selectedAnnotation;\nexport const commentSearchQ = (state: AnnotationSetState) => state.commentSearchQueries;\nexport const getSummaryFilters = (state: AnnotationSetState) => state.commentSummaryFilters;\n","import * as fromAnnotations from '../actions/annotation.actions';\nimport * as fromTags from '../actions/tag.actions';\nimport {StoreUtils} from '../store-utils';\nimport {Annotation} from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport interface TagsState {\n tagNameEnt: {[id: string]: string[]};\n filteredComments: {[id: string]: string[]};\n filteredPageEntities: {[id: string]: Annotation[]};\n annotations: Annotation[];\n formFilterState: {[id: string]: boolean};\n filters: string[];\n}\n\nexport const initialTagState: TagsState = {\n tagNameEnt: {},\n annotations: [],\n filteredPageEntities: {},\n filteredComments: {},\n formFilterState: {},\n filters: []\n};\n\nexport function tagsReducer (\n state = initialTagState,\n action: fromAnnotations.AnnotationsActions | fromTags.TagsActions\n): TagsState {\n switch (action.type) {\n case fromAnnotations.LOAD_ANNOTATION_SET: {\n\n return {\n ...state,\n ...initialTagState\n };\n }\n case fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS: {\n const annotations = action.payload.body.annotations;\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n tagNameEnt,\n annotations\n };\n }\n\n case fromAnnotations.SAVE_ANNOTATION_SUCCESS: {\n const payload = action.payload;\n\n const anno = [...state.annotations].filter(a => a.id !== payload.id) || [];\n const annotations = [...anno, payload];\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n return {\n ...state,\n annotations,\n tagNameEnt\n };\n }\n\n case fromAnnotations.DELETE_ANNOTATION_SUCCESS: {\n const id = action.payload;\n const annotations = [...state.annotations].filter(a => a.id !== id);\n const tagNameEnt = StoreUtils.genTagNameEntities(annotations);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n const filteredComments = {\n ...state.filteredComments\n };\n delete filteredComments[id];\n return {\n ...state,\n annotations,\n tagNameEnt,\n filteredComments,\n filteredPageEntities,\n filters: []\n };\n }\n\n\n case fromTags.ADD_FILTER_TAGS: {\n const formFilterState = action.payload;\n\n const filters = Object.keys(formFilterState).reduce((arr: string[], key: string) => {\n return formFilterState[key] ? [...arr, key] : arr;\n }, []);\n\n const filteredComments = filters.reduce((obj: {[id: string]: any}, f) => {\n return {\n ...obj,\n ...state.tagNameEnt[f]\n };\n }, {});\n\n const annotations = Object.keys(filteredComments).map(key => state.annotations.filter(a => a.id === key)[0]);\n const filteredPageEntities = StoreUtils.groupByKeyEntities(annotations, 'page');\n return {\n ...state,\n filters,\n filteredComments,\n filteredPageEntities,\n };\n }\n\n case fromTags.CLEAR_FILTER_TAGS: {\n return {\n ...state,\n filters: [],\n filteredComments: {},\n filteredPageEntities: {},\n };\n }\n\n }\n\n return state;\n}\n\nexport const getTagNameEnt = (state: TagsState) => state.tagNameEnt;\nexport const getFilters = (state: TagsState) => state.filters;\nexport const getFilteredComments = (state: TagsState) => state.filteredComments;\nexport const getFilteredPageEnt = (state: TagsState) => state.filteredPageEntities;\n","import { Action } from '@ngrx/store';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const LOAD_BOOKMARKS = '[Bookmarks] Load Bookmarks';\nexport const LOAD_BOOKMARKS_SUCCESS = '[Bookmarks] Load Bookmarks Success';\nexport const LOAD_BOOKMARKS_FAIL = '[Bookmarks] Load Bookmarks Failure';\nexport const CREATE_BOOKMARK = '[Bookmarks] Create Bookmark';\nexport const CREATE_BOOKMARK_SUCCESS = '[Bookmarks] Create Bookmark Success';\nexport const CREATE_BOOKMARK_FAIL = '[Bookmarks] Create Bookmark Failure';\nexport const DELETE_BOOKMARK = '[Bookmarks] Delete Bookmark';\nexport const DELETE_BOOKMARK_SUCCESS = '[Bookmarks] Delete Bookmark Success';\nexport const DELETE_BOOKMARK_FAIL = '[Bookmarks] Delete Bookmark Failure';\nexport const MOVE_BOOKMARK = '[Bookmarks] Move Bookmark';\nexport const MOVE_BOOKMARK_SUCCESS = '[Bookmarks] Move Bookmark Success';\nexport const MOVE_BOOKMARK_FAIL = '[Bookmarks] Move Bookmark Failure';\nexport const UPDATE_BOOKMARK = '[Bookmarks] Update Bookmark';\nexport const UPDATE_BOOKMARK_SUCCESS = '[Bookmarks] Update Bookmark Success';\nexport const UPDATE_BOOKMARK_FAIL = '[Bookmarks] Update Bookmark Failure';\n\nexport class LoadBookmarks implements Action {\n readonly type = LOAD_BOOKMARKS;\n constructor() {}\n}\n\nexport class LoadBookmarksSuccess implements Action {\n readonly type = LOAD_BOOKMARKS_SUCCESS;\n constructor(public payload: { body: Bookmark[], status: number}) { }\n}\n\nexport class LoadBookmarksFailure implements Action {\n readonly type = LOAD_BOOKMARKS_FAIL;\n constructor(public payload: { body: any, status: number }) { }\n}\n\nexport class CreateBookmark implements Action {\n readonly type = CREATE_BOOKMARK;\n constructor(public payload: Bookmark) { }\n}\n\nexport class CreateBookmarkSuccess implements Action {\n readonly type = CREATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class CreateBookmarkFailure implements Action {\n readonly type = CREATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\nexport class DeleteBookmark implements Action {\n readonly type = DELETE_BOOKMARK;\n constructor(public payload: { deleted: string[], updated: Bookmark }) {}\n}\n\nexport class DeleteBookmarkSuccess implements Action {\n readonly type = DELETE_BOOKMARK_SUCCESS;\n constructor(public payload: string[]) {}\n}\n\nexport class DeleteBookmarkFailure implements Action {\n readonly type = DELETE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class MoveBookmark implements Action {\n readonly type = MOVE_BOOKMARK;\n constructor(public payload: Bookmark[]) {}\n}\n\nexport class MoveBookmarkSuccess implements Action {\n readonly type = MOVE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark[]) { }\n}\n\nexport class MoveBookmarkFailure implements Action {\n readonly type = MOVE_BOOKMARK_FAIL;\n constructor(public payload: string) {}\n}\n\nexport class UpdateBookmark implements Action {\n readonly type = UPDATE_BOOKMARK;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkSuccess implements Action {\n readonly type = UPDATE_BOOKMARK_SUCCESS;\n constructor(public payload: Bookmark) {}\n}\n\nexport class UpdateBookmarkFailure implements Action {\n readonly type = UPDATE_BOOKMARK_FAIL;\n constructor(public payload: Bookmark) {}\n}\n\n\nexport type BookmarksActions =\n | LoadBookmarks | LoadBookmarksSuccess | LoadBookmarksFailure\n | CreateBookmark | CreateBookmarkSuccess | CreateBookmarkFailure\n | DeleteBookmark | DeleteBookmarkSuccess | DeleteBookmarkFailure\n | UpdateBookmark | UpdateBookmarkSuccess | UpdateBookmarkFailure\n | MoveBookmark | MoveBookmarkSuccess | MoveBookmarkFailure;\n","import { Bookmark } from '../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\nexport const getBookmarkChildren = (bookmarks: Bookmark[]) => {\n if (bookmarks) {\n return bookmarks.reduce((childIds, bookmark) => {\n if (bookmark.children && bookmark.children.length > 0) {\n return [...childIds, bookmark.id, ...getBookmarkChildren(bookmark.children)];\n }\n return [...childIds, bookmark.id];\n }, []);\n } else {\n return [];\n }\n};\n\nexport const generateBookmarkEntities = (bookmarks: Bookmark[]): {[id: string]: Bookmark} => {\n return bookmarks.reduce(\n (bookmarkEntities, bookmark) =>\n Object.assign(bookmarkEntities, { [bookmark.id]: bookmark }),\n {});\n};\n\nconst indexEntities = (entities: { [id: string]: Bookmark }) => {\n const entityIds = Object.keys(entities);\n for (let index = 0; entityIds.length > 0; index++) {\n let keysToRemove = [];\n entityIds.forEach(key => {\n if (!entities[key].previous || !entityIds.includes(entities[key].previous.toString())) {\n entities[key].index = index;\n keysToRemove.push(key);\n }\n });\n keysToRemove.forEach(key => entityIds.splice(entityIds.indexOf(key), 1));\n keysToRemove = [];\n }\n};\n\nexport const generateBookmarkNodes = (entities: { [id: string]: Bookmark }) => {\n const bookmarkEntities = JSON.parse(JSON.stringify(entities));\n indexEntities(bookmarkEntities);\n return Object.keys(bookmarkEntities).reduce((nodes, bookmarkId) => {\n const bookmarkEntity = bookmarkEntities[bookmarkId];\n if (bookmarkEntity.parent) {\n const parentEntity = bookmarkEntities[bookmarkEntity.parent];\n if (!parentEntity.children) {\n parentEntity.children = [];\n }\n parentEntity.children[bookmarkEntity.index] = bookmarkEntity;\n } else {\n nodes[bookmarkEntity.index] = bookmarkEntity;\n }\n return nodes;\n }, []);\n};\n","import * as fromBookmarks from '../actions/bookmark.actions';\nimport { Bookmark } from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport { StoreUtils } from '../store-utils';\nimport { generateBookmarkEntities } from '../bookmarks-store-utils';\n\nexport interface BookmarksState {\n bookmarks: Bookmark[];\n bookmarkEntities: { [id: string]: Bookmark };\n bookmarkPageEntities: {[id: string]: any};\n editableBookmark: string;\n loaded: boolean;\n loading: boolean;\n}\n\nexport const initialBookmarksState: BookmarksState = {\n bookmarks: [],\n bookmarkEntities: {},\n bookmarkPageEntities: {},\n editableBookmark: undefined,\n loaded: false,\n loading: false\n};\n\nexport function bookmarksReducer (state = initialBookmarksState,\n action: fromBookmarks.BookmarksActions): BookmarksState {\n\n switch (action.type) {\n\n case fromBookmarks.LOAD_BOOKMARKS: {\n return {\n ...state,\n loading: true\n };\n }\n\n case fromBookmarks.LOAD_BOOKMARKS_SUCCESS:\n case fromBookmarks.LOAD_BOOKMARKS_FAIL: {\n const bookmarks = action.payload.status === 200 ? action.payload.body : [];\n const bookmarkEntities = generateBookmarkEntities(bookmarks);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarks, 'pageNumber');\n\n return {\n ...state,\n bookmarks,\n bookmarkEntities,\n bookmarkPageEntities,\n loaded: true\n };\n }\n\n case fromBookmarks.CREATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: bookmark,\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = bookmark.id;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.MOVE_BOOKMARK_SUCCESS: {\n const movedBookmarks = generateBookmarkEntities(action.payload);\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n ...movedBookmarks\n };\n return {\n ...state,\n bookmarkEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.DELETE_BOOKMARK_SUCCESS: {\n const bookmarkIds: string[] = action.payload;\n const bookmarkEntities = { ...state.bookmarkEntities };\n const bookmarkPageEntities = { ...state.bookmarkPageEntities };\n const removeBookmarksByPage: {[pageNumber: number]: string[]} = {};\n bookmarkIds.forEach(bookmarkId => {\n if (removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] !== undefined &&\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].length > 0) {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber].push(bookmarkId);\n } else {\n removeBookmarksByPage[bookmarkEntities[bookmarkId].pageNumber] = [bookmarkId];\n }\n delete bookmarkEntities[bookmarkId];\n });\n\n Object.entries(removeBookmarksByPage).forEach(\n ([pageNumber, bmrkIds]) => {\n bookmarkPageEntities[pageNumber] = bookmarkPageEntities[pageNumber].filter(bookmarkId => bmrkIds.includes(bookmarkId));\n }\n );\n\n return {\n ...state,\n bookmarkEntities,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n\n case fromBookmarks.UPDATE_BOOKMARK_SUCCESS: {\n const bookmark: Bookmark = action.payload;\n const bookmarkEntities = {\n ...state.bookmarkEntities,\n [bookmark.id]: { ...bookmark }\n };\n const bookmarkArray = Object.keys(bookmarkEntities).map(key => bookmarkEntities[key]);\n const bookmarkPageEntities = StoreUtils.groupByKeyEntities(bookmarkArray, 'pageNumber');\n const editableBookmark = undefined;\n return {\n ...state,\n bookmarkEntities,\n editableBookmark,\n bookmarkPageEntities,\n loading: false,\n loaded: true\n };\n }\n }\n return state;\n}\n\nexport const getBookmarks = (state: BookmarksState) => state.bookmarks;\nexport const getBookmarkEnts = (state: BookmarksState) => state.bookmarkEntities;\nexport const getBookmarkPageEnt = (state: BookmarksState) => state.bookmarkPageEntities;\nexport const getEditBookmark = (state: BookmarksState) => state.editableBookmark;\n","import { Action } from '@ngrx/store';\nimport { Redaction } from '../../redaction/services/redaction.model';\nimport { Annotation } from '../../annotations/annotation-set/annotation-view/annotation.model';\n\nexport const LOAD_REDACTIONS = '[Redaction] Load Redaction';\nexport const LOAD_REDACTION_SUCCESS = '[Redaction] Load Redaction Success';\nexport const LOAD_REDACTION_FAIL = '[Redaction] Load Redaction Fail';\n\nexport const SAVE_REDACTION = '[Redaction] Save Redaction';\nexport const SAVE_REDACTION_SUCCESS = '[Redaction] Save Redaction Success';\nexport const SAVE_REDACTION_FAIL = '[Redaction] Save Redaction Fail';\n\nexport const DELETE_REDACTION = '[Redaction] Delete Redaction';\nexport const DELETE_REDACTION_SUCCESS = '[Redaction] Delete Redaction Success';\nexport const DELETE_REDACTION_FAIL = '[Redaction] Delete Redaction Fail';\n\nexport const SELECT_REDACTION = '[Redaction] Select Redaction';\n\nexport const REDACT = '[Redaction] Redact';\nexport const REDACT_SUCCESS = '[Redaction] Redact Success';\nexport const REDACT_FAIL = '[Redaction] Redact Fail';\nexport const RESET_REDACTED_DOCUMENT = '[Redaction] Reset Redacted Document';\n\nexport const UNMARK_ALL = '[Redaction] Unmark All';\nexport const UNMARK_ALL_SUCCESS = '[Redaction] Unmark All Success';\n\n\nexport class LoadRedactions implements Action {\n readonly type = LOAD_REDACTIONS;\n constructor(public payload: any) {}\n}\n\nexport class LoadRedactionSuccess implements Action {\n readonly type = LOAD_REDACTION_SUCCESS;\n constructor(public payload: Redaction[]) {}\n}\n\nexport class LoadRedactionFailure implements Action {\n readonly type = LOAD_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SaveRedaction implements Action {\n readonly type = SAVE_REDACTION;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionSuccess implements Action {\n readonly type = SAVE_REDACTION_SUCCESS;\n constructor(public payload: Redaction) {}\n}\n\nexport class SaveRedactionFailure implements Action {\n readonly type = SAVE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedaction implements Action {\n readonly type = DELETE_REDACTION;\n constructor(public payload: Annotation) {}\n}\n\nexport class DeleteRedactionSuccess implements Action {\n readonly type = DELETE_REDACTION_SUCCESS;\n constructor(public payload: any) {}\n}\n\nexport class DeleteRedactionFailure implements Action {\n readonly type = DELETE_REDACTION_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class SelectRedaction implements Action {\n readonly type = SELECT_REDACTION;\n constructor(public payload: any) {}\n}\n\nexport class Redact implements Action {\n readonly type = REDACT;\n constructor(public payload: { redactions: Redaction[], documentId: string }) {}\n}\n\nexport class RedactSuccess implements Action {\n readonly type = REDACT_SUCCESS;\n constructor(public payload: { blob: Blob, filename: string }) {}\n}\n\nexport class RedactFailure implements Action {\n readonly type = REDACT_FAIL;\n constructor(public payload: any) {}\n}\n\nexport class ResetRedactedDocument implements Action {\n readonly type = RESET_REDACTED_DOCUMENT;\n}\n\n\nexport class UnmarkAll implements Action {\n readonly type = UNMARK_ALL;\n constructor(public payload: string) {}\n}\n\nexport class UnmarkAllSuccess implements Action {\n readonly type = UNMARK_ALL_SUCCESS;\n}\n\nexport type RedactionActions =\n | LoadRedactions | LoadRedactionSuccess | LoadRedactionFailure\n | SaveRedaction | SaveRedactionSuccess | SaveRedactionFailure\n | DeleteRedaction | DeleteRedactionSuccess | DeleteRedactionFailure\n | SelectRedaction\n | Redact | RedactSuccess | RedactFailure | ResetRedactedDocument\n | UnmarkAll | UnmarkAllSuccess;\n","import * as fromRedaction from '../actions/redaction.actions';\nimport * as fromAnnotations from '../actions/annotation.actions';\nimport {StoreUtils} from '../store-utils';\nimport {SelectionAnnotation} from '../../annotations/models/event-select.model';\nimport { Redaction } from '../../redaction/services/redaction.model'; // todo rename\n\n\nexport interface RedactionState {\n redactionEntities: { [id: string]: Redaction };\n redactionPageEntities: { [id: string]: any };\n selectedRedaction: SelectionAnnotation | {};\n redactedDocumentInfo: { blob: Blob, filename: string };\n documentId: string;\n}\n\nexport const initialRedactionState: RedactionState = {\n redactionEntities: {},\n redactionPageEntities: {},\n selectedRedaction: {},\n redactedDocumentInfo: undefined,\n documentId: undefined\n};\n\nexport function redactionReducer (\n state = initialRedactionState,\n action: fromRedaction.RedactionActions | fromAnnotations.AnnotationsActions\n): RedactionState {\n switch (action.type) {\n\n case fromRedaction.LOAD_REDACTIONS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n\n case fromRedaction.LOAD_REDACTION_SUCCESS: {\n const payload = action.payload;\n if (payload) {\n const redactionEntities = StoreUtils.generateRedactionEntities(payload);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(payload, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n return {\n ...state\n };\n }\n\n case fromRedaction.SAVE_REDACTION_SUCCESS: {\n const { payload } = action;\n const redactionEntities = {\n ...state.redactionEntities,\n [payload.redactionId]: payload\n };\n const redactionArray = Object.keys(redactionEntities).map(key => redactionEntities[key]);\n const redactionPageEntities = StoreUtils.groupByKeyEntities(redactionArray, 'page');\n return {\n ...state,\n redactionEntities,\n redactionPageEntities\n };\n }\n\n case fromRedaction.SELECT_REDACTION:\n case fromAnnotations.SELECT_ANNOTATION: {\n return {\n ...state,\n selectedRedaction: action.payload\n };\n }\n\n case fromRedaction.DELETE_REDACTION_SUCCESS: {\n const page = action.payload.page;\n const id = action.payload.redactionId;\n const redactionEntities = {\n ...state.redactionEntities\n };\n delete redactionEntities[id];\n const pageRedactionRemoved = [\n ...state.redactionPageEntities[page].filter(redaction => redaction.redactionId !== id)\n ];\n const redactionPageEntities = {\n ...state.redactionPageEntities,\n [page]: pageRedactionRemoved\n };\n\n return {\n ...state,\n redactionPageEntities,\n redactionEntities,\n };\n }\n\n case fromRedaction.REDACT_SUCCESS: {\n const redactedDocumentInfo = action.payload;\n return {\n ...state,\n ...initialRedactionState,\n redactedDocumentInfo\n };\n }\n\n case fromRedaction.RESET_REDACTED_DOCUMENT: {\n return {\n ...state,\n redactedDocumentInfo: undefined\n };\n }\n\n case fromRedaction.UNMARK_ALL_SUCCESS: {\n return {\n ...state,\n ...initialRedactionState\n };\n }\n }\n\n return state;\n}\n\n\nexport const getRedactionEnt = (state: RedactionState) => state.redactionEntities;\nexport const getPageEnt = (state: RedactionState) => state.redactionPageEntities;\nexport const getSelectedRedaction = (state: RedactionState) => state.selectedRedaction;\nexport const getRedactedDocInfo = (state: RedactionState) => state.redactedDocumentInfo;\n","import * as fromIcpActions from '../actions/icp.actions';\nimport { IcpSession, IcpState } from '../../icp/icp.interfaces';\n\nexport const initialIcpSessionState: IcpState = {\n session: null,\n presenter: null,\n client: null,\n participants: []\n};\n\nexport function icpReducer (state = initialIcpSessionState,\n action: fromIcpActions.IcpActions): IcpState {\n\n switch (action.type) {\n\n case fromIcpActions.SET_CASE_ID: {\n const caseId = action.payload;\n const session = {...state.session, caseId};\n return {\n ...state,\n session\n };\n }\n\n case fromIcpActions.ICP_SOCKET_SESSION_JOINED: {\n const session: IcpSession = action.payload.session;\n const participantInfo = action.payload.participantInfo;\n return {\n ...state,\n session,\n client: participantInfo.client,\n presenter: participantInfo.presenter,\n };\n }\n\n case fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED: {\n const updatedParticipants: any = action.payload;\n const participants = Object.keys(updatedParticipants)\n .map(id => ({ id: id, username: updatedParticipants[id] }));\n return {\n ...state,\n participants\n };\n }\n\n case fromIcpActions.ICP_PRESENTER_UPDATED: {\n const presenter = action.payload;\n return {\n ...state, presenter\n };\n }\n\n case fromIcpActions.LEAVE_ICP_SOCKET_SESSION: {\n return {\n ...state,\n ...initialIcpSessionState\n };\n }\n }\n return state;\n}\n\nexport const getIcpSession = (state: IcpState) => state.session;\nexport const getPresenter = (state: IcpState) => state.presenter;\nexport const getClient = (state: IcpState) => state.client;\nexport const getParticipants = (state: IcpState) => state.participants;\n","import { ActionReducerMap, createFeatureSelector } from '@ngrx/store';\nimport * as fromDocument from './document.reducer';\nimport * as fromAnnotation from './annotations.reducer';\nimport * as fromTags from './tags.reducer';\nimport * as fromBookmarks from './bookmarks.reducer';\nimport * as fromRedaction from './redaction.reducer';\nimport * as fromIcp from './icp.reducer';\nimport { IcpState } from '../../icp/icp.interfaces';\n\nexport interface State {\n document: fromDocument.DocumentState;\n annotations: fromAnnotation.AnnotationSetState;\n tags: fromTags.TagsState;\n bookmarks: fromBookmarks.BookmarksState;\n redactions: fromRedaction.RedactionState;\n icp: IcpState;\n}\n\nexport const reducers: ActionReducerMap<State> = {\n document: fromDocument.docReducer,\n annotations: fromAnnotation.reducer,\n tags: fromTags.tagsReducer,\n bookmarks: fromBookmarks.bookmarksReducer,\n redactions: fromRedaction.redactionReducer,\n icp: fromIcp.icpReducer,\n};\n\nexport const getMVState = createFeatureSelector<State>('media-viewer');\n\nexport * from './document.reducer';\nexport * from './annotations.reducer';\nexport * from './tags.reducer';\nexport * from './bookmarks.reducer';\nexport * from './redaction.reducer';\nexport * from './icp.reducer';\n","import { createSelector } from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromDocument from '../reducers/document.reducer';\n\nexport const getDocumentState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.document\n);\n\nexport const getPages = createSelector(\n getDocumentState,\n fromDocument.getDocPages\n);\n\nexport const getPageList = createSelector(\n getPages,\n (pages) => Object.values(pages)\n);\n\nexport const getDocumentId = createSelector(\n getDocumentState,\n fromDocument.getDocId\n);\n\nexport const getPdfPosition = createSelector(\n getDocumentState,\n fromDocument.getPdfPos\n);\n\nexport const getPageDifference = createSelector(\n getDocumentState,\n fromDocument.getHasDifferentPageSizes\n);\n\nexport const getConvertedDocument = createSelector(\n getDocumentState,\n fromDocument.getConvertedDocument\n);\n\nexport const getRotation = createSelector(\n getDocumentState,\n fromDocument.getRotation\n);\n\nexport const rotationLoaded = createSelector(\n getDocumentState,\n fromDocument.rotationLoaded\n);\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Rectangle } from '../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\n\nexport interface Highlight {\n page: number;\n rectangles: Rectangle[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ViewerEventService {\n\n public readonly textHighlight = new Subject<Highlight>();\n public readonly boxHighlight = new Subject<Highlight>();\n public readonly ctxToolbarCleared = new Subject();\n public readonly navigationEvent = new Subject<any[]>();\n\n constructor() {}\n\n public textSelected(selectionData: Highlight): void {\n this.textHighlight.next(selectionData);\n }\n\n public boxSelected(selectionData: Highlight): void {\n this.boxHighlight.next(selectionData);\n }\n\n public clearCtxToolbar(): void {\n this.ctxToolbarCleared.next();\n }\n\n\n public goToDestination(destination: any[]) {\n this.navigationEvent.next(destination);\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { filter, tap, throttleTime } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\n\nimport { DocumentLoadProgress, PageEvent, PdfJsWrapper } from './pdf-js/pdf-js-wrapper';\nimport { PdfJsWrapperFactory } from './pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { PrintService } from '../../print.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { CommentSetComponent } from '../../annotations/comment-set/comment-set.component';\nimport { Outline } from './side-bar/outline-item/outline.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { PdfPositionUpdate } from '../../store/actions/document.actions';\nimport * as fromTagActions from '../../store/actions/tag.actions';\nimport { SetCaseId } from '../../store/actions/icp.actions';\nimport * as fromDocumentsSelector from '../../store/selectors/document.selectors';\nimport { IcpState } from '../../icp/icp.interfaces';\nimport { ViewerEventService } from '../viewer-event.service';\n\n@Component({\n selector: 'mv-pdf-viewer',\n templateUrl: './pdf-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class PdfViewerComponent implements AfterContentInit, OnChanges, OnDestroy {\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() pdfViewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n @Input() downloadUrl: string;\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() enableICP: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n pageHeights = [];\n rotation = 0;\n zoom = 1;\n\n @Input() caseId: string;\n\n highlightMode: Observable<boolean>;\n drawMode: BehaviorSubject<boolean>;\n\n documentOutline: Outline;\n loadingDocument = false;\n loadingDocumentProgress: number;\n errorMessage: string;\n hasDifferentPageSize = false;\n\n @ViewChild('viewerContainer', {static: true}) viewerContainer: ElementRef<HTMLDivElement>;\n @ViewChild('pdfViewer', {static: false}) pdfViewer: ElementRef<HTMLDivElement>;\n\n private pdfWrapper: PdfJsWrapper;\n private $subscription: Subscription;\n private viewerException: ViewerException;\n showCommentsPanel: boolean;\n showIcpParticipantsList: boolean;\n enableGrabNDrag = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private icpStore: Store<IcpState>,\n private readonly pdfJsWrapperFactory: PdfJsWrapperFactory,\n private readonly printService: PrintService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n ) {\n this.highlightMode = toolbarEvents.highlightModeSubject.pipe(tap(() => {\n this.store.dispatch(new fromTagActions.ClearFilterTags());\n }));\n this.drawMode = toolbarEvents.drawModeSubject;\n }\n\n async ngAfterContentInit(): Promise<void> {\n this.pdfWrapper.documentLoadProgress.subscribe(v => this.onDocumentLoadProgress(v));\n this.pdfWrapper.documentLoaded.subscribe(() => this.onDocumentLoaded());\n this.pdfWrapper.documentLoadFailed.subscribe((error) => this.onDocumentLoadFailed(error));\n this.pdfWrapper.outlineLoaded.subscribe(outline => this.documentOutline = outline);\n this.pdfWrapper.pageRendered.subscribe((event) => this.updatePages(event));\n this.$subscription = this.toolbarEvents.printSubject\n .subscribe(() => this.printService.printDocumentNatively(this.url));\n this.$subscription.add(this.toolbarEvents.downloadSubject.subscribe(() =>\n this.pdfWrapper.downloadFile(this.downloadUrl || this.url, this.downloadFileName)\n ));\n this.$subscription.add(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument(rotate)));\n this.$subscription.add(this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)));\n this.$subscription.add(this.toolbarEvents.searchSubject.subscribe(search => this.pdfWrapper.search(search)));\n this.$subscription.add(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.pdfWrapper.setPageNumber(pageNumber))\n );\n this.$subscription.add(\n this.toolbarEvents.changePageByDeltaSubject.subscribe(pageNumber => this.pdfWrapper.changePageNumber(pageNumber))\n );\n this.$subscription.add(this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag));\n this.$subscription.add(this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.showCommentsPanel = toggle;\n })\n );\n this.$subscription.add(this.viewerEvents.navigationEvent.subscribe(dest => this.goToDestination(dest)));\n this.$subscription.add(\n this.toolbarEvents.icp.participantsListVisible.subscribe(toggle => this.showIcpParticipantsList = toggle)\n );\n this.$subscription.add(this.pdfWrapper.positionUpdated.asObservable()\n .pipe(throttleTime(500, asyncScheduler, { leading: true, trailing: true }))\n .subscribe(event => this.store.dispatch(new PdfPositionUpdate(event.location)))\n );\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (!this.pdfWrapper) {\n this.pdfWrapper = this.pdfJsWrapperFactory.create(this.viewerContainer);\n }\n if (changes.url && this.pdfWrapper) {\n await this.loadDocument();\n if (this.enableRedactions) {\n this.toolbarEvents.redactionMode.pipe(filter(value => !!value))\n .subscribe(() => this.resetRotation());\n }\n }\n if (changes.caseId) {\n this.icpStore.dispatch(new SetCaseId(this.caseId));\n }\n }\n\n resetRotation() {\n if (this.hasDifferentPageSize) {\n this.pdfWrapper.resetRotation(0);\n this.rotation = 0;\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n private async loadDocument() {\n this.initDocumentProgress();\n await this.pdfWrapper.loadDocument(this.url);\n this.documentTitle.emit(this.pdfWrapper.getCurrentPDFTitle());\n this.setPageHeights();\n this.$subscription.add(this.store.pipe(select(fromDocumentsSelector.getPageDifference))\n .subscribe(hasDifferentPageSie => this.hasDifferentPageSize = hasDifferentPageSie));\n }\n\n private onDocumentLoadProgress(progress: DocumentLoadProgress) {\n if (progress.total) {\n this.loadingDocumentProgress = Math.min(100, Math.ceil(progress.loaded / progress.total * 100));\n }\n }\n\n private onDocumentLoaded() {\n this.loadingDocument = false;\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n }\n\n private onDocumentLoadFailed(error: Error) {\n this.loadingDocument = false;\n this.viewerException = new ViewerException(error.name, { message: error.message });\n this.errorMessage = `Could not load the document \"${this.url}\"`;\n\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.pdfViewerException.emit(this.viewerException);\n }\n\n private updatePages(event: PageEvent[]) {\n if (this.enableAnnotations) {\n this.store.dispatch(new fromDocumentActions.AddPages(event));\n }\n }\n\n @Input()\n set searchBarHidden(hidden: boolean) {\n if (this.pdfWrapper && hidden) {\n this.pdfWrapper.clearSearch();\n }\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n\n private rotateDocument(rotation: number) {\n const pageNumber = this.pdfWrapper.getPageNumber();\n this.pdfWrapper.rotate(rotation);\n this.pdfWrapper.setPageNumber(pageNumber);\n this.rotation = (this.rotation + rotation) % 360;\n\n this.setPageHeights();\n }\n\n private initDocumentProgress() {\n this.loadingDocument = true;\n this.loadingDocumentProgress = null;\n this.errorMessage = null;\n }\n\n private setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.setZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(zoomFactor);\n this.setPageHeights();\n }\n }\n\n private stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n this.pdfWrapper.stepZoom(zoomFactor);\n this.zoom = this.calculateZoomValue(this.zoom, zoomFactor);\n this.setPageHeights();\n }\n }\n\n setPageHeights() {\n this.pageHeights = [];\n const pdfViewerChildren = this.pdfViewer.nativeElement.children;\n for (let i = 0; i < pdfViewerChildren.length; i++) {\n this.pageHeights.push(pdfViewerChildren[i].clientHeight);\n }\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) {\n return 5;\n }\n if (newZoomValue < 0.1) {\n return 0.1;\n }\n return +newZoomValue.toFixed(2);\n }\n\n private goToDestination(destination: any[]) {\n this.pdfWrapper.navigateTo(destination);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerUtilService {\n constructor(\n private http: HttpClient) {\n }\n\n public validateFile(url: string) {\n return this.http.head(url);\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PrintService } from '../../print.service';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromDocument from '../../store/actions/document.actions';\n\n@Component({\n selector: 'mv-image-viewer',\n templateUrl: './image-viewer.component.html'\n})\nexport class ImageViewerComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n\n @Input() enableAnnotations: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n @Input() height: string;\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() imageViewerException = new EventEmitter<ViewerException>();\n\n errorMessage: string;\n\n @ViewChild('img', {static: false}) img: ElementRef;\n rotation = 0;\n zoom = 1;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n private response: Subscription;\n\n showCommentsPanel: boolean;\n enableGrabNDrag = false;\n imageHeight: number;\n imageWidth: number;\n imageLeft: number;\n imageTop: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly viewerUtilService: ViewerUtilService,\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService\n ) { }\n\n ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.rotateSubject.subscribe(rotation => this.rotateImage(rotation)),\n this.toolbarEvents.zoomSubject.subscribe(zoom => this.setZoom(zoom)),\n this.toolbarEvents.stepZoomSubject.subscribe(zoom => this.stepZoom(zoom)),\n this.toolbarEvents.printSubject.subscribe(() => this.printService.printDocumentNatively(this.url)),\n this.toolbarEvents.downloadSubject.subscribe(() => this.download()),\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag),\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => this.showCommentsPanel = toggle)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n if (this.response) {\n this.response.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.errorMessage = null;\n this.toolbarEvents.reset();\n }\n }\n\n private rotateImage(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.initAnnoPage(this.img.nativeElement);\n }\n\n private async setZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private async stepZoom(zoomFactor: number) {\n if (!isNaN(zoomFactor)) {\n await this.setZoomValue(this.calculateZoomValue(this.zoom, zoomFactor));\n this.img.nativeElement.width = this.img.nativeElement.naturalWidth * this.zoom;\n this.initAnnoPage(this.img.nativeElement);\n }\n }\n\n private download() {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = this.url;\n a.download = this.downloadFileName;\n a.click();\n a.remove();\n }\n\n // the returned promise is a work-around\n setZoomValue(zoomValue) {\n return new Promise((resolve) => {\n this.zoom = zoomValue;\n this.toolbarEvents.zoomValueSubject.next(zoomValue);\n resolve(true);\n });\n }\n\n calculateZoomValue(zoomValue, increment = 0) {\n const newZoomValue = zoomValue + increment;\n if (newZoomValue > 5) { return 5; }\n if (newZoomValue < 0.1) { return 0.1; }\n return +newZoomValue.toFixed(2);\n }\n\n onLoadError(url) {\n this.response = this.viewerUtilService.validateFile(url)\n .subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n {httpResponseCode: error.status, message: error.message});\n });\n\n this.errorMessage = `Could not load the image \"${this.url}\"`;\n this.mediaLoadStatus.emit(ResponseType.FAILURE);\n this.imageViewerException.emit(this.viewerException);\n }\n\n onLoad(img: any) {\n this.mediaLoadStatus.emit(ResponseType.SUCCESS);\n this.initAnnoPage(img);\n }\n\n initAnnoPage(img: any) {\n this.imageHeight = this.rotation % 180 !== 0 ? img.offsetWidth : img.offsetHeight;\n this.imageWidth = this.rotation % 180 !== 0 ? img.offsetHeight : img.offsetWidth;\n this.imageLeft = this.rotation % 180 !== 0 ? img.offsetTop : img.offsetLeft;\n this.imageTop = this.rotation % 180 !== 0 ? img.offsetLeft : img.offsetTop;\n const payload: any = [{\n div: {\n scrollHeight: this.imageHeight,\n scrollWidth: this.imageWidth,\n offsetLeft: this.imageLeft,\n },\n pageNumber: 1,\n scale: this.zoom,\n rotation: this.rotation,\n id: 1\n }];\n\n this.store.dispatch(new fromDocument.AddPages(payload));\n }\n\n toggleCommentsSummary() {\n this.toolbarEvents.toggleCommentsSummary(!this.toolbarEvents.showCommentSummary.getValue());\n }\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild, OnDestroy, Output, EventEmitter } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { ViewerUtilService } from '../viewer-util.service';\n\n@Component({\n selector: 'mv-unsupported-viewer',\n templateUrl: './unsupported-viewer.component.html'\n})\nexport class UnsupportedViewerComponent implements OnInit, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() typeException: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n @Output() unsupportedViewerException = new EventEmitter<ViewerException>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n\n private subscriptions: Subscription[] = [];\n private viewerException: ViewerException;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n private readonly viewerUtilService: ViewerUtilService,\n ) {}\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.downloadSubject.subscribe(() => this.downloadLink.nativeElement.click()),\n this.viewerUtilService.validateFile(this.url).subscribe(\n next => next,\n error => {\n this.viewerException = new ViewerException(error.name,\n { httpResponseCode: error.status, message: error.message });\n }\n )\n );\n\n this.loadStatus.emit(ResponseType.UNSUPPORTED);\n\n if (!this.typeException) {\n this.unsupportedViewerException.emit(this.viewerException);\n }\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Injectable()\nexport class AnnotationApiService {\n\n public annotationApiUrl = '/em-anno';\n\n private annotationSetBaseUrl = '/annotation-sets';\n private annotationBaseUrl = '/annotations';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getAnnotationSet(documentId: string): Observable<any> { // todo add model\n const fixedUrl = `${this.annotationSetsFullUrl}/filter?documentId=${documentId}`;\n return this.httpClient\n .get<AnnotationSet>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public postAnnotationSet(body: Partial<AnnotationSet>): Observable<AnnotationSet> {\n return this.httpClient\n .post<AnnotationSet>(this.annotationSetsFullUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public getComments(annotationSet: Observable<AnnotationSet>): Observable<Comment[]> {\n return annotationSet\n .pipe(\n map(this.sortAnnotations),\n map(this.extractComments)\n );\n }\n\n /**\n * Sort the annotations in the response by page and then y position of their first rectangle\n */\n private sortAnnotations(r: AnnotationSet): Annotation[] {\n return r.annotations.sort((a, b) => a.page !== b.page ? a.page - b.page : a.rectangles[0].y - b.rectangles[0].y);\n }\n\n private extractComments(annotations: Annotation[]) {\n return [].concat(...annotations.map(a => a.comments));\n }\n\n public deleteAnnotation(annotationId: string): Observable<null> {\n const url = `${this.annotationFullsUrl}/${annotationId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public postAnnotation(annotation: Partial<Annotation>): Observable<Annotation> {\n return this.httpClient\n .post<Annotation>(this.annotationFullsUrl, annotation, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n get annotationSetsFullUrl() {\n return this.annotationApiUrl + this.annotationSetBaseUrl;\n }\n\n get annotationFullsUrl() {\n return this.annotationApiUrl + this.annotationBaseUrl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { CommentSetComponent } from '../comment-set.component';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { CommentComponent } from './comment.component';\n\n// TODO: replace by NgRx\n@Injectable()\nexport class CommentService {\n\n public readonly unsavedChanges = new Subject<boolean>();\n commentSetComponent: CommentSetComponent;\n\n setCommentSet(commentSetComponent) {\n this.commentSetComponent = commentSetComponent;\n }\n\n onCommentChange(changes: boolean): void {\n this.unsavedChanges.next(changes);\n }\n\n getUnsavedChanges(): Observable<boolean> {\n return this.unsavedChanges.asObservable();\n }\n\n hasUnsavedComments(annotation: Annotation): boolean {\n if (annotation.comments.length > 0) {\n const comment = this.getComment(annotation);\n return comment.hasUnsavedChanges;\n }\n return false;\n }\n\n updateUnsavedCommentsStatus(annotation: Annotation, hasUnsavedChanges: boolean): void {\n const comment = this.getComment(annotation);\n comment.hasUnsavedChanges = hasUnsavedChanges;\n this.allCommentsSaved();\n }\n\n getComment(annotation: Annotation): CommentComponent {\n return this.commentSetComponent.commentComponents\n .find(c => c.comment.annotationId === annotation.comments[0].annotationId);\n }\n\n resetCommentSet(): void {\n this.commentSetComponent = null;\n }\n\n allCommentsSaved(): void {\n this.onCommentChange(this.commentSetComponent.commentComponents.some(comment => comment.hasUnsavedChanges === true));\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromTags from '../reducers/tags.reducer';\n\nexport const getTagsRootState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.tags\n);\n\nexport const getTagEntities = createSelector(\n getTagsRootState,\n fromTags.getTagNameEnt\n);\n\nexport const getTagFilters = createSelector(\n getTagsRootState,\n fromTags.getFilters\n);\n\nexport const getTagFiltered = createSelector(\n getTagsRootState,\n fromTags.getFilteredComments\n);\n\nexport const getFilteredPageEntities = createSelector(\n getTagsRootState,\n fromTags.getFilteredPageEnt\n);\n\nexport const getAllTagsArr = createSelector(\n getTagEntities,\n (tagEnt) => Object.keys(tagEnt).map(key => {\n return {\n key,\n length: Object.keys(tagEnt[key]).length\n };\n })\n);\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromAnnotations from '../reducers/annotations.reducer';\nimport * as fromTags from './tag.selectors';\nimport * as fromDocument from './document.selectors';\nimport {StoreUtils} from '../store-utils';\nimport moment from 'moment-timezone';\nexport const getAnnotationsSetState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.annotations\n);\n\nexport const getAnnotationEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoEnt\n);\n\nexport const getSet = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoSet\n);\n\nexport const getDocumentIdSetId = createSelector(\n getSet,\n (annoSet) => {\n return {\n documentId: annoSet.documentId,\n annotationSetId: annoSet.id\n };\n }\n);\n\nexport const getAnnotationSet = createSelector(\n getAnnotationEntities,\n getSet,\n (entities, set) => {\n return {\n ...set,\n annotations: Object.keys(entities).map(key => entities[key])\n };\n }\n);\n\nexport const getSelectedAnnotation = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSelectedAnno\n);\n\nexport const getCommentEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getCommentEnts\n);\n\n\nexport const getPageEntities = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getAnnoPageEnt\n);\n\nexport const getComponentSearchQueries = createSelector(\n getAnnotationsSetState,\n fromAnnotations.commentSearchQ\n);\n\nexport const getComponentSearchText = createSelector(\n getComponentSearchQueries,\n (queries) => queries.commentSearch\n);\n\nexport const getCommentSummaryFilters = createSelector(\n getAnnotationsSetState,\n fromAnnotations.getSummaryFilters\n);\n\nexport const getAnnoPerPage = createSelector(\n fromDocument.getPages,\n getPageEntities,\n fromTags.getFilteredPageEntities,\n (pages, pageEnt, filteredPageEnt) => {\n const isFiltered: boolean = !!Object.keys(filteredPageEnt).length;\n const entities = isFiltered ? filteredPageEnt : pageEnt;\n if (pages) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: entities[key] ? entities[key] : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n\nexport const getCommentsArray = createSelector(\n getCommentEntities,\n fromDocument.getPages,\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (commentEnts, pages, annoEnts, filtered) => {\n if (commentEnts && annoEnts && pages[1]) {\n const isFiltered: boolean = !!Object.keys(filtered).length;\n const com = isFiltered ? filtered : commentEnts;\n return Object.keys(com).map(key => {\n const page = annoEnts[key].page;\n return {\n ...commentEnts[key],\n page,\n pages\n };\n });\n }\n }\n);\n\nexport const getCommentSummary = createSelector(\n getCommentsArray,\n getCommentSummaryFilters,\n (commentSummary = [], filters) => {\n const comments = StoreUtils.filterCommentsSummary(commentSummary, filters.filters);\n if (comments.length) {\n return comments.map((comment) => {\n return {\n page: comment.page,\n user: comment.createdByDetails.forename.concat(' ').concat(comment.createdByDetails.surname),\n date: moment(comment.lastModifiedDate).format('D MMMM YYYY'),\n tags: comment.tags,\n comment: comment.content\n };\n });\n }\n return [''];\n }\n);\n\n\nexport const getFilteredAnnotations = createSelector(\n getAnnotationEntities,\n fromTags.getTagFiltered,\n (annoEnt, filters) => {\n const isFiltered: boolean = !!Object.keys(filters).length;\n const anno = isFiltered ? filters : annoEnt;\n return Object.keys(anno).map(key => annoEnt[key])\n .filter(annotation => annotation.comments && annotation.comments.length > 0);\n }\n);\n","import {\n AfterContentInit, AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport {\n defaultImageOptions, defaultMultimediaOptions,\n defaultPdfOptions,\n defaultUnsupportedOptions,\n ToolbarButtonVisibilityService\n} from './toolbar/toolbar-button-visibility.service';\nimport { AnnotationSet } from './annotations/annotation-set/annotation-set.model';\nimport { ToolbarEventService } from './toolbar/toolbar-event.service';\nimport { AnnotationApiService } from './annotations/services/annotation-api/annotation-api.service';\nimport { ResponseType, ViewerException } from './viewers/viewer-exception.model';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport 'hammerjs';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from './store/reducers/reducers';\nimport * as fromAnnoSelectors from './store/selectors/annotation.selectors';\nimport * as fromDocumentsSelector from './store/selectors/document.selectors';\nimport * as fromAnnoActions from './store/actions/annotation.actions';\nimport * as fromRedactActions from './store/actions/redaction.actions';\nimport * as fromDocumentActions from './store/actions/document.actions';\n\nenum CoreContentTypes {\n PDF = 'pdf',\n IMAGE = 'image'\n}\n\nenum MultimediaContentTypes {\n MP4 = 'mp4',\n MP3 = 'mp3',\n}\n\nenum ConvertibleContentTypes {\n EXCEL = 'excel',\n WORD = 'word',\n POWERPOINT = 'powerpoint',\n TXT = 'txt',\n RTF = 'rtf'\n}\n\n@Component({\n selector: 'mv-media-viewer',\n templateUrl: './media-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class MediaViewerComponent implements OnChanges, OnDestroy, AfterContentInit, AfterViewChecked {\n\n @ViewChild('viewerRef', {static: false}) viewerRef: ElementRef;\n\n @Input() url;\n @Input() downloadFileName: string;\n @Input() contentType: string;\n\n @Input() showToolbar = true;\n @Input() toolbarButtonOverrides: any = {};\n\n @Input()\n public height: string;\n public viewerHeight: string;\n\n @Input() width = '100%';\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() toolbarEventsOutput = new EventEmitter<ToolbarEventService>();\n @Output() unsavedChanges = new EventEmitter<boolean>();\n\n @Input() enableAnnotations = false;\n @Input() annotationApiUrl;\n\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() multimediaPlayerEnabled = false;\n\n\n @Input() caseId: string;\n\n multimediaContent = false;\n convertibleContent = false;\n unsupportedContent = false;\n\n documentTitle: string;\n showCommentSummary: boolean;\n annotationSet$: Observable<AnnotationSet | {}>;\n hasScrollBar: boolean;\n typeException = false;\n hasDifferentPageSize$: Observable<boolean>;\n documentId: string;\n\n private $subscriptions: Subscription;\n private prevOffset: number;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService,\n private readonly api: AnnotationApiService,\n private readonly commentService: CommentService,\n private elRef: ElementRef,\n private cdr: ChangeDetectorRef\n ) {\n if (this.annotationApiUrl) {\n api.annotationApiUrl = this.annotationApiUrl;\n }\n }\n\n ngAfterContentInit() {\n this.annotationSet$ = this.store.pipe(select(fromAnnoSelectors.getAnnotationSet));\n this.hasDifferentPageSize$ = this.store.pipe(select(fromDocumentsSelector.getPageDifference));\n this.setToolbarButtons();\n this.toolbarEventsOutput.emit(this.toolbarEvents);\n this.$subscriptions = this.commentService.getUnsavedChanges()\n .subscribe(changes => this.onCommentChange(changes));\n this.$subscriptions.add(this.toolbarEvents.getShowCommentSummary()\n .subscribe(changes => this.showCommentSummary = changes));\n }\n\n ngAfterViewChecked(): void {\n if (this.height && this.viewerHeight !== this.height) {\n this.viewerHeight = this.height;\n this.cdr.detectChanges();\n return;\n }\n\n if (!this.height) {\n const compOffsetTop = this.elRef.nativeElement.getBoundingClientRect().top;\n const viewerOffsetTop = this.viewerRef.nativeElement.offsetTop;\n const offset = compOffsetTop + viewerOffsetTop;\n\n if (this.prevOffset !== offset) {\n this.viewerHeight = `calc(100vh - ${offset}px)`;\n this.prevOffset = offset;\n this.cdr.detectChanges();\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.annotationApiUrl) {\n this.api.annotationApiUrl = this.annotationApiUrl;\n }\n\n if (changes.url) {\n this.toolbarEvents.reset();\n this.commentService.resetCommentSet();\n this.documentId = this.extractDMStoreDocId(this.url);\n this.store.dispatch(new fromDocumentActions.SetDocumentId(this.documentId));\n if (this.enableAnnotations && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromAnnoActions.LoadAnnotationSet(this.documentId));\n }\n if (this.enableRedactions && !(this.multimediaContent || this.unsupportedContent)) {\n this.store.dispatch(new fromRedactActions.LoadRedactions(this.documentId));\n }\n if (this.contentType === 'image') {\n this.documentTitle = null;\n }\n }\n\n if (changes.contentType) {\n this.convertibleContent = this.needsConverting();\n this.multimediaContent = this.isMultimedia();\n this.unsupportedContent = !this.isSupported();\n }\n\n this.setToolbarButtons();\n this.detectOs();\n this.typeException = false;\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n needsConverting(): boolean {\n return this.contentType !== null && Object.keys(ConvertibleContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isMultimedia(): boolean {\n return this.contentType !== null && Object.keys(MultimediaContentTypes).includes(this.contentType.toUpperCase());\n }\n\n isSupported(): boolean {\n const supportedTypes = Object.assign({}, MultimediaContentTypes, ConvertibleContentTypes, CoreContentTypes);\n return this.contentType !== null && Object.keys(supportedTypes).includes(this.contentType.toUpperCase());\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n setToolbarButtons() {\n if (this.contentType === CoreContentTypes.PDF || this.needsConverting()) {\n this.toolbarButtons.setup({\n ...defaultPdfOptions, showHighlightButton: this.enableAnnotations, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.contentType === CoreContentTypes.IMAGE) {\n this.toolbarButtons.setup({\n ...defaultImageOptions, showDrawButton: this.enableAnnotations,\n ...this.toolbarButtonOverrides\n });\n } else if (this.isMultimedia()) {\n this.toolbarButtons.setup({\n ...defaultMultimediaOptions,\n ...this.toolbarButtonOverrides\n });\n } else {\n this.toolbarButtons.setup({\n ...defaultUnsupportedOptions,\n ...this.toolbarButtonOverrides\n });\n }\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n if (!this.isSupported()) {\n this.typeException = false;\n } else {\n this.typeException = true;\n this.contentType = null;\n this.setToolbarButtons();\n }\n }\n\n onCommentChange(changes: boolean) {\n this.unsavedChanges.emit(changes);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle = title;\n }\n\n private extractDMStoreDocId(url: string): string {\n url = url.includes('/documents/') ? url.split('/documents/')[1] : url;\n url = url.includes('/documentsv2/') ? url.split('/documentsv2/')[1] : url;\n return url.replace('/binary', '');\n }\n\n detectOs() {\n this.hasScrollBar = window.navigator.userAgent.indexOf('Win') !== -1;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Number Helper Service\n * */\n@Injectable({\n providedIn: 'root'\n})\n\nexport class NumberHelperService {\n constructor() { }\n\n public isNumber(value: string | number): boolean {\n return (\n value !== null\n && value !== undefined\n && value !== ''\n && !isNaN(Number(value.toString()))\n );\n }\n }\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { NumberHelperService } from '../../../lib/shared/util/services/number.helper.service';\n\n@Component({\n selector: 'mv-main-toolbar',\n templateUrl: './main-toolbar.component.html'\n})\nexport class MainToolbarComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input() enableAnnotations = false;\n @Input() enableRedactions = false;\n @Input() enableICP = false;\n @Input() contentType = null;\n\n @ViewChild('zoomSelect', {static: false}) public zoomSelect: ElementRef;\n @ViewChild('mvToolbarMain', {static: false}) public mvToolbarMain: ElementRef<HTMLElement>;\n @ViewChild('dropdownMenu', {static: false}) public mvMenuItems: ElementRef<HTMLElement>;\n\n private readonly subscriptions: Subscription[] = [];\n\n public icpEnabled = false;\n public redactionEnabled = false;\n public showCommentsPanel: boolean;\n\n public pageNumber = 1;\n public pageCount = 0;\n public isDropdownMenuOpen = false;\n public dropdownMenuPositions = [\n new ConnectionPositionPair(\n {\n originX: 'end',\n originY: 'bottom'\n },\n {\n overlayX: 'end',\n overlayY: 'top'\n },\n 0,\n 3)\n ];\n\n public zoomScales = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2.5, 3, 5];\n\n allButtonsWidth = 0;\n widthRequiredForBtn: { [id: string]: number } = {};\n\n public constructor(\n public readonly toolbarEvents: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private readonly cdr: ChangeDetectorRef,\n private readonly numberHelper: NumberHelperService\n ) {\n }\n\n public ngOnInit() {\n this.subscriptions.push(\n this.toolbarEvents.setCurrentPageSubject.subscribe(pageNumber => this.setCurrentPage(pageNumber)),\n this.toolbarEvents.setCurrentPageInputValueSubject.subscribe(pageNumber => this.pageNumber = pageNumber),\n this.toolbarEvents.getPageCount().subscribe(count => this.pageCount = count),\n this.toolbarEvents.icp.enabled.subscribe(enabled => {\n this.icpEnabled = enabled;\n if (this.icpEnabled) {\n this.toolbarEvents.toggleCommentsPanel(!enabled);\n this.toolbarEvents.sidebarOpen.next(false);\n }\n }),\n this.toolbarEvents.redactionMode.subscribe(enabled => {\n this.redactionEnabled = enabled;\n }),\n );\n }\n\n public ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n public ngAfterViewInit() {\n Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {\n this.allButtonsWidth += button.getBoundingClientRect().width;\n this.widthRequiredForBtn[button.id] = this.allButtonsWidth;\n });\n this.cdr.detectChanges();\n }\n\n @HostListener('window:resize', [])\n public onResize() {\n this.cdr.detectChanges();\n }\n\n public onClickHighlightToggle() {\n this.toolbarEvents.toggleHighlightMode();\n }\n public onClickDrawToggle() {\n this.toolbarEvents.toggleDrawMode();\n }\n\n public toggleSideBar() {\n this.toolbarEvents.sidebarOpen.next(!this.toolbarEvents.sidebarOpen.getValue());\n }\n\n public togglePresentBar() {\n this.toolbarEvents.searchBarHidden.next(true);\n this.toolbarEvents.icp.enable();\n }\n\n public increasePageNumber() {\n this.toolbarEvents.incrementPage(1);\n }\n\n public decreasePageNumber() {\n this.toolbarEvents.incrementPage(-1);\n }\n\n public onPageNumberInputChange(pageNumber: string) {\n if (Number(pageNumber) < 1) {\n pageNumber = '1';\n }\n if (Number(pageNumber) > this.pageCount) {\n pageNumber = this.pageCount.toString();\n }\n\n this.toolbarEvents.setPage(Number.parseInt(pageNumber, 10));\n }\n\n private setCurrentPage(pageNumber: number) {\n this.pageNumber = pageNumber;\n }\n\n public rotate(rotation: number) {\n this.toolbarEvents.rotate(rotation);\n }\n\n public printFile() {\n this.toolbarEvents.print();\n }\n\n public downloadFile() {\n this.toolbarEvents.download();\n }\n\n public zoom(zoomFactor: string) {\n this.toolbarEvents.zoom(+zoomFactor);\n }\n\n public stepZoom(zoomFactor: number) {\n this.toolbarEvents.stepZoom(zoomFactor);\n this.zoomSelect.nativeElement.selected = 'selected';\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n public toggleRedactBar() {\n this.toolbarEvents.toggleRedactionMode();\n }\n\n public toggleGrabNDrag() {\n this.toolbarEvents.toggleGrabNDrag();\n }\n\n public isPdf() {\n return this.contentType === 'pdf';\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n\n public toggleMoreOptions() {\n this.isDropdownMenuOpen = !this.isDropdownMenuOpen;\n setTimeout(() => {\n if (this.mvMenuItems) {\n this.mvMenuItems.nativeElement.focus();\n }\n }, 100);\n }\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\nimport { SearchResultsCount, ToolbarEventService } from '../toolbar-event.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'mv-search-bar',\n templateUrl: './search-bar.component.html'\n})\nexport class SearchBarComponent implements OnInit, OnDestroy {\n\n @ViewChild('findInput', {static: true}) findInput: ElementRef<HTMLInputElement>;\n\n highlightAll = true;\n matchCase = false;\n wholeWord = false;\n resultsText = '';\n searchText = '';\n resultCount = 0;\n\n private subscriptions: Subscription[] = [];\n\n public advancedSearchVisible = false;\n\n constructor(\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n public readonly toolbarEvents: ToolbarEventService\n ) { }\n\n public ngOnInit(): void {\n this.subscriptions.push(\n this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results))\n );\n }\n\n ngOnDestroy(): void {\n for (const subscription of this.subscriptions) {\n subscription.unsubscribe();\n }\n }\n\n @HostListener('window:keydown', ['$event'])\n public onWindowKeyDown(e: KeyboardEvent): void {\n if (e.code === 'F3' || (e.ctrlKey && e.code === 'KeyF')) {\n e.preventDefault();\n\n this.toolbarEvents.searchBarHidden.next(false);\n setTimeout(() => this.findInput.nativeElement.focus(), 200);\n }\n }\n\n public searchNext(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: false\n });\n }\n\n public searchPrev(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: true,\n reset: false\n });\n }\n\n public search(): void {\n this.toolbarEvents.search({\n searchTerm: this.searchText,\n highlightAll: this.highlightAll,\n matchCase: this.matchCase,\n wholeWord: this.wholeWord,\n previous: false,\n reset: true\n });\n }\n\n private setSearchResultsCount(results: SearchResultsCount): void {\n this.resultCount = results.total;\n this.resultsText = this.resultCount > 0\n ? `Found ${results.current} of ${results.total}`\n : 'No results found';\n }\n\n public onEscapeKeyPress(e: KeyboardEvent): void {\n this.toolbarEvents.searchBarHidden.next(true);\n }\n\n public onEnterKeyPress(e: KeyboardEvent): void {\n this.search();\n }\n\n\n public toggleAdvancedSearch(): void {\n this.advancedSearchVisible = !this.advancedSearchVisible;\n }\n\n public toggleSearchBar() {\n this.toolbarEvents.searchBarHidden.next(!this.toolbarEvents.searchBarHidden.getValue());\n }\n}\n","import {createSelector} from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromRedactions from '../reducers/redaction.reducer';\nimport * as fromDocument from './document.selectors';\n\nexport const getRedactionState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.redactions\n);\n\nexport const getRedactionPages = createSelector(\n getRedactionState,\n fromRedactions.getPageEnt\n);\n\nexport const getSelected = createSelector(\n getRedactionState,\n fromRedactions.getSelectedRedaction\n);\n\nexport const getRedactedDocumentInfo = createSelector(\n getRedactionState,\n fromRedactions.getRedactedDocInfo\n);\n\nexport const getRedactionEnt = createSelector(\n getRedactionState,\n fromRedactions.getRedactionEnt\n);\n\nexport const getRedactionArray = createSelector(\n getRedactionEnt,\n fromDocument.getDocumentId,\n (ent, documentId) => {\n const redactions = Object.keys(ent).map(key => ent[key]);\n return { redactions, documentId };\n }\n);\n\nexport const getRedactionsPerPage = createSelector(\n fromDocument.getPages,\n getRedactionPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n arr.push({\n anno: pageEnt[key] ? pageEnt[key] : [],\n styles: pages[key].styles\n });\n });\n\n return arr;\n }\n }\n);\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromRedactSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { Subscription } from 'rxjs';\nimport { ToolbarButtonVisibilityService } from '../toolbar-button-visibility.service';\n\n@Component({\n selector: 'mv-redaction-toolbar',\n templateUrl: './redaction-toolbar.component.html'\n})\nexport class RedactionToolbarComponent implements OnInit, OnDestroy {\n\n preview = false;\n hasRedactions = false;\n $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(fromRedactSelectors.getRedactionArray)).subscribe(redactions => {\n this.hasRedactions = !!redactions.redactions.length;\n });\n }\n\n toggleTextRedactionMode() {\n this.toolbarEventService.highlightModeSubject.next(true);\n }\n\n toggleDrawMode() {\n this.toolbarEventService.drawModeSubject.next(true);\n }\n\n togglePreview() {\n this.preview = !this.preview;\n this.toolbarEventService.toggleRedactionPreview(this.preview);\n }\n\n unmarkAll() {\n this.toolbarEventService.unmarkAll();\n }\n\n redact() {\n this.toolbarEventService.applyRedactionToDocument();\n }\n\n toggleRedactBar() {\n this.toolbarEventService.toggleRedactionMode();\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n}\n","import { createSelector } from '@ngrx/store';\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromIcp from '../reducers/icp.reducer';\n\nexport const getIcpState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.icp\n);\n\nexport const getIcpSession = createSelector(\n getIcpState,\n fromIcp.getIcpSession\n);\n\nexport const getCaseId = createSelector(\n getIcpSession,\n session => session === null ? null : session.caseId\n);\n\nexport const getPresenter = createSelector(\n getIcpState,\n fromIcp.getPresenter\n);\n\nexport const getPresenterName = createSelector(\n getPresenter,\n presenter => presenter === null ? null : presenter.username\n);\n\nexport const getClient = createSelector(\n getIcpState,\n fromIcp.getClient\n);\n\nexport const isPresenter = createSelector(\n getPresenter,\n getClient,\n (presenter, client) => presenter === null ? undefined : presenter.id === client.id // isPresenter is called when = false.\n);\n\nexport const getParticipants = createSelector(\n getIcpState,\n fromIcp.getParticipants\n);\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpSelectors from '../../store/selectors/icp.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpState } from '../../icp/icp.interfaces';\n\n@Component({\n selector: 'mv-icp-toolbar',\n templateUrl: './icp-toolbar.component.html'\n})\nexport class IcpToolbarComponent implements OnInit, OnDestroy {\n\n presenterName: string;\n isPresenter: boolean;\n\n private $subscription: Subscription;\n\n constructor(public readonly toolbarEventService: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.pipe(select(fromIcpSelectors.isPresenter))\n .subscribe(isPresenter => this.isPresenter = isPresenter);\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenterName))\n .subscribe(name => this.presenterName = name));\n }\n\n ngOnDestroy() {\n this.$subscription.unsubscribe();\n }\n\n present() {\n this.toolbarEventService.icp.becomePresenter();\n }\n\n stopPresenting() {\n this.toolbarEventService.icp.stopPresenting();\n }\n\n leaveIcpSession() {\n this.toolbarEventService.icp.leaveSession();\n }\n\n showParticipantsList() {\n this.toolbarEventService.toggleParticipantsList(!this.toolbarEventService.icp.participantsListVisible.getValue());\n }\n}\n"," import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MainToolbarComponent } from './main-toolbar/main-toolbar.component';\nimport { SearchBarComponent } from './search-bar/search-bar.component';\nimport { FormsModule } from '@angular/forms';\nimport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nimport { ToolbarEventService } from './toolbar-event.service';\nimport { RedactionToolbarComponent } from './redaction-toolbar/redaction-toolbar.component';\nimport { IcpToolbarComponent } from './icp-toolbar/icp-toolbar.component';\nexport { ToolbarButtonVisibilityService } from './toolbar-button-visibility.service';\nexport { ToolbarEventService } from './toolbar-event.service';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { RouterModule } from '@angular/router';\n\n\n@NgModule({\n declarations: [\n SearchBarComponent,\n MainToolbarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n providers: [\n ToolbarButtonVisibilityService,\n ToolbarEventService\n ],\n exports: [\n MainToolbarComponent,\n SearchBarComponent,\n RedactionToolbarComponent,\n IcpToolbarComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n RouterModule\n ]\n})\nexport class ToolbarModule { }\n","import { Component, EventEmitter, Input, Output, ViewChild, ElementRef } from '@angular/core';\nimport { v4 as uuid } from 'uuid';\nimport { Annotation } from './annotation.model';\nimport { Rectangle } from './rectangle/rectangle.model';\nimport moment from 'moment-timezone';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\nimport { Comment } from '../../comment-set/comment/comment.model';\n\n@Component({\n selector: 'mv-annotation',\n templateUrl: './annotation-view.component.html'\n})\nexport class AnnotationViewComponent { // todo rename this to selection vew c\n\n @Input() set annotation(value) {\n this.anno = {...value};\n }\n anno: Annotation;\n selected: boolean;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() set selectedAnnoId(selectedId: { annotationId: string }) {\n if (selectedId) {\n const id = this.anno.id || this.anno.redactionId; // todo make it unique\n this.selected = selectedId.annotationId ? (selectedId.annotationId === id) : false;\n }\n }\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Output() update = new EventEmitter<Annotation>();\n @Output() delete = new EventEmitter<Annotation>();\n @Output() annotationClick = new EventEmitter<SelectionAnnotation>();\n\n @ViewChild('container', {static: false}) container: ElementRef;\n\n constructor(\n private readonly toolbarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>\n ) {}\n\n public onSelect() {\n const annotationId = this.anno.id || this.anno.redactionId;\n this.annotationClick.emit({ annotationId, editable: false, selected: true });\n }\n\n public onRectangleUpdate(rectangle: Rectangle) {\n const annotation = {...this.anno};\n annotation.rectangles = annotation.rectangles.filter(r => r.id !== rectangle.id);\n annotation.rectangles.push(rectangle);\n this.update.emit(annotation);\n }\n\n public deleteHighlight() {\n this.delete.emit(this.anno);\n }\n\n public addOrEditComment() {\n if (this.anno.comments.length === 0) {\n const comment: Comment = {\n annotationId: this.anno.id,\n content: '',\n createdBy: this.anno.createdBy,\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n id: uuid(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n page: null,\n pages: {},\n pageHeight: null,\n selected: false,\n editable: false\n };\n this.store.dispatch(new fromActions.AddOrEditComment(comment));\n\n }\n this.selected = true;\n this.annotationClick.emit({ annotationId: this.anno.id, editable: true, selected: true });\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Annotation } from './annotation-view/annotation.model';\nimport { Observable } from 'rxjs';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { CommentService } from '../comment-set/comment/comment.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\n\n@Component({\n selector: 'mv-annotation-set',\n templateUrl: './annotation-set.component.html'\n})\nexport class AnnotationSetComponent implements OnInit {\n\n @Input() page: number;\n @Input() annotations: Annotation[] = [];\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n selectedAnnotation$: Observable<SelectionAnnotation>;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService\n ) {}\n\n ngOnInit(): void {\n this.selectedAnnotation$ = this.store.pipe(select(fromSelectors.getSelectedAnnotation));\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n public onAnnotationDelete(annotation: Annotation) {\n if (annotation.comments.length > 0) {\n this.commentService.updateUnsavedCommentsStatus(annotation, false);\n }\n this.store.dispatch(new fromActions.DeleteAnnotation(annotation.id));\n }\n\n selectAnnotation(selectedAnnotation: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(selectedAnnotation));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport moment from 'moment-timezone';\n\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/annotation.selectors';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\nimport { Annotation } from '../../annotation-view/annotation.model';\n\n@Injectable()\nexport class HighlightCreateService {\n\n constructor(private toolBarEvents: ToolbarEventService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n saveAnnotation(rectangles: Rectangle[], page: number) {\n this.store.pipe(select(fromSelectors.getDocumentIdSetId), take(1)).subscribe(anoSetDocId => {\n const anno: Annotation = {\n id: uuid(),\n color: 'FFFF00',\n comments: [],\n page: page,\n rectangles: rectangles,\n type: 'highlight',\n ...anoSetDocId,\n createdBy: '',\n createdByDetails: undefined,\n createdDate: moment.utc().tz('Europe/London').toISOString(),\n lastModifiedBy: '',\n lastModifiedByDetails: undefined,\n lastModifiedDate: '',\n tags: [],\n };\n this.store.dispatch(new fromActions.SaveAnnotation(anno));\n });\n }\n\n applyRotation(pageHeight, pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, rotate, zoom ) {\n const { x, y, width, height } = {\n x: +(offsetLeft / zoom).toFixed(2),\n y: +(offsetTop / zoom).toFixed(2),\n width: +(offsetWidth / zoom).toFixed(2),\n height: +(offsetHeight / zoom).toFixed(2)\n };\n const rectangle = { x, y, width, height };\n switch (rotate) {\n case 90:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = y;\n rectangle.y = +(pageWidth / zoom - x - width).toFixed(2);\n break;\n case 180:\n rectangle.x = +(pageWidth / zoom - x - width).toFixed(2);\n rectangle.y = +(pageHeight / zoom - y - height).toFixed(2);\n break;\n case 270:\n rectangle.width = height;\n rectangle.height = width;\n rectangle.x = +(pageHeight / zoom - y - height).toFixed(2);\n rectangle.y = x;\n break;\n }\n return rectangle as any;\n }\n\n resetHighlight() {\n window.getSelection().removeAllRanges();\n this.toolBarEvents.highlightModeSubject.next(false);\n }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\nimport { Rectangle } from './rectangle.model';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar-event.service';\nimport { HighlightCreateService } from '../../annotation-create/highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-anno-rectangle',\n templateUrl: './rectangle.component.html'\n})\nexport class RectangleComponent implements OnChanges, AfterViewInit, OnDestroy {\n\n @Input() color: String;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() editable: boolean;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Output() select = new EventEmitter<Rectangle>();\n @Output() update = new EventEmitter<Rectangle>();\n\n @ViewChild('rectElement', {static: false}) viewRect: ElementRef;\n\n private subscriptions: Subscription[] = [];\n _selected: boolean;\n enableGrabNDrag = false;\n\n height: number;\n width: number;\n top: number;\n left: number;\n\n _annoRect: Rectangle;\n @Input()\n set annoRect(annoRect: Rectangle) {\n this._annoRect = { ...annoRect };\n this.height = +(annoRect.height * this.zoom).toFixed(2);\n this.width = +(annoRect.width * this.zoom).toFixed(2);\n this.left = +(annoRect.x * this.zoom).toFixed(2);\n this.top = +(annoRect.y * this.zoom).toFixed(2);\n }\n\n get annoRect() {\n return this._annoRect;\n }\n\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.rotate) {\n this.adjustForRotation(this.rotate);\n }\n }\n\n ngAfterViewInit() {\n this.subscriptions.push(\n this.toolbarEvents.grabNDrag.subscribe(grabNDrag => this.enableGrabNDrag = grabNDrag)\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.filter(subscription => !subscription.closed)\n .forEach(subscription => subscription.unsubscribe());\n }\n\n @Input()\n set selected(selected: boolean) {\n this._selected = selected;\n if (this._selected && this.viewRect) {\n this.viewRect.nativeElement.focus();\n }\n }\n\n get selected() {\n return this._selected;\n }\n\n onClick() {\n this.select.emit(this.annoRect);\n }\n\n onUpdate(viewRect: any) {\n const { offsetHeight, offsetWidth, offsetTop, offsetLeft } = viewRect;\n if (this.hasRectangleChanged(viewRect)) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, offsetHeight, offsetWidth, offsetTop, offsetLeft, this.rotate, this.zoom);\n rectangle = { ...this.annoRect, ...rectangle };\n this.update.emit({ ...rectangle });\n }\n }\n\n adjustForRotation(rotation: number) {\n const { top, left, height, width } = this;\n switch (rotation) {\n case 90:\n this.width = height;\n this.height = width;\n this.left = this.pageWidth - top - height;\n this.top = left;\n break;\n case 180:\n this.left = this.pageWidth - left - width;\n this.top = this.pageHeight - top - height;\n break;\n case 270:\n this.width = height;\n this.height = width;\n this.left = top;\n this.top = this.pageHeight - left - width;\n break;\n }\n }\n\n hasRectangleChanged(viewRect): boolean {\n return this.left !== viewRect.offsetLeft ||\n this.top !== viewRect.offsetTop ||\n this.width !== viewRect.offsetWidth ||\n this.height !== viewRect.offsetHeight;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TagsModel } from '../../models/tags.model';\n\n@Injectable()\nexport class TagsServices {\n\n public tagItems: {[id: string]: TagsModel[]};\n\n constructor(private http: HttpClient) {}\n\n public getAllTags(createdBy: string): Observable<TagsModel[]> {\n const url = `/em-anno/tags/${createdBy}`;\n return this.http.get<TagsModel[]>(url);\n }\n\n // @TODO: Move everything below this to NgRx store\n getNewTags(annoid: string): TagsModel[] {\n return this.tagItems ? this.tagItems[annoid] : [];\n }\n\n updateTagItems(items: Array<TagsModel>, annoId: string) {\n const snakeCased = items.map(item => {\n return {\n ...item,\n name: this.snakeCase(item.name)\n };\n });\n\n this.tagItems = {\n ...this.tagItems,\n [annoId]: snakeCased\n };\n }\n\n private snakeCase = string => {\n // transform string_to_snake_case\n return string.replace(/ +/g, ' ') // find space\n .split(/ |\\B(?=[A-Z])/) // split it into array\n .map(word => word.toLowerCase()) // transform to lover case\n .join('_'); // trun array into sting using _\n }\n}\n","import {\n AfterContentInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild\n} from '@angular/core';\nimport {Comment} from './comment.model';\nimport {User} from '../../models/user.model';\nimport {Rectangle} from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport {SelectionAnnotation} from '../../models/event-select.model';\nimport {CommentService} from './comment.service';\nimport {TagsModel} from '../../models/tags.model';\nimport {TagsServices} from '../../services/tags/tags.services';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromSelector from '../../../store/selectors/annotation.selectors';\nimport { AnnotationSet } from '../../annotation-set/annotation-set.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\n\n@Component({\n selector: 'mv-anno-comment',\n templateUrl: './comment.component.html'\n})\nexport class CommentComponent implements OnInit, OnDestroy, AfterContentInit {\n\n CHAR_LIMIT = 5000;\n lastUpdate: string;\n originalComment: string;\n fullComment: string;\n author: User;\n createdBy: string;\n editor: User;\n _comment: Comment;\n _editable: boolean;\n _rectangle;\n totalPrevPagesHeight = 0;\n rectTop;\n rectLeft;\n pageHeight: number;\n hasUnsavedChanges = false;\n selected: boolean;\n searchString: string;\n public tagItems: TagsModel[];\n\n\n @Output() commentClick = new EventEmitter<SelectionAnnotation>();\n @Output() renderComments = new EventEmitter<Comment>();\n @Output() delete = new EventEmitter<Comment>();\n @Output() updated = new EventEmitter<{comment: Comment, tags: TagsModel[]}>();\n @Output() changes = new EventEmitter<boolean>();\n @Input() rotate = 0;\n @Input() zoom = 1;\n @Input() index: number;\n @Input() page: number;\n\n @ViewChild('form', {static: false}) form: ElementRef;\n @ViewChild('editableComment', {static: false}) editableComment: ElementRef<HTMLElement>;\n\n private subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private tagsServices: TagsServices\n ) {}\n\n\n ngOnInit(): void {\n this.subscriptions = this.store.select(fromSelector.getComponentSearchText)\n .pipe(distinctUntilChanged()).subscribe(searchString => this.searchString = searchString);\n this.reRenderComments();\n }\n\n ngAfterContentInit(): void {\n if (this.tagItems && this.tagItems.length) {\n this.tagsServices.updateTagItems(this.tagItems, this._comment.annotationId);\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @Input()\n set comment(comment: Comment) {\n this._comment = {...comment};\n this.page = this._comment.page;\n this.lastUpdate = comment.lastModifiedDate ? comment.lastModifiedDate : comment.createdDate;\n this.author = comment.createdByDetails;\n this.createdBy = comment.createdBy;\n this.editor = comment.lastModifiedByDetails;\n this.originalComment = comment.content;\n this.fullComment = this.originalComment;\n this.selected = this._comment.selected;\n this._editable = this._comment.editable;\n this.tagItems = this._comment.tags;\n const pageMarginBottom = 10;\n this.totalPrevPagesHeight = 0;\n for (let i = 0; i < this.page - 1; i++) {\n const height = this._comment.pages[i + 1] ? this._comment.pages[i + 1].styles.height : undefined;\n if (height) {\n this.totalPrevPagesHeight += height + pageMarginBottom;\n }\n }\n\n }\n\n get comment() {\n return this._comment;\n }\n\n @Input()\n set annotation(annotation: Annotation) {\n this._rectangle = annotation.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n const actualHeight = this._comment.pages[this.page].styles.height / this.zoom;\n switch (this.rotate) {\n case 90: this.rectTop = this._rectangle.x;\n break;\n case 180: this.rectTop = actualHeight - (this._rectangle.y + this._rectangle.height);\n break;\n case 270: this.rectTop = actualHeight - (this._rectangle.x + this._rectangle.width);\n break;\n default: this.rectTop = this._rectangle.y;\n }\n this.rectLeft = this._rectangle.x;\n }\n\n get editable(): boolean {\n return this._editable;\n }\n\n onCommentChange(updatedComment) {\n this.hasUnsavedChanges =\n this.originalComment.substring(0, this.CHAR_LIMIT) !== updatedComment.substring(0, this.CHAR_LIMIT);\n this.commentService.onCommentChange(this.hasUnsavedChanges);\n }\n\n deleteOrCancel() {\n if (!this.editable) {\n this.delete.emit(this._comment);\n } else {\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.fullComment = this.originalComment;\n this.changes.emit(false);\n if (!this.author && !this.fullComment) {\n this.delete.emit(this._comment);\n }\n }\n }\n\n public editOrSave() {\n if (!this.editable) {\n this._editable = true;\n } else {\n this._comment.content = this.fullComment.substring(0, this.CHAR_LIMIT);\n const tags = this.tagsServices.getNewTags(this._comment.annotationId);\n const payload = {\n comment: this._comment,\n tags\n };\n this.updated.emit(payload);\n this.hasUnsavedChanges = false;\n this._editable = false;\n this.changes.emit(false);\n }\n }\n\n onCommentClick() {\n if (!this.selected) {\n this.selected = true;\n this._editable = false;\n this.commentClick.emit({ annotationId: this._comment.annotationId, editable: this._editable, selected: true });\n }\n }\n\n reRenderComments() {\n this.renderComments.emit(this._comment);\n }\n\n get commentTop(): number {\n return this.totalPrevPagesHeight + (this.rectTop * this.zoom);\n }\n\n\n get height() {\n return this.form.nativeElement.getBoundingClientRect().height / this.zoom;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\n\n@Component({\n selector: 'mv-ctx-toolbar',\n templateUrl: './ctx-toolbar.component.html'\n})\nexport class CtxToolbarComponent implements OnChanges {\n\n readonly defaultHeight;\n readonly defaultWidth;\n\n @Input() zoom;\n @Input() rotate;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n\n @Input() canHighlight: boolean;\n @Input() canBookmark: boolean;\n @Input() canComment: boolean;\n @Input() canDelete: boolean;\n\n @Output() createHighlightEvent = new EventEmitter();\n @Output() deleteHighlightEvent = new EventEmitter();\n @Output() addOrEditCommentEvent = new EventEmitter();\n @Output() createBookmarkEvent = new EventEmitter<Rectangle>();\n\n rectangle: Rectangle;\n _rectangles: Rectangle[];\n top: number;\n left: number;\n\n constructor() {\n this.defaultHeight = 70;\n this.defaultWidth = 300;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.setRectangle();\n this.top = this.popupTop();\n this.left = this.popupLeft();\n }\n\n @Input() set rectangles(rectangles: Rectangle[]) {\n if (rectangles) {\n this._rectangles = rectangles;\n this.setRectangle();\n }\n }\n\n get rectangles() {\n return this._rectangles;\n }\n\n createHighlight() {\n this.createHighlightEvent.emit();\n this.rectangle = undefined;\n }\n\n deleteHighlight() {\n this.deleteHighlightEvent.emit();\n }\n\n addOrEditComment() {\n this.addOrEditCommentEvent.emit();\n }\n\n createBookmark() {\n this.createBookmarkEvent.emit(this.rectangle);\n this.rectangle = undefined;\n }\n\n setRectangle() {\n const rectangle = this.rectangles\n .reduce((prev, current) => prev.y < current.y ? prev : current);\n this.rectangle = { ...rectangle };\n switch (this.rotate) {\n case 90:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.y - rectangle.height;\n this.rectangle.y = rectangle.x;\n break;\n case 180:\n this.rectangle.x = (this.pageWidth / this.zoom) - rectangle.x - rectangle.width;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.y - rectangle.height;\n break;\n case 270:\n this.rectangle.width = rectangle.height;\n this.rectangle.height = rectangle.width;\n this.rectangle.x = rectangle.y;\n this.rectangle.y = (this.pageHeight / this.zoom) - rectangle.x - rectangle.width;\n break;\n }\n }\n\n popupTop() {\n const popupTop = this.rectangle.y * this.zoom - this.defaultHeight;\n return popupTop <= 0 ? this.defaultHeight : popupTop;\n }\n\n popupLeft() {\n const popupLeft = (this.rectangle.x + (this.rectangle.width / 2)) * this.zoom - (this.defaultWidth / 2);\n if (popupLeft <= 0) {\n return 0;\n } else if (popupLeft >= this.pageWidth - this.defaultWidth) {\n return this.pageWidth - this.defaultWidth;\n } else {\n return popupLeft;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CommentComponent } from './comment/comment.component';\n\n@Injectable()\nexport class CommentSetRenderService {\n\n redrawComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n let prevComment: CommentComponent;\n this.sortComponents(commentComponents, pageHeights, rotate, zoom).forEach((comment: CommentComponent) => {\n this.adjustIfOverlapping(comment, prevComment, zoom);\n prevComment = comment;\n });\n }\n\n sortComponents(commentComponents: CommentComponent[], pageHeights: any[], rotate: number, zoom: number) {\n return commentComponents.sort((a: CommentComponent, b: CommentComponent) => {\n a.rectTop = this.top(a._rectangle, pageHeights[a.page - 1], rotate, zoom);\n b.rectTop = this.top(b._rectangle, pageHeights[b.page - 1], rotate, zoom);\n return this.processSort(a, b);\n });\n }\n\n private adjustIfOverlapping(comment: CommentComponent, prevComment: CommentComponent, zoom: number): void {\n if (prevComment) {\n const endOfPrevComment = prevComment.commentTop + this.height(prevComment);\n if (comment.commentTop <= endOfPrevComment) {\n comment.rectTop = (endOfPrevComment - comment.totalPrevPagesHeight) / zoom;\n }\n }\n }\n\n private processSort(a: CommentComponent, b: CommentComponent): number {\n if (this.onSameLine(a, b)) {\n return a.rectLeft >= b.rectLeft ? 1 : -1;\n }\n return a.commentTop >= b.commentTop ? 1 : -1;\n }\n\n private onSameLine(a: CommentComponent, b: CommentComponent): boolean {\n return this.difference(a.commentTop, b.commentTop) === 0;\n }\n\n private top(rectangle: { x, y, height, width }, height: number, rotate: number, zoom: number) {\n const actualHeight = height / zoom;\n switch (rotate) {\n case 90: return rectangle.x;\n case 180: return actualHeight - (rectangle.y + rectangle.height);\n case 270: return actualHeight - (rectangle.x + rectangle.width);\n default: return rectangle.y;\n }\n }\n\n private height(element: any) {\n return element.form.nativeElement.getBoundingClientRect().height;\n }\n\n private difference(a: number, b: number): number { return Math.abs(a - b); }\n}\n","import {\n Component,\n ElementRef,\n Input, OnChanges,\n OnDestroy,\n OnInit,\n QueryList, SimpleChanges,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\n\nimport { AnnotationSet } from '../annotation-set/annotation-set.model';\nimport { Annotation } from '../annotation-set/annotation-view/annotation.model';\nimport { Comment } from './comment/comment.model';\nimport { CommentComponent } from './comment/comment.component';\nimport { CommentService } from './comment/comment.service';\nimport { CommentSetRenderService } from './comment-set-render.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromActions from '../../store/actions/annotation.actions';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport { TagsModel } from '../models/tags.model';\nimport { SelectionAnnotation } from '../models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set',\n templateUrl: './comment-set.component.html',\n })\nexport class CommentSetComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input() annotationSet: AnnotationSet;\n @Input() zoom: number;\n @Input() rotate: number;\n @Input() height: number;\n @Input() pageHeights = [];\n @Input() contentScrollTop: number;\n\n comments: Comment[];\n tags: TagsModel[];\n private subscriptions: Subscription[] = [];\n public comments$: Observable<Annotation[]>;\n public annoEntities$: Observable<{ [id: string]: Annotation }>;\n\n @ViewChild('container', {static: false}) container: ElementRef<HTMLDivElement>;\n @ViewChild('panel', {static: false}) panel: ElementRef<HTMLDivElement>;\n @ViewChildren('commentComponent') commentComponents: QueryList<CommentComponent>;\n\n showCommentsPanel: boolean;\n\n constructor(private store: Store<fromStore.AnnotationSetState>,\n private readonly commentService: CommentService,\n private readonly renderService: CommentSetRenderService,\n private readonly toolbarEvents: ToolbarEventService) {\n this.clearSelection();\n }\n\n ngOnInit() {\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentsArray));\n this.annoEntities$ = this.store.pipe(select(fromSelectors.getAnnotationEntities));\n this.subscriptions.push(\n this.toolbarEvents.commentsPanelVisible.subscribe(toggle => {\n this.redrawComments();\n this.showCommentsPanel = toggle;\n })\n );\n this.subscriptions.push(this.toolbarEvents.rotateSubject.subscribe(rotate => this.rotateDocument()));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationSet) {\n this.commentService.setCommentSet(this);\n }\n if (changes.contentScrollTop) {\n if (this.container) {\n this.container.nativeElement.scrollTo(0, this.contentScrollTop);\n }\n }\n }\n\n ngOnDestroy() {\n if (this.subscriptions.length > 0) {\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\n }\n }\n\n public onSelect(annotationId: SelectionAnnotation) {\n this.store.dispatch(new fromActions.SelectedAnnotation(annotationId));\n }\n\n public onCommentDelete(comment: Comment) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === comment.annotationId);\n const comments = [];\n const annot = {\n ...annotation,\n comments\n };\n this.onAnnotationUpdate(annot);\n this.redrawComments();\n }\n\n redrawComments() {\n setTimeout(() => {\n const componentList: CommentComponent[] = this.commentComponents.map(comment => comment);\n this.renderService.redrawComponents(componentList, this.pageHeights, this.rotate, this.zoom);\n }, 0);\n }\n\n private rotateDocument() {\n if (this.panel) {\n this.panel.nativeElement.style.height = '0';\n }\n }\n\n public onCommentUpdate(payload: {comment: Comment, tags: TagsModel[]} ) {\n const annotation = this.annotationSet.annotations.find(anno => anno.id === payload.comment.annotationId);\n const comments = [payload.comment];\n const tags = payload.tags;\n const annot = {\n ...annotation,\n comments,\n tags\n };\n this.onAnnotationUpdate(annot);\n }\n\n public onAnnotationUpdate(annotation: Annotation) {\n this.store.dispatch(new fromActions.SaveAnnotation(annotation));\n }\n\n onContainerClick(e) {\n if (e.path && e.path[0] === this.panel.nativeElement) {\n this.clearSelection();\n }\n }\n\n clearSelection() {\n this.store.dispatch(new fromActions.SelectedAnnotation({ annotationId: '', editable: false, selected: false}));\n }\n\n allCommentsSaved() {\n this.commentService.allCommentsSaved();\n }\n}\n","import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[mvTextAreaAutoExpand]'\n})\nexport class TextareaAutoExpandDirective implements AfterContentChecked {\n\n constructor(private el: ElementRef) {\n }\n\n ngAfterContentChecked(): void {\n this.adjustHeight();\n }\n\n @HostListener('input') onMouseDown() {\n this.adjustHeight();\n }\n\n adjustHeight(): void {\n const nativeElement = this.el.nativeElement;\n nativeElement.style.overflow = 'hidden';\n nativeElement.style.height = 'auto';\n nativeElement.style.height = nativeElement.scrollHeight - 5 + 'px';\n }\n\n}\n","import {Component, Input, ViewChild, ElementRef, OnInit, OnDestroy} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport {select, Store} from '@ngrx/store';\n\nimport { PrintService } from '../../print.service';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromSelectors from '../../store/selectors/annotation.selectors';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromAnnoActions from '../../store/actions/annotation.actions';\nimport * as fromTagSelectors from '../../store/selectors/tag.selectors';\n\n@Component({\n selector: 'mv-comments-summary',\n templateUrl: './comments-summary.component.html',\n})\nexport class CommentsSummaryComponent implements OnInit, OnDestroy {\n\n @Input() title: string;\n @Input() contentType: string;\n @ViewChild('outerContainer', {static: false}) container: ElementRef;\n @ViewChild('commentContainer', {static: false}) commentsTable: ElementRef;\n public comments$: Observable<any>;\n public filtersFg: FormGroup;\n private $subscriptions: Subscription;\n allTags$: Observable<{key: string; length: number}[]>;\n showFilters = false;\n hasFilter = false;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly printService: PrintService,\n private readonly toolbarEvents: ToolbarEventService,\n private fb: FormBuilder\n ) {}\n\n ngOnInit(): void {\n this.filtersFg = this.fb.group({\n dateRangeFrom: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n dateRangeTo: new FormGroup({\n day: new FormControl(''),\n month: new FormControl(''),\n year: new FormControl('')\n }),\n tagFilters: this.fb.group({}),\n });\n this.comments$ = this.store.pipe(select(fromSelectors.getCommentSummary));\n this.buildCheckBoxForm();\n }\n\n ngAfterViewInit() {\n this.container.nativeElement.focus();\n }\n\n buildCheckBoxForm() {\n this.filtersFg.reset();\n const checkboxes = <FormGroup>this.filtersFg.get('tagFilters');\n const filters$ = this.store.pipe(select(fromSelectors.getCommentSummaryFilters));\n this.allTags$ = this.store.pipe(select(fromTagSelectors.getAllTagsArr));\n this.$subscriptions = combineLatest([this.allTags$, filters$]).subscribe(([tags, filters]) => {\n this.hasFilter = filters.hasFilter;\n tags.forEach((val) => {\n const checkBoxValue = (filters.filters.tagFilters &&\n filters.filters.tagFilters.hasOwnProperty(val.key)) ?\n filters.filters.tagFilters[val.key] : false;\n checkboxes.addControl(val.key, new FormControl(checkBoxValue));\n });\n this.filtersFg.updateValueAndValidity();\n });\n }\n\n onClearFilters() {\n this.store.dispatch(new fromAnnoActions.ClearCommentSummaryFilters());\n this.buildCheckBoxForm();\n }\n\n onFilter() {\n const { value } = this.filtersFg;\n const hasDateFrom = (value.dateRangeFrom.year && value.dateRangeFrom.month && value.dateRangeFrom.day);\n const hasDateTo = (value.dateRangeTo.year && value.dateRangeTo.month && value.dateRangeTo.day);\n const dateRangeFrom = hasDateFrom ?\n new Date(value.dateRangeFrom.year, value.dateRangeFrom.month - 1, value.dateRangeFrom.day).getTime() : null;\n const dateRangeTo = hasDateTo ?\n new Date(value.dateRangeTo.year, value.dateRangeTo.month - 1, value.dateRangeTo.day).getTime() : null;\n this.store.dispatch(new fromAnnoActions.ApplyCommentSymmaryFilter({...value, dateRangeFrom, dateRangeTo}));\n }\n\n onFiltersToggle() {\n this.showFilters = !this.showFilters;\n }\n\n public onClose(): void {\n this.toolbarEvents.toggleCommentsSummary(false);\n }\n\n public onPrint(): void {\n this.printService.printElementNatively(this.commentsTable.nativeElement, 1000, 900);\n }\n\n navigateToPage(pageNumber: number) {\n if (this.contentType === 'pdf') {\n this.toolbarEvents.setPage(pageNumber);\n }\n this.toolbarEvents.toggleCommentsSummary(false);\n this.toolbarEvents.toggleCommentsPanel(true);\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport uuid from 'uuid';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { HighlightCreateService } from '../highlight-create/highlight-create.service';\n\n@Component({\n selector: 'mv-box-highlight-create',\n templateUrl: './box-highlight-create.component.html',\n})\nexport class BoxHighlightCreateComponent implements OnInit, OnDestroy {\n\n @Input() page: number;\n @Input() pageHeight: number;\n @Input() pageWidth: number;\n @Input() rotate: number;\n @Input() zoom: number;\n @Input() container: { top: number, left: number };\n\n @Output() saveSelection = new EventEmitter<{ rectangles: Rectangle[], page: number }>();\n\n @ViewChild('boxHighlight', {static: false}) highlight: ElementRef;\n\n drawStartX = -1;\n drawStartY = -1;\n top: number;\n left: number;\n height: number;\n width: number;\n display: string;\n drawMode: boolean;\n defaultHeight: string;\n defaultWidth: string;\n position: string;\n backgroundColor = 'none';\n\n private subscriptions: Subscription[] = [];\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly highlightService: HighlightCreateService) {}\n\n ngOnInit(): void {\n this.subscriptions = [\n this.toolbarEvents.drawModeSubject.subscribe(drawMode => {\n this.defaultHeight = drawMode ? '100%' : '0px';\n this.defaultWidth = drawMode ? '100%' : '0px';\n })\n ];\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n\n initHighlight({ offsetX, offsetY }) {\n this.position = 'absolute';\n this.backgroundColor = 'yellow';\n this.drawStartX = offsetX;\n this.drawStartY = offsetY;\n\n this.display = 'block';\n this.height = 50;\n this.width = 50;\n\n this.top = this.drawStartY;\n this.left = this.drawStartX;\n\n switch (this.rotate) {\n case 90:\n this.top = this.drawStartY - this.height;\n break;\n case 180:\n this.top = this.drawStartY - this.height;\n this.left = this.drawStartX - this.width;\n break;\n case 270:\n this.left = this.drawStartX - this.width;\n break;\n }\n }\n\n updateHighlight({ offsetX, offsetY }) {\n if (this.drawStartX > 0 && this.drawStartY > 0) {\n this.height = Math.abs(offsetY - this.drawStartY);\n this.width = Math.abs(offsetX - this.drawStartX);\n this.top = Math.min(offsetY, this.drawStartY);\n this.left = Math.min(offsetX, this.drawStartX);\n }\n }\n\n createHighlight() {\n if (this.height / this.zoom > 5 || this.width / this.zoom > 5) {\n let rectangle = this.highlightService\n .applyRotation(this.pageHeight, this.pageWidth, this.height, this.width, this.top, this.left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle } as any;\n this.saveSelection.emit({ rectangles: [rectangle], page: this.page });\n this.resetHighlight();\n }\n }\n\n private resetHighlight() {\n this.drawStartX = -1;\n this.drawStartY = -1;\n this.display = 'none';\n this.width = 0;\n this.height = 0;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromTagSelectors from '../../../store/selectors/tag.selectors';\nimport * as fromAnnoSelector from '../../../store/selectors/annotation.selectors';\nimport { combineLatest, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comment-set-header',\n templateUrl: './comment-set-header.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSetHeaderComponent implements OnInit, OnDestroy {\n\n @Input() public showCommentSummary: boolean;\n @Output() public readonly showCommentSummaryDialog = new EventEmitter();\n\n tabs: {isFiltered?: boolean; label: string}[] = [];\n tabSelected = '';\n isFiltered: boolean;\n navigationList: Annotation[];\n $subscriptions: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n public toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n const tagFilter$ = this.store.pipe(select(fromTagSelectors.getTagFilters));\n const filteredAnnotation$ = this.store.pipe(select(fromAnnoSelector.getFilteredAnnotations));\n\n this.$subscriptions = combineLatest([tagFilter$, filteredAnnotation$]).subscribe(([formData, filteredAnno]) => {\n this.navigationList = filteredAnno;\n this.tabs = this.navigationList.length > 0 ?\n [{label: 'comments'}, {label: 'filter'}, {label: 'search'}] : [{label: 'comments'}];\n this.isFiltered = !formData.length;\n this.tabs = [...this.tabs].map((tab) => {\n return !this.isFiltered && tab.label === 'filter' ? {...tab, isFiltered: true} : {...tab, isFiltered: false};\n });\n });\n }\n\n public toggleCommentsSummary(): void {\n this.showCommentSummaryDialog.emit();\n }\n\n selectTab(tab: string) {\n this.tabSelected = tab !== this.tabSelected ? tab : undefined;\n }\n\n public toggleCommentsPanel() {\n this.toolbarEvents.toggleCommentsPanel(!this.toolbarEvents.commentsPanelVisible.getValue());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Annotation } from '../../../annotation-set/annotation-view/annotation.model';\nimport { Store } from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromActions from '../../../../store/actions/annotation.actions';\n\n@Component({\n selector: 'mv-comment-search',\n templateUrl: './comment-search.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentSearchComponent implements AfterViewInit, OnDestroy {\n\n @Input() public readonly annotations: Annotation[];\n\n @ViewChild('searchInput', {static: false}) searchInput: ElementRef<HTMLInputElement>;\n\n searchString: string;\n searchResults: Annotation[] = [];\n searchIndex = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>) {}\n\n ngAfterViewInit(): void {\n if (this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n }\n\n ngOnDestroy(): void {\n // TODO workaround for tab error\n setTimeout(() => {this.store.dispatch(new fromActions.SearchComment('')); }, 250);\n }\n\n searchComments(searchText: string): void {\n this.clearSearch();\n if (searchText.length > 2) {\n this.searchString = searchText;\n this.searchResults = this.annotations\n .filter(annotation => annotation.comments.length > 0)\n .filter(annotation =>\n annotation.comments[0].content.toLowerCase().includes(this.searchString.toLowerCase()));\n if (this.searchResults.length > 0) {\n this.store.dispatch(new fromActions.SearchComment(searchText));\n }\n }\n }\n\n clearSearch() {\n this.searchString = undefined;\n this.searchResults = [];\n this.searchIndex = 0;\n this.store.dispatch(new fromActions.SearchComment(''));\n }\n}\n","import { AfterViewChecked, Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[mvTextHighlight]'\n})\nexport class TextHighlightDirective implements AfterViewChecked {\n\n @Input() textToHighlight: string;\n\n constructor(private element: ElementRef<HTMLElement>) {}\n\n ngAfterViewChecked(): void {\n if (this.textToHighlight) {\n this.highlightInputText(this.textToHighlight);\n }\n }\n\n highlightInputText(textToHighlight: string) {\n this.resetHighlight();\n this.textToHighlight = textToHighlight;\n const searchPattern = new RegExp(textToHighlight, 'gi');\n const hostElement = this.element.nativeElement;\n if (hostElement.innerHTML.match(searchPattern)) {\n hostElement.innerHTML = hostElement.innerHTML\n .replace(searchPattern, this.highlightPattern('$&'));\n }\n this.textToHighlight = undefined;\n }\n\n resetHighlight() {\n const hostElement = this.element.nativeElement;\n const searchPattern = new RegExp(this.highlightPattern('(.*?)'), 'gi');\n while (hostElement.innerHTML.match(searchPattern)) {\n const matchGroups = searchPattern.exec(hostElement.innerHTML);\n if (matchGroups) {\n hostElement.innerHTML = hostElement.innerHTML.replace(matchGroups[0], matchGroups[1]);\n }\n }\n }\n\n private highlightPattern(dynamicText: string) {\n return '<span class=\"mvTextHighlight\">' + dynamicText + '</span>';\n }\n}\n","import {Component, Input, ViewEncapsulation} from '@angular/core';\nimport {TagsModel} from '../models/tags.model';\nimport {TagsServices} from '../services/tags/tags.services';\nimport {FormControl} from '@angular/forms';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'mv-tags',\n templateUrl: './tags.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TagsComponent {\n @Input() tagItems: TagsModel[];\n @Input() userId: string;\n @Input() editable: boolean;\n @Input() annoId: string;\n\n public validators = [this.minLength, this.maxLength20];\n public errorMessages: {[id: string]: string} = {\n 'minLength': 'Minimum of 2 characters',\n 'maxLength20': 'Maximum of 20 characters'\n };\n\n constructor(private tagsServices: TagsServices) {}\n\n onUpdateTags(value) {\n this.tagsServices.updateTagItems(value, this.annoId);\n }\n\n public requestAutocompleteItems = (text: string): Observable<any[]> => {\n return this.tagsServices.getAllTags(this.userId);\n }\n\n private minLength(control: FormControl) {\n if (control.value.length < 2) {\n return {\n 'minLength': true\n };\n }\n return null;\n }\n\n private maxLength20(control: FormControl) {\n if (control.value.length >= 20) {\n return {\n 'maxLength20': true\n };\n }\n return null;\n }\n}\n","import { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { Rectangle } from '../../annotation-set/annotation-view/rectangle/rectangle.model';\nimport { Annotation } from '../../annotation-set/annotation-view/annotation.model';\nimport {Store} from '@ngrx/store';\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromActions from '../../../store/actions/annotation.actions';\nimport {ToolbarEventService} from '../../../toolbar/toolbar-event.service';\n\n@Component({\n selector: 'mv-comments-navigate',\n templateUrl: './comments-navigate.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentsNavigateComponent implements OnChanges {\n\n @Input() public annotationList: Annotation[];\n @Input() autoSelect = false;\n\n navigationList: any[] = [];\n index = 0;\n\n constructor(private store: Store<fromStore.AnnotationSetState>, public readonly toolbarEvents: ToolbarEventService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.annotationList) {\n this.initNavigationList();\n }\n }\n\n initNavigationList(): void {\n this.index = 0;\n this.navigationList = [...this.annotationList || []]\n .map(annotation => ({\n content: annotation.comments[0].content,\n annotationId: annotation.id,\n page: annotation.page,\n rectangle: this.upperRectangle(annotation.rectangles),\n }))\n .sort(this.sortComments);\n\n if (this.autoSelect) {\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[0].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[0].annotationId,\n editable: false,\n selected: true\n }));\n }\n }\n\n sortComments(mappedCommentA, mappedCommentB) {\n if (mappedCommentA.page !== mappedCommentB.page) {\n return mappedCommentA.page - mappedCommentB.page;\n } else {\n const rectA = mappedCommentA.rectangle;\n const rectB = mappedCommentB.rectangle;\n if (rectA.y !== rectB.y) {\n return rectA.y - rectB.y;\n } else {\n return rectA.x - rectB.x;\n }\n }\n }\n\n nextItem() {\n this.index += 1;\n if (this.index === this.annotationList.length) {\n this.index = 0;\n }\n\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId, editable: false, selected: true\n }));\n }\n\n\n prevItem() {\n this.index -= 1;\n if (this.index < 0) {\n this.index = this.navigationList.length - 1;\n }\n this.toolbarEvents.setPage(Number.parseInt(this.navigationList[this.index].page, 0));\n this.store.dispatch(new fromActions.SelectedAnnotation({\n annotationId: this.navigationList[this.index].annotationId,\n editable: false,\n selected: true\n }));\n }\n\n upperRectangle(rectangles: Rectangle[]) {\n [...rectangles].sort((rect1, rect2) => rect1.y - rect2.y);\n return { x: rectangles[0].x, y: rectangles[0].y };\n }\n}\n","import {Component, OnDestroy, OnInit, ViewEncapsulation} from '@angular/core';\n\nimport {select, Store} from '@ngrx/store';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromSelectors from '../../../../store/selectors/tag.selectors';\nimport * as fromActions from '../../../../store/actions/tag.actions';\nimport {Observable, Subscription} from 'rxjs';\nimport {FormGroup, FormBuilder, FormControl} from '@angular/forms';\nimport {auditTime, tap} from 'rxjs/operators';\n\n\n@Component({\n selector: 'mv-comment-filter',\n templateUrl: './comment-filter.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CommentFilterComponent implements OnInit, OnDestroy {\n tagGroup: FormGroup;\n $subscriptions: Subscription;\n filter$: Observable<string[]>;\n allTags$: Observable<any>;\n searchValue: string;\n isPreview = false;\n constructor(\n private store: Store<fromStore.State>,\n private fb: FormBuilder) {}\n\n ngOnInit(): void {\n this.tagGroup = this.fb.group({\n 'tagFilters': this.fb.group({}),\n });\n this.filter$ = this.store.pipe(select(fromSelectors.getTagFilters));\n this.$subscriptions = this.tagGroup.valueChanges.pipe(auditTime(5)).subscribe(value => {\n const tagFilters = value['tagFilters'];\n this.store.dispatch(new fromActions.AddFilterTags(tagFilters));\n });\n this.buildFrom();\n\n }\n\n buildFrom() {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n this.allTags$ = this.store.pipe(select(fromSelectors.getAllTagsArr)).pipe(tap(tags => {\n this.tagGroup.reset();\n tags.forEach((value) => {\n checkboxes.addControl(value.key, new FormControl(false));\n });\n }));\n }\n\n onClearFilters() {\n this.tagGroup.reset();\n this.store.dispatch(new fromActions.ClearFilterTags());\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n onRemoveFilter(tagName) {\n const checkboxes = <FormGroup>this.tagGroup.get('tagFilters');\n checkboxes.controls[tagName].setValue(false);\n }\n\n onToggleFilterView() {\n this.isPreview = !this.isPreview;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport moment from 'moment-timezone';\n/**\n * A moment timezone pipe to support parsing based on time zone abbreviations\n * covers all cases of offset variation due to daylight saving.\n *\n * Same API as DatePipe with additional timezone abbreviation support\n * Official date pipe dropped support for abbreviations names from Angular V5\n */\n@Pipe({\n name: 'momentDate'\n})\nexport class MomentDatePipe extends DatePipe implements PipeTransform {\n\n transform(\n value: string | Date,\n format: string = 'mediumDate',\n timezone: string = 'Europe/London'\n ): string {\n const timezoneOffset = moment(value).tz(timezone).format('Z');\n return super.transform(value, format, timezoneOffset);\n }\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { Bookmark } from '../../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\n\n@Injectable()\nexport class BookmarksApiService {\n\n private readonly ANNOTATIONS_API = '/em-anno';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getBookmarks(documentId: string): Observable<any> {\n return this.httpClient\n .get(`${this.ANNOTATIONS_API}/${documentId}/bookmarks`,\n { observe: 'response' , withCredentials: true });\n }\n\n public createBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .post<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateBookmark(bookmark: Partial<Bookmark>): Observable<Bookmark> {\n return this.httpClient\n .put<Bookmark>(`${this.ANNOTATIONS_API}/bookmarks`,\n bookmark, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public updateMultipleBookmarks(bookmarks: Partial<Bookmark[]>): Observable<Bookmark[]> {\n return this.httpClient\n .put<Bookmark[]>(`${this.ANNOTATIONS_API}/bookmarks_multiple`,\n bookmarks, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteBookmark(bookmarkId: string): Observable<void> {\n return this.httpClient\n .delete<void>(`${this.ANNOTATIONS_API}/bookmarks/${bookmarkId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteMultipleBookmarks(payload: { deleted: string[], updated: Bookmark }): Observable<void> {\n return this.httpClient\n .request<void>('DELETE', `${this.ANNOTATIONS_API}/bookmarks_multiple`,\n { body: payload, observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter'\n})\nexport class FilterPipe implements PipeTransform {\n\n transform(items: any[], searchText: string, fieldName: string): any[] {\n\n if (!items) {\n return [];\n }\n\n if (!searchText) {\n return items;\n }\n\n return items.filter(item => {\n if (item) {\n if (item[fieldName]) {\n return item[fieldName].toLowerCase().includes(searchText.toLowerCase());\n } else {\n return item.toLowerCase().includes(searchText.toLowerCase());\n }\n }\n return false;\n });\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'unsnake'\n})\nexport class UnsnakePipe implements PipeTransform {\n\n transform(items: string): string {\n return items.split('_').join(' ');\n }\n\n}\n","import {Component, Input} from '@angular/core';\n/*\n* Gov UK Date Component\n* Responsible for displaying 3 input fields:\n* day / month / year\n* displaying errorMessage messages\n* */\n@Component({\n selector: 'mv-gov-uk-date',\ntemplateUrl: './gov-uk-date.component.html'\n})\nexport class GovUkDateComponent {\n @Input() config: { id: string; legend: string };\n @Input() errorMessage: {isInvalid: boolean; messages: string[]};\n @Input() formGroup;\n}\n","import {Component, Directive, Input} from '@angular/core';\n/*\n* Gov UK Error Message\n* Responsible for displaying in-line error messages\n* @prop config - obj with properties\n* @prop errorMessage - all error bject with messages property that is arry of strings.\n* */\n@Component({\n selector: ' mv-gov-uk-error-message',\n template: `\n <span class=\"govuk-error-message\" [id]=\"config.id + '-error'\" *ngFor=\"let message of errorMessage?.messages\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{message}}\n </span>\n `\n})\nexport class GovUkErrorMessageComponent {\n constructor () { }\n @Input() config: { id: string };\n @Input() errorMessage;\n}\n","/**\n * Helper Class\n * Used for dynamic templates manipulation\n * */\n\nexport class HtmlTemplatesHelper {\n\n static setDescribedBy(errorMessage, config) {\n if (!errorMessage) {\n return config.hint ? `${config.id}-hint` : null;\n } else if (errorMessage && errorMessage.isInvalid) {\n return config.hint ? `${config.id}-hint ${config.id}-error` : `${config.id}-error`;\n } else {\n return config.hint ? `${config.id}-hint` : null;\n }\n }\n}\n","import {Component, Input} from '@angular/core';\nimport {HtmlTemplatesHelper} from '../util/helpers/html-templates.helper';\n/*\n* Gov Uk Fieldset Component\n* Used to wrap group fieldset elements\n* it can conditionally display h1 tag\n* @param config\n* @param isHeading\n* @param errorMessage - used for aria tag\n* */\n@Component({\n selector: 'mv-gov-uk-fieldset',\n template: `\n <fieldset class=\"govuk-fieldset\" [attr.aria-describedby]=\"setDescribedBy()\">\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"!isHeading\">\n {{config.legend}}\n </legend>\n\n <legend [class]=\"config.classes + ' govuk-fieldset__legend'\" *ngIf=\"isHeading\">\n <h1>{{config.legend}}</h1>\n </legend>\n\n <span [id]=\"config.id+'-hint'\" class=\"govuk-hint\" *ngIf=\"config.hint\">\n {{config.hint}}\n </span>\n <ng-content></ng-content>\n </fieldset>\n `\n})\nexport class GovUkFieldsetComponent {\n @Input() config: {legend: string; classes: string, id: string, hint: string, key: string};\n @Input() isHeading: boolean;\n @Input() errorMessage: string[];\n\n setDescribedBy(): string {\n return HtmlTemplatesHelper.setDescribedBy(this.errorMessage, this.config);\n }\n}\n","import {Component, Input} from '@angular/core';\n\n/*\n* Gov UK Label component\n* Responsible for displaying label tag\n* @prop isPageHading - boolean to display h1\n* @prop config - obj with properties\n* */\n@Component({\n selector: 'mv-gov-label',\n template: `<h1 *ngIf=\"config.isPageHeading else noHeading\">\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </h1>\n <ng-template #noHeading>\n <label *ngIf=\"config.label\" [class]=\"config.classes + ' govuk-label'\"\n [for]=\"config.id\" [innerHTML]=\"config.label\">\n </label>\n </ng-template>\n `\n})\nexport class GovUkLabelComponent {\n constructor () { }\n @Input() config: { label: string, name: string; id: string, isPageHeading, classes: string };\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {GovUkDateComponent} from './gov-uk-date/gov-uk-date.component';\nimport {GovUkErrorMessageComponent} from './gov-uk-error-message/gov-uk-error-message.component';\nimport {GovUkFieldsetComponent} from './gov-uk-fieldset/gov-uk-fieldset.component';\nimport {GovUkLabelComponent} from './gov-uk-label/gov-uk-label.component';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {RouterModule} from '@angular/router';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n RouterModule\n ],\n declarations: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n\n ],\n exports: [\n GovUkDateComponent,\n GovUkErrorMessageComponent,\n GovUkFieldsetComponent,\n GovUkLabelComponent\n ]\n})\nexport class SharedModule {}\n","import {createSelector} from '@ngrx/store';\n\nimport * as fromFeature from '../reducers/reducers';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport { generateBookmarkNodes } from '../bookmarks-store-utils';\nimport * as fromDocument from './document.selectors';\n\nexport const getBookmarkState = createSelector(\n fromFeature.getMVState,\n (state: fromFeature.State) => state.bookmarks\n);\n\nexport const getBookmarkPages = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkPageEnt\n);\n\nexport const getBookmarkEntities = createSelector(\n getBookmarkState,\n fromBookmarks.getBookmarkEnts\n);\n\nexport const getBookmarkNodes = createSelector(\n getBookmarkEntities,\n (entities) => generateBookmarkNodes(entities)\n);\n\nexport const getEditableBookmark = createSelector(\n getBookmarkState,\n fromBookmarks.getEditBookmark\n);\n\nexport const getBookmarkInfo = createSelector(\n getBookmarkNodes,\n fromDocument.getDocumentId,\n fromDocument.getPdfPosition,\n fromDocument.getPages,\n (bookmarkNodes, docId, pdfPosition, pages) => {\n return {\n pageNumber: pdfPosition.pageNumber - 1,\n xCoordinate: pdfPosition.left,\n yCoordinate: pages[pdfPosition.pageNumber].styles.height - (pdfPosition.top * pages[pdfPosition.pageNumber].viewportScale),\n previous: bookmarkNodes.length > 0 ? bookmarkNodes[bookmarkNodes.length - 1].id : undefined,\n documentId: docId\n };\n }\n);\n\nexport const getBookmarksPerPage = createSelector(\n fromDocument.getPages,\n getBookmarkPages,\n (pages, pageEnt) => {\n if (pages && pageEnt) {\n const arr = [];\n Object.keys(pages).forEach(key => {\n const pageIdx = Number(key) - 1; // -1 as the thisPages array is 0 indexed\n const thisPage = pageEnt[pageIdx];\n arr.push({\n bookmark: thisPage ? thisPage : [],\n styles: pages[key].styles\n });\n });\n return arr;\n }\n }\n);\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\n\nimport * as fromStore from '../../../store/reducers/reducers';\nimport * as fromDocument from '../../../store/selectors/document.selectors';\nimport * as fromSelectors from '../../../store/selectors/annotation.selectors';\nimport { HighlightCreateService } from '../annotation-create/highlight-create/highlight-create.service';\nimport { Rectangle } from '../annotation-view/rectangle/rectangle.model';\nimport { CreateBookmark } from '../../../store/actions/bookmark.actions';\nimport * as fromBookmarks from '../../../store/selectors/bookmark.selectors';\nimport { ToolbarEventService } from '../../../toolbar/toolbar-event.service';\nimport { Highlight, ViewerEventService } from '../../../viewers/viewer-event.service';\n\n@Component({\n selector: 'mv-metadata-layer',\n templateUrl: './metadata-layer.component.html'\n})\nexport class MetadataLayerComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n pages: any[] = []; // todo add type\n annoPages$: Observable<any>; // todo add type\n\n drawMode = false;\n highlightPage: number;\n rectangles: Rectangle[];\n\n private $subscriptions: Subscription;\n\n constructor(\n private store: Store<fromStore.AnnotationSetState>,\n private readonly highlightService: HighlightCreateService,\n private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService) {}\n\n ngOnInit(): void {\n this.$subscriptions = this.store.pipe(select(fromDocument.getPages))\n .subscribe(pages => this.pages = Object.values(pages));\n this.annoPages$ = this.store.pipe(select(fromSelectors.getPageEntities));\n\n this.$subscriptions\n .add(this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode))\n .add(this.viewerEvents.textHighlight.subscribe(highlight => this.showContextToolbar(highlight)))\n .add(this.viewerEvents.ctxToolbarCleared.subscribe(() => this.clearContextToolbar()));\n }\n\n ngOnDestroy(): void {\n this.$subscriptions.unsubscribe();\n }\n\n showContextToolbar(highlight: Highlight) {\n this.highlightPage = highlight.page;\n this.rectangles = highlight.rectangles;\n if (this.rectangles) {\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n }\n\n clearContextToolbar() {\n this.rectangles = undefined;\n }\n\n createHighlight() {\n this.highlightService.saveAnnotation(this.rectangles, this.highlightPage);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n }\n\n createBookmark(rectangle: Rectangle) {\n this.store.pipe(select(fromBookmarks.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n const selection = window.getSelection().toString();\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo,\n name: selection.length > 0 ? selection.substr(0, 30) : 'new bookmark',\n id: uuid(),\n pageNumber: this.highlightPage - 1,\n xCoordinate: rectangle.x,\n yCoordinate: rectangle.y\n } as any));\n this.toolbarEvents.toggleSideBar(true);\n this.highlightService.resetHighlight();\n this.rectangles = undefined;\n\n });\n }\n\n saveAnnotation({ rectangles, page }: { rectangles: Rectangle[], page: any}) {\n this.highlightService.saveAnnotation(rectangles, page);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { RouterModule } from '@angular/router';\n\nimport { MutableDivModule } from 'mutable-div';\nimport { TagInputModule } from 'ngx-chips';\nimport {NgxDatatableModule} from '@swimlane/ngx-datatable';\n\nimport { AnnotationApiService } from './services/annotation-api/annotation-api.service';\nimport { AnnotationViewComponent } from './annotation-set/annotation-view/annotation-view.component';\nimport { AnnotationSetComponent } from './annotation-set/annotation-set.component';\nimport { RectangleComponent } from './annotation-set/annotation-view/rectangle/rectangle.component';\nimport { CommentComponent } from './comment-set/comment/comment.component';\nimport { CtxToolbarComponent } from './annotation-set/ctx-toolbar/ctx-toolbar.component';\nimport { CommentSetComponent } from './comment-set/comment-set.component';\nimport { TextareaAutoExpandDirective } from './comment-set/comment/textarea-auto-expand/textarea-auto-expand.directive';\nimport { CommentsSummaryComponent } from './comments-summary/comments-summary.component';\nimport { CommentSetRenderService } from './comment-set/comment-set-render.service';\nimport { BoxHighlightCreateComponent } from './annotation-set/annotation-create/box-highlight-create/box-highlight-create.component';\nimport { HighlightCreateService } from './annotation-set/annotation-create/highlight-create/highlight-create.service';\nimport { CommentSetHeaderComponent } from './comment-set/comment-set-header/comment-set-header.component';\nimport { CommentSearchComponent } from './comment-set/comment-set-header/comment-search/comment-search.component';\nimport { TextHighlightDirective } from './comment-set/comment/text-highlight/text-highlight.directive';\nimport { TagsComponent } from './tags/tags.component';\nimport { TagsServices } from './services/tags/tags.services';\nimport { CommentsNavigateComponent } from './comment-set/comment-navigate/comments-navigate.component';\nimport {CommentFilterComponent} from './comment-set/comment-set-header/comment-filter/comment-filter.component';\nimport {MomentDatePipe} from './pipes/date/date.pipe';\nimport { BookmarksApiService } from './services/bookmarks-api/bookmarks-api.service';\nimport {FilterPipe} from './pipes/filter/filter.pipe';\nimport {UnsnakePipe} from './pipes/unsnake/unsnake.pipe';\nimport {SharedModule} from '../shared/shared.module';\nimport { MetadataLayerComponent } from './annotation-set/metadata-layer/metadata-layer.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FormsModule,\n HttpClientModule,\n MutableDivModule,\n TagInputModule,\n RouterModule,\n ReactiveFormsModule,\n NgxDatatableModule,\n SharedModule\n ],\n declarations: [\n MetadataLayerComponent,\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n RectangleComponent,\n CommentComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n TextHighlightDirective,\n CtxToolbarComponent,\n CommentSetComponent,\n CommentsNavigateComponent,\n TextareaAutoExpandDirective,\n CommentsSummaryComponent,\n TagsComponent,\n MomentDatePipe,\n CommentFilterComponent,\n FilterPipe,\n UnsnakePipe\n ],\n entryComponents: [\n AnnotationViewComponent,\n AnnotationSetComponent,\n CommentSetComponent\n ],\n providers: [\n AnnotationApiService,\n BookmarksApiService,\n CommentSetRenderService,\n HighlightCreateService,\n TagsServices\n ],\n exports: [\n AnnotationViewComponent,\n BoxHighlightCreateComponent,\n AnnotationSetComponent,\n CommentSetComponent,\n CommentSetHeaderComponent,\n CommentSearchComponent,\n CommentsSummaryComponent,\n TagsComponent,\n CommentFilterComponent,\n MomentDatePipe,\n FilterPipe,\n UnsnakePipe,\n MetadataLayerComponent\n ]\n})\nexport class AnnotationsModule { }\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n\n@Directive({\n selector: '[mvGrabNDrag]'\n})\nexport class GrabNDragDirective {\n\n originalPosition: { left: number; top: number };\n private pointerDown = false;\n\n @Input() dragEnabled = false;\n @Input() dragX: Element;\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('pointerdown', ['$event'])\n onPointerDown(event: PointerEvent) {\n if (this.dragEnabled) {\n event.preventDefault();\n this.pointerDown = true;\n this.originalPosition = {\n left: event.clientX + this.el.nativeElement.scrollLeft,\n top: event.clientY + this.el.nativeElement.scrollTop,\n };\n }\n }\n\n @HostListener('window:pointermove', ['$event'])\n onPointerMove(event: PointerEvent) {\n if (this.pointerDown && this.dragEnabled) {\n event.preventDefault();\n const scrollDiff = {\n left: this.originalPosition.left - (event.clientX + this.el.nativeElement.scrollLeft),\n top: this.originalPosition.top - (event.clientY + this.el.nativeElement.scrollTop)\n };\n if (this.dragEnabled) {\n this.dragX.scrollLeft += scrollDiff.left;\n this.el.nativeElement.scrollTop += scrollDiff.top;\n }\n }\n }\n\n @HostListener('window:pointerup') onWindowPointerUp() {\n this.pointerDown = false;\n }\n}\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Outline } from './outline-item/outline.model';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport * as bookmarksSelectors from '../../../store/selectors/bookmark.selectors';\nimport { BookmarkNode } from '../../../store/models/bookmarks.interface';\nimport { CreateBookmark, LoadBookmarks } from '../../../store/actions/bookmark.actions';\nimport { take } from 'rxjs/operators';\nimport uuid from 'uuid';\nimport { ViewerEventService } from '../../viewer-event.service';\nimport { BookmarksState } from '../../../store/reducers/bookmarks.reducer';\n\n@Component({\n selector: 'mv-side-bar',\n templateUrl: './side-bar.component.html'\n})\nexport class SideBarComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() annotationsEnabled: boolean;\n @Input() outline: Outline;\n @Input() url: string;\n @Input() zoom: number;\n @Input() rotate: number;\n\n selectedView = 'outline';\n bookmarkNodes$: Observable<BookmarkNode[]>;\n\n $subscription: Subscription;\n\n constructor(private viewerEvents: ViewerEventService,\n private store: Store<BookmarksState>\n ) {}\n\n ngOnInit(): void {\n this.bookmarkNodes$ = this.store.pipe(select(bookmarksSelectors.getBookmarkNodes));\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editable => this.selectedView = editable ? 'bookmarks' : this.selectedView);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.url && this.url) {\n this.store.dispatch(new LoadBookmarks());\n }\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n goToDestination(destination: any[]) {\n this.viewerEvents.goToDestination(destination);\n }\n\n toggleSidebarView(sidebarView: string) {\n this.selectedView = sidebarView;\n }\n\n onAddBookmarkClick() {\n this.toggleSidebarView('bookmarks');\n this.store.pipe(select(bookmarksSelectors.getBookmarkInfo), take(1))\n .subscribe((bookmarkInfo) => {\n this.store.dispatch(new CreateBookmark({\n ...bookmarkInfo, name: 'new bookmark', id: uuid()\n } as any));\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Outline } from './outline.model';\n\n@Component({\n selector: 'mv-outline-item',\n templateUrl: './outline-item.component.html'\n})\nexport class OutlineItemComponent implements OnInit {\n\n @Input() outline: Outline;\n @Output() navigationEvent = new EventEmitter();\n\n showOutlineItems: boolean;\n\n ngOnInit() {\n this.showOutlineItems = true;\n }\n\n goToDestination(destination: any) {\n if (destination) {\n this.navigationEvent.emit(destination);\n }\n }\n\n toggleOutline() {\n this.showOutlineItems = !this.showOutlineItems;\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { select, Store } from '@ngrx/store';\nimport uuid from 'uuid';\nimport {filter, take} from 'rxjs/operators';\n\nimport { Rectangle } from '../../annotations/annotation-set/annotation-view/rectangle/rectangle.model';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromRedaSelectors from '../../store/selectors/redaction.selectors';\nimport * as fromDocument from '../../store/selectors/document.selectors';\nimport * as fromActions from '../../store/actions/redaction.actions';\nimport * as fromRedactionActions from '../../store/actions/redaction.actions';\nimport * as fromRedaActions from '../../store/actions/redaction.actions';\nimport { SelectionAnnotation } from '../../annotations/models/event-select.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\nimport { ViewerEventService } from '../../viewers/viewer-event.service';\nimport { Redaction } from '../services/redaction.model';\n\n@Component({\n selector: 'mv-redactions',\n templateUrl: './redaction.component.html'\n})\nexport class RedactionComponent implements OnInit, OnDestroy {\n\n @Input() zoom: number;\n @Input() rotate: number;\n\n redactionsPerPage$: Observable<any>; // todo add type\n selectedRedaction$: Observable<SelectionAnnotation | {}>;\n rectangles: Rectangle[];\n drawMode: boolean;\n documentId: string;\n\n private $subscription: Subscription;\n\n constructor(private store: Store<fromStore.State>,\n private readonly viewerEvents: ViewerEventService,\n private toolbarEvents: ToolbarEventService) {}\n\n ngOnInit(): void {\n this.redactionsPerPage$ = this.store.pipe(select(fromSelectors.getRedactionsPerPage));\n this.selectedRedaction$ = this.store.pipe(select(fromSelectors.getSelected));\n this.$subscription = this.toolbarEvents.drawModeSubject.subscribe(drawMode => this.drawMode = drawMode);\n this.$subscription.add(this.store.pipe(select(fromSelectors.getRedactedDocumentInfo), filter(value => !!value))\n .subscribe(redactedDocInfo => this.downloadDocument(redactedDocInfo)));\n this.$subscription.add(this.store.pipe(select(fromDocument.getDocumentId)).subscribe(docId => this.documentId = docId));\n this.$subscription.add(this.viewerEvents.textHighlight.subscribe(highlight => this.markTextRedaction(highlight)));\n this.toolbarEvents.applyRedactToDocument.subscribe(() => {\n this.store.pipe(select(fromRedaSelectors.getRedactionArray), take(1)).subscribe(redactions => {\n this.store.dispatch(new fromRedaActions.Redact(redactions));\n });\n });\n this.toolbarEvents.clearAllRedactMarkers.subscribe(() => {\n this.store.dispatch(new fromRedaActions.UnmarkAll(this.documentId));\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n markTextRedaction(highlight) {\n const redactionHighlight = highlight.rectangles;\n if (redactionHighlight && redactionHighlight.length) {\n this.saveRedaction(highlight.page, [...redactionHighlight]);\n }\n this.toolbarEvents.highlightModeSubject.next(false);\n }\n\n markBoxRedaction({ rectangles, page }) {\n this.saveRedaction(page, rectangles);\n this.toolbarEvents.drawModeSubject.next(false);\n }\n\n saveRedaction(page: number, rectangles: Rectangle[]) {\n const redaction = { page, rectangles, redactionId: uuid(), documentId: this.documentId };\n this.store.dispatch(new fromRedactionActions.SaveRedaction(redaction));\n }\n\n onMarkerDelete(event) {\n this.store.dispatch(new fromActions.DeleteRedaction(event));\n }\n\n selectRedaction(event) {\n this.store.dispatch(new fromActions.SelectRedaction(event));\n }\n\n onMarkerUpdate(redaction: Redaction) {\n this.store.dispatch(new fromActions.SaveRedaction(redaction));\n }\n\n downloadDocument({ blob, filename }) {\n if (navigator && navigator.msSaveBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.setAttribute('style', 'display: none');\n a.href = url;\n a.download = filename;\n a.click();\n a.remove();\n URL.revokeObjectURL(url);\n }\n this.store.dispatch(new fromRedactionActions.ResetRedactedDocument());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpSessionApiService {\n\n public ICP_SESSION_API = '/icp/sessions';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public loadSession(caseId: string): Observable<any> {\n return this.httpClient\n .get<{username: string, session: IcpSession}>(`${this.ICP_SESSION_API}/${caseId}`,\n { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport socketio from 'socket.io-client/dist/socket.io.js';\n\n@Injectable()\nexport class SocketService implements OnDestroy {\n\n private socket: any;\n subscription: Subscription;\n\n connected$ = new BehaviorSubject<boolean>(false);\n\n constructor() {}\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n connect() {\n this.socket = this.getSocketClient();\n this.socket.on('connect', () => this.connected$.next(true));\n this.socket.on('disconnect', () => this.connected$.next(false));\n }\n\n join(session) {\n this.subscription = this.connected$.subscribe(connected => {\n if (connected) {\n this.socket.emit('join', session);\n }\n });\n }\n\n leave(session) {\n this.socket.emit('leave', session);\n this.subscription.unsubscribe();\n }\n\n emit(event: string, data: any) {\n this.socket.emit(event, data);\n }\n\n listen(event: string): Observable<any> {\n return new Observable( observer => {\n this.socket.on(event, data => {\n observer.next(data);\n });\n return () => this.socket.off(event);\n });\n }\n\n getSocketClient() {\n return socketio('/', {\n path: '/icp/socket.io', agent: true\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SocketService } from './socket.service';\nimport { IcpParticipant, IcpScreenUpdate, IcpSession } from './icp.interfaces';\n\n@Injectable()\nexport class IcpUpdateService {\n\n SESSION_JOINED = '[Icp] Client Joined Session';\n CLIENT_DISCONNECTED = '[Icp] Client Disconnected From Session';\n NEW_PARTICIPANT_JOINED = '[Icp] New Participant Joined Session';\n REMOVE_PARTICIPANT = '[Icp] Remove Participant from List';\n PARTICIPANTS_UPDATED = '[Icp] Participants List Updated';\n UPDATE_PRESENTER = '[Icp] New Presenter Starts Presenting';\n PRESENTER_UPDATED = '[Icp] Presenter Updated';\n UPDATE_SCREEN = '[Icp] Update Screen';\n SCREEN_UPDATED = '[Icp] Screen Updated';\n\n session: IcpSession;\n\n constructor(private socket: SocketService) {}\n\n joinSession(username: string, session: IcpSession) {\n this.session = session;\n this.socket.connect();\n this.socket.join({...this.session, username});\n return this.socket.listen(this.SESSION_JOINED);\n }\n\n leaveSession() {\n this.socket.leave(this.session);\n }\n\n newParticipantJoined() {\n return this.socket.listen(this.NEW_PARTICIPANT_JOINED);\n }\n\n clientDisconnected() {\n return this.socket.listen(this.CLIENT_DISCONNECTED);\n }\n\n removeParticipant(participantId) {\n this.socket.emit(this.REMOVE_PARTICIPANT, {\n participantId: participantId, caseId: this.session.caseId\n });\n }\n\n participantListUpdated() {\n return this.socket.listen(this.PARTICIPANTS_UPDATED);\n }\n\n updatePresenter(presenter: IcpParticipant) {\n this.socket.emit(this.UPDATE_PRESENTER, {\n ...this.session, presenterId: presenter.id, presenterName: presenter.username\n });\n }\n\n presenterUpdated() {\n return this.socket.listen(this.PRESENTER_UPDATED);\n }\n\n updateScreen(screen: IcpScreenUpdate) {\n const update = { body: screen, sessionId: this.session.sessionId };\n this.socket.emit(this.UPDATE_SCREEN, update);\n }\n\n screenUpdated() {\n return this.socket.listen(this.SCREEN_UPDATED);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpState, IcpScreenUpdate, IcpSession, IcpParticipant } from './icp.interfaces';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { PdfPosition } from '../store/reducers/document.reducer';\n\n@Injectable()\nexport class IcpPresenterService {\n\n session: IcpSession;\n presenter: IcpParticipant;\n pdfPosition: PdfPosition;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n update(isPresenter: boolean) {\n if (isPresenter) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.store.pipe(select(fromDocSelectors.getPdfPosition)).subscribe(pdfPosition => {\n this.pdfPosition = pdfPosition;\n this.onPositionUpdate(pdfPosition);\n });\n this.$subscription.add(this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => {\n this.presenter = presenter;\n }));\n this.$subscription.add(this.socketService.newParticipantJoined().subscribe(() => this.onNewParticipantJoined()));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n onPositionUpdate(pdfPosition: PdfPosition) {\n const screen: IcpScreenUpdate = { pdfPosition, document: undefined };\n this.socketService.updateScreen(screen);\n }\n\n onNewParticipantJoined() {\n this.onPositionUpdate(this.pdfPosition);\n this.socketService.updatePresenter(this.presenter);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { IcpUpdateService } from './icp-update.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { take } from 'rxjs/operators';\nimport { IcpState, IcpSession } from './icp.interfaces';\nimport * as fromDocSelectors from '../store/selectors/document.selectors';\n\n@Injectable()\nexport class IcpFollowerService {\n\n session: IcpSession;\n\n $subscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private store: Store<IcpState>) {}\n\n\n update(isFollower: boolean) {\n if (isFollower) {\n this.subscribe();\n } else {\n this.unsubscribe();\n }\n }\n\n subscribe() {\n if (!this.$subscription) {\n this.$subscription = this.socketService.screenUpdated()\n .subscribe(screen => this.followScreenUpdate(screen));\n }\n }\n\n unsubscribe() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n this.$subscription = undefined;\n }\n }\n\n followScreenUpdate({ pdfPosition }) {\n if (pdfPosition) {\n this.viewerEvents.goToDestination([\n pdfPosition.pageNumber - 1,\n { 'name': 'XYZ' },\n pdfPosition.left,\n pdfPosition.top\n ]);\n }\n this.store.pipe(select(fromDocSelectors.getPdfPosition), take(1))\n .subscribe(position => {\n const rotationDelta = (pdfPosition.rotation - position.rotation) % 360;\n if (rotationDelta !== 0) {\n this.toolbarEvents.rotate(rotationDelta);\n }\n });\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { IcpParticipant, IcpState } from './icp.interfaces';\nimport { Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../toolbar/toolbar-event.service';\nimport { ViewerEventService } from '../viewers/viewer-event.service';\nimport { IcpUpdateService } from './icp-update.service';\nimport { IcpPresenterService } from './icp-presenter.service';\nimport { IcpFollowerService } from './icp-follower.service';\nimport { select, Store } from '@ngrx/store';\nimport * as fromIcpActions from '../store/actions/icp.actions';\nimport * as fromIcpSelectors from '../store/selectors/icp.selectors';\nimport { filter, take } from 'rxjs/operators';\n\n@Injectable()\nexport class IcpService implements OnDestroy {\n\n caseId: string;\n client: IcpParticipant;\n presenter: IcpParticipant;\n isPresenter: boolean;\n\n subscription: Subscription;\n sessionSubscription: Subscription;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private readonly viewerEvents: ViewerEventService,\n private readonly socketService: IcpUpdateService,\n private readonly presenterSubscriptions: IcpPresenterService,\n private readonly followerSubscriptions: IcpFollowerService,\n private store: Store<IcpState>) {\n this.subscription = this.store.pipe(select(fromIcpSelectors.getCaseId), filter(value => !!value)).subscribe(caseId => {\n this.caseId = caseId;\n });\n this.subscription.add(this.toolbarEvents.icp.sessionLaunch.subscribe(() => {\n if (this.caseId) { this.launchSession(); }\n }));\n }\n\n ngOnDestroy() {\n this.unsubscribeSession();\n this.subscription.unsubscribe();\n }\n\n launchSession() {\n this.store.dispatch(new fromIcpActions.LoadIcpSession(this.caseId));\n this.subscription.add(this.store.pipe(select(fromIcpSelectors.getIcpSession),\n filter(value => !!value && Object.keys(value).length > 1 ),\n take(1)).subscribe(() => { this.setUpSessionSubscriptions(); }));\n }\n\n setUpSessionSubscriptions() {\n this.sessionSubscription = this.toolbarEvents.icp.becomingPresenter.subscribe(() => this.becomePresenter());\n this.sessionSubscription.add(this.toolbarEvents.icp.stoppingPresenting.subscribe(() => this.stopPresenting()));\n this.sessionSubscription.add(this.toolbarEvents.icp.sessionExitConfirmed.subscribe(() => this.leavePresentation()));\n this.sessionSubscription.add(\n this.store.pipe(select(fromIcpSelectors.getPresenter)).subscribe(presenter => this.presenter = presenter )\n );\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.getClient)).subscribe(client => this.client = client));\n this.sessionSubscription.add(this.store.pipe(select(fromIcpSelectors.isPresenter)).subscribe(isPresenter => {\n this.isPresenter = isPresenter;\n this.presenterSubscriptions.update(isPresenter);\n this.followerSubscriptions.update(!isPresenter);\n }));\n this.sessionSubscription.add(this.socketService.clientDisconnected().subscribe(cli => this.clientDisconnected(cli)));\n this.sessionSubscription.add(this.socketService.presenterUpdated().subscribe(pres => {\n this.store.dispatch(new fromIcpActions.IcpPresenterUpdated(pres));\n }));\n this.sessionSubscription.add(this.socketService.participantListUpdated().subscribe(participants => {\n this.store.dispatch(new fromIcpActions.IcpParticipantListUpdated(participants));\n }));\n }\n\n unsubscribeSession() {\n this.presenterSubscriptions.update(false);\n this.followerSubscriptions.update(false);\n this.sessionSubscription.unsubscribe();\n }\n\n leavePresentation() {\n if (this.isPresenter) {\n this.stopPresenting();\n }\n this.removeParticipant(this.client.id);\n this.socketService.leaveSession();\n this.store.dispatch(new fromIcpActions.LeaveIcpSocketSession());\n this.unsubscribeSession();\n }\n\n stopPresenting() {\n const presenter: IcpParticipant = {username: '', id: ''};\n this.socketService.updatePresenter(presenter);\n }\n\n becomePresenter() {\n this.socketService.updatePresenter(this.client);\n }\n\n clientDisconnected(client) {\n if (client === this.presenter.id) {\n this.stopPresenting();\n }\n this.removeParticipant(client);\n }\n\n removeParticipant(participantId) {\n this.socketService.removeParticipant(participantId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport {catchError, exhaustMap, map, switchMap} from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport {AnnotationApiService} from '../../annotations/services/annotation-api/annotation-api.service';\nimport * as annotationsActions from '../actions/annotation.actions';\n\n@Injectable()\nexport class AnnotationEffects {\n constructor(\n private actions$: Actions,\n private annotationApiService: AnnotationApiService,\n ) { }\n\n @Effect()\n loadAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.LOAD_ANNOTATION_SET),\n map((action: annotationsActions.LoadAnnotationSet) => action.payload),\n switchMap((documentId) => {\n return this.annotationApiService.getAnnotationSet(documentId).pipe(\n map(res => {\n return new annotationsActions.LoadAnnotationSetSucess(res);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n postAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.SAVE_ANNOTATION),\n map((action: annotationsActions.SaveAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.postAnnotation(annotation).pipe(\n map(annotations => {\n return new annotationsActions.SaveAnnotationSuccess(annotations);\n }),\n catchError(error => {\n return of(new annotationsActions.LoadAnnotationSetFail(error));\n }));\n }));\n\n @Effect()\n deleteAnnotation$ = this.actions$.pipe(\n ofType(annotationsActions.DELETE_ANNOTATION),\n map((action: annotationsActions.DeleteAnnotation) => action.payload),\n exhaustMap((annotation) => {\n return this.annotationApiService.deleteAnnotation(annotation).pipe(\n map(result => {\n return new annotationsActions.DeleteAnnotationSuccess(annotation);\n }),\n catchError(error => {\n return of(new annotationsActions.DeleteAnnotationFail(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { BookmarksApiService } from '../../annotations/services/bookmarks-api/bookmarks-api.service';\nimport * as bookmarksActions from '../actions/bookmark.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocument from '../selectors/document.selectors';\nimport * as fromBookmarks from '../reducers/bookmarks.reducer';\nimport * as fromStore from '../reducers/reducers';\n\n@Injectable()\nexport class BookmarksEffects {\n\n constructor(private actions$: Actions,\n private store: Store<fromStore.AnnotationSetState|fromBookmarks.BookmarksState>,\n private bookmarksApiService: BookmarksApiService) {}\n\n @Effect()\n loadBookmarks$ = this.actions$.pipe(\n ofType(bookmarksActions.LOAD_BOOKMARKS),\n withLatestFrom(this.store.pipe(select(fromDocument.getDocumentId))),\n map(([, documentId]) => documentId),\n exhaustMap((documentId) =>\n this.bookmarksApiService.getBookmarks(documentId)\n .pipe(\n map(res => new bookmarksActions.LoadBookmarksSuccess(res)),\n catchError(err => of(new bookmarksActions.LoadBookmarksFailure(err)))\n )\n ));\n\n @Effect()\n createBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.CREATE_BOOKMARK),\n map((action: bookmarksActions.CreateBookmark) => action.payload),\n exhaustMap((bookmark) =>\n this.bookmarksApiService.createBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.CreateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.CreateBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n moveBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.MOVE_BOOKMARK),\n map((action: bookmarksActions.MoveBookmark) => action.payload),\n exhaustMap((bookmarks) =>\n this.bookmarksApiService.updateMultipleBookmarks(bookmarks)\n .pipe(\n map(bmrks => new bookmarksActions.MoveBookmarkSuccess(bmrks)),\n catchError(error => of(new bookmarksActions.MoveBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n deleteBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.DELETE_BOOKMARK),\n map((action: bookmarksActions.DeleteBookmark) => action.payload),\n exhaustMap(({ deleted, updated }) =>\n this.bookmarksApiService.deleteMultipleBookmarks({ deleted, updated })\n .pipe(\n switchMap(() => {\n if (updated) {\n return [\n new bookmarksActions.DeleteBookmarkSuccess(deleted),\n new bookmarksActions.UpdateBookmarkSuccess(updated)\n ];\n } else {\n return [new bookmarksActions.DeleteBookmarkSuccess(deleted)];\n }\n }),\n catchError(error => of(new bookmarksActions.DeleteBookmarkFailure(error)))\n )\n ));\n\n @Effect()\n updateBookmark$ = this.actions$.pipe(\n ofType(bookmarksActions.UPDATE_BOOKMARK),\n map((action: bookmarksActions.UpdateBookmark) => action.payload),\n switchMap((bookmark) =>\n this.bookmarksApiService.updateBookmark(bookmark)\n .pipe(\n map(bmrk => new bookmarksActions.UpdateBookmarkSuccess(bmrk)),\n catchError(error => of(new bookmarksActions.UpdateBookmarkFailure(error)))\n )\n ));\n}\n","import {Observable} from 'rxjs';\nimport {HttpClient, HttpResponse} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {catchError, map} from 'rxjs/operators';\nimport { Redaction } from './redaction.model';\n\n@Injectable()\nexport class RedactionApiService {\n\n private markupsApiUrl = '/api/markups';\n private redactApiUrl = '/api/redaction';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRedactions(documentId: string): Observable<HttpResponse<Redaction[]>> {\n const fixedUrl = `${this.markupsApiUrl}/${documentId}`;\n return this.httpClient\n .get<Redaction[]>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRedaction(body): Observable<Redaction> {\n return this.httpClient\n .post<Redaction>(this.markupsApiUrl, body, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response.body),\n catchError(() => [])\n );\n }\n\n public deleteRedaction(payload): Observable<null> {\n const url = `${this.markupsApiUrl}/${payload.documentId}/${payload.redactionId}`;\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public deleteAllMarkers(documentId): Observable<null> {\n const url = `${this.markupsApiUrl}/${documentId}`;\n\n return this.httpClient\n .delete<null>(url, { observe: 'response' , withCredentials: true })\n .pipe(map(response => response.body));\n }\n\n public redact(payload): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(this.redactApiUrl, payload, { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { RedactionApiService } from '../../redaction/services/redaction-api.service';\nimport * as redactionActions from '../actions/redaction.actions';\nimport { HttpResponse } from '@angular/common/http';\n\n@Injectable()\nexport class RedactionEffects {\n constructor(\n private actions$: Actions,\n private redactionApiService: RedactionApiService,\n ) { }\n\n @Effect()\n loadRedactions$ = this.actions$.pipe(\n ofType(redactionActions.LOAD_REDACTIONS),\n map((action: redactionActions.LoadRedactions) => action.payload),\n switchMap((documentId) => {\n return this.redactionApiService.getRedactions(documentId).pipe(\n map(resp => {\n return new redactionActions.LoadRedactionSuccess(resp.body);\n }),\n catchError(error => {\n return of(new redactionActions.LoadRedactionFailure(error));\n }));\n }));\n\n @Effect()\n saveRedaction$ = this.actions$.pipe(\n ofType(redactionActions.SAVE_REDACTION),\n map((action: redactionActions.SaveRedaction) => action.payload),\n exhaustMap((redaction) => {\n return this.redactionApiService.saveRedaction(redaction).pipe(\n map(resp => {\n return new redactionActions.SaveRedactionSuccess(resp);\n }),\n catchError(error => {\n return of(new redactionActions.SaveRedactionFailure(error));\n }));\n }));\n\n @Effect()\n deleteRedaction$ = this.actions$.pipe(\n ofType(redactionActions.DELETE_REDACTION),\n map((action: redactionActions.DeleteRedaction) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.deleteRedaction(redactionPayload).pipe(\n map(() => {\n return new redactionActions.DeleteRedactionSuccess(redactionPayload);\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n\n @Effect()\n redact$ = this.actions$.pipe(\n ofType(redactionActions.REDACT),\n map((action: redactionActions.Redact) => action.payload),\n exhaustMap((redactionPayload) => {\n return this.redactionApiService.redact(redactionPayload).pipe(\n map((result: HttpResponse<Blob>) => {\n const header = result.headers.get('content-disposition').split('filename=');\n const filename = header.length > 1 ? header[1].replace(/\"/g, '')\n : `redacted-document-${redactionPayload.documentId}`;\n return new redactionActions.RedactSuccess({ blob: result.body, filename });\n }),\n catchError(error => {\n return of(new redactionActions.RedactFailure(error));\n }));\n }));\n\n @Effect()\n unmarkAll$ = this.actions$.pipe(\n ofType(redactionActions.UNMARK_ALL),\n map((action: redactionActions.UnmarkAll) => action.payload),\n exhaustMap((documentId) => {\n return this.redactionApiService.deleteAllMarkers(documentId).pipe(\n map(result => {\n return new redactionActions.UnmarkAllSuccess();\n }),\n catchError(error => {\n return of(new redactionActions.DeleteRedactionFailure(error));\n }));\n }));\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentConversionApiService {\n\n private documentConversionUrl = '/doc-assembly/convert';\n\n constructor(private readonly httpClient: HttpClient) {}\n\n public convert(documentId): Observable<HttpResponse<Blob>> {\n return this.httpClient\n .post<Blob>(`${this.documentConversionUrl}/${documentId}`, {},\n { observe: 'response' , withCredentials: true, responseType: 'blob' as 'json' })\n .pipe(\n map(response => response),\n catchError(error => of(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\n\n@Injectable()\nexport class RotationApiService {\n\n public rotationApiUrl = '/em-anno/metadata';\n\n constructor(\n private readonly httpClient: HttpClient\n ) {}\n\n public getRotation(documentId: string): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/${documentId}`;\n return this.httpClient\n .get<Rotation>(fixedUrl, { observe: 'response' , withCredentials: true });\n }\n\n public saveRotation(payload: Rotation): Observable<HttpResponse<Rotation>> {\n const fixedUrl = `${this.rotationApiUrl}/`;\n return this.httpClient\n .post<any>(fixedUrl, payload, { observe: 'response' , withCredentials: true })\n .pipe(\n map(response => response),\n catchError(() => [])\n );\n }\n\n}\n","import { Actions, Effect, ofType } from '@ngrx/effects';\nimport { Injectable } from '@angular/core';\nimport { HttpResponse } from '@angular/common/http';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { DocumentConversionApiService } from '../../viewers/convertible-content-viewer/document-conversion-api.service';\nimport { RotationApiService } from '../../viewers/rotation-persist/rotation-api.service';\nimport { of } from 'rxjs';\nimport * as documentActions from '../actions/document.actions';\n\n@Injectable()\nexport class DocumentEffects {\n constructor(\n private actions$: Actions,\n private documentConversionService: DocumentConversionApiService,\n private rotationApiService: RotationApiService,\n ) { }\n\n @Effect()\n convert$ = this.actions$.pipe(\n ofType(documentActions.CONVERT),\n map((action: documentActions.Convert) => action.payload),\n exhaustMap((documentId) => {\n return this.documentConversionService.convert(documentId).pipe(\n map((result: HttpResponse<Blob>) => {\n const url = URL.createObjectURL(result.body);\n return new documentActions.ConvertSuccess(url);\n }),\n catchError(error => {\n return of(new documentActions.ConvertFailure(error));\n }));\n }));\n\n @Effect()\n loadRotation$ = this.actions$.pipe(\n ofType(documentActions.LOAD_ROTATION),\n map((action: documentActions.LoadRotation) => action.payload),\n switchMap((documentId) => {\n return this.rotationApiService.getRotation(documentId).pipe(\n map(resp => {\n return new documentActions.LoadRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.LoadRotationFailure(error));\n }));\n }));\n\n @Effect()\n saveRotation$ = this.actions$.pipe(\n ofType(documentActions.SAVE_ROTATION),\n map((action: documentActions.SaveRotation) => action.payload),\n switchMap((payload) => {\n return this.rotationApiService.saveRotation(payload).pipe(\n map(resp => {\n return new documentActions.SaveRotationSuccess(resp.body);\n }),\n catchError(error => {\n return of(new documentActions.SaveRotationFailure(error));\n }));\n }));\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, Effect, ofType } from '@ngrx/effects';\nimport { catchError, exhaustMap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { IcpSessionApiService } from '../../icp/icp-session-api.service';\nimport { IcpUpdateService } from '../../icp/icp-update.service';\nimport * as icpActions from '../actions/icp.actions' ;\nimport { IcpSession } from '../../icp/icp.interfaces';\n\n@Injectable()\nexport class IcpEffects {\n\n constructor(private actions$: Actions,\n private icpApiService: IcpSessionApiService,\n private icpUpdateService: IcpUpdateService) {}\n\n @Effect()\n loadIcpSession$ = this.actions$.pipe(\n ofType(icpActions.LOAD_ICP_SESSION),\n map((action: icpActions.LoadIcpSession) => action.payload),\n exhaustMap((caseId: string) =>\n this.icpApiService.loadSession(caseId)\n .pipe(\n map(res => new icpActions.JoinIcpSocketSession(res)),\n catchError(error => of(new icpActions.LoadIcpSessionFailure(error)))\n )\n ));\n\n\n @Effect()\n joinIcpSocketSession$ = this.actions$.pipe(\n ofType(icpActions.JOIN_ICP_SOCKET_SESSION),\n map((action: icpActions.JoinIcpSocketSession) => action.payload),\n switchMap((res: {username: string, session: IcpSession}) =>\n this.icpUpdateService.joinSession(res.username, res.session)\n .pipe(map(participants => new icpActions.IcpSocketSessionJoined({session: res.session, participantInfo: participants})))\n ));\n}\n","import { AnnotationEffects } from './annotation.effects';\nimport { BookmarksEffects } from './bookmarks.effects';\nimport { RedactionEffects } from './redaction.effects';\nimport { DocumentEffects } from './document.effects';\nimport { IcpEffects } from './icp.effects';\n\nexport const effects: any[] = [AnnotationEffects, BookmarksEffects, RedactionEffects, DocumentEffects, IcpEffects];\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { TreeNode } from 'angular-tree-component';\n\nimport { DeleteBookmark, MoveBookmark, UpdateBookmark } from '../../../../store/actions/bookmark.actions';\nimport { Bookmark, BookmarkNode } from '../../../../store/models/bookmarks.interface';\nimport * as bookmarksSelectors from '../../../../store/selectors/bookmark.selectors';\nimport { AnnotationSetState} from '../../../../store/reducers/annotations.reducer';\nimport { DocumentPages } from '../../../../store/reducers/document.reducer';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport * as fromBookmarks from '../../../../store/reducers/bookmarks.reducer';\nimport { getBookmarkChildren } from '../../../../store/bookmarks-store-utils';\n\n@Component({\n selector: 'mv-bookmarks',\n templateUrl: './bookmarks.component.html'\n})\nexport class BookmarksComponent implements OnInit, OnDestroy {\n\n @Input() bookmarkNodes: BookmarkNode[];\n @Input() zoom: number;\n @Input() rotate: number;\n @Output() goToDestination = new EventEmitter<any[]>();\n\n pageLookup: {[pageId: number]: DocumentPages } = {};\n editableBookmark: string;\n BOOKMARK_CHAR_LIMIT = 30;\n\n options = {\n allowDrag: true,\n allowDrop: true\n };\n\n $subscription: Subscription;\n\n constructor(private store: Store<fromBookmarks.BookmarksState|AnnotationSetState>) {}\n\n ngOnInit(): void {\n this.$subscription = this.store.pipe(select(bookmarksSelectors.getEditableBookmark))\n .subscribe(editableId => this.editableBookmark = editableId);\n this.$subscription.add(this.store.select(fromDocument.getPages)\n .subscribe(pages => {\n\n Object.keys(pages).map(key => {\n this.pageLookup[key] = pages[key];\n });\n\n }));\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n editBookmark(id) {\n this.editableBookmark = id;\n }\n\n onBookmarkMove({ node, from, to }: any) {\n let movedBookmarks = [{\n ...node,\n previous: to.index > 0 ? to.parent.children[to.index - 1].id : undefined,\n parent: to.parent.documentId ? to.parent.id : undefined\n }];\n let fromNext = this.getSibling(from, from.index);\n fromNext = fromNext && fromNext.id === node.previous ? this.getSibling(from, from.index + 1) : fromNext;\n if (fromNext) {\n movedBookmarks = [...movedBookmarks, { ...fromNext, previous: node.previous }];\n }\n const toNext = this.getSibling(to, to.index + 1);\n if (toNext) {\n movedBookmarks = [ ...movedBookmarks, { ...toNext, previous: node.id }];\n }\n this.store.dispatch(new MoveBookmark(movedBookmarks));\n }\n\n deleteBookmark(node: TreeNode) {\n let next: Bookmark;\n const siblings = node.parent.children;\n if (siblings.length > node.index + 1) {\n next = siblings[node.index + 1].data;\n next.previous = node.data.previous;\n }\n this.store.dispatch(new DeleteBookmark({\n deleted: [node.data.id, ...getBookmarkChildren(node.data.children)], updated: next\n }));\n }\n\n updateBookmark(bookmark: Bookmark, name) {\n const editedBookmark = {\n ... bookmark,\n name\n };\n this.store.dispatch(new UpdateBookmark(editedBookmark));\n this.editableBookmark = undefined;\n }\n\n goToBookmark(bookmark: Bookmark) {\n const thisPage = this.pageLookup[bookmark.pageNumber + 1];\n const defaultHeight = thisPage.styles.height;\n const defaultScaleY = this.scaledY(bookmark.yCoordinate, defaultHeight, thisPage);\n\n let top = 0, left = 0;\n switch (this.rotate) {\n case 90:\n left = - defaultScaleY;\n break;\n case 180:\n top = this.scaledY(bookmark.yCoordinate, (defaultHeight - (24 * this.zoom)), thisPage);\n break;\n case 270:\n left = defaultScaleY;\n break;\n default:\n top = defaultScaleY;\n }\n\n this.goToDestination.emit([\n bookmark.pageNumber,\n { 'name': 'XYZ' },\n left,\n top\n ]);\n }\n\n private getSibling(node, index) {\n return node.parent.children.length > index ? node.parent.children[index] : undefined;\n }\n\n private scaledY(yCoordinate: number, height: number, page: DocumentPages): number {\n const viewportScale = page.viewportScale / this.zoom;\n return ((height / this.zoom) - yCoordinate) / viewportScale;\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ResponseType, ViewerException } from '../viewer-exception.model';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/document.reducer';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { Subscription } from 'rxjs';\nimport * as fromSelectors from '../../store/selectors/document.selectors';\nimport { AnnotationSet } from '../../annotations/annotation-set/annotation-set.model';\nimport { filter } from 'rxjs/operators';\n\n@Component({\n selector: 'mv-conversion-viewer',\n templateUrl: './convertible-content-viewer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ConvertibleContentViewerComponent implements OnInit, OnDestroy {\n\n @Input() originalUrl;\n @Input() downloadFileName: string;\n\n @Input() height;\n\n @Input() enableAnnotations: boolean;\n @Input() enableRedactions: boolean;\n @Input() annotationSet: AnnotationSet | null;\n\n\n @Output() mediaLoadStatus = new EventEmitter<ResponseType>();\n @Output() viewerException = new EventEmitter<ViewerException>();\n @Output() documentTitle = new EventEmitter<string>();\n\n private $subscription: Subscription;\n convertedUrl: string;\n\n constructor(private store: Store<fromStore.DocumentState>) {\n }\n\n ngOnInit(): void {\n this.store.dispatch(new fromDocumentActions.Convert(this.extractDMStoreDocId(this.originalUrl)));\n this.$subscription = this.store.pipe(select(fromSelectors.getConvertedDocument), filter(value => !!value))\n .subscribe((docInfo) => {\n if (docInfo.url) {\n this.convertedUrl = docInfo.url;\n this.store.dispatch(new fromDocumentActions.ClearConvertDocUrl());\n } else {\n this.onLoadException(new ViewerException(docInfo.error));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.$subscription.unsubscribe();\n }\n\n onMediaLoad(status: ResponseType) {\n this.mediaLoadStatus.emit(status);\n }\n\n onLoadException(exception: ViewerException) {\n this.viewerException.emit(exception);\n }\n\n onDocumentTitleChange(title: string) {\n this.documentTitle.emit(title);\n }\n\n // todo move this to common place for media viewer and pdf\n private extractDMStoreDocId(url: string): string {\n\n if (url.includes('/documents/')) {\n url = url.split('/documents/')[1];\n } else if (url.includes('/documentsv2/')) {\n url = url.split('/documentsv2/')[1];\n }\n return url.replace('/binary', '');\n }\n}\n","import { Component } from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar.module';\n\n@Component({\n selector: 'mv-confirm-action',\n templateUrl: './confirm-action-dialog.component.html',\n})\nexport class ConfirmActionDialogComponent {\n\n constructor(private toolbarEvents: ToolbarEventService) {}\n\n onCancel() {\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n\n onConfirm() {\n this.toolbarEvents.icp.confirmExit();\n this.toolbarEvents.icp.leavingSession.next(false);\n }\n}\n","import {Bookmark, BookmarksPerPage} from '../../viewers/pdf-viewer/side-bar/bookmarks/bookmarks.interfaces';\nimport {Component, Input, OnInit} from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport * as fromStore from '../../store/reducers/reducers';\nimport * as fromSelectors from '../../store/selectors/bookmark.selectors';\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'mv-bookmark-icons',\n templateUrl: './bookmark-icons.component.html'\n})\nexport class BookmarkIconsComponent implements OnInit {\n\n @Input() zoom: number;\n @Input() rotate: number;\n bookmarksPerPage$: Observable<BookmarksPerPage[]>;\n bookmarks: Bookmark[];\n documentId: string;\n\n constructor(private store: Store<fromStore.State>) {}\n\n ngOnInit(): void {\n this.bookmarksPerPage$ = this.store.pipe(select(fromSelectors.getBookmarksPerPage));\n }\n\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport * as fromDocumentActions from '../../store/actions/document.actions';\nimport { select, Store } from '@ngrx/store';\nimport * as fromDocuments from '../../store/selectors/document.selectors';\nimport { filter, take } from 'rxjs/operators';\nimport { Rotation } from './rotation.model';\nimport { ResponseType } from '../viewer-exception.model';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport * as fromStore from '../../store/reducers/reducers';\nimport { ToolbarButtonVisibilityService } from '../../toolbar/toolbar-button-visibility.service';\nimport { Subscription } from 'rxjs';\n\n\n@Directive({\n selector: '[mvRotationPersist]'\n})\nexport class RotationPersistDirective implements OnInit, OnDestroy {\n\n documentId: string;\n rotation = 0;\n savedRotation = 0;\n\n $subscriptions: Subscription;\n\n constructor(private el: ElementRef,\n private store: Store<fromStore.DocumentState>,\n public readonly toolbarButtons: ToolbarButtonVisibilityService,\n private toolbarEvents: ToolbarEventService) {\n }\n\n ngOnInit() {\n this.$subscriptions = this.toolbarEvents.rotateSubject.subscribe(rotation => this.onRotate(rotation));\n this.$subscriptions\n .add(this.toolbarEvents.saveRotationSubject.subscribe(() => this.saveRotation()))\n .add(this.store.pipe(select(fromDocuments.getRotation))\n .subscribe(rotation => this.savedRotation = rotation))\n .add(this.store.pipe(select(fromDocuments.getDocumentId))\n .subscribe(documentId => this.documentId = documentId));\n }\n\n ngOnDestroy() {\n this.$subscriptions.unsubscribe();\n }\n\n @HostListener('mediaLoadStatus', ['$event'])\n onMediaLoad(status: ResponseType) {\n this.rotation = 0;\n this.store.dispatch(new fromDocumentActions.LoadRotation(this.documentId));\n this.store.pipe(select(fromDocuments.rotationLoaded),\n filter(value => !!value),\n take(1))\n .subscribe(() => {\n if (this.savedRotation) {\n this.toolbarEvents.rotateSubject.next(this.savedRotation);\n }\n });\n }\n\n private onRotate(rotation: number) {\n this.rotation = (this.rotation + rotation) % 360;\n this.toolbarButtons.showSaveRotationButton = this.savedRotation !== this.rotation;\n }\n\n private saveRotation() {\n const payload: Rotation = {\n documentId: this.documentId,\n rotationAngle: this.rotation\n };\n this.store.dispatch(new fromDocumentActions.SaveRotation(payload));\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { IcpParticipant, IcpState } from '../icp.interfaces';\nimport { select, Store } from '@ngrx/store';\nimport * as fromSelectors from '../../store/selectors/icp.selectors';\n\n@Component({\n selector: 'mv-participants-list',\n templateUrl: './participants-list.component.html'\n})\nexport class ParticipantsListComponent implements OnInit, OnDestroy {\n\n subscription: Subscription;\n participants$: Observable<IcpParticipant[]>;\n presenter$: Observable<IcpParticipant>;\n isPresenter$: Observable<boolean>;\n\n showParticipantsList = false;\n\n constructor(private readonly toolbarEvents: ToolbarEventService,\n private store: Store<IcpState>) {}\n\n ngOnInit() {\n this.participants$ = this.store.pipe(select(fromSelectors.getParticipants));\n this.presenter$ = this.store.pipe(select(fromSelectors.getPresenter));\n this.isPresenter$ = this.store.pipe(select(fromSelectors.isPresenter));\n\n this.subscription = this.toolbarEvents.icp.participantsListVisible.subscribe(isVisible => this.showParticipantsList = isVisible);\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit } from '@angular/core';\nimport uuid from 'uuid';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { Rectangle } from '../../annotation-view/rectangle/rectangle.model';\nimport { ToolbarEventService } from '../../../../toolbar/toolbar.module';\nimport * as fromStore from '../../../../store/reducers/reducers';\nimport * as fromDocument from '../../../../store/selectors/document.selectors';\nimport { ViewerEventService } from '../../../../viewers/viewer-event.service';\nimport * as fromAnnotationActions from '../../../../store/actions/annotation.actions';\nimport { HighlightCreateService } from './highlight-create.service';\n\n@Directive({\n selector: '[mvCreateTextHighlight]'\n})\nexport class HighlightCreateDirective implements OnInit, OnDestroy {\n\n pageHeight: number;\n pageWidth: number;\n zoom: number;\n rotate: number;\n allPages: object;\n\n $subscription: Subscription;\n\n constructor(private element: ElementRef<HTMLElement>,\n private toolbarEvents: ToolbarEventService,\n private viewerEvents: ViewerEventService,\n private highlightService: HighlightCreateService,\n private store: Store<fromStore.AnnotationSetState>) {}\n\n ngOnInit() {\n this.$subscription = this.store.select(fromDocument.getPages).subscribe(pages => {\n if (pages[1]) {\n this.allPages = pages;\n }\n });\n }\n\n ngOnDestroy() {\n if (this.$subscription) {\n this.$subscription.unsubscribe();\n }\n }\n\n @HostListener('mouseup', ['$event'])\n onMouseUp(mouseEvent: MouseEvent) {\n const pageElement = (<HTMLElement>(mouseEvent.target as HTMLElement).offsetParent).offsetParent;\n const page = parseInt(pageElement.getAttribute('data-page-number'), 10);\n if (this.toolbarEvents.highlightModeSubject.getValue()) {\n const rectangles = this.getRectangles(mouseEvent, page);\n this.viewerEvents.textSelected({ page, rectangles });\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onPdfViewerClick(event: MouseEvent) {\n this.store.dispatch(new fromAnnotationActions.SelectedAnnotation({\n annotationId: '', selected: false, editable: false\n }));\n this.viewerEvents.clearCtxToolbar();\n }\n\n private getRectangles(event: MouseEvent, page) {\n this.pageHeight = this.allPages[page].styles.height;\n this.pageWidth = this.allPages[page].styles.width;\n this.zoom = parseFloat(this.allPages[page].scaleRotation.scale);\n this.rotate = parseInt(this.allPages[page].scaleRotation.rotation, 10);\n const selection = window.getSelection();\n if (selection) {\n const localElement = <HTMLElement>event.target;\n\n this.removeEnhancedTextModeStyling(localElement);\n\n if (selection.rangeCount && !selection.isCollapsed) {\n const range = selection.getRangeAt(0).cloneRange();\n const clientRects = range.getClientRects();\n\n if (clientRects) {\n const parentRect = localElement.parentElement.getBoundingClientRect();\n const selectionRectangles: Rectangle[] = [];\n for (let i = 0; i < clientRects.length; i++) {\n const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);\n selectionRectangles.push(selectionRectangle);\n }\n return selectionRectangles;\n }\n }\n }\n }\n\n private createTextRectangle(rect: any, parentRect: any): Rectangle {\n const height = rect.bottom - rect.top;\n const width = rect.right - rect.left;\n const top = rect.top - parentRect.top;\n const left = rect.left - parentRect.left;\n\n let rectangle = this.highlightService.applyRotation(this.pageHeight, this.pageWidth, height, width, top, left, this.rotate, this.zoom);\n rectangle = { id: uuid(), ...rectangle };\n\n return rectangle as Rectangle;\n }\n\n private removeEnhancedTextModeStyling(element: HTMLElement) {\n if (element.parentElement.children) {\n for (let i = 0; i < element.parentElement.children.length; i++) {\n const child = <HTMLElement>element.parentElement.children[i];\n\n child.style.padding = '0';\n // regex will be targeting the translate style in string\n // e.g. scaleX(0.969918) translateX(-110.684px) translateY(-105.274px) will become scaleX(0.969918)\n const translateCSSRegex = /translate[XYZ]\\(-?\\d*(\\.\\d+)?(px)?\\)/g;\n child.style.transform = child.style.transform.replace(translateCSSRegex, '').trim();\n }\n }\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnInit,\n ViewChild,\n OnDestroy,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport { ToolbarEventService } from '../../toolbar/toolbar-event.service';\nimport { Subscription } from 'rxjs';\nimport { ResponseType } from '../viewer-exception.model';\n\n@Component({\n selector: 'mv-multimedia-player',\n templateUrl: './multimedia-player.component.html'\n})\nexport class MultimediaPlayerComponent implements OnInit, OnChanges, OnDestroy {\n\n @Input() url: string;\n @Input() downloadFileName: string;\n @Input() multimediaOn: boolean;\n\n @Output() loadStatus = new EventEmitter<ResponseType>();\n\n @ViewChild('downloadLink', {static: false}) downloadLink: ElementRef;\n @ViewChild('videoPlayer', {static: false}) videoPlayer: ElementRef;\n\n playbackMsg = 'loading';\n\n private subscription: Subscription;\n\n constructor(\n public readonly toolbarEvents: ToolbarEventService,\n ) {}\n\n public ngOnInit(): void {\n this.subscription = this.toolbarEvents.downloadSubject\n .subscribe(() => this.downloadLink.nativeElement.click());\n this.loadStatus.emit(ResponseType.SUCCESS);\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.url) {\n this.reloadVideo();\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n reloadVideo() {\n if (this.videoPlayer) {\n this.playbackMsg = 'loading';\n this.videoPlayer.nativeElement.load();\n }\n }\n\n onSuccess() {\n this.playbackMsg = 'success';\n }\n\n onError() {\n this.playbackMsg = 'error';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { PdfViewerComponent } from './viewers/pdf-viewer/pdf-viewer.component';\nimport { ImageViewerComponent } from './viewers/image-viewer/image-viewer.component';\nimport { UnsupportedViewerComponent } from './viewers/unsupported-viewer/unsupported-viewer.component';\nimport { MediaViewerComponent } from './media-viewer.component';\nimport { ToolbarModule } from './toolbar/toolbar.module';\nimport { PdfJsWrapperFactory } from './viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider';\nimport { AnnotationsModule } from './annotations/annotations.module';\nimport { CommentService } from './annotations/comment-set/comment/comment.service';\nimport { GrabNDragDirective } from './viewers/grab-n-drag.directive';\nimport { SideBarComponent } from './viewers/pdf-viewer/side-bar/side-bar.component';\nimport { OutlineItemComponent } from './viewers/pdf-viewer/side-bar/outline-item/outline-item.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { RouterModule } from '@angular/router';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule} from '@ngrx/store';\nimport { RedactionComponent } from './redaction/components/redaction.component';\nimport { IcpSessionApiService } from './icp/icp-session-api.service';\nimport { IcpUpdateService } from './icp/icp-update.service';\nimport { IcpService } from './icp/icp.service';\nimport { SocketService } from './icp/socket.service';\nimport { reducers} from './store/reducers/reducers';\nimport { effects } from './store/effects/index';\nimport { BookmarksComponent } from './viewers/pdf-viewer/side-bar/bookmarks/bookmarks.component';\nimport { RedactionApiService } from './redaction/services/redaction-api.service';\nimport { MutableDivModule } from 'mutable-div';\nimport { ConvertibleContentViewerComponent } from './viewers/convertible-content-viewer/convertible-content-viewer.component';\nimport { DocumentConversionApiService } from './viewers/convertible-content-viewer/document-conversion-api.service';\nimport { IcpPresenterService } from './icp/icp-presenter.service';\nimport { IcpFollowerService } from './icp/icp-follower.service';\nimport { ConfirmActionDialogComponent } from './icp/confirm-exit/confirm-action-dialog.component';\nimport { TreeModule } from 'angular-tree-component';\nimport { BookmarkIconsComponent } from './bookmark/components/bookmark-icons.component';\nimport { RotationApiService } from './viewers/rotation-persist/rotation-api.service';\nimport { RotationPersistDirective } from './viewers/rotation-persist/rotation-persist.directive';\nimport { ParticipantsListComponent } from './icp/participants-list/participants-list.component';\nimport { HighlightCreateDirective } from './annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive';\nimport {MultimediaPlayerComponent} from './viewers/multimedia-player/multimedia-player.component';\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n ToolbarModule,\n AnnotationsModule,\n TagInputModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n StoreModule.forFeature('media-viewer', reducers),\n EffectsModule.forFeature(effects),\n TreeModule.forRoot(),\n MutableDivModule\n ],\n declarations: [\n PdfViewerComponent,\n SideBarComponent,\n BookmarksComponent,\n OutlineItemComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent,\n MultimediaPlayerComponent,\n MediaViewerComponent,\n ConvertibleContentViewerComponent,\n GrabNDragDirective,\n RotationPersistDirective,\n HighlightCreateDirective,\n ConfirmActionDialogComponent,\n RedactionComponent, // todo made put this into module\n BookmarkIconsComponent,\n ParticipantsListComponent\n ],\n entryComponents: [\n PdfViewerComponent,\n ImageViewerComponent,\n UnsupportedViewerComponent\n ],\n providers: [\n PdfJsWrapperFactory,\n CommentService,\n RedactionApiService,\n IcpSessionApiService,\n IcpUpdateService,\n SocketService,\n IcpService,\n IcpPresenterService,\n IcpFollowerService,\n RedactionApiService,\n DocumentConversionApiService,\n RotationApiService,\n ],\n exports: [\n MediaViewerComponent\n ]\n})\nexport class MediaViewerModule { }\n"],"names":["pdfjsLib.GlobalWorkerOptions","pdfjsLib.getDocument","BehaviorSubject","Subject","Injectable","pdfjsViewer.PDFLinkService","pdfjsViewer.EventBus","pdfjsViewer.PDFFindController","pdfjsViewer.PDFViewer","pdfjsViewer.DownloadManager","fromActions.CONVERT_SUCCESS","fromActions.CONVERT_FAIL","fromActions.CLEAR_CONVERT_DOC_URL","fromActions.LOAD_ROTATION","fromActions.LOAD_ROTATION_SUCCESS","fromActions.LOAD_ROTATION_FAIL","fromActions.SAVE_ROTATION_SUCCESS","fromActions.SET_DOCUMENT_ID","fromActions.ADD_PAGES","fromActions.POSITION_UPDATED","fromAnnotations.LOAD_ANNOTATION_SET","fromAnnotations.LOAD_ANNOTATION_SET_SUCCESS","fromAnnotations.LOAD_ANNOTATION_SET_FAIL","fromAnnotations.SAVE_ANNOTATION_SUCCESS","fromAnnotations.DELETE_ANNOTATION_SUCCESS","fromAnnotations.ADD_OR_EDIT_COMMENT","fromAnnotations.SELECT_ANNOTATION","fromAnnotations.SEARCH_COMMENT","fromAnnotations.APPLY_COMMENT_SUMMARY_FILTER","fromAnnotations.CLEAR_COMMENT_SUMMARY_FILTER","fromTags.ADD_FILTER_TAGS","fromTags.CLEAR_FILTER_TAGS","fromBookmarks.LOAD_BOOKMARKS","fromBookmarks.LOAD_BOOKMARKS_SUCCESS","fromBookmarks.LOAD_BOOKMARKS_FAIL","fromBookmarks.CREATE_BOOKMARK_SUCCESS","fromBookmarks.MOVE_BOOKMARK_SUCCESS","fromBookmarks.DELETE_BOOKMARK_SUCCESS","fromBookmarks.UPDATE_BOOKMARK_SUCCESS","fromRedaction.LOAD_REDACTIONS","fromRedaction.LOAD_REDACTION_SUCCESS","fromRedaction.SAVE_REDACTION_SUCCESS","fromRedaction.SELECT_REDACTION","fromRedaction.DELETE_REDACTION_SUCCESS","fromRedaction.REDACT_SUCCESS","fromRedaction.RESET_REDACTED_DOCUMENT","fromRedaction.UNMARK_ALL_SUCCESS","fromIcpActions.SET_CASE_ID","fromIcpActions.ICP_SOCKET_SESSION_JOINED","fromIcpActions.ICP_PARTICIPANT_LIST_UPDATED","fromIcpActions.ICP_PRESENTER_UPDATED","fromIcpActions.LEAVE_ICP_SOCKET_SESSION","fromDocument.docReducer","fromAnnotation.reducer","fromTags.tagsReducer","fromBookmarks.bookmarksReducer","fromRedaction.redactionReducer","fromIcp.icpReducer","createFeatureSelector","createSelector","fromFeature.getMVState","fromDocument.getDocPages","fromDocument.getDocId","fromDocument.getPdfPos","fromDocument.getHasDifferentPageSizes","getConvertedDocument","fromDocument.getConvertedDocument","getRotation","fromDocument.getRotation","rotationLoaded","fromDocument.rotationLoaded","EventEmitter","tap","fromTagActions.ClearFilterTags","throttleTime","asyncScheduler","filter","select","fromDocumentsSelector.getPageDifference","fromDocumentActions.AddPages","Component","ViewEncapsulation","Store","Output","Input","ViewChild","HttpClient","fromDocument.AddPages","map","catchError","fromTags.getTagNameEnt","fromTags.getFilters","fromTags.getFilteredComments","fromTags.getFilteredPageEnt","fromAnnotations.getAnnoEnt","fromAnnotations.getAnnoSet","fromAnnotations.getSelectedAnno","fromAnnotations.getCommentEnts","fromAnnotations.getAnnoPageEnt","fromAnnotations.commentSearchQ","fromAnnotations.getSummaryFilters","fromDocument.getPages","fromTags.getFilteredPageEntities","fromTags.getTagFiltered","fromAnnoSelectors.getAnnotationSet","fromDocumentActions.SetDocumentId","fromAnnoActions.LoadAnnotationSet","fromRedactActions.LoadRedactions","ElementRef","ChangeDetectorRef","ConnectionPositionPair","HostListener","fromRedactions.getPageEnt","fromRedactions.getSelectedRedaction","fromRedactions.getRedactedDocInfo","getRedactionEnt","fromRedactions.getRedactionEnt","fromDocument.getDocumentId","fromRedactSelectors.getRedactionArray","getIcpSession","fromIcp.getIcpSession","getPresenter","fromIcp.getPresenter","getClient","fromIcp.getClient","getParticipants","fromIcp.getParticipants","fromIcpSelectors.isPresenter","fromIcpSelectors.getPresenterName","NgModule","CommonModule","FormsModule","OverlayModule","RouterModule","uuid","fromActions.AddOrEditComment","fromSelectors.getSelectedAnnotation","fromActions.SaveAnnotation","fromActions.DeleteAnnotation","fromActions.SelectedAnnotation","fromSelectors.getDocumentIdSetId","take","fromSelector.getComponentSearchText","distinctUntilChanged","fromSelectors.getCommentsArray","fromSelectors.getAnnotationEntities","ViewChildren","Directive","FormGroup","FormControl","fromSelectors.getCommentSummary","fromSelectors.getCommentSummaryFilters","fromTagSelectors.getAllTagsArr","combineLatest","fromAnnoActions.ClearCommentSummaryFilters","fromAnnoActions.ApplyCommentSymmaryFilter","FormBuilder","fromTagSelectors.getTagFilters","fromAnnoSelector.getFilteredAnnotations","fromActions.SearchComment","fromSelectors.getTagFilters","auditTime","fromActions.AddFilterTags","fromSelectors.getAllTagsArr","fromActions.ClearFilterTags","Pipe","DatePipe","ReactiveFormsModule","fromBookmarks.getBookmarkPageEnt","fromBookmarks.getBookmarkEnts","fromBookmarks.getEditBookmark","fromDocument.getPdfPosition","fromSelectors.getPageEntities","fromBookmarks.getBookmarkInfo","A11yModule","HttpClientModule","MutableDivModule","TagInputModule","NgxDatatableModule","bookmarksSelectors.getBookmarkNodes","bookmarksSelectors.getEditableBookmark","bookmarksSelectors.getBookmarkInfo","fromSelectors.getRedactionsPerPage","fromSelectors.getSelected","fromSelectors.getRedactedDocumentInfo","fromRedaSelectors.getRedactionArray","fromRedaActions.Redact","fromRedaActions.UnmarkAll","fromRedactionActions.SaveRedaction","fromActions.DeleteRedaction","fromActions.SelectRedaction","fromActions.SaveRedaction","fromRedactionActions.ResetRedactedDocument","Observable","fromDocSelectors.getPdfPosition","fromIcpSelectors.getPresenter","store","fromIcpSelectors.getCaseId","fromIcpActions.LoadIcpSession","fromIcpSelectors.getIcpSession","fromIcpSelectors.getClient","fromIcpActions.IcpPresenterUpdated","fromIcpActions.IcpParticipantListUpdated","fromIcpActions.LeaveIcpSocketSession","ofType","annotationsActions.LOAD_ANNOTATION_SET","switchMap","annotationsActions.LoadAnnotationSetSucess","of","annotationsActions.LoadAnnotationSetFail","annotationsActions.SAVE_ANNOTATION","exhaustMap","annotationsActions.SaveAnnotationSuccess","annotationsActions.DELETE_ANNOTATION","annotationsActions.DeleteAnnotationSuccess","annotationsActions.DeleteAnnotationFail","Actions","Effect","bookmarksActions.LOAD_BOOKMARKS","withLatestFrom","bookmarksActions.LoadBookmarksSuccess","bookmarksActions.LoadBookmarksFailure","bookmarksActions.CREATE_BOOKMARK","bookmarksActions.CreateBookmarkSuccess","bookmarksActions.CreateBookmarkFailure","bookmarksActions.MOVE_BOOKMARK","bookmarksActions.MoveBookmarkSuccess","bookmarksActions.MoveBookmarkFailure","bookmarksActions.DELETE_BOOKMARK","bookmarksActions.DeleteBookmarkSuccess","bookmarksActions.UpdateBookmarkSuccess","bookmarksActions.DeleteBookmarkFailure","bookmarksActions.UPDATE_BOOKMARK","bookmarksActions.UpdateBookmarkFailure","redactionActions.LOAD_REDACTIONS","redactionActions.LoadRedactionSuccess","redactionActions.LoadRedactionFailure","redactionActions.SAVE_REDACTION","redactionActions.SaveRedactionSuccess","redactionActions.SaveRedactionFailure","redactionActions.DELETE_REDACTION","redactionActions.DeleteRedactionSuccess","redactionActions.DeleteRedactionFailure","redactionActions.REDACT","redactionActions.RedactSuccess","redactionActions.RedactFailure","redactionActions.UNMARK_ALL","redactionActions.UnmarkAllSuccess","documentActions.CONVERT","documentActions.ConvertSuccess","documentActions.ConvertFailure","documentActions.LOAD_ROTATION","documentActions.LoadRotationSuccess","documentActions.LoadRotationFailure","documentActions.SAVE_ROTATION","documentActions.SaveRotationSuccess","documentActions.SaveRotationFailure","icpActions.LOAD_ICP_SESSION","icpActions.JoinIcpSocketSession","icpActions.LoadIcpSessionFailure","icpActions.JOIN_ICP_SOCKET_SESSION","icpActions.IcpSocketSessionJoined","fromDocumentActions.Convert","fromSelectors.getConvertedDocument","fromDocumentActions.ClearConvertDocUrl","fromSelectors.getBookmarksPerPage","fromDocuments.getRotation","fromDocuments.getDocumentId","fromDocumentActions.LoadRotation","fromDocuments.rotationLoaded","fromDocumentActions.SaveRotation","fromSelectors.getParticipants","fromSelectors.getPresenter","fromSelectors.isPresenter","fromAnnotationActions.SelectedAnnotation","StoreModule","EffectsModule","TreeModule"],"mappings":"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"}