@osdk/react-components 0.37.0 → 0.38.0-main-cb3038078d742f4c47a9f986b840ba1b9f78c4e9

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 (87) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  3. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +39 -12
  4. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  5. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  6. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  7. package/build/browser/pdf-viewer/types.js.map +1 -1
  8. package/build/browser/public/experimental/pdf-viewer.js.map +1 -1
  9. package/build/browser/util/UserAgent.js +1 -1
  10. package/build/browser/util/UserAgent.js.map +1 -1
  11. package/build/cjs/chunk-2622REF6.cjs +11 -0
  12. package/build/cjs/{chunk-JHBFHACA.cjs.map → chunk-2622REF6.cjs.map} +1 -1
  13. package/build/cjs/{chunk-G4SRFNQ3.cjs → chunk-2G6DDTI6.cjs} +24 -24
  14. package/build/cjs/{chunk-G4SRFNQ3.cjs.map → chunk-2G6DDTI6.cjs.map} +1 -1
  15. package/build/cjs/{chunk-2TBIJGID.cjs → chunk-3XSF5S4V.cjs} +4 -4
  16. package/build/cjs/{chunk-2TBIJGID.cjs.map → chunk-3XSF5S4V.cjs.map} +1 -1
  17. package/build/cjs/{chunk-BE226IHU.cjs → chunk-7EGCPMTN.cjs} +34 -14
  18. package/build/cjs/chunk-7EGCPMTN.cjs.map +1 -0
  19. package/build/cjs/chunk-FLUEYU75.cjs +11 -0
  20. package/build/cjs/{chunk-YJX6FHRF.cjs.map → chunk-FLUEYU75.cjs.map} +1 -1
  21. package/build/cjs/{chunk-W2F62KMQ.cjs → chunk-HG6D3C24.cjs} +4 -4
  22. package/build/cjs/{chunk-W2F62KMQ.cjs.map → chunk-HG6D3C24.cjs.map} +1 -1
  23. package/build/cjs/chunk-IQKSMSFE.cjs +11 -0
  24. package/build/cjs/{chunk-VIOZG6Z7.cjs.map → chunk-IQKSMSFE.cjs.map} +1 -1
  25. package/build/cjs/{chunk-GYTR4A74.cjs → chunk-JUUTG5HH.cjs} +7 -7
  26. package/build/cjs/{chunk-GYTR4A74.cjs.map → chunk-JUUTG5HH.cjs.map} +1 -1
  27. package/build/cjs/{chunk-INRJWUVA.cjs → chunk-KDALJGDQ.cjs} +4 -4
  28. package/build/cjs/{chunk-INRJWUVA.cjs.map → chunk-KDALJGDQ.cjs.map} +1 -1
  29. package/build/cjs/{chunk-3SLAC2Z5.cjs → chunk-KQ5MLLIX.cjs} +4 -4
  30. package/build/cjs/{chunk-3SLAC2Z5.cjs.map → chunk-KQ5MLLIX.cjs.map} +1 -1
  31. package/build/cjs/{chunk-4R4NE4YK.cjs → chunk-KYUQG7BD.cjs} +4 -4
  32. package/build/cjs/{chunk-4R4NE4YK.cjs.map → chunk-KYUQG7BD.cjs.map} +1 -1
  33. package/build/cjs/{chunk-MVUTL2YO.cjs → chunk-QM5X7O5B.cjs} +3 -3
  34. package/build/cjs/chunk-QM5X7O5B.cjs.map +1 -0
  35. package/build/cjs/chunk-TD6AXOH4.cjs +11 -0
  36. package/build/cjs/{chunk-R5FIVXEF.cjs.map → chunk-TD6AXOH4.cjs.map} +1 -1
  37. package/build/cjs/{chunk-L5EO3NSA.cjs → chunk-UCCISEY4.cjs} +4 -4
  38. package/build/cjs/{chunk-L5EO3NSA.cjs.map → chunk-UCCISEY4.cjs.map} +1 -1
  39. package/build/cjs/chunk-Z3WY3E4E.cjs +11 -0
  40. package/build/cjs/{chunk-XRI2RLG7.cjs.map → chunk-Z3WY3E4E.cjs.map} +1 -1
  41. package/build/cjs/public/experimental/action-form.cjs +4 -4
  42. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  43. package/build/cjs/public/experimental/document-viewer.cjs +5 -5
  44. package/build/cjs/public/experimental/document-viewer.d.cts +1 -1
  45. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  46. package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
  47. package/build/cjs/public/experimental/filter-list.cjs +15 -15
  48. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  49. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  50. package/build/cjs/public/experimental/object-table.cjs +8 -8
  51. package/build/cjs/public/experimental/pdf-viewer.cjs +25 -25
  52. package/build/cjs/public/experimental/pdf-viewer.d.cts +8 -8
  53. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  54. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  55. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  56. package/build/cjs/public/experimental.cjs +76 -76
  57. package/build/cjs/public/experimental.d.cts +1 -1
  58. package/build/cjs/{types-cSnAM4mt.d.cts → types-DDeX79uW.d.cts} +14 -5
  59. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  60. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +39 -12
  61. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  62. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  63. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  64. package/build/esm/pdf-viewer/types.js.map +1 -1
  65. package/build/esm/public/experimental/pdf-viewer.js.map +1 -1
  66. package/build/esm/util/UserAgent.js +1 -1
  67. package/build/esm/util/UserAgent.js.map +1 -1
  68. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +3 -3
  69. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -1
  70. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +2 -1
  71. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -1
  72. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +3 -2
  73. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -1
  74. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -1
  75. package/build/types/pdf-viewer/types.d.ts +13 -4
  76. package/build/types/pdf-viewer/types.d.ts.map +1 -1
  77. package/build/types/public/experimental/pdf-viewer.d.ts +1 -1
  78. package/build/types/public/experimental/pdf-viewer.d.ts.map +1 -1
  79. package/docs/PdfViewer.md +15 -12
  80. package/package.json +7 -7
  81. package/build/cjs/chunk-BE226IHU.cjs.map +0 -1
  82. package/build/cjs/chunk-JHBFHACA.cjs +0 -11
  83. package/build/cjs/chunk-MVUTL2YO.cjs.map +0 -1
  84. package/build/cjs/chunk-R5FIVXEF.cjs +0 -11
  85. package/build/cjs/chunk-VIOZG6Z7.cjs +0 -11
  86. package/build/cjs/chunk-XRI2RLG7.cjs +0 -11
  87. package/build/cjs/chunk-YJX6FHRF.cjs +0 -11
@@ -1,23 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var chunkVIOZG6Z7_cjs = require('../chunk-VIOZG6Z7.cjs');
4
- var chunkYJX6FHRF_cjs = require('../chunk-YJX6FHRF.cjs');
5
- var chunkR5FIVXEF_cjs = require('../chunk-R5FIVXEF.cjs');
6
- var chunk2TBIJGID_cjs = require('../chunk-2TBIJGID.cjs');
7
- var chunkJHBFHACA_cjs = require('../chunk-JHBFHACA.cjs');
8
- var chunkINRJWUVA_cjs = require('../chunk-INRJWUVA.cjs');
9
- var chunkL5EO3NSA_cjs = require('../chunk-L5EO3NSA.cjs');
3
+ var chunkIQKSMSFE_cjs = require('../chunk-IQKSMSFE.cjs');
4
+ var chunkFLUEYU75_cjs = require('../chunk-FLUEYU75.cjs');
5
+ var chunkTD6AXOH4_cjs = require('../chunk-TD6AXOH4.cjs');
6
+ var chunk3XSF5S4V_cjs = require('../chunk-3XSF5S4V.cjs');
7
+ var chunk2622REF6_cjs = require('../chunk-2622REF6.cjs');
8
+ var chunkKDALJGDQ_cjs = require('../chunk-KDALJGDQ.cjs');
9
+ var chunkUCCISEY4_cjs = require('../chunk-UCCISEY4.cjs');
10
10
  require('../chunk-HWBCFCBO.cjs');
11
- var chunkG4SRFNQ3_cjs = require('../chunk-G4SRFNQ3.cjs');
11
+ var chunk2G6DDTI6_cjs = require('../chunk-2G6DDTI6.cjs');
12
12
  var chunk2YA74OKB_cjs = require('../chunk-2YA74OKB.cjs');
13
- var chunkW2F62KMQ_cjs = require('../chunk-W2F62KMQ.cjs');
14
- var chunk4R4NE4YK_cjs = require('../chunk-4R4NE4YK.cjs');
13
+ var chunkHG6D3C24_cjs = require('../chunk-HG6D3C24.cjs');
14
+ var chunkKYUQG7BD_cjs = require('../chunk-KYUQG7BD.cjs');
15
15
  require('../chunk-JKNARBQW.cjs');
16
16
  require('../chunk-OUP7DKRM.cjs');
17
17
  require('../chunk-NME4K4OR.cjs');
18
18
  require('../chunk-5ZFHOY66.cjs');
19
19
  require('../chunk-FVTTRDL6.cjs');
20
- var chunk3SLAC2Z5_cjs = require('../chunk-3SLAC2Z5.cjs');
20
+ var chunkKQ5MLLIX_cjs = require('../chunk-KQ5MLLIX.cjs');
21
21
  var chunkZMAWPOG5_cjs = require('../chunk-ZMAWPOG5.cjs');
22
22
  require('../chunk-VFRZREZV.cjs');
23
23
  require('../chunk-C6IPNPMZ.cjs');
@@ -25,138 +25,138 @@ require('../chunk-DWNKXV5E.cjs');
25
25
  require('../chunk-HNBSGCSZ.cjs');
26
26
  require('../chunk-7LXS66DW.cjs');
27
27
  require('../chunk-QP2LHBCZ.cjs');
28
- var chunkGYTR4A74_cjs = require('../chunk-GYTR4A74.cjs');
28
+ var chunkJUUTG5HH_cjs = require('../chunk-JUUTG5HH.cjs');
29
29
  var chunkKHMOMROL_cjs = require('../chunk-KHMOMROL.cjs');
30
30
  var chunkOUJQJQ7N_cjs = require('../chunk-OUJQJQ7N.cjs');
31
31
  var chunkS2FQCZAB_cjs = require('../chunk-S2FQCZAB.cjs');
32
32
  var chunkVOROB7KJ_cjs = require('../chunk-VOROB7KJ.cjs');
33
33
  var chunkIYJOHKJE_cjs = require('../chunk-IYJOHKJE.cjs');
34
- var chunkBE226IHU_cjs = require('../chunk-BE226IHU.cjs');
34
+ var chunk7EGCPMTN_cjs = require('../chunk-7EGCPMTN.cjs');
35
35
  var chunkLB3IHFAB_cjs = require('../chunk-LB3IHFAB.cjs');
36
36
  require('../chunk-UCTQICPR.cjs');
37
- var chunkXRI2RLG7_cjs = require('../chunk-XRI2RLG7.cjs');
37
+ var chunkZ3WY3E4E_cjs = require('../chunk-Z3WY3E4E.cjs');
38
38
  var chunkOISZU73V_cjs = require('../chunk-OISZU73V.cjs');
39
39
  require('../chunk-MVQKV5BJ.cjs');
40
- require('../chunk-MVUTL2YO.cjs');
40
+ require('../chunk-QM5X7O5B.cjs');
41
41
  require('../chunk-PZPCRXSV.cjs');
42
42
 
43
43
 
44
44
 
45
45
  Object.defineProperty(exports, "VideoViewer", {
46
46
  enumerable: true,
47
- get: function () { return chunkVIOZG6Z7_cjs.VideoViewer; }
47
+ get: function () { return chunkIQKSMSFE_cjs.VideoViewer; }
48
48
  });
49
49
  Object.defineProperty(exports, "XmlViewer", {
50
50
  enumerable: true,
51
- get: function () { return chunkYJX6FHRF_cjs.XmlViewer; }
51
+ get: function () { return chunkFLUEYU75_cjs.XmlViewer; }
52
52
  });
53
53
  Object.defineProperty(exports, "ExcelViewer", {
54
54
  enumerable: true,
55
- get: function () { return chunkR5FIVXEF_cjs.ExcelViewer; }
55
+ get: function () { return chunkTD6AXOH4_cjs.ExcelViewer; }
56
56
  });
57
57
  Object.defineProperty(exports, "BaseFilterList", {
58
58
  enumerable: true,
59
- get: function () { return chunk2TBIJGID_cjs.BaseFilterList; }
59
+ get: function () { return chunk3XSF5S4V_cjs.BaseFilterList; }
60
60
  });
61
61
  Object.defineProperty(exports, "FilterInput", {
62
62
  enumerable: true,
63
- get: function () { return chunk2TBIJGID_cjs.FilterInput; }
63
+ get: function () { return chunk3XSF5S4V_cjs.FilterInput; }
64
64
  });
65
65
  Object.defineProperty(exports, "FilterList", {
66
66
  enumerable: true,
67
- get: function () { return chunk2TBIJGID_cjs.FilterList; }
67
+ get: function () { return chunk3XSF5S4V_cjs.FilterList; }
68
68
  });
69
69
  Object.defineProperty(exports, "FilterPopover", {
70
70
  enumerable: true,
71
- get: function () { return chunk2TBIJGID_cjs.FilterPopover; }
71
+ get: function () { return chunk3XSF5S4V_cjs.FilterPopover; }
72
72
  });
73
73
  Object.defineProperty(exports, "NO_VALUE", {
74
74
  enumerable: true,
75
- get: function () { return chunk2TBIJGID_cjs.NO_VALUE; }
75
+ get: function () { return chunk3XSF5S4V_cjs.NO_VALUE; }
76
76
  });
77
77
  Object.defineProperty(exports, "deserializeFilterStates", {
78
78
  enumerable: true,
79
- get: function () { return chunk2TBIJGID_cjs.deserializeFilterStates; }
79
+ get: function () { return chunk3XSF5S4V_cjs.deserializeFilterStates; }
80
80
  });
81
81
  Object.defineProperty(exports, "filterHasActiveState", {
82
82
  enumerable: true,
83
- get: function () { return chunk2TBIJGID_cjs.filterHasActiveState; }
83
+ get: function () { return chunk3XSF5S4V_cjs.filterHasActiveState; }
84
84
  });
85
85
  Object.defineProperty(exports, "getFilterKey", {
86
86
  enumerable: true,
87
- get: function () { return chunk2TBIJGID_cjs.getFilterKey; }
87
+ get: function () { return chunk3XSF5S4V_cjs.getFilterKey; }
88
88
  });
89
89
  Object.defineProperty(exports, "getFilterLabel", {
90
90
  enumerable: true,
91
- get: function () { return chunk2TBIJGID_cjs.getFilterLabel; }
91
+ get: function () { return chunk3XSF5S4V_cjs.getFilterLabel; }
92
92
  });
93
93
  Object.defineProperty(exports, "narrowObjectSet", {
94
94
  enumerable: true,
95
- get: function () { return chunk2TBIJGID_cjs.narrowObjectSet; }
95
+ get: function () { return chunk3XSF5S4V_cjs.narrowObjectSet; }
96
96
  });
97
97
  Object.defineProperty(exports, "serializeFilterStates", {
98
98
  enumerable: true,
99
- get: function () { return chunk2TBIJGID_cjs.serializeFilterStates; }
99
+ get: function () { return chunk3XSF5S4V_cjs.serializeFilterStates; }
100
100
  });
101
101
  Object.defineProperty(exports, "summarizeFilterValue", {
102
102
  enumerable: true,
103
- get: function () { return chunk2TBIJGID_cjs.summarizeFilterValue; }
103
+ get: function () { return chunk3XSF5S4V_cjs.summarizeFilterValue; }
104
104
  });
105
105
  Object.defineProperty(exports, "useFilterListState", {
106
106
  enumerable: true,
107
- get: function () { return chunk2TBIJGID_cjs.useFilterListState; }
107
+ get: function () { return chunk3XSF5S4V_cjs.useFilterListState; }
108
108
  });
109
109
  Object.defineProperty(exports, "ImageViewer", {
110
110
  enumerable: true,
111
- get: function () { return chunkJHBFHACA_cjs.ImageViewer; }
111
+ get: function () { return chunk2622REF6_cjs.ImageViewer; }
112
112
  });
113
113
  Object.defineProperty(exports, "MarkdownViewerMedia", {
114
114
  enumerable: true,
115
- get: function () { return chunkINRJWUVA_cjs.MarkdownViewerMedia; }
115
+ get: function () { return chunkKDALJGDQ_cjs.MarkdownViewerMedia; }
116
116
  });
117
117
  Object.defineProperty(exports, "BaseTable", {
118
118
  enumerable: true,
119
- get: function () { return chunkL5EO3NSA_cjs.BaseTable; }
119
+ get: function () { return chunkUCCISEY4_cjs.BaseTable; }
120
120
  });
121
121
  Object.defineProperty(exports, "ColumnConfigDialog", {
122
122
  enumerable: true,
123
- get: function () { return chunkL5EO3NSA_cjs.ColumnConfigDialog; }
123
+ get: function () { return chunkUCCISEY4_cjs.ColumnConfigDialog; }
124
124
  });
125
125
  Object.defineProperty(exports, "LoadingCell", {
126
126
  enumerable: true,
127
- get: function () { return chunkL5EO3NSA_cjs.LoadingCell; }
127
+ get: function () { return chunkUCCISEY4_cjs.LoadingCell; }
128
128
  });
129
129
  Object.defineProperty(exports, "LoadingCellContent", {
130
130
  enumerable: true,
131
- get: function () { return chunkL5EO3NSA_cjs.LoadingCellContent; }
131
+ get: function () { return chunkUCCISEY4_cjs.LoadingCellContent; }
132
132
  });
133
133
  Object.defineProperty(exports, "MultiColumnSortDialog", {
134
134
  enumerable: true,
135
- get: function () { return chunkL5EO3NSA_cjs.MultiColumnSortDialog; }
135
+ get: function () { return chunkUCCISEY4_cjs.MultiColumnSortDialog; }
136
136
  });
137
137
  Object.defineProperty(exports, "ObjectTable", {
138
138
  enumerable: true,
139
- get: function () { return chunkL5EO3NSA_cjs.ObjectTable; }
139
+ get: function () { return chunkUCCISEY4_cjs.ObjectTable; }
140
140
  });
141
141
  Object.defineProperty(exports, "PdfViewer", {
142
142
  enumerable: true,
143
- get: function () { return chunkG4SRFNQ3_cjs.PdfViewer; }
143
+ get: function () { return chunk2G6DDTI6_cjs.PdfViewer; }
144
144
  });
145
145
  Object.defineProperty(exports, "PdfViewerContent", {
146
146
  enumerable: true,
147
- get: function () { return chunkG4SRFNQ3_cjs.PdfViewerContent; }
147
+ get: function () { return chunk2G6DDTI6_cjs.PdfViewerContent; }
148
148
  });
149
149
  Object.defineProperty(exports, "PdfViewerProvider", {
150
150
  enumerable: true,
151
- get: function () { return chunkG4SRFNQ3_cjs.PdfViewerProvider; }
151
+ get: function () { return chunk2G6DDTI6_cjs.PdfViewerProvider; }
152
152
  });
153
153
  Object.defineProperty(exports, "usePdfViewerContext", {
154
154
  enumerable: true,
155
- get: function () { return chunkG4SRFNQ3_cjs.usePdfViewerContext; }
155
+ get: function () { return chunk2G6DDTI6_cjs.usePdfViewerContext; }
156
156
  });
157
157
  Object.defineProperty(exports, "usePdfViewerInstance", {
158
158
  enumerable: true,
159
- get: function () { return chunkG4SRFNQ3_cjs.usePdfViewerInstance; }
159
+ get: function () { return chunk2G6DDTI6_cjs.usePdfViewerInstance; }
160
160
  });
161
161
  Object.defineProperty(exports, "OsdkThemeProvider", {
162
162
  enumerable: true,
@@ -168,51 +168,51 @@ Object.defineProperty(exports, "useOsdkTheme", {
168
168
  });
169
169
  Object.defineProperty(exports, "TiffViewerMedia", {
170
170
  enumerable: true,
171
- get: function () { return chunkW2F62KMQ_cjs.TiffViewerMedia; }
171
+ get: function () { return chunkHG6D3C24_cjs.TiffViewerMedia; }
172
172
  });
173
173
  Object.defineProperty(exports, "ActionForm", {
174
174
  enumerable: true,
175
- get: function () { return chunk4R4NE4YK_cjs.ActionForm; }
175
+ get: function () { return chunkKYUQG7BD_cjs.ActionForm; }
176
176
  });
177
177
  Object.defineProperty(exports, "BaseForm", {
178
178
  enumerable: true,
179
- get: function () { return chunk4R4NE4YK_cjs.BaseForm; }
179
+ get: function () { return chunkKYUQG7BD_cjs.BaseForm; }
180
180
  });
181
181
  Object.defineProperty(exports, "BaseCbacPicker", {
182
182
  enumerable: true,
183
- get: function () { return chunk3SLAC2Z5_cjs.BaseCbacPicker; }
183
+ get: function () { return chunkKQ5MLLIX_cjs.BaseCbacPicker; }
184
184
  });
185
185
  Object.defineProperty(exports, "BaseCbacPickerDialog", {
186
186
  enumerable: true,
187
- get: function () { return chunk3SLAC2Z5_cjs.BaseCbacPickerDialog; }
187
+ get: function () { return chunkKQ5MLLIX_cjs.BaseCbacPickerDialog; }
188
188
  });
189
189
  Object.defineProperty(exports, "CbacBannerPopover", {
190
190
  enumerable: true,
191
- get: function () { return chunk3SLAC2Z5_cjs.CbacBannerPopover; }
191
+ get: function () { return chunkKQ5MLLIX_cjs.CbacBannerPopover; }
192
192
  });
193
193
  Object.defineProperty(exports, "CbacPicker", {
194
194
  enumerable: true,
195
- get: function () { return chunk3SLAC2Z5_cjs.CbacPicker; }
195
+ get: function () { return chunkKQ5MLLIX_cjs.CbacPicker; }
196
196
  });
197
197
  Object.defineProperty(exports, "CbacPickerDialog", {
198
198
  enumerable: true,
199
- get: function () { return chunk3SLAC2Z5_cjs.CbacPickerDialog; }
199
+ get: function () { return chunkKQ5MLLIX_cjs.CbacPickerDialog; }
200
200
  });
201
201
  Object.defineProperty(exports, "MaxClassificationField", {
202
202
  enumerable: true,
203
- get: function () { return chunk3SLAC2Z5_cjs.MaxClassificationField; }
203
+ get: function () { return chunkKQ5MLLIX_cjs.MaxClassificationField; }
204
204
  });
205
205
  Object.defineProperty(exports, "computeMarkingStates", {
206
206
  enumerable: true,
207
- get: function () { return chunk3SLAC2Z5_cjs.computeMarkingStates; }
207
+ get: function () { return chunkKQ5MLLIX_cjs.computeMarkingStates; }
208
208
  });
209
209
  Object.defineProperty(exports, "groupMarkingsByCategory", {
210
210
  enumerable: true,
211
- get: function () { return chunk3SLAC2Z5_cjs.groupMarkingsByCategory; }
211
+ get: function () { return chunkKQ5MLLIX_cjs.groupMarkingsByCategory; }
212
212
  });
213
213
  Object.defineProperty(exports, "toggleMarking", {
214
214
  enumerable: true,
215
- get: function () { return chunk3SLAC2Z5_cjs.toggleMarking; }
215
+ get: function () { return chunkKQ5MLLIX_cjs.toggleMarking; }
216
216
  });
217
217
  Object.defineProperty(exports, "BaseCbacBanner", {
218
218
  enumerable: true,
@@ -224,11 +224,11 @@ Object.defineProperty(exports, "CbacBanner", {
224
224
  });
225
225
  Object.defineProperty(exports, "DocumentViewer", {
226
226
  enumerable: true,
227
- get: function () { return chunkGYTR4A74_cjs.DocumentViewer; }
227
+ get: function () { return chunkJUUTG5HH_cjs.DocumentViewer; }
228
228
  });
229
229
  Object.defineProperty(exports, "ViewerType", {
230
230
  enumerable: true,
231
- get: function () { return chunkGYTR4A74_cjs.ViewerType; }
231
+ get: function () { return chunkJUUTG5HH_cjs.ViewerType; }
232
232
  });
233
233
  Object.defineProperty(exports, "BaseVideoViewer", {
234
234
  enumerable: true,
@@ -252,71 +252,71 @@ Object.defineProperty(exports, "MarkdownRenderer", {
252
252
  });
253
253
  Object.defineProperty(exports, "BasePdfViewer", {
254
254
  enumerable: true,
255
- get: function () { return chunkBE226IHU_cjs.BasePdfViewer; }
255
+ get: function () { return chunk7EGCPMTN_cjs.BasePdfViewer; }
256
256
  });
257
257
  Object.defineProperty(exports, "PdfViewerAnnotationLayer", {
258
258
  enumerable: true,
259
- get: function () { return chunkBE226IHU_cjs.PdfViewerAnnotationLayer; }
259
+ get: function () { return chunk7EGCPMTN_cjs.PdfViewerAnnotationLayer; }
260
260
  });
261
261
  Object.defineProperty(exports, "PdfViewerOutlineSidebar", {
262
262
  enumerable: true,
263
- get: function () { return chunkBE226IHU_cjs.PdfViewerOutlineSidebar; }
263
+ get: function () { return chunk7EGCPMTN_cjs.PdfViewerOutlineSidebar; }
264
264
  });
265
265
  Object.defineProperty(exports, "PdfViewerSearchBar", {
266
266
  enumerable: true,
267
- get: function () { return chunkBE226IHU_cjs.PdfViewerSearchBar; }
267
+ get: function () { return chunk7EGCPMTN_cjs.PdfViewerSearchBar; }
268
268
  });
269
269
  Object.defineProperty(exports, "PdfViewerSidebar", {
270
270
  enumerable: true,
271
- get: function () { return chunkBE226IHU_cjs.PdfViewerSidebar; }
271
+ get: function () { return chunk7EGCPMTN_cjs.PdfViewerSidebar; }
272
272
  });
273
273
  Object.defineProperty(exports, "PdfViewerToolbar", {
274
274
  enumerable: true,
275
- get: function () { return chunkBE226IHU_cjs.PdfViewerToolbar; }
275
+ get: function () { return chunk7EGCPMTN_cjs.PdfViewerToolbar; }
276
276
  });
277
277
  Object.defineProperty(exports, "usePdfAnnotationPortals", {
278
278
  enumerable: true,
279
- get: function () { return chunkBE226IHU_cjs.usePdfAnnotationPortals; }
279
+ get: function () { return chunk7EGCPMTN_cjs.usePdfAnnotationPortals; }
280
280
  });
281
281
  Object.defineProperty(exports, "usePdfAnnotationsByPage", {
282
282
  enumerable: true,
283
- get: function () { return chunkBE226IHU_cjs.usePdfAnnotationsByPage; }
283
+ get: function () { return chunk7EGCPMTN_cjs.usePdfAnnotationsByPage; }
284
284
  });
285
285
  Object.defineProperty(exports, "usePdfDocument", {
286
286
  enumerable: true,
287
- get: function () { return chunkBE226IHU_cjs.usePdfDocument; }
287
+ get: function () { return chunk7EGCPMTN_cjs.usePdfDocument; }
288
288
  });
289
289
  Object.defineProperty(exports, "usePdfFormFields", {
290
290
  enumerable: true,
291
- get: function () { return chunkBE226IHU_cjs.usePdfFormFields; }
291
+ get: function () { return chunk7EGCPMTN_cjs.usePdfFormFields; }
292
292
  });
293
293
  Object.defineProperty(exports, "usePdfHighlightMode", {
294
294
  enumerable: true,
295
- get: function () { return chunkBE226IHU_cjs.usePdfHighlightMode; }
295
+ get: function () { return chunk7EGCPMTN_cjs.usePdfHighlightMode; }
296
296
  });
297
297
  Object.defineProperty(exports, "usePdfOutline", {
298
298
  enumerable: true,
299
- get: function () { return chunkBE226IHU_cjs.usePdfOutline; }
299
+ get: function () { return chunk7EGCPMTN_cjs.usePdfOutline; }
300
300
  });
301
301
  Object.defineProperty(exports, "usePdfViewer", {
302
302
  enumerable: true,
303
- get: function () { return chunkBE226IHU_cjs.usePdfViewer; }
303
+ get: function () { return chunk7EGCPMTN_cjs.usePdfViewer; }
304
304
  });
305
305
  Object.defineProperty(exports, "usePdfViewerCore", {
306
306
  enumerable: true,
307
- get: function () { return chunkBE226IHU_cjs.usePdfViewerCore; }
307
+ get: function () { return chunk7EGCPMTN_cjs.usePdfViewerCore; }
308
308
  });
309
309
  Object.defineProperty(exports, "usePdfViewerSearch", {
310
310
  enumerable: true,
311
- get: function () { return chunkBE226IHU_cjs.usePdfViewerSearch; }
311
+ get: function () { return chunk7EGCPMTN_cjs.usePdfViewerSearch; }
312
312
  });
313
313
  Object.defineProperty(exports, "usePdfViewerState", {
314
314
  enumerable: true,
315
- get: function () { return chunkBE226IHU_cjs.usePdfViewerState; }
315
+ get: function () { return chunk7EGCPMTN_cjs.usePdfViewerState; }
316
316
  });
317
317
  Object.defineProperty(exports, "usePdfViewerSync", {
318
318
  enumerable: true,
319
- get: function () { return chunkBE226IHU_cjs.usePdfViewerSync; }
319
+ get: function () { return chunk7EGCPMTN_cjs.usePdfViewerSync; }
320
320
  });
321
321
  Object.defineProperty(exports, "TiffRenderer", {
322
322
  enumerable: true,
@@ -324,7 +324,7 @@ Object.defineProperty(exports, "TiffRenderer", {
324
324
  });
325
325
  Object.defineProperty(exports, "EmailViewer", {
326
326
  enumerable: true,
327
- get: function () { return chunkXRI2RLG7_cjs.EmailViewer; }
327
+ get: function () { return chunkZ3WY3E4E_cjs.EmailViewer; }
328
328
  });
329
329
  Object.defineProperty(exports, "BaseEmailViewer", {
330
330
  enumerable: true,
@@ -12,7 +12,7 @@ export { OsdkThemeContextValue, OsdkThemeMode, OsdkThemeProvider, OsdkThemeProvi
12
12
  export { TiffRenderer, TiffViewerMedia, TiffViewerMediaProps } from './experimental/tiff-renderer.cjs';
13
13
  export { BaseVideoViewer, VideoViewer } from './experimental/video-viewer.cjs';
14
14
  export { BaseXmlViewer, XmlViewer } from './experimental/xml-viewer.cjs';
15
- export { A as AnnotationType, O as OutlineItem, P as PdfAnnotation, a as PdfAnnotationRenderProps, b as PdfCustomAnnotation, c as PdfDownloadResult, d as PdfFormFieldValue, e as PdfRect, f as PdfTextHighlightEvent, g as PdfViewerHandle, h as PdfViewerInstanceOptions, i as PdfViewerProps, S as SidebarMode } from '../types-cSnAM4mt.cjs';
15
+ export { A as AnnotationType, O as OutlineItem, P as PdfAnnotation, a as PdfAnnotationRenderProps, b as PdfCustomAnnotation, c as PdfDownloadResult, d as PdfFormFieldValue, e as PdfRect, f as PdfSource, g as PdfTextHighlightEvent, h as PdfViewerHandle, i as PdfViewerInstanceOptions, j as PdfViewerProps, S as SidebarMode } from '../types-DDeX79uW.cjs';
16
16
  export { B as BaseEmailViewerProps, E as EmailAddress, a as EmailViewerMediaProps, P as ParsedEmail } from '../EmailViewerApi-vpg29jQa.cjs';
17
17
  export { B as BaseExcelViewerProps, E as ExcelViewerMediaProps, P as ParsedSpreadsheet, S as SheetData } from '../ExcelViewerApi-D8tqiUvS.cjs';
18
18
  export { B as BaseImageViewerProps, I as ImageViewerMediaProps } from '../ImageViewerApi-UjutcBVK.cjs';
@@ -90,8 +90,8 @@ interface PdfViewerHandle {
90
90
  * Equivalent to {@link PdfViewerProps} minus the `className` rendering concern.
91
91
  */
92
92
  interface PdfViewerInstanceOptions {
93
- /** PDF source — URL string or ArrayBuffer */
94
- src: string | ArrayBuffer;
93
+ /** PDF source — URL string, ArrayBuffer, Uint8Array, or Blob */
94
+ src: PdfSource;
95
95
  /** Annotations to overlay on the PDF */
96
96
  annotations?: PdfAnnotation[];
97
97
  /** Callback fired when an annotation is clicked */
@@ -131,10 +131,19 @@ interface PdfViewerInstanceOptions {
131
131
  /** Custom icon components for each outline depth level (0-indexed) */
132
132
  outlineIcons?: Partial<Record<number, React__default.ComponentType>>;
133
133
  }
134
+ /**
135
+ * PDF source input.
136
+ *
137
+ * - `string` — a URL the PDF is fetched from
138
+ * - `ArrayBuffer` / `Uint8Array` — raw PDF bytes already in memory (a Node
139
+ * `Buffer` satisfies `Uint8Array` and is accepted as-is)
140
+ * - `Blob` — read into an `ArrayBuffer` before rendering
141
+ */
142
+ type PdfSource = string | ArrayBuffer | Uint8Array | Blob;
134
143
  /** Props for the {@link PdfViewer} component. */
135
144
  interface PdfViewerProps {
136
- /** PDF source — URL string or ArrayBuffer */
137
- src: string | ArrayBuffer;
145
+ /** PDF source — URL string, ArrayBuffer, Uint8Array, or Blob */
146
+ src: PdfSource;
138
147
  /** Annotations to overlay on the PDF */
139
148
  annotations?: PdfAnnotation[];
140
149
  /**
@@ -231,4 +240,4 @@ interface PdfViewerProps {
231
240
  className?: string;
232
241
  }
233
242
 
234
- export type { AnnotationType as A, OutlineItem as O, PdfAnnotation as P, SidebarMode as S, PdfAnnotationRenderProps as a, PdfCustomAnnotation as b, PdfDownloadResult as c, PdfFormFieldValue as d, PdfRect as e, PdfTextHighlightEvent as f, PdfViewerHandle as g, PdfViewerInstanceOptions as h, PdfViewerProps as i };
243
+ export type { AnnotationType as A, OutlineItem as O, PdfAnnotation as P, SidebarMode as S, PdfAnnotationRenderProps as a, PdfCustomAnnotation as b, PdfDownloadResult as c, PdfFormFieldValue as d, PdfRect as e, PdfSource as f, PdfTextHighlightEvent as g, PdfViewerHandle as h, PdfViewerInstanceOptions as i, PdfViewerProps as j };
@@ -1 +1 @@
1
- {"version":3,"file":"PdfViewerContent.js","names":["Error","ErrorIcon","Spin","classnames","React","useEffect","useRef","EMPTY_ANNOTATION_ARRAY","usePdfAnnotationsByPage","usePdfFormFields","usePdfViewerCore","PdfAnnotationOverlay","styles","PdfViewerContent","src","annotations","onAnnotationClick","initialPage","initialScale","onPageChange","onPageChangeProp","onScaleChange","onScaleChangeProp","formData","onFormChange","className","viewer","annotationsByPage","pdfViewerRef","eventBusRef","document","onPageChangeRef","current","onScaleChangeRef","isInitialMountRef","currentPage","scale","rootClassName","pdfViewer","loading","createElement","loadingContainer","spinnerIcon","error","errorContainer","errorIcon","message","scrollContainerWrapper","ref","containerRef","scrollContainer","viewerRef","portalTargets","map","target","pageAnnotations","pageNumber","length","key"],"sources":["PdfViewerContent.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\n\nimport \"pdfjs-dist/web/pdf_viewer.css\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { EMPTY_ANNOTATION_ARRAY } from \"../constants.js\";\nimport { usePdfAnnotationsByPage } from \"../hooks/usePdfAnnotationsByPage.js\";\nimport { usePdfFormFields } from \"../hooks/usePdfFormFields.js\";\nimport { usePdfViewerCore } from \"../hooks/usePdfViewerCore.js\";\nimport type { PdfAnnotation, PdfFormFieldValue } from \"../types.js\";\nimport { PdfAnnotationOverlay } from \"./PdfAnnotationOverlay.js\";\n\nimport styles from \"../PdfViewer.module.css\";\n\nexport interface PdfViewerContentProps {\n /** PDF source — URL string or ArrayBuffer */\n src: string | ArrayBuffer;\n /** Annotations to overlay on the PDF */\n annotations?: PdfAnnotation[];\n /** Callback fired when an annotation is clicked */\n onAnnotationClick?: (annotation: PdfAnnotation) => void;\n /** Initial page number (1-indexed, default 1) */\n initialPage?: number;\n /** Initial zoom scale (default 1.0) */\n initialScale?: number;\n /** Callback fired when the current page changes during scrolling */\n onPageChange?: (page: number) => void;\n /** Callback fired when the zoom scale changes */\n onScaleChange?: (scale: number) => void;\n /** Initial form field values keyed by field name. Applied when the document loads. */\n formData?: Record<string, PdfFormFieldValue>;\n /** Callback fired when any form field value changes. */\n onFormChange?: (fieldName: string, value: PdfFormFieldValue) => void;\n /** Additional CSS class name for the root element */\n className?: string;\n}\n\nexport function PdfViewerContent({\n src,\n annotations = EMPTY_ANNOTATION_ARRAY,\n onAnnotationClick,\n initialPage = 1,\n initialScale = 1.0,\n onPageChange: onPageChangeProp,\n onScaleChange: onScaleChangeProp,\n formData,\n onFormChange,\n className,\n}: PdfViewerContentProps): React.ReactElement {\n const viewer = usePdfViewerCore({ src, initialPage, initialScale });\n const annotationsByPage = usePdfAnnotationsByPage(annotations);\n\n usePdfFormFields({\n pdfViewerRef: viewer.pdfViewerRef,\n eventBusRef: viewer.eventBusRef,\n document: viewer.document,\n formData,\n onFormChange,\n });\n\n // Use refs for callbacks to avoid firing on initial mount\n const onPageChangeRef = useRef(onPageChangeProp);\n onPageChangeRef.current = onPageChangeProp;\n const onScaleChangeRef = useRef(onScaleChangeProp);\n onScaleChangeRef.current = onScaleChangeProp;\n const isInitialMountRef = useRef(true);\n\n useEffect(\n function notifyPageChange() {\n if (isInitialMountRef.current) {\n return;\n }\n onPageChangeRef.current?.(viewer.currentPage);\n },\n [viewer.currentPage]\n );\n\n useEffect(\n function notifyScaleChange() {\n if (isInitialMountRef.current) {\n return;\n }\n onScaleChangeRef.current?.(viewer.scale);\n },\n [viewer.scale]\n );\n\n useEffect(function clearInitialMount() {\n isInitialMountRef.current = false;\n }, []);\n\n const rootClassName = classnames(styles.pdfViewer, className);\n\n if (viewer.loading) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>\n <Spin className={styles.spinnerIcon} />\n Loading…\n </div>\n </div>\n );\n }\n\n if (viewer.error != null) {\n return (\n <div className={rootClassName}>\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n Failed to load PDF: {viewer.error.message}\n </div>\n </div>\n );\n }\n\n if (viewer.document == null) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>No document</div>\n </div>\n );\n }\n\n return (\n <div className={rootClassName}>\n <div className={styles.scrollContainerWrapper}>\n <div ref={viewer.containerRef} className={styles.scrollContainer}>\n <div ref={viewer.viewerRef} className=\"pdfViewer\" />\n {viewer.portalTargets.map((target) => {\n const pageAnnotations =\n annotationsByPage[target.pageNumber] ?? EMPTY_ANNOTATION_ARRAY;\n if (pageAnnotations.length === 0) {\n return null;\n }\n return (\n <PdfAnnotationOverlay\n key={target.pageNumber}\n target={target}\n annotations={pageAnnotations}\n onAnnotationClick={onAnnotationClick}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PdfViewerContent.js","names":["Error","ErrorIcon","Spin","classnames","React","useEffect","useRef","EMPTY_ANNOTATION_ARRAY","usePdfAnnotationsByPage","usePdfFormFields","usePdfViewerCore","PdfAnnotationOverlay","styles","PdfViewerContent","src","annotations","onAnnotationClick","initialPage","initialScale","onPageChange","onPageChangeProp","onScaleChange","onScaleChangeProp","formData","onFormChange","className","viewer","annotationsByPage","pdfViewerRef","eventBusRef","document","onPageChangeRef","current","onScaleChangeRef","isInitialMountRef","currentPage","scale","rootClassName","pdfViewer","loading","createElement","loadingContainer","spinnerIcon","error","errorContainer","errorIcon","message","scrollContainerWrapper","ref","containerRef","scrollContainer","viewerRef","portalTargets","map","target","pageAnnotations","pageNumber","length","key"],"sources":["PdfViewerContent.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\n\nimport \"pdfjs-dist/web/pdf_viewer.css\";\nimport React, { useEffect, useRef } from \"react\";\n\nimport { EMPTY_ANNOTATION_ARRAY } from \"../constants.js\";\nimport { usePdfAnnotationsByPage } from \"../hooks/usePdfAnnotationsByPage.js\";\nimport { usePdfFormFields } from \"../hooks/usePdfFormFields.js\";\nimport { usePdfViewerCore } from \"../hooks/usePdfViewerCore.js\";\nimport type { PdfAnnotation, PdfFormFieldValue, PdfSource } from \"../types.js\";\nimport { PdfAnnotationOverlay } from \"./PdfAnnotationOverlay.js\";\n\nimport styles from \"../PdfViewer.module.css\";\n\nexport interface PdfViewerContentProps {\n /** PDF source — URL string, ArrayBuffer, Uint8Array, or Blob */\n src: PdfSource;\n /** Annotations to overlay on the PDF */\n annotations?: PdfAnnotation[];\n /** Callback fired when an annotation is clicked */\n onAnnotationClick?: (annotation: PdfAnnotation) => void;\n /** Initial page number (1-indexed, default 1) */\n initialPage?: number;\n /** Initial zoom scale (default 1.0) */\n initialScale?: number;\n /** Callback fired when the current page changes during scrolling */\n onPageChange?: (page: number) => void;\n /** Callback fired when the zoom scale changes */\n onScaleChange?: (scale: number) => void;\n /** Initial form field values keyed by field name. Applied when the document loads. */\n formData?: Record<string, PdfFormFieldValue>;\n /** Callback fired when any form field value changes. */\n onFormChange?: (fieldName: string, value: PdfFormFieldValue) => void;\n /** Additional CSS class name for the root element */\n className?: string;\n}\n\nexport function PdfViewerContent({\n src,\n annotations = EMPTY_ANNOTATION_ARRAY,\n onAnnotationClick,\n initialPage = 1,\n initialScale = 1.0,\n onPageChange: onPageChangeProp,\n onScaleChange: onScaleChangeProp,\n formData,\n onFormChange,\n className,\n}: PdfViewerContentProps): React.ReactElement {\n const viewer = usePdfViewerCore({ src, initialPage, initialScale });\n const annotationsByPage = usePdfAnnotationsByPage(annotations);\n\n usePdfFormFields({\n pdfViewerRef: viewer.pdfViewerRef,\n eventBusRef: viewer.eventBusRef,\n document: viewer.document,\n formData,\n onFormChange,\n });\n\n // Use refs for callbacks to avoid firing on initial mount\n const onPageChangeRef = useRef(onPageChangeProp);\n onPageChangeRef.current = onPageChangeProp;\n const onScaleChangeRef = useRef(onScaleChangeProp);\n onScaleChangeRef.current = onScaleChangeProp;\n const isInitialMountRef = useRef(true);\n\n useEffect(\n function notifyPageChange() {\n if (isInitialMountRef.current) {\n return;\n }\n onPageChangeRef.current?.(viewer.currentPage);\n },\n [viewer.currentPage]\n );\n\n useEffect(\n function notifyScaleChange() {\n if (isInitialMountRef.current) {\n return;\n }\n onScaleChangeRef.current?.(viewer.scale);\n },\n [viewer.scale]\n );\n\n useEffect(function clearInitialMount() {\n isInitialMountRef.current = false;\n }, []);\n\n const rootClassName = classnames(styles.pdfViewer, className);\n\n if (viewer.loading) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>\n <Spin className={styles.spinnerIcon} />\n Loading…\n </div>\n </div>\n );\n }\n\n if (viewer.error != null) {\n return (\n <div className={rootClassName}>\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n Failed to load PDF: {viewer.error.message}\n </div>\n </div>\n );\n }\n\n if (viewer.document == null) {\n return (\n <div className={rootClassName}>\n <div className={styles.loadingContainer}>No document</div>\n </div>\n );\n }\n\n return (\n <div className={rootClassName}>\n <div className={styles.scrollContainerWrapper}>\n <div ref={viewer.containerRef} className={styles.scrollContainer}>\n <div ref={viewer.viewerRef} className=\"pdfViewer\" />\n {viewer.portalTargets.map((target) => {\n const pageAnnotations =\n annotationsByPage[target.pageNumber] ?? EMPTY_ANNOTATION_ARRAY;\n if (pageAnnotations.length === 0) {\n return null;\n }\n return (\n <PdfAnnotationOverlay\n key={target.pageNumber}\n target={target}\n annotations={pageAnnotations}\n onAnnotationClick={onAnnotationClick}\n />\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,25 @@
17
17
  import { getDocument, GlobalWorkerOptions } from "pdfjs-dist";
18
18
  const pdfWorkerUrl = new URL("pdfjs-dist/build/pdf.worker.min.mjs", import.meta.url);
19
19
  import { useEffect, useState } from "react";
20
+ /**
21
+ * Resolve a {@link PdfSource} to pdfjs `getDocument` parameters.
22
+ *
23
+ * A Blob is read into an ArrayBuffer first; URLs and in-memory bytes
24
+ * (ArrayBuffer/Uint8Array) resolve immediately. Always returns a promise so
25
+ * callers have a single code path regardless of source type.
26
+ */
27
+ function toDocumentParams(src) {
28
+ if (src instanceof Blob) {
29
+ return src.arrayBuffer().then(data => ({
30
+ data
31
+ }));
32
+ }
33
+ return Promise.resolve(typeof src === "string" ? {
34
+ url: src
35
+ } : {
36
+ data: src
37
+ });
38
+ }
20
39
  const pdfWorker = {
21
40
  workerInitialized: false,
22
41
  ensureWorker() {
@@ -33,19 +52,27 @@ export function usePdfDocument(src) {
33
52
  pdfWorker.ensureWorker();
34
53
  setLoading(true);
35
54
  setError(undefined);
36
- const loadingTask = getDocument(typeof src === "string" ? {
37
- url: src
38
- } : {
39
- data: src
40
- });
41
55
  let cancelled = false;
42
- loadingTask.promise.then(pdf => {
43
- if (!cancelled) {
44
- setDocument(pdf);
45
- setNumPages(pdf.numPages);
46
- setLoading(false);
56
+ let loadingTask;
57
+ const startLoad = params => {
58
+ if (cancelled) {
59
+ return;
47
60
  }
48
- }, err => {
61
+ loadingTask = getDocument(params);
62
+ loadingTask.promise.then(pdf => {
63
+ if (!cancelled) {
64
+ setDocument(pdf);
65
+ setNumPages(pdf.numPages);
66
+ setLoading(false);
67
+ }
68
+ }, err => {
69
+ if (!cancelled) {
70
+ setError(err instanceof Error ? err : new Error(String(err)));
71
+ setLoading(false);
72
+ }
73
+ });
74
+ };
75
+ toDocumentParams(src).then(startLoad, err => {
49
76
  if (!cancelled) {
50
77
  setError(err instanceof Error ? err : new Error(String(err)));
51
78
  setLoading(false);
@@ -53,7 +80,7 @@ export function usePdfDocument(src) {
53
80
  });
54
81
  return () => {
55
82
  cancelled = true;
56
- void loadingTask.destroy();
83
+ void loadingTask?.destroy();
57
84
  };
58
85
  }, [src]);
59
86
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"usePdfDocument.js","names":["getDocument","GlobalWorkerOptions","pdfWorkerUrl","URL","import","meta","url","useEffect","useState","pdfWorker","workerInitialized","ensureWorker","workerSrc","href","usePdfDocument","src","document","setDocument","undefined","numPages","setNumPages","loading","setLoading","error","setError","loadingTask","data","cancelled","promise","then","pdf","err","Error","String","destroy"],"sources":["usePdfDocument.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\nimport { getDocument, GlobalWorkerOptions } from \"pdfjs-dist\";\nconst pdfWorkerUrl = new URL(\n \"pdfjs-dist/build/pdf.worker.min.mjs\",\n import.meta.url\n);\nimport { useEffect, useState } from \"react\";\n\nconst pdfWorker = {\n workerInitialized: false,\n ensureWorker() {\n GlobalWorkerOptions.workerSrc = pdfWorkerUrl.href;\n this.workerInitialized = true;\n },\n};\n\ninterface UsePdfDocumentResult {\n document: PDFDocumentProxy | undefined;\n numPages: number;\n loading: boolean;\n error: Error | undefined;\n}\n\nexport function usePdfDocument(\n src: string | ArrayBuffer\n): UsePdfDocumentResult {\n const [document, setDocument] = useState<PDFDocumentProxy | undefined>(\n undefined\n );\n const [numPages, setNumPages] = useState(0);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n\n useEffect(\n function loadPdfDocument() {\n pdfWorker.ensureWorker();\n setLoading(true);\n setError(undefined);\n\n const loadingTask = getDocument(\n typeof src === \"string\" ? { url: src } : { data: src }\n );\n\n let cancelled = false;\n\n loadingTask.promise.then(\n (pdf) => {\n if (!cancelled) {\n setDocument(pdf);\n setNumPages(pdf.numPages);\n setLoading(false);\n }\n },\n (err: unknown) => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n }\n );\n\n return () => {\n cancelled = true;\n void loadingTask.destroy();\n };\n },\n [src]\n );\n\n return { document, numPages, loading, error };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,WAAW,EAAEC,mBAAmB,QAAQ,YAAY;AAC7D,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAC1B,qCAAqC,EACrCC,MAAM,CAACC,IAAI,CAACC,GACd,CAAC;AACD,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAE3C,MAAMC,SAAS,GAAG;EAChBC,iBAAiB,EAAE,KAAK;EACxBC,YAAYA,CAAA,EAAG;IACbV,mBAAmB,CAACW,SAAS,GAAGV,YAAY,CAACW,IAAI;IACjD,IAAI,CAACH,iBAAiB,GAAG,IAAI;EAC/B;AACF,CAAC;AASD,OAAO,SAASI,cAAcA,CAC5BC,GAAyB,EACH;EACtB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGT,QAAQ,CACtCU,SACF,CAAC;EACD,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGZ,QAAQ,CAAC,CAAC,CAAC;EAC3C,MAAM,CAACa,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAoBU,SAAS,CAAC;EAEhEX,SAAS,CACP,YAA2B;IACzBE,SAAS,CAACE,YAAY,CAAC,CAAC;IACxBW,UAAU,CAAC,IAAI,CAAC;IAChBE,QAAQ,CAACN,SAAS,CAAC;IAEnB,MAAMO,WAAW,GAAGzB,WAAW,CAC7B,OAAOe,GAAG,KAAK,QAAQ,GAAG;MAAET,GAAG,EAAES;IAAI,CAAC,GAAG;MAAEW,IAAI,EAAEX;IAAI,CACvD,CAAC;IAED,IAAIY,SAAS,GAAG,KAAK;IAErBF,WAAW,CAACG,OAAO,CAACC,IAAI,CACrBC,GAAG,IAAK;MACP,IAAI,CAACH,SAAS,EAAE;QACdV,WAAW,CAACa,GAAG,CAAC;QAChBV,WAAW,CAACU,GAAG,CAACX,QAAQ,CAAC;QACzBG,UAAU,CAAC,KAAK,CAAC;MACnB;IACF,CAAC,EACAS,GAAY,IAAK;MAChB,IAAI,CAACJ,SAAS,EAAE;QACdH,QAAQ,CAACO,GAAG,YAAYC,KAAK,GAAGD,GAAG,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACF,GAAG,CAAC,CAAC,CAAC;QAC7DT,UAAU,CAAC,KAAK,CAAC;MACnB;IACF,CACF,CAAC;IAED,OAAO,MAAM;MACXK,SAAS,GAAG,IAAI;MAChB,KAAKF,WAAW,CAACS,OAAO,CAAC,CAAC;IAC5B,CAAC;EACH,CAAC,EACD,CAACnB,GAAG,CACN,CAAC;EAED,OAAO;IAAEC,QAAQ;IAAEG,QAAQ;IAAEE,OAAO;IAAEE;EAAM,CAAC;AAC/C","ignoreList":[]}
1
+ {"version":3,"file":"usePdfDocument.js","names":["getDocument","GlobalWorkerOptions","pdfWorkerUrl","URL","import","meta","url","useEffect","useState","toDocumentParams","src","Blob","arrayBuffer","then","data","Promise","resolve","pdfWorker","workerInitialized","ensureWorker","workerSrc","href","usePdfDocument","document","setDocument","undefined","numPages","setNumPages","loading","setLoading","error","setError","cancelled","loadingTask","startLoad","params","promise","pdf","err","Error","String","destroy"],"sources":["usePdfDocument.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\nimport { getDocument, GlobalWorkerOptions } from \"pdfjs-dist\";\nconst pdfWorkerUrl = new URL(\n \"pdfjs-dist/build/pdf.worker.min.mjs\",\n import.meta.url\n);\nimport { useEffect, useState } from \"react\";\n\nimport type { PdfSource } from \"../types.js\";\n\ntype GetDocumentParams = Parameters<typeof getDocument>[0];\n\n/**\n * Resolve a {@link PdfSource} to pdfjs `getDocument` parameters.\n *\n * A Blob is read into an ArrayBuffer first; URLs and in-memory bytes\n * (ArrayBuffer/Uint8Array) resolve immediately. Always returns a promise so\n * callers have a single code path regardless of source type.\n */\nfunction toDocumentParams(src: PdfSource): Promise<GetDocumentParams> {\n if (src instanceof Blob) {\n return src.arrayBuffer().then((data) => ({ data }));\n }\n return Promise.resolve(\n typeof src === \"string\" ? { url: src } : { data: src }\n );\n}\n\nconst pdfWorker = {\n workerInitialized: false,\n ensureWorker() {\n GlobalWorkerOptions.workerSrc = pdfWorkerUrl.href;\n this.workerInitialized = true;\n },\n};\n\ninterface UsePdfDocumentResult {\n document: PDFDocumentProxy | undefined;\n numPages: number;\n loading: boolean;\n error: Error | undefined;\n}\n\nexport function usePdfDocument(src: PdfSource): UsePdfDocumentResult {\n const [document, setDocument] = useState<PDFDocumentProxy | undefined>(\n undefined\n );\n const [numPages, setNumPages] = useState(0);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | undefined>(undefined);\n\n useEffect(\n function loadPdfDocument() {\n pdfWorker.ensureWorker();\n setLoading(true);\n setError(undefined);\n\n let cancelled = false;\n let loadingTask: ReturnType<typeof getDocument> | undefined;\n\n const startLoad = (params: GetDocumentParams) => {\n if (cancelled) {\n return;\n }\n loadingTask = getDocument(params);\n loadingTask.promise.then(\n (pdf) => {\n if (!cancelled) {\n setDocument(pdf);\n setNumPages(pdf.numPages);\n setLoading(false);\n }\n },\n (err: unknown) => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n }\n );\n };\n\n toDocumentParams(src).then(startLoad, (err: unknown) => {\n if (!cancelled) {\n setError(err instanceof Error ? err : new Error(String(err)));\n setLoading(false);\n }\n });\n\n return () => {\n cancelled = true;\n void loadingTask?.destroy();\n };\n },\n [src]\n );\n\n return { document, numPages, loading, error };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePdfViewerCore.js","names":["useCallback","useMemo","useRef","useState","usePdfAnnotationPortals","usePdfDocument","usePdfViewer","usePdfViewerSync","usePdfViewerCore","src","initialPage","initialScale","initialAutoSize","document","numPages","loading","error","scale","setScale","currentPage","setCurrentPage","autoSize","setAutoSize","containerRef","viewerRef","pdfViewerRef","eventBusRef","findControllerRef","handleScaleChange","newScale","handlePageChange","page","scrollToPage","syncScrollToPage","onScaleChange","onPageChange","portalTargets"],"sources":["usePdfViewerCore.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\nimport type {\n EventBus,\n PDFFindController,\n PDFViewer,\n} from \"pdfjs-dist/web/pdf_viewer.mjs\";\nimport type { RefObject } from \"react\";\nimport { useCallback, useMemo, useRef, useState } from \"react\";\n\nimport type { AnnotationPortalTarget } from \"./usePdfAnnotationPortals.js\";\nimport { usePdfAnnotationPortals } from \"./usePdfAnnotationPortals.js\";\nimport { usePdfDocument } from \"./usePdfDocument.js\";\nimport { usePdfViewer } from \"./usePdfViewer.js\";\nimport { usePdfViewerSync } from \"./usePdfViewerSync.js\";\n\nexport interface UsePdfViewerCoreOptions {\n /** PDF source — URL string or ArrayBuffer */\n src: string | ArrayBuffer;\n /** Initial page number (1-indexed, default 1) */\n initialPage?: number;\n /** Initial zoom scale (default 1.0) */\n initialScale?: number;\n /** Whether auto-size (fit to width) is initially enabled (default false) */\n initialAutoSize?: boolean;\n}\n\nexport interface UsePdfViewerCoreResult {\n /** The loaded PDF document, or undefined while loading */\n document: PDFDocumentProxy | undefined;\n /** Total number of pages in the document */\n numPages: number;\n /** Whether the document is currently loading */\n loading: boolean;\n /** Error encountered while loading the document */\n error: Error | undefined;\n\n /** Ref to attach to the scroll-container div */\n containerRef: RefObject<HTMLDivElement>;\n /** Ref to attach to the inner viewer div (className=\"pdfViewer\") */\n viewerRef: RefObject<HTMLDivElement>;\n\n /** Current page number (1-indexed) */\n currentPage: number;\n /** Navigate to a specific page (updates state and scrolls the viewer) */\n scrollToPage: (page: number) => void;\n\n /** Current zoom scale */\n scale: number;\n /** Set the zoom scale directly */\n setScale: (scale: number) => void;\n\n /** Whether auto-size (fit to width) is active */\n autoSize: boolean;\n /** Enable or disable auto-size */\n setAutoSize: (autoSize: boolean) => void;\n\n /** Portal targets for rendering annotation overlays on each page */\n portalTargets: AnnotationPortalTarget[];\n\n /** Ref to the internal pdfjs PDFViewer instance */\n pdfViewerRef: RefObject<PDFViewer | null>;\n /** Ref to the internal pdfjs EventBus instance */\n eventBusRef: RefObject<EventBus | null>;\n /** Ref to the internal pdfjs PDFFindController instance */\n findControllerRef: RefObject<PDFFindController | null>;\n}\n\nexport function usePdfViewerCore({\n src,\n initialPage = 1,\n initialScale = 1.0,\n initialAutoSize = false,\n}: UsePdfViewerCoreOptions): UsePdfViewerCoreResult {\n const { document, numPages, loading, error } = usePdfDocument(src);\n const [scale, setScale] = useState(initialScale);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [autoSize, setAutoSize] = useState(initialAutoSize);\n const containerRef = useRef<HTMLDivElement>(null);\n const viewerRef = useRef<HTMLDivElement>(null);\n\n const { pdfViewerRef, eventBusRef, findControllerRef } = usePdfViewer(\n containerRef,\n viewerRef,\n document,\n initialScale,\n initialPage\n );\n\n const handleScaleChange = useCallback((newScale: number) => {\n setScale(newScale);\n }, []);\n\n const handlePageChange = useCallback((page: number) => {\n setCurrentPage(page);\n }, []);\n\n const { scrollToPage: syncScrollToPage } = usePdfViewerSync({\n pdfViewerRef,\n eventBusRef,\n containerRef,\n document,\n scale,\n autoSize,\n onScaleChange: handleScaleChange,\n onPageChange: handlePageChange,\n });\n\n const scrollToPage = useCallback(\n (page: number) => {\n setCurrentPage(page);\n syncScrollToPage(page);\n },\n [syncScrollToPage]\n );\n\n const portalTargets = usePdfAnnotationPortals(\n pdfViewerRef,\n eventBusRef,\n document\n );\n\n return useMemo(\n (): UsePdfViewerCoreResult => ({\n document,\n numPages,\n loading,\n error,\n containerRef,\n viewerRef,\n currentPage,\n scrollToPage,\n scale,\n setScale,\n autoSize,\n setAutoSize,\n portalTargets,\n pdfViewerRef,\n eventBusRef,\n findControllerRef,\n }),\n [\n document,\n numPages,\n loading,\n error,\n currentPage,\n scrollToPage,\n scale,\n setScale,\n autoSize,\n setAutoSize,\n portalTargets,\n ]\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAG9D,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,gBAAgB,QAAQ,uBAAuB;AAsDxD,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,GAAG;EACHC,WAAW,GAAG,CAAC;EACfC,YAAY,GAAG,GAAG;EAClBC,eAAe,GAAG;AACK,CAAC,EAA0B;EAClD,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGX,cAAc,CAACI,GAAG,CAAC;EAClE,MAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAGf,QAAQ,CAACQ,YAAY,CAAC;EAChD,MAAM,CAACQ,WAAW,EAAEC,cAAc,CAAC,GAAGjB,QAAQ,CAACO,WAAW,CAAC;EAC3D,MAAM,CAACW,QAAQ,EAAEC,WAAW,CAAC,GAAGnB,QAAQ,CAACS,eAAe,CAAC;EACzD,MAAMW,YAAY,GAAGrB,MAAM,CAAiB,IAAI,CAAC;EACjD,MAAMsB,SAAS,GAAGtB,MAAM,CAAiB,IAAI,CAAC;EAE9C,MAAM;IAAEuB,YAAY;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAGrB,YAAY,CACnEiB,YAAY,EACZC,SAAS,EACTX,QAAQ,EACRF,YAAY,EACZD,WACF,CAAC;EAED,MAAMkB,iBAAiB,GAAG5B,WAAW,CAAE6B,QAAgB,IAAK;IAC1DX,QAAQ,CAACW,QAAQ,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAG9B,WAAW,CAAE+B,IAAY,IAAK;IACrDX,cAAc,CAACW,IAAI,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM;IAAEC,YAAY,EAAEC;EAAiB,CAAC,GAAG1B,gBAAgB,CAAC;IAC1DkB,YAAY;IACZC,WAAW;IACXH,YAAY;IACZV,QAAQ;IACRI,KAAK;IACLI,QAAQ;IACRa,aAAa,EAAEN,iBAAiB;IAChCO,YAAY,EAAEL;EAChB,CAAC,CAAC;EAEF,MAAME,YAAY,GAAGhC,WAAW,CAC7B+B,IAAY,IAAK;IAChBX,cAAc,CAACW,IAAI,CAAC;IACpBE,gBAAgB,CAACF,IAAI,CAAC;EACxB,CAAC,EACD,CAACE,gBAAgB,CACnB,CAAC;EAED,MAAMG,aAAa,GAAGhC,uBAAuB,CAC3CqB,YAAY,EACZC,WAAW,EACXb,QACF,CAAC;EAED,OAAOZ,OAAO,CACZ,OAA+B;IAC7BY,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,KAAK;IACLO,YAAY;IACZC,SAAS;IACTL,WAAW;IACXa,YAAY;IACZf,KAAK;IACLC,QAAQ;IACRG,QAAQ;IACRC,WAAW;IACXc,aAAa;IACbX,YAAY;IACZC,WAAW;IACXC;EACF,CAAC,CAAC,EACF,CACEd,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACLG,WAAW,EACXa,YAAY,EACZf,KAAK,EACLC,QAAQ,EACRG,QAAQ,EACRC,WAAW,EACXc,aAAa,CAEjB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"usePdfViewerCore.js","names":["useCallback","useMemo","useRef","useState","usePdfAnnotationPortals","usePdfDocument","usePdfViewer","usePdfViewerSync","usePdfViewerCore","src","initialPage","initialScale","initialAutoSize","document","numPages","loading","error","scale","setScale","currentPage","setCurrentPage","autoSize","setAutoSize","containerRef","viewerRef","pdfViewerRef","eventBusRef","findControllerRef","handleScaleChange","newScale","handlePageChange","page","scrollToPage","syncScrollToPage","onScaleChange","onPageChange","portalTargets"],"sources":["usePdfViewerCore.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { PDFDocumentProxy } from \"pdfjs-dist\";\nimport type {\n EventBus,\n PDFFindController,\n PDFViewer,\n} from \"pdfjs-dist/web/pdf_viewer.mjs\";\nimport type { RefObject } from \"react\";\nimport { useCallback, useMemo, useRef, useState } from \"react\";\n\nimport type { PdfSource } from \"../types.js\";\nimport type { AnnotationPortalTarget } from \"./usePdfAnnotationPortals.js\";\nimport { usePdfAnnotationPortals } from \"./usePdfAnnotationPortals.js\";\nimport { usePdfDocument } from \"./usePdfDocument.js\";\nimport { usePdfViewer } from \"./usePdfViewer.js\";\nimport { usePdfViewerSync } from \"./usePdfViewerSync.js\";\n\nexport interface UsePdfViewerCoreOptions {\n /** PDF source — URL string, ArrayBuffer, Uint8Array, or Blob */\n src: PdfSource;\n /** Initial page number (1-indexed, default 1) */\n initialPage?: number;\n /** Initial zoom scale (default 1.0) */\n initialScale?: number;\n /** Whether auto-size (fit to width) is initially enabled (default false) */\n initialAutoSize?: boolean;\n}\n\nexport interface UsePdfViewerCoreResult {\n /** The loaded PDF document, or undefined while loading */\n document: PDFDocumentProxy | undefined;\n /** Total number of pages in the document */\n numPages: number;\n /** Whether the document is currently loading */\n loading: boolean;\n /** Error encountered while loading the document */\n error: Error | undefined;\n\n /** Ref to attach to the scroll-container div */\n containerRef: RefObject<HTMLDivElement>;\n /** Ref to attach to the inner viewer div (className=\"pdfViewer\") */\n viewerRef: RefObject<HTMLDivElement>;\n\n /** Current page number (1-indexed) */\n currentPage: number;\n /** Navigate to a specific page (updates state and scrolls the viewer) */\n scrollToPage: (page: number) => void;\n\n /** Current zoom scale */\n scale: number;\n /** Set the zoom scale directly */\n setScale: (scale: number) => void;\n\n /** Whether auto-size (fit to width) is active */\n autoSize: boolean;\n /** Enable or disable auto-size */\n setAutoSize: (autoSize: boolean) => void;\n\n /** Portal targets for rendering annotation overlays on each page */\n portalTargets: AnnotationPortalTarget[];\n\n /** Ref to the internal pdfjs PDFViewer instance */\n pdfViewerRef: RefObject<PDFViewer | null>;\n /** Ref to the internal pdfjs EventBus instance */\n eventBusRef: RefObject<EventBus | null>;\n /** Ref to the internal pdfjs PDFFindController instance */\n findControllerRef: RefObject<PDFFindController | null>;\n}\n\nexport function usePdfViewerCore({\n src,\n initialPage = 1,\n initialScale = 1.0,\n initialAutoSize = false,\n}: UsePdfViewerCoreOptions): UsePdfViewerCoreResult {\n const { document, numPages, loading, error } = usePdfDocument(src);\n const [scale, setScale] = useState(initialScale);\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [autoSize, setAutoSize] = useState(initialAutoSize);\n const containerRef = useRef<HTMLDivElement>(null);\n const viewerRef = useRef<HTMLDivElement>(null);\n\n const { pdfViewerRef, eventBusRef, findControllerRef } = usePdfViewer(\n containerRef,\n viewerRef,\n document,\n initialScale,\n initialPage\n );\n\n const handleScaleChange = useCallback((newScale: number) => {\n setScale(newScale);\n }, []);\n\n const handlePageChange = useCallback((page: number) => {\n setCurrentPage(page);\n }, []);\n\n const { scrollToPage: syncScrollToPage } = usePdfViewerSync({\n pdfViewerRef,\n eventBusRef,\n containerRef,\n document,\n scale,\n autoSize,\n onScaleChange: handleScaleChange,\n onPageChange: handlePageChange,\n });\n\n const scrollToPage = useCallback(\n (page: number) => {\n setCurrentPage(page);\n syncScrollToPage(page);\n },\n [syncScrollToPage]\n );\n\n const portalTargets = usePdfAnnotationPortals(\n pdfViewerRef,\n eventBusRef,\n document\n );\n\n return useMemo(\n (): UsePdfViewerCoreResult => ({\n document,\n numPages,\n loading,\n error,\n containerRef,\n viewerRef,\n currentPage,\n scrollToPage,\n scale,\n setScale,\n autoSize,\n setAutoSize,\n portalTargets,\n pdfViewerRef,\n eventBusRef,\n findControllerRef,\n }),\n [\n document,\n numPages,\n loading,\n error,\n currentPage,\n scrollToPage,\n scale,\n setScale,\n autoSize,\n setAutoSize,\n portalTargets,\n ]\n );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAI9D,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,gBAAgB,QAAQ,uBAAuB;AAsDxD,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,GAAG;EACHC,WAAW,GAAG,CAAC;EACfC,YAAY,GAAG,GAAG;EAClBC,eAAe,GAAG;AACK,CAAC,EAA0B;EAClD,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGX,cAAc,CAACI,GAAG,CAAC;EAClE,MAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAGf,QAAQ,CAACQ,YAAY,CAAC;EAChD,MAAM,CAACQ,WAAW,EAAEC,cAAc,CAAC,GAAGjB,QAAQ,CAACO,WAAW,CAAC;EAC3D,MAAM,CAACW,QAAQ,EAAEC,WAAW,CAAC,GAAGnB,QAAQ,CAACS,eAAe,CAAC;EACzD,MAAMW,YAAY,GAAGrB,MAAM,CAAiB,IAAI,CAAC;EACjD,MAAMsB,SAAS,GAAGtB,MAAM,CAAiB,IAAI,CAAC;EAE9C,MAAM;IAAEuB,YAAY;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAGrB,YAAY,CACnEiB,YAAY,EACZC,SAAS,EACTX,QAAQ,EACRF,YAAY,EACZD,WACF,CAAC;EAED,MAAMkB,iBAAiB,GAAG5B,WAAW,CAAE6B,QAAgB,IAAK;IAC1DX,QAAQ,CAACW,QAAQ,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gBAAgB,GAAG9B,WAAW,CAAE+B,IAAY,IAAK;IACrDX,cAAc,CAACW,IAAI,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM;IAAEC,YAAY,EAAEC;EAAiB,CAAC,GAAG1B,gBAAgB,CAAC;IAC1DkB,YAAY;IACZC,WAAW;IACXH,YAAY;IACZV,QAAQ;IACRI,KAAK;IACLI,QAAQ;IACRa,aAAa,EAAEN,iBAAiB;IAChCO,YAAY,EAAEL;EAChB,CAAC,CAAC;EAEF,MAAME,YAAY,GAAGhC,WAAW,CAC7B+B,IAAY,IAAK;IAChBX,cAAc,CAACW,IAAI,CAAC;IACpBE,gBAAgB,CAACF,IAAI,CAAC;EACxB,CAAC,EACD,CAACE,gBAAgB,CACnB,CAAC;EAED,MAAMG,aAAa,GAAGhC,uBAAuB,CAC3CqB,YAAY,EACZC,WAAW,EACXb,QACF,CAAC;EAED,OAAOZ,OAAO,CACZ,OAA+B;IAC7BY,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,KAAK;IACLO,YAAY;IACZC,SAAS;IACTL,WAAW;IACXa,YAAY;IACZf,KAAK;IACLC,QAAQ;IACRG,QAAQ;IACRC,WAAW;IACXc,aAAa;IACbX,YAAY;IACZC,WAAW;IACXC;EACF,CAAC,CAAC,EACF,CACEd,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACLG,WAAW,EACXa,YAAY,EACZf,KAAK,EACLC,QAAQ,EACRG,QAAQ,EACRC,WAAW,EACXc,aAAa,CAEjB,CAAC;AACH","ignoreList":[]}