@konfuzio/document-validation-ui 0.1.59-dev.1 → 0.1.59-dev.3

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 (63) hide show
  1. package/cypress.config.js +6 -6
  2. package/dist/css/app.css +1 -1
  3. package/dist/index.html +1 -1
  4. package/dist/js/app.js +1 -1
  5. package/dist/js/app.js.map +1 -1
  6. package/dist/js/chunk-vendors.js +66 -23
  7. package/dist/js/chunk-vendors.js.map +1 -1
  8. package/jest.config.js +22 -2
  9. package/package.json +32 -38
  10. package/src/assets/scss/ann_set_table_options.scss +4 -4
  11. package/src/assets/scss/annotation_action_buttons.scss +7 -7
  12. package/src/assets/scss/annotation_details.scss +9 -9
  13. package/src/assets/scss/choose_label_set_modal.scss +5 -5
  14. package/src/assets/scss/document_action_bar.scss +3 -3
  15. package/src/assets/scss/document_annotations.scss +45 -43
  16. package/src/assets/scss/document_category.scss +8 -8
  17. package/src/assets/scss/document_dashboard.scss +1 -1
  18. package/src/assets/scss/document_edit.scss +30 -30
  19. package/src/assets/scss/document_error.scss +6 -6
  20. package/src/assets/scss/document_name.scss +6 -6
  21. package/src/assets/scss/document_page.scss +3 -3
  22. package/src/assets/scss/document_search_bar.scss +7 -7
  23. package/src/assets/scss/document_set_chooser.scss +3 -3
  24. package/src/assets/scss/document_thumbnails.scss +7 -7
  25. package/src/assets/scss/document_toolbar.scss +10 -10
  26. package/src/assets/scss/document_top_bar.scss +11 -11
  27. package/src/assets/scss/document_viewport_modal.scss +3 -3
  28. package/src/assets/scss/documents_list.scss +11 -12
  29. package/src/assets/scss/edit_page_thumbnail.scss +6 -6
  30. package/src/assets/scss/empty_state.scss +4 -4
  31. package/src/assets/scss/error_page.scss +2 -2
  32. package/src/assets/scss/extracting_data.scss +3 -3
  33. package/src/assets/scss/multi_ann_table_overlay.scss +3 -3
  34. package/src/assets/scss/multi_ann_table_popup.scss +1 -1
  35. package/src/assets/scss/new_annotation.scss +25 -19
  36. package/src/assets/scss/scrolling_document.scss +1 -1
  37. package/src/assets/scss/theme.scss +64 -52
  38. package/src/assets/scss/variables.scss +2 -0
  39. package/src/components/App.vue +9 -14
  40. package/src/components/DocumentAnnotations/AnnotationActionButtons.vue +4 -6
  41. package/src/components/DocumentAnnotations/AnnotationContent.vue +25 -52
  42. package/src/components/DocumentAnnotations/AnnotationRow.vue +106 -50
  43. package/src/components/DocumentAnnotations/DocumentAnnotations.vue +12 -6
  44. package/src/components/DocumentAnnotations/EmptyAnnotation.vue +31 -70
  45. package/src/components/DocumentDashboard.vue +12 -17
  46. package/src/components/DocumentEdit/EditPages.vue +51 -46
  47. package/src/components/DocumentPage/{NewAnnotation.vue → AnnotationPopup.vue} +122 -94
  48. package/src/components/DocumentPage/BoxSelection.vue +16 -49
  49. package/src/components/DocumentPage/DocumentPage.vue +56 -153
  50. package/src/components/DocumentPage/DocumentToolbar.vue +0 -1
  51. package/src/components/DocumentPage/PlaceholderSelection.vue +51 -0
  52. package/src/components/DocumentPage/SpanSelection.vue +259 -0
  53. package/src/components/DocumentThumbnails/LoadingThumbnail.vue +3 -6
  54. package/src/components/DocumentTopBar/DocumentTopBar.vue +4 -2
  55. package/src/constants.js +1 -7
  56. package/src/i18n.js +2 -5
  57. package/src/main.js +14 -16
  58. package/src/store/display.js +33 -22
  59. package/src/store/document.js +1 -0
  60. package/src/store/index.js +5 -8
  61. package/src/store/selection.js +152 -76
  62. package/src/assets/scss/imports.scss +0 -1
  63. package/src/components/DocumentPage/EditAnnotation.vue +0 -372
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .edit-page-thumbnail {
4
4
  width: 80px;
@@ -20,27 +20,27 @@
20
20
  flex-direction: column;
21
21
  justify-content: center;
22
22
  align-items: center;
23
- border: $component-border;
23
+ border: variables.$component-border;
24
24
  border-radius: 2px;
25
25
  cursor: pointer;
26
26
  position: relative;
27
27
 
28
28
  &.visible {
29
- border: 1px solid $text-color;
29
+ border: 1px solid variables.$text-color;
30
30
  }
31
31
 
32
32
  &.selected {
33
- border: 2px solid $primary;
33
+ border: 2px solid variables.$primary;
34
34
  }
35
35
 
36
36
  .action-icon {
37
37
  position: absolute;
38
- background-color: $text-color;
38
+ background-color: variables.$text-color;
39
39
  left: 0;
40
40
  bottom: 0;
41
41
  width: 22px;
42
42
  height: 22px;
43
- color: $white;
43
+ color: variables.$white;
44
44
  display: flex;
45
45
  align-items: center;
46
46
  justify-content: center;
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .empty-container {
4
4
  width: 100%;
@@ -6,7 +6,7 @@
6
6
  display: flex;
7
7
  flex-direction: column;
8
8
  justify-content: flex-start;
9
- font-family: $font-family;
9
+ font-family: variables.$font-family;
10
10
 
11
11
  svg {
12
12
  align-self: center;
@@ -17,7 +17,7 @@
17
17
 
18
18
  .title {
19
19
  font-size: 16px;
20
- color: $text;
20
+ color: variables.$text;
21
21
  font-weight: 500;
22
22
  text-align: center;
23
23
  margin: 0;
@@ -26,7 +26,7 @@
26
26
  .description {
27
27
  font-size: 14px;
28
28
  line-height: 20px;
29
- color: $text-lighter;
29
+ color: variables.$text-lighter;
30
30
  font-weight: 400;
31
31
  text-align: center;
32
32
  }
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .error-page {
4
4
  width: 100vw;
@@ -9,6 +9,6 @@
9
9
  flex-direction: column;
10
10
  gap: 16px;
11
11
  .error-icon {
12
- color: $red;
12
+ color: variables.$red;
13
13
  }
14
14
  }
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .data-extraction-container {
4
4
  display: flex;
@@ -22,14 +22,14 @@
22
22
  font-size: 16px;
23
23
  font-weight: 500;
24
24
  line-height: 24px;
25
- color: $text-color;
25
+ color: variables.$text-color;
26
26
  margin-bottom: 3px;
27
27
  }
28
28
 
29
29
  .description {
30
30
  font-size: 14px;
31
31
  line-height: 20px;
32
- color: $grey;
32
+ color: variables.$grey;
33
33
  }
34
34
  }
35
35
  }
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .multi-ann-table-overlay {
4
4
  position: absolute;
@@ -6,7 +6,7 @@
6
6
  height: fit-content;
7
7
  z-index: 40;
8
8
  width: 100%;
9
- background-color: $background;
9
+ background-color: variables.$background;
10
10
 
11
11
  .multi-ann-set-table {
12
12
  padding-bottom: 6px;
@@ -25,7 +25,7 @@
25
25
  }
26
26
 
27
27
  .delete-action {
28
- color: $red;
28
+ color: variables.$red;
29
29
  }
30
30
  }
31
31
 
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .multi-ann-table-popup {
4
4
  position: absolute;
@@ -1,26 +1,21 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .annotation-popup {
4
4
  border-radius: 12px;
5
- background-color: $text-color;
5
+ background-color: variables.$text-color;
6
6
  display: flex;
7
7
  flex-direction: column;
8
8
  gap: 8px;
9
9
  position: absolute;
10
10
  width: 205px;
11
- height: 192px;
12
11
  z-index: 40;
13
- color: $white;
12
+ color: variables.$white;
14
13
  padding: 8px;
15
14
  cursor: default;
16
15
 
17
- &.small {
18
- height: 142px;
19
- }
20
-
21
16
  .popup-input {
22
- background-color: $text-color;
23
- color: $white;
17
+ background-color: variables.$text-color;
18
+ color: variables.$white;
24
19
  font-size: 14px;
25
20
  font-weight: 400;
26
21
  line-height: 20px;
@@ -28,13 +23,24 @@
28
23
  box-shadow: none;
29
24
  padding: 8px;
30
25
  border-radius: 12px;
31
- border: 1px solid $grey-low-opacity;
26
+ border: 1px solid variables.$grey-low-opacity;
32
27
  width: 100%;
33
28
  justify-content: space-between;
34
29
  position: relative;
35
30
  text-wrap: wrap;
36
31
  text-align: left;
37
32
 
33
+ > span {
34
+ white-space: nowrap;
35
+ width: 100%;
36
+ overflow: hidden;
37
+ margin-right: 24px;
38
+ }
39
+
40
+ .spinner {
41
+ width: fit-content;
42
+ }
43
+
38
44
  .caret-icon {
39
45
  position: absolute;
40
46
  right: 18px;
@@ -43,16 +49,16 @@
43
49
  }
44
50
 
45
51
  .not-selected {
46
- color: $grey-detail;
52
+ color: variables.$grey-detail;
47
53
  }
48
54
 
49
55
  .add-ann-set {
50
56
  &.has-border {
51
- border-top: 1px solid $grey-detail;
57
+ border-top: 1px solid variables.$grey-detail;
52
58
  }
53
59
 
54
60
  width: 100%;
55
- color: $primary !important;
61
+ color: variables.$primary !important;
56
62
  font-size: 14px;
57
63
  line-height: 24px;
58
64
  font-weight: 500;
@@ -68,11 +74,11 @@
68
74
 
69
75
  .annotation-dropdown {
70
76
  border-radius: 12px;
71
- border: 1px solid $grey-low-opacity !important;
77
+ border: 1px solid variables.$grey-low-opacity !important;
72
78
 
73
79
  .button.is-text {
74
80
  box-shadow: none !important;
75
- color: $white !important;
81
+ color: variables.$white !important;
76
82
  background-color: transparent !important;
77
83
  text-decoration: none;
78
84
  }
@@ -85,15 +91,15 @@
85
91
  gap: 2px;
86
92
 
87
93
  .button.is-text {
88
- color: $white !important;
94
+ color: variables.$white !important;
89
95
  text-decoration: none;
90
96
  }
91
97
 
92
98
  .cancel-button {
93
- color: $white;
99
+ color: variables.$white;
94
100
 
95
101
  &:hover {
96
- border: 1px solid $grey-low-opacity;
102
+ border: 1px solid variables.$grey-low-opacity;
97
103
  background: transparent;
98
104
  }
99
105
  }
@@ -1,4 +1,4 @@
1
- @import "./imports.scss";
1
+ @use "variables.scss";
2
2
 
3
3
  .scrolling-document {
4
4
  overflow: auto;
@@ -1,6 +1,8 @@
1
+ @use "variables";
2
+
1
3
  @use "sass:meta";
2
4
  @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap");
3
- @import "./imports.scss";
5
+ @include meta.load-css("variables.scss");
4
6
 
5
7
  :root {
6
8
  --konfuzio-green: #41af85;
@@ -30,8 +32,7 @@
30
32
  }
31
33
 
32
34
  .dv-ui-theme {
33
- @include meta.load-css("../../../node_modules/buefy/dist/buefy.css");
34
- font-family: $font-family;
35
+ font-family: variables.$font-family;
35
36
 
36
37
  -webkit-font-smoothing: antialiased;
37
38
  text-rendering: optimizeLegibility;
@@ -41,30 +42,34 @@
41
42
  text-size-adjust: 100%;
42
43
  box-sizing: border-box;
43
44
 
45
+ & {
46
+ @include meta.load-css("../../../node_modules/buefy/dist/buefy.css");
47
+ }
48
+
44
49
  h1 {
45
50
  font-size: 48px;
46
- color: $text-color;
51
+ color: variables.$text-color;
47
52
  }
48
53
  h2 {
49
54
  font-size: 24px;
50
- color: $text-color;
55
+ color: variables.$text-color;
51
56
  }
52
57
 
53
58
  a {
54
- color: $primary;
59
+ color: variables.$primary;
55
60
  }
56
61
 
57
62
  button {
58
63
  &.is-primary {
59
- background-color: $primary !important;
60
- color: $white !important;
64
+ background-color: variables.$primary !important;
65
+ color: variables.$white !important;
61
66
 
62
67
  &:hover:enabled {
63
- filter: $hover-style;
68
+ filter: variables.$hover-style;
64
69
  }
65
70
 
66
71
  &:disabled {
67
- background-color: $grey;
72
+ background-color: variables.$grey;
68
73
  }
69
74
  }
70
75
 
@@ -73,7 +78,7 @@
73
78
 
74
79
  &:focus {
75
80
  box-shadow: none;
76
- outline: 3px solid $grey-dark;
81
+ outline: 3px solid variables.$grey-dark;
77
82
  border: 2px solid;
78
83
  margin-right: 1px;
79
84
  }
@@ -84,7 +89,7 @@
84
89
  }
85
90
 
86
91
  &.edit-mode-btn[disabled] {
87
- border: 1px solid $detail;
92
+ border: 1px solid variables.$detail;
88
93
  }
89
94
 
90
95
  &[disabled] {
@@ -142,7 +147,7 @@
142
147
  .b-slider-thumb-wrapper {
143
148
  .tooltip-trigger {
144
149
  .b-slider-thumb {
145
- background-color: $grey-lightest;
150
+ background-color: variables.$grey-lightest;
146
151
  background-image: none;
147
152
  }
148
153
  }
@@ -161,7 +166,7 @@
161
166
  }
162
167
  .b-slider-track {
163
168
  cursor: col-resize;
164
- color: $white;
169
+ color: variables.$white;
165
170
  background: transparent !important;
166
171
  }
167
172
  .b-slider-fill {
@@ -194,10 +199,10 @@
194
199
 
195
200
  .carousel-arrow {
196
201
  .icon {
197
- color: $primary;
202
+ color: variables.$primary;
198
203
 
199
204
  &:hover {
200
- border: 1px solid $primary;
205
+ border: 1px solid variables.$primary;
201
206
  }
202
207
 
203
208
  svg {
@@ -216,8 +221,8 @@
216
221
  }
217
222
 
218
223
  .message-body {
219
- background-color: $error-background;
220
- color: $white;
224
+ background-color: variables.$error-background;
225
+ color: variables.$white;
221
226
  font-size: 14px;
222
227
  border: 0;
223
228
  border-radius: 0%;
@@ -320,22 +325,22 @@
320
325
  padding-right: 16px;
321
326
 
322
327
  &.is-active {
323
- background-color: $primary;
328
+ background-color: variables.$primary;
324
329
  }
325
330
 
326
331
  &.is-disabled {
327
- color: $grey-blue !important;
332
+ color: variables.$grey-blue !important;
328
333
  }
329
334
  }
330
335
 
331
336
  &.dropdown-menu-animation {
332
337
  a.navbar-item {
333
- color: $text-color;
338
+ color: variables.$text-color;
334
339
  font-size: 16px;
335
340
  line-height: 24px;
336
341
 
337
342
  &:hover {
338
- color: $primary;
343
+ color: variables.$primary;
339
344
  background: none;
340
345
  border: none;
341
346
  }
@@ -349,7 +354,7 @@
349
354
  .taginput-container {
350
355
  &.is-focused {
351
356
  box-shadow: none !important;
352
- border-color: $primary !important;
357
+ border-color: variables.$primary !important;
353
358
  }
354
359
 
355
360
  .tag {
@@ -360,7 +365,7 @@
360
365
  input {
361
366
  box-shadow: none !important;
362
367
  &:focus {
363
- border-color: $primary;
368
+ border-color: variables.$primary;
364
369
  }
365
370
  }
366
371
  .control.has-icons-left {
@@ -375,15 +380,15 @@
375
380
 
376
381
  .b-checkbox.checkbox {
377
382
  input[type="checkbox"] + .check {
378
- background-color: $white;
383
+ background-color: variables.$white;
379
384
  }
380
385
  &:hover input[type="checkbox"]:not(:disabled) + .check {
381
- border-color: $primary !important;
386
+ border-color: variables.$primary !important;
382
387
  }
383
388
 
384
389
  input[type="checkbox"]:checked + .check {
385
- border-color: $primary !important;
386
- background-color: $primary;
390
+ border-color: variables.$primary !important;
391
+ background-color: variables.$primary;
387
392
  }
388
393
  }
389
394
 
@@ -446,16 +451,16 @@
446
451
 
447
452
  &::before,
448
453
  &::after {
449
- background-color: $grey;
454
+ background-color: variables.$grey;
450
455
  }
451
456
 
452
457
  &:hover {
453
- background-color: $white;
458
+ background-color: variables.$white;
454
459
  }
455
460
  }
456
461
 
457
462
  .modal-card-body {
458
- background: $white;
463
+ background: variables.$white;
459
464
  border-radius: 16px 16px 0 0 !important;
460
465
  }
461
466
 
@@ -463,7 +468,7 @@
463
468
  display: flex;
464
469
  justify-content: center;
465
470
  border: none;
466
- background: $white;
471
+ background: variables.$white;
467
472
  border-radius: 0 0 16px 16px;
468
473
  }
469
474
  }
@@ -474,7 +479,7 @@
474
479
  }
475
480
 
476
481
  .modal-background {
477
- background-color: $full-black;
482
+ background-color: variables.$full-black;
478
483
  opacity: 0.5;
479
484
  }
480
485
 
@@ -496,7 +501,7 @@
496
501
  text-align: left;
497
502
  font-weight: 400;
498
503
  font-size: 14px;
499
- color: $grey-blue;
504
+ color: variables.$grey-blue;
500
505
  }
501
506
 
502
507
  .modal-card-foot {
@@ -547,7 +552,7 @@
547
552
 
548
553
  .notices {
549
554
  .snackbar {
550
- background-color: $text-color;
555
+ background-color: variables.$text-color;
551
556
  min-height: 40px;
552
557
 
553
558
  .text {
@@ -576,15 +581,15 @@
576
581
  align-items: center;
577
582
 
578
583
  .tooltip-content {
579
- background-color: $text-color !important;
584
+ background-color: variables.$text-color !important;
580
585
 
581
586
  a {
582
- color: $white;
587
+ color: variables.$white;
583
588
  text-decoration: underline;
584
589
  font-weight: 500;
585
590
  }
586
591
  &:before {
587
- border-bottom-color: $text-color !important;
592
+ border-bottom-color: variables.$text-color !important;
588
593
  }
589
594
  }
590
595
 
@@ -597,8 +602,8 @@
597
602
  &::before {
598
603
  left: 16px !important;
599
604
  right: auto !important;
600
- border-top-color: $text-color !important;
601
- border-bottom-color: $text-color !important;
605
+ border-top-color: variables.$text-color !important;
606
+ border-bottom-color: variables.$text-color !important;
602
607
  }
603
608
  }
604
609
  }
@@ -613,7 +618,7 @@
613
618
  &::before {
614
619
  right: 16px !important;
615
620
  left: auto !important;
616
- border-bottom-color: $text-color !important;
621
+ border-bottom-color: variables.$text-color !important;
617
622
  }
618
623
  }
619
624
 
@@ -649,12 +654,12 @@
649
654
  font-size: 14px;
650
655
  padding: 12px 12px;
651
656
  top: 45px;
652
- background-color: $text-color;
657
+ background-color: variables.$text-color;
653
658
  border-radius: 4px !important;
654
659
 
655
660
  &::before {
656
661
  top: 17px;
657
- border-left-color: $text-color !important;
662
+ border-left-color: variables.$text-color !important;
658
663
  }
659
664
  }
660
665
  }
@@ -664,7 +669,7 @@
664
669
 
665
670
  .tooltip-content {
666
671
  &::before {
667
- border-bottom-color: $text-color !important;
672
+ border-bottom-color: variables.$text-color !important;
668
673
  }
669
674
  }
670
675
  }
@@ -672,7 +677,7 @@
672
677
  &.top-aligned {
673
678
  .tooltip-content {
674
679
  &::before {
675
- border-top-color: $text-color !important;
680
+ border-top-color: variables.$text-color !important;
676
681
  }
677
682
  }
678
683
  }
@@ -740,7 +745,7 @@
740
745
 
741
746
  &.split-mode-caret {
742
747
  svg {
743
- color: $grey;
748
+ color: variables.$grey;
744
749
  }
745
750
  }
746
751
  }
@@ -750,7 +755,7 @@
750
755
  height: 10px;
751
756
 
752
757
  &.error-icon {
753
- color: $white;
758
+ color: variables.$white;
754
759
  padding-right: 20px;
755
760
  padding-left: 20px;
756
761
 
@@ -804,10 +809,10 @@
804
809
  &.dark-header {
805
810
  .table {
806
811
  thead {
807
- background-color: $black !important;
812
+ background-color: variables.$black !important;
808
813
  th {
809
814
  font-weight: 400;
810
- background-color: $black !important;
815
+ background-color: variables.$black !important;
811
816
  }
812
817
  }
813
818
  }
@@ -827,7 +832,7 @@
827
832
  }
828
833
  cursor: text;
829
834
  thead {
830
- background-color: $purple !important;
835
+ background-color: variables.$purple !important;
831
836
  th {
832
837
  font-weight: 500;
833
838
  font-size: 10px;
@@ -838,7 +843,7 @@
838
843
  margin: 0;
839
844
  }
840
845
  }
841
- background-color: $purple !important;
846
+ background-color: variables.$purple !important;
842
847
  color: white !important;
843
848
  vertical-align: middle;
844
849
  &[draggable="true"] {
@@ -880,7 +885,7 @@
880
885
  .switch {
881
886
  input[type="checkbox"] {
882
887
  &:checked + .check {
883
- background: $primary !important;
888
+ background: variables.$primary !important;
884
889
  box-shadow: none !important;
885
890
  }
886
891
 
@@ -901,4 +906,11 @@
901
906
  }
902
907
  }
903
908
  }
909
+ .splitpanes--vertical > .splitpanes__splitter {
910
+ background: variables.$grey-lighter-low-opacity;
911
+ }
912
+
913
+ .splitpanes--horizontal > .splitpanes__splitter {
914
+ background: variables.$grey-lighter-low-opacity;
915
+ }
904
916
  }
@@ -65,3 +65,5 @@ $black: $dark;
65
65
  $input-shadow: none;
66
66
  $top-bar-height: 56px;
67
67
  $component-border: 1px solid $detail;
68
+
69
+ $documents-list-height: 52px;
@@ -20,6 +20,7 @@ import {
20
20
  import { Integrations } from "@sentry/tracing";
21
21
  import API from "../api";
22
22
  import { initKeycloak } from "../utils/keycloak";
23
+ import { debounce } from "../utils/utils";
23
24
 
24
25
  export default {
25
26
  name: "App",
@@ -429,20 +430,14 @@ export default {
429
430
  this.$store.dispatch("document/fetchDocument");
430
431
  });
431
432
 
432
- // Add observer for class added to HTML tag when Buefy modals are mounted
433
- // TODO: check defaultModalScroll property in Buefy constructor https://buefy.org/documentation/constructor-options
434
- const htmlTag = document.documentElement;
435
- const observer = new MutationObserver(function (mutations) {
436
- mutations.forEach(function (mutation) {
437
- if (mutation.attributeName === "class") {
438
- const classToRemove = "is-clipped";
439
- if (mutation.target.classList.contains(classToRemove)) {
440
- htmlTag.classList.remove(classToRemove);
441
- }
442
- }
443
- });
444
- });
445
- observer.observe(htmlTag, { attributes: true });
433
+ // Stop error resizeObserver
434
+ const _ = window.ResizeObserver;
435
+ window.ResizeObserver = class ResizeObserver extends _ {
436
+ constructor(callback) {
437
+ callback = debounce(callback, 20);
438
+ super(callback);
439
+ }
440
+ };
446
441
  },
447
442
  };
448
443
  </script>