@konfuzio/document-validation-ui 0.1.19 → 0.1.20

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 (143) hide show
  1. package/.eslintrc.js +10 -10
  2. package/.prettierrc.json +1 -1
  3. package/LICENSE +21 -21
  4. package/README.md +24 -24
  5. package/cypress.config.js +13 -13
  6. package/dist/js/app.js +1 -1
  7. package/dist/js/app.js.map +1 -1
  8. package/dist/js/chunk-vendors.js +1 -1
  9. package/dist/js/chunk-vendors.js.map +1 -1
  10. package/jest.config.js +4 -4
  11. package/package.json +66 -66
  12. package/src/api.js +82 -82
  13. package/src/assets/images/AcceptedCheckMark.vue +8 -8
  14. package/src/assets/images/AcceptedUser.vue +8 -8
  15. package/src/assets/images/ActionIcon.vue +60 -60
  16. package/src/assets/images/ArrowDownKey.vue +11 -11
  17. package/src/assets/images/ArrowUpKey.vue +11 -11
  18. package/src/assets/images/CategoryIconImg.vue +13 -13
  19. package/src/assets/images/CheckMark.vue +8 -8
  20. package/src/assets/images/DraggableIcon.vue +14 -14
  21. package/src/assets/images/EditDocIcon.vue +12 -12
  22. package/src/assets/images/EmptyStateImg.vue +129 -129
  23. package/src/assets/images/ErrorIcon.vue +28 -28
  24. package/src/assets/images/EyeIcon.vue +11 -11
  25. package/src/assets/images/FileNameNotSavedImage.vue +26 -26
  26. package/src/assets/images/FileNameSavedImage.vue +14 -14
  27. package/src/assets/images/FitZoomIcon.vue +16 -16
  28. package/src/assets/images/GridIcon.vue +16 -16
  29. package/src/assets/images/KeyboardIcon.vue +16 -16
  30. package/src/assets/images/MagicWandIcon.vue +16 -16
  31. package/src/assets/images/MinusIcon.vue +13 -13
  32. package/src/assets/images/NotFoundIcon.vue +16 -16
  33. package/src/assets/images/NotOptimizedIllustration.vue +651 -651
  34. package/src/assets/images/PlusIcon.vue +13 -13
  35. package/src/assets/images/QuestionMark.vue +12 -12
  36. package/src/assets/images/ServerImage.vue +73 -73
  37. package/src/assets/images/SettingsIcon.vue +14 -14
  38. package/src/assets/images/SplitLines.vue +18 -18
  39. package/src/assets/images/SplitZigZag.vue +49 -49
  40. package/src/assets/images/StarIcon.vue +16 -16
  41. package/src/assets/images/StatusImg.vue +14 -14
  42. package/src/assets/images/TranslateArrows.vue +33 -33
  43. package/src/assets/scss/ann_set_table_options.scss +26 -26
  44. package/src/assets/scss/annotation_details.scss +141 -141
  45. package/src/assets/scss/choose_label_set_modal.scss +65 -65
  46. package/src/assets/scss/document_action_bar.scss +37 -37
  47. package/src/assets/scss/document_annotations.scss +558 -558
  48. package/src/assets/scss/document_category.scss +85 -85
  49. package/src/assets/scss/document_dashboard.scss +52 -52
  50. package/src/assets/scss/document_edit.scss +410 -410
  51. package/src/assets/scss/document_error.scss +81 -81
  52. package/src/assets/scss/document_name.scss +60 -60
  53. package/src/assets/scss/document_page.scss +12 -12
  54. package/src/assets/scss/document_thumbnails.scss +41 -41
  55. package/src/assets/scss/document_toolbar.scss +111 -111
  56. package/src/assets/scss/document_top_bar.scss +171 -171
  57. package/src/assets/scss/document_viewport_modal.scss +25 -25
  58. package/src/assets/scss/documents_list.scss +141 -141
  59. package/src/assets/scss/edit_page_thumbnail.scss +53 -53
  60. package/src/assets/scss/empty_state.scss +34 -34
  61. package/src/assets/scss/extracting_data.scss +35 -35
  62. package/src/assets/scss/imports.scss +1 -1
  63. package/src/assets/scss/multi_ann_table_overlay.scss +38 -38
  64. package/src/assets/scss/multi_ann_table_popup.scss +12 -12
  65. package/src/assets/scss/new_annotation.scss +102 -102
  66. package/src/assets/scss/scrolling_document.scss +19 -19
  67. package/src/assets/scss/theme.scss +801 -801
  68. package/src/assets/scss/variables.scss +66 -66
  69. package/src/components/App.cy.js +7 -7
  70. package/src/components/App.vue +187 -187
  71. package/src/components/DocumentAnnotations/AnnotationActionButtons.vue +152 -152
  72. package/src/components/DocumentAnnotations/AnnotationContent.vue +210 -210
  73. package/src/components/DocumentAnnotations/AnnotationDetails.vue +251 -251
  74. package/src/components/DocumentAnnotations/AnnotationRow.vue +752 -752
  75. package/src/components/DocumentAnnotations/AnnotationSetActionButtons.vue +89 -89
  76. package/src/components/DocumentAnnotations/ChooseLabelSetModal.vue +186 -186
  77. package/src/components/DocumentAnnotations/DocumentAnnotations.cy.js +441 -441
  78. package/src/components/DocumentAnnotations/DocumentAnnotations.vue +534 -534
  79. package/src/components/DocumentAnnotations/DocumentLabel.vue +189 -189
  80. package/src/components/DocumentAnnotations/EmptyAnnotation.vue +193 -193
  81. package/src/components/DocumentAnnotations/EmptyState.vue +21 -21
  82. package/src/components/DocumentAnnotations/ExtractingData.vue +41 -41
  83. package/src/components/DocumentAnnotations/LoadingAnnotations.vue +43 -43
  84. package/src/components/DocumentAnnotations/LoadingLabels.vue +43 -43
  85. package/src/components/DocumentAnnotations/MultiAnnotationTableOverlay.vue +338 -338
  86. package/src/components/DocumentAnnotations/index.js +8 -8
  87. package/src/components/DocumentCategory.vue +281 -281
  88. package/src/components/DocumentDashboard.vue +170 -170
  89. package/src/components/DocumentEdit/DocumentEdit.cy.js +541 -541
  90. package/src/components/DocumentEdit/DocumentEdit.vue +503 -503
  91. package/src/components/DocumentEdit/EditConfirmationModal.vue +55 -55
  92. package/src/components/DocumentEdit/EditPageThumbnail.vue +114 -114
  93. package/src/components/DocumentEdit/EditPages.vue +161 -161
  94. package/src/components/DocumentEdit/EditSidebar.vue +154 -154
  95. package/src/components/DocumentEdit/RenameAndCategorize.vue +184 -184
  96. package/src/components/DocumentEdit/SidebarButtons.vue +53 -53
  97. package/src/components/DocumentEdit/SplitInfoBar.vue +21 -21
  98. package/src/components/DocumentEdit/index.js +4 -4
  99. package/src/components/DocumentModals/DocumentErrorModal.vue +58 -58
  100. package/src/components/DocumentModals/NotOptimizedViewportModal.vue +51 -51
  101. package/src/components/DocumentPage/ActionBar.vue +48 -48
  102. package/src/components/DocumentPage/AnnSetTableOptions.vue +111 -111
  103. package/src/components/DocumentPage/BoxSelection.vue +152 -152
  104. package/src/components/DocumentPage/DocumentPage.cy.js +92 -92
  105. package/src/components/DocumentPage/DocumentPage.vue +568 -568
  106. package/src/components/DocumentPage/DocumentToolbar.cy.js +215 -215
  107. package/src/components/DocumentPage/DocumentToolbar.vue +228 -228
  108. package/src/components/DocumentPage/DummyPage.vue +55 -55
  109. package/src/components/DocumentPage/MultiAnnSelection.vue +371 -371
  110. package/src/components/DocumentPage/NewAnnotation.vue +308 -308
  111. package/src/components/DocumentPage/ScrollingDocument.vue +149 -149
  112. package/src/components/DocumentPage/ScrollingPage.vue +179 -179
  113. package/src/components/DocumentPage/index.js +5 -5
  114. package/src/components/DocumentThumbnails/DocumentThumbnails.cy.js +67 -67
  115. package/src/components/DocumentThumbnails/DocumentThumbnails.vue +132 -132
  116. package/src/components/DocumentThumbnails/LoadingThumbnail.vue +25 -25
  117. package/src/components/DocumentThumbnails/index.js +1 -1
  118. package/src/components/DocumentTopBar/DocumentName.vue +236 -236
  119. package/src/components/DocumentTopBar/DocumentTopBar.cy.js +222 -222
  120. package/src/components/DocumentTopBar/DocumentTopBar.vue +202 -202
  121. package/src/components/DocumentTopBar/DocumentTopBarButtons.vue +183 -183
  122. package/src/components/DocumentTopBar/KeyboardActionsDescription.vue +74 -74
  123. package/src/components/DocumentTopBar/index.js +3 -3
  124. package/src/components/DocumentsList/DocumentsList.vue +121 -121
  125. package/src/components/DocumentsList/index.js +1 -1
  126. package/src/components/ErrorMessage.vue +40 -40
  127. package/src/components/index.js +1 -1
  128. package/src/constants.js +5 -5
  129. package/src/directives/scroll.js +28 -28
  130. package/src/i18n.js +22 -22
  131. package/src/icons.js +45 -45
  132. package/src/locales/de.json +148 -148
  133. package/src/locales/en.json +148 -148
  134. package/src/main.js +26 -26
  135. package/src/store/category.js +191 -191
  136. package/src/store/display.js +311 -311
  137. package/src/store/document.js +1438 -1438
  138. package/src/store/edit.js +316 -316
  139. package/src/store/index.js +21 -21
  140. package/src/store/project.js +143 -143
  141. package/src/store/selection.js +210 -210
  142. package/src/utils/utils.js +54 -54
  143. package/vue.config.js +25 -25
@@ -1,170 +1,170 @@
1
- <template>
2
- <div class="dashboard">
3
- <DocumentTopBar />
4
- <div :class="['dashboard-viewer', renameAndCategorize ? 'edit-mode' : '']">
5
- <DocumentThumbnails v-if="!editMode" ref="documentPages" />
6
- <ScrollingDocument ref="scrollingDocument" class="dashboard-document" />
7
- <DocumentAnnotations v-if="!editMode" ref="annotations" />
8
- <DocumentEdit v-if="editMode" ref="editView" />
9
-
10
- <MultiAnnotationTableOverlay
11
- v-if="showAnnSetTable"
12
- :left="documentContainerLeftPadding"
13
- :width="documentContainerWidth"
14
- />
15
- <ChooseLabelSetModal
16
- v-if="showChooseLabelSetModal && showChooseLabelSetModal.show"
17
- :is-multiple-annotations="showChooseLabelSetModal.isMultipleAnnotations"
18
- @finish="showChooseLabelSetModal.finish"
19
- />
20
-
21
- <transition name="slide-fade">
22
- <div
23
- v-if="showActionError"
24
- class="error-message"
25
- :style="{ width: `${errorMessageWidth}px` }"
26
- >
27
- <ErrorMessage />
28
- </div>
29
- </transition>
30
- </div>
31
- <div v-if="showDocumentError" class="error-modal">
32
- <DocumentErrorModal />
33
- </div>
34
- <div v-if="!optimalResolution" class="not-optimized">
35
- <NotOptimizedViewportModal />
36
- </div>
37
- <div v-if="!isMinimumWidth" class="not-supported">
38
- <div class="text">
39
- {{ $t("resolution_not_supported") }}
40
- </div>
41
- </div>
42
- </div>
43
- </template>
44
-
45
- <script>
46
- import { mapGetters, mapState } from "vuex";
47
- import { DocumentTopBar } from "./DocumentTopBar";
48
- import { ScrollingDocument } from "./DocumentPage";
49
- import { DocumentThumbnails } from "./DocumentThumbnails";
50
- import {
51
- DocumentAnnotations,
52
- MultiAnnotationTableOverlay,
53
- } from "./DocumentAnnotations";
54
- import { DocumentEdit } from "./DocumentEdit";
55
- import ErrorMessage from "./ErrorMessage";
56
- import NotOptimizedViewportModal from "../components/DocumentModals/NotOptimizedViewportModal";
57
- import DocumentErrorModal from "../components/DocumentModals/DocumentErrorModal";
58
- import ChooseLabelSetModal from "../components/DocumentAnnotations/ChooseLabelSetModal";
59
-
60
- /**
61
- * This component shows the PDF pages in a scrolling component and
62
- * the annotations on the side.
63
- */
64
- export default {
65
- name: "DocumentDashboard",
66
- components: {
67
- DocumentTopBar,
68
- ScrollingDocument,
69
- DocumentThumbnails,
70
- DocumentAnnotations,
71
- DocumentEdit,
72
- ErrorMessage,
73
- NotOptimizedViewportModal,
74
- DocumentErrorModal,
75
- MultiAnnotationTableOverlay,
76
- ChooseLabelSetModal,
77
- },
78
- data() {
79
- return {
80
- resizeObserver: null,
81
- unwatchSelectedDocument: null,
82
- documentContainerLeftPadding: 0,
83
- documentContainerWidth: 0,
84
- };
85
- },
86
- computed: {
87
- ...mapState("display", [
88
- "scale",
89
- "fit",
90
- "optimalResolution",
91
- "pageWidthScale",
92
- "currentPage",
93
- "showAnnSetTable",
94
- "showChooseLabelSetModal",
95
- ]),
96
- ...mapState("document", [
97
- "showActionError",
98
- "showDocumentError",
99
- "errorMessageWidth",
100
- "selectedDocument",
101
- "splittingSuggestions",
102
- ]),
103
- ...mapState("edit", ["editMode", "renameAndCategorize"]),
104
- ...mapGetters("display", ["isMinimumWidth"]),
105
- },
106
-
107
- watch: {
108
- selectedDocument(newDocument, oldDocument) {
109
- if (newDocument && !oldDocument) {
110
- // first time
111
- this.resizeObserver.observe(this.$refs.scrollingDocument.$el);
112
- } else if (newDocument) {
113
- this.onDocumentResize();
114
- }
115
- },
116
- fit(newFit, oldFit) {
117
- if (newFit !== oldFit) {
118
- this.onDocumentResize();
119
- }
120
- },
121
- },
122
- mounted() {
123
- this.resizeObserver = new ResizeObserver(this.onDocumentResize);
124
- },
125
- destroyed() {
126
- if (this.$refs.scrollingDocument) {
127
- this.resizeObserver.unobserve(this.$refs.scrollingDocument.$el);
128
- }
129
- },
130
- methods: {
131
- elementsWidth() {
132
- let elementsWidth = 1;
133
- if (this.$refs.editView) {
134
- elementsWidth += this.$refs.editView.$el.clientWidth;
135
- }
136
- if (this.$refs.documentPages) {
137
- elementsWidth += this.$refs.documentPages.$el.clientWidth;
138
- }
139
- if (this.$refs.annotations) {
140
- elementsWidth += this.$refs.annotations.$el.clientWidth;
141
- }
142
- return elementsWidth;
143
- },
144
- onDocumentResize() {
145
- this.documentContainerLeftPadding =
146
- this.$refs.scrollingDocument.$el.getBoundingClientRect().left;
147
- this.documentContainerWidth =
148
- this.$refs.scrollingDocument.$el.offsetWidth;
149
- this.$store.dispatch(
150
- "display/updateOptimalResolution",
151
- this.$el.offsetWidth
152
- );
153
- if (this.selectedDocument.pages[0]) {
154
- this.$store.dispatch("display/updateScale", {
155
- elementsWidth: this.elementsWidth(),
156
- client: {
157
- width: this.$el.clientWidth,
158
- height: this.$el.clientHeight,
159
- },
160
- viewport: {
161
- width: this.selectedDocument.pages[0].size[0],
162
- height: this.selectedDocument.pages[0].size[1],
163
- },
164
- });
165
- }
166
- },
167
- },
168
- };
169
- </script>
170
- <style scoped lang="scss" src="../assets/scss/document_dashboard.scss"></style>
1
+ <template>
2
+ <div class="dashboard">
3
+ <DocumentTopBar />
4
+ <div :class="['dashboard-viewer', renameAndCategorize ? 'edit-mode' : '']">
5
+ <DocumentThumbnails v-if="!editMode" ref="documentPages" />
6
+ <ScrollingDocument ref="scrollingDocument" class="dashboard-document" />
7
+ <DocumentAnnotations v-if="!editMode" ref="annotations" />
8
+ <DocumentEdit v-if="editMode" ref="editView" />
9
+
10
+ <MultiAnnotationTableOverlay
11
+ v-if="showAnnSetTable"
12
+ :left="documentContainerLeftPadding"
13
+ :width="documentContainerWidth"
14
+ />
15
+ <ChooseLabelSetModal
16
+ v-if="showChooseLabelSetModal && showChooseLabelSetModal.show"
17
+ :is-multiple-annotations="showChooseLabelSetModal.isMultipleAnnotations"
18
+ @finish="showChooseLabelSetModal.finish"
19
+ />
20
+
21
+ <transition name="slide-fade">
22
+ <div
23
+ v-if="showActionError"
24
+ class="error-message"
25
+ :style="{ width: `${errorMessageWidth}px` }"
26
+ >
27
+ <ErrorMessage />
28
+ </div>
29
+ </transition>
30
+ </div>
31
+ <div v-if="showDocumentError" class="error-modal">
32
+ <DocumentErrorModal />
33
+ </div>
34
+ <div v-if="!optimalResolution" class="not-optimized">
35
+ <NotOptimizedViewportModal />
36
+ </div>
37
+ <div v-if="!isMinimumWidth" class="not-supported">
38
+ <div class="text">
39
+ {{ $t("resolution_not_supported") }}
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </template>
44
+
45
+ <script>
46
+ import { mapGetters, mapState } from "vuex";
47
+ import { DocumentTopBar } from "./DocumentTopBar";
48
+ import { ScrollingDocument } from "./DocumentPage";
49
+ import { DocumentThumbnails } from "./DocumentThumbnails";
50
+ import {
51
+ DocumentAnnotations,
52
+ MultiAnnotationTableOverlay,
53
+ } from "./DocumentAnnotations";
54
+ import { DocumentEdit } from "./DocumentEdit";
55
+ import ErrorMessage from "./ErrorMessage";
56
+ import NotOptimizedViewportModal from "../components/DocumentModals/NotOptimizedViewportModal";
57
+ import DocumentErrorModal from "../components/DocumentModals/DocumentErrorModal";
58
+ import ChooseLabelSetModal from "../components/DocumentAnnotations/ChooseLabelSetModal";
59
+
60
+ /**
61
+ * This component shows the PDF pages in a scrolling component and
62
+ * the annotations on the side.
63
+ */
64
+ export default {
65
+ name: "DocumentDashboard",
66
+ components: {
67
+ DocumentTopBar,
68
+ ScrollingDocument,
69
+ DocumentThumbnails,
70
+ DocumentAnnotations,
71
+ DocumentEdit,
72
+ ErrorMessage,
73
+ NotOptimizedViewportModal,
74
+ DocumentErrorModal,
75
+ MultiAnnotationTableOverlay,
76
+ ChooseLabelSetModal,
77
+ },
78
+ data() {
79
+ return {
80
+ resizeObserver: null,
81
+ unwatchSelectedDocument: null,
82
+ documentContainerLeftPadding: 0,
83
+ documentContainerWidth: 0,
84
+ };
85
+ },
86
+ computed: {
87
+ ...mapState("display", [
88
+ "scale",
89
+ "fit",
90
+ "optimalResolution",
91
+ "pageWidthScale",
92
+ "currentPage",
93
+ "showAnnSetTable",
94
+ "showChooseLabelSetModal",
95
+ ]),
96
+ ...mapState("document", [
97
+ "showActionError",
98
+ "showDocumentError",
99
+ "errorMessageWidth",
100
+ "selectedDocument",
101
+ "splittingSuggestions",
102
+ ]),
103
+ ...mapState("edit", ["editMode", "renameAndCategorize"]),
104
+ ...mapGetters("display", ["isMinimumWidth"]),
105
+ },
106
+
107
+ watch: {
108
+ selectedDocument(newDocument, oldDocument) {
109
+ if (newDocument && !oldDocument) {
110
+ // first time
111
+ this.resizeObserver.observe(this.$refs.scrollingDocument.$el);
112
+ } else if (newDocument) {
113
+ this.onDocumentResize();
114
+ }
115
+ },
116
+ fit(newFit, oldFit) {
117
+ if (newFit !== oldFit) {
118
+ this.onDocumentResize();
119
+ }
120
+ },
121
+ },
122
+ mounted() {
123
+ this.resizeObserver = new ResizeObserver(this.onDocumentResize);
124
+ },
125
+ destroyed() {
126
+ if (this.$refs.scrollingDocument) {
127
+ this.resizeObserver.unobserve(this.$refs.scrollingDocument.$el);
128
+ }
129
+ },
130
+ methods: {
131
+ elementsWidth() {
132
+ let elementsWidth = 1;
133
+ if (this.$refs.editView) {
134
+ elementsWidth += this.$refs.editView.$el.clientWidth;
135
+ }
136
+ if (this.$refs.documentPages) {
137
+ elementsWidth += this.$refs.documentPages.$el.clientWidth;
138
+ }
139
+ if (this.$refs.annotations) {
140
+ elementsWidth += this.$refs.annotations.$el.clientWidth;
141
+ }
142
+ return elementsWidth;
143
+ },
144
+ onDocumentResize() {
145
+ this.documentContainerLeftPadding =
146
+ this.$refs.scrollingDocument.$el.getBoundingClientRect().left;
147
+ this.documentContainerWidth =
148
+ this.$refs.scrollingDocument.$el.offsetWidth;
149
+ this.$store.dispatch(
150
+ "display/updateOptimalResolution",
151
+ this.$el.offsetWidth
152
+ );
153
+ if (this.selectedDocument.pages[0]) {
154
+ this.$store.dispatch("display/updateScale", {
155
+ elementsWidth: this.elementsWidth(),
156
+ client: {
157
+ width: this.$el.clientWidth,
158
+ height: this.$el.clientHeight,
159
+ },
160
+ viewport: {
161
+ width: this.selectedDocument.pages[0].size[0],
162
+ height: this.selectedDocument.pages[0].size[1],
163
+ },
164
+ });
165
+ }
166
+ },
167
+ },
168
+ };
169
+ </script>
170
+ <style scoped lang="scss" src="../assets/scss/document_dashboard.scss"></style>