@osdk/react-components 0.36.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 (92) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/build/browser/action-form/ActionForm.js +4 -0
  3. package/build/browser/action-form/ActionForm.js.map +1 -1
  4. package/build/browser/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  5. package/build/browser/pdf-viewer/hooks/usePdfDocument.js +39 -12
  6. package/build/browser/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  7. package/build/browser/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  8. package/build/browser/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  9. package/build/browser/pdf-viewer/types.js.map +1 -1
  10. package/build/browser/public/experimental/pdf-viewer.js.map +1 -1
  11. package/build/browser/util/UserAgent.js +1 -1
  12. package/build/browser/util/UserAgent.js.map +1 -1
  13. package/build/cjs/chunk-2622REF6.cjs +11 -0
  14. package/build/cjs/{chunk-65ITRJBV.cjs.map → chunk-2622REF6.cjs.map} +1 -1
  15. package/build/cjs/{chunk-CECN6XL4.cjs → chunk-2G6DDTI6.cjs} +24 -24
  16. package/build/cjs/{chunk-CECN6XL4.cjs.map → chunk-2G6DDTI6.cjs.map} +1 -1
  17. package/build/cjs/{chunk-TYKMN3EA.cjs → chunk-3XSF5S4V.cjs} +4 -4
  18. package/build/cjs/{chunk-TYKMN3EA.cjs.map → chunk-3XSF5S4V.cjs.map} +1 -1
  19. package/build/cjs/{chunk-BE226IHU.cjs → chunk-7EGCPMTN.cjs} +34 -14
  20. package/build/cjs/chunk-7EGCPMTN.cjs.map +1 -0
  21. package/build/cjs/chunk-FLUEYU75.cjs +11 -0
  22. package/build/cjs/{chunk-QZMWPPLH.cjs.map → chunk-FLUEYU75.cjs.map} +1 -1
  23. package/build/cjs/{chunk-KKAUYIQT.cjs → chunk-HG6D3C24.cjs} +4 -4
  24. package/build/cjs/{chunk-KKAUYIQT.cjs.map → chunk-HG6D3C24.cjs.map} +1 -1
  25. package/build/cjs/chunk-IQKSMSFE.cjs +11 -0
  26. package/build/cjs/{chunk-RUDNQ4DS.cjs.map → chunk-IQKSMSFE.cjs.map} +1 -1
  27. package/build/cjs/{chunk-WURJMDIG.cjs → chunk-JUUTG5HH.cjs} +7 -7
  28. package/build/cjs/{chunk-WURJMDIG.cjs.map → chunk-JUUTG5HH.cjs.map} +1 -1
  29. package/build/cjs/{chunk-GGUS5JBN.cjs → chunk-KDALJGDQ.cjs} +4 -4
  30. package/build/cjs/{chunk-GGUS5JBN.cjs.map → chunk-KDALJGDQ.cjs.map} +1 -1
  31. package/build/cjs/{chunk-D2BXGIE2.cjs → chunk-KQ5MLLIX.cjs} +4 -4
  32. package/build/cjs/{chunk-D2BXGIE2.cjs.map → chunk-KQ5MLLIX.cjs.map} +1 -1
  33. package/build/cjs/{chunk-FR5XQSYU.cjs → chunk-KYUQG7BD.cjs} +5 -4
  34. package/build/cjs/chunk-KYUQG7BD.cjs.map +1 -0
  35. package/build/cjs/{chunk-Y7FCSEH2.cjs → chunk-QM5X7O5B.cjs} +3 -3
  36. package/build/cjs/chunk-QM5X7O5B.cjs.map +1 -0
  37. package/build/cjs/chunk-TD6AXOH4.cjs +11 -0
  38. package/build/cjs/{chunk-CZGTLPPP.cjs.map → chunk-TD6AXOH4.cjs.map} +1 -1
  39. package/build/cjs/{chunk-ZLE2ZHEN.cjs → chunk-UCCISEY4.cjs} +4 -4
  40. package/build/cjs/{chunk-ZLE2ZHEN.cjs.map → chunk-UCCISEY4.cjs.map} +1 -1
  41. package/build/cjs/chunk-Z3WY3E4E.cjs +11 -0
  42. package/build/cjs/{chunk-R5OBXJU3.cjs.map → chunk-Z3WY3E4E.cjs.map} +1 -1
  43. package/build/cjs/public/experimental/action-form.cjs +4 -4
  44. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  45. package/build/cjs/public/experimental/document-viewer.cjs +5 -5
  46. package/build/cjs/public/experimental/document-viewer.d.cts +1 -1
  47. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  48. package/build/cjs/public/experimental/excel-viewer.cjs +3 -3
  49. package/build/cjs/public/experimental/filter-list.cjs +15 -15
  50. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  51. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  52. package/build/cjs/public/experimental/object-table.cjs +8 -8
  53. package/build/cjs/public/experimental/pdf-viewer.cjs +25 -25
  54. package/build/cjs/public/experimental/pdf-viewer.d.cts +8 -8
  55. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  56. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  57. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  58. package/build/cjs/public/experimental.cjs +76 -76
  59. package/build/cjs/public/experimental.d.cts +1 -1
  60. package/build/cjs/{types-cSnAM4mt.d.cts → types-DDeX79uW.d.cts} +14 -5
  61. package/build/esm/action-form/ActionForm.js +4 -0
  62. package/build/esm/action-form/ActionForm.js.map +1 -1
  63. package/build/esm/pdf-viewer/components/PdfViewerContent.js.map +1 -1
  64. package/build/esm/pdf-viewer/hooks/usePdfDocument.js +39 -12
  65. package/build/esm/pdf-viewer/hooks/usePdfDocument.js.map +1 -1
  66. package/build/esm/pdf-viewer/hooks/usePdfViewerCore.js.map +1 -1
  67. package/build/esm/pdf-viewer/hooks/usePdfViewerState.js.map +1 -1
  68. package/build/esm/pdf-viewer/types.js.map +1 -1
  69. package/build/esm/public/experimental/pdf-viewer.js.map +1 -1
  70. package/build/esm/util/UserAgent.js +1 -1
  71. package/build/esm/util/UserAgent.js.map +1 -1
  72. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts +3 -3
  73. package/build/types/pdf-viewer/components/PdfViewerContent.d.ts.map +1 -1
  74. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts +2 -1
  75. package/build/types/pdf-viewer/hooks/usePdfDocument.d.ts.map +1 -1
  76. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts +3 -2
  77. package/build/types/pdf-viewer/hooks/usePdfViewerCore.d.ts.map +1 -1
  78. package/build/types/pdf-viewer/hooks/usePdfViewerState.d.ts.map +1 -1
  79. package/build/types/pdf-viewer/types.d.ts +13 -4
  80. package/build/types/pdf-viewer/types.d.ts.map +1 -1
  81. package/build/types/public/experimental/pdf-viewer.d.ts +1 -1
  82. package/build/types/public/experimental/pdf-viewer.d.ts.map +1 -1
  83. package/docs/PdfViewer.md +15 -12
  84. package/package.json +8 -8
  85. package/build/cjs/chunk-65ITRJBV.cjs +0 -11
  86. package/build/cjs/chunk-BE226IHU.cjs.map +0 -1
  87. package/build/cjs/chunk-CZGTLPPP.cjs +0 -11
  88. package/build/cjs/chunk-FR5XQSYU.cjs.map +0 -1
  89. package/build/cjs/chunk-QZMWPPLH.cjs +0 -11
  90. package/build/cjs/chunk-R5OBXJU3.cjs +0 -11
  91. package/build/cjs/chunk-RUDNQ4DS.cjs +0 -11
  92. package/build/cjs/chunk-Y7FCSEH2.cjs.map +0 -1
@@ -1,23 +1,23 @@
1
1
  'use strict';
2
2
 
3
- var chunkRUDNQ4DS_cjs = require('../chunk-RUDNQ4DS.cjs');
4
- var chunkQZMWPPLH_cjs = require('../chunk-QZMWPPLH.cjs');
5
- var chunkCZGTLPPP_cjs = require('../chunk-CZGTLPPP.cjs');
6
- var chunkTYKMN3EA_cjs = require('../chunk-TYKMN3EA.cjs');
7
- var chunk65ITRJBV_cjs = require('../chunk-65ITRJBV.cjs');
8
- var chunkGGUS5JBN_cjs = require('../chunk-GGUS5JBN.cjs');
9
- var chunkZLE2ZHEN_cjs = require('../chunk-ZLE2ZHEN.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 chunkCECN6XL4_cjs = require('../chunk-CECN6XL4.cjs');
11
+ var chunk2G6DDTI6_cjs = require('../chunk-2G6DDTI6.cjs');
12
12
  var chunk2YA74OKB_cjs = require('../chunk-2YA74OKB.cjs');
13
- var chunkKKAUYIQT_cjs = require('../chunk-KKAUYIQT.cjs');
14
- var chunkFR5XQSYU_cjs = require('../chunk-FR5XQSYU.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 chunkD2BXGIE2_cjs = require('../chunk-D2BXGIE2.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 chunkWURJMDIG_cjs = require('../chunk-WURJMDIG.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 chunkR5OBXJU3_cjs = require('../chunk-R5OBXJU3.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-Y7FCSEH2.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 chunkRUDNQ4DS_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 chunkQZMWPPLH_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 chunkCZGTLPPP_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunkTYKMN3EA_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 chunk65ITRJBV_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 chunkGGUS5JBN_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 chunkZLE2ZHEN_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 chunkZLE2ZHEN_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 chunkZLE2ZHEN_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 chunkZLE2ZHEN_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 chunkZLE2ZHEN_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 chunkZLE2ZHEN_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 chunkCECN6XL4_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 chunkCECN6XL4_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 chunkCECN6XL4_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 chunkCECN6XL4_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 chunkCECN6XL4_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 chunkKKAUYIQT_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 chunkFR5XQSYU_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 chunkFR5XQSYU_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkD2BXGIE2_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 chunkWURJMDIG_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 chunkWURJMDIG_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 chunkR5OBXJU3_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 };
@@ -128,4 +128,8 @@ export const ActionForm = typedReactMemo(function ({
128
128
  formState: controlledFormState
129
129
  }));
130
130
  });
131
+
132
+ // The inner render fn is anonymous in the published build, so set a displayName
133
+ // on the memo wrapper for React DevTools and the OSDK devtools component tree.
134
+ ActionForm.displayName = "ActionForm";
131
135
  //# sourceMappingURL=ActionForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionForm.js","names":["useOsdkAction","useOsdkMetadata","React","useCallback","useEffect","useMemo","typedReactMemo","BaseForm","coerceFieldValue","getDefaultFieldDefinitions","EMPTY_FIELD_DEFINITIONS","EMPTY_FORM_CONTENT","ActionForm","actionDefinition","formTitle","showFormTitle","formFieldDefinitions","formState","controlledFormState","onFormStateChange","isSubmitDisabled","onSubmit","onValidationResponse","_onValidationResponse","onSuccess","onError","applyAction","osdkApplyAction","isPending","metadata","loading","metadataLoading","error","metadataError","type","parameters","customFieldDefinitions","map","def","defaultValue","fieldDefinition","fieldKey","String","fieldType","fieldComponentProps","undefined","rendererFieldDefinitions","formContent","length","definition","coerceFormState","rawState","coerced","key","value","Object","entries","handleSubmit","rawFormState","result","e","handleFieldValueChange","prev","resolvedTitle","displayName","apiName","commonProps","isLoading","onFieldValueChange","createElement","_extends"],"sources":["ActionForm.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 type { ActionDefinition } from \"@osdk/api\";\nimport { useOsdkAction, useOsdkMetadata } from \"@osdk/react\";\nimport React, { useCallback, useEffect, useMemo } from \"react\";\n\nimport { typedReactMemo } from \"../shared/typedMemo.js\";\nimport type {\n ActionFormProps,\n FormContentItem,\n FormState,\n} from \"./ActionFormApi.js\";\nimport { BaseForm } from \"./BaseForm.js\";\nimport type { RendererFieldDefinition } from \"./FormFieldApi.js\";\nimport { coerceFieldValue } from \"./utils/coerceFieldValue.js\";\nimport { getDefaultFieldDefinitions } from \"./utils/getDefaultFieldDefinitions.js\";\n\nconst EMPTY_FIELD_DEFINITIONS: ReadonlyArray<RendererFieldDefinition> = [];\nconst EMPTY_FORM_CONTENT: ReadonlyArray<FormContentItem> = [];\n\nexport const ActionForm: <Q extends ActionDefinition<unknown>>(\n props: ActionFormProps<Q>\n) => React.ReactElement = typedReactMemo(function ActionFormFn<\n Q extends ActionDefinition<unknown>,\n>({\n actionDefinition,\n formTitle,\n showFormTitle = false,\n formFieldDefinitions,\n formState: controlledFormState,\n onFormStateChange,\n isSubmitDisabled,\n onSubmit,\n onValidationResponse: _onValidationResponse,\n onSuccess,\n onError,\n}: ActionFormProps<Q>): React.ReactElement {\n const { applyAction: osdkApplyAction, isPending } =\n useOsdkAction(actionDefinition);\n const {\n metadata,\n loading: metadataLoading,\n error: metadataError,\n } = useOsdkMetadata(actionDefinition);\n\n useEffect(\n function saveMetadataError() {\n if (metadataError != null) {\n onError?.({ type: \"unknown\", error: metadataError });\n }\n },\n [metadataError, onError]\n );\n\n const parameters = metadata?.parameters;\n\n const customFieldDefinitions: ReadonlyArray<RendererFieldDefinition> | null =\n useMemo(() => {\n if (formFieldDefinitions == null) {\n return null;\n }\n // RendererFieldDefinition is a discriminated union keyed by fieldComponent.\n // TypeScript can't verify that the spread preserves the fieldComponent ↔\n // fieldComponentProps pairing, but FormFieldDefinition guarantees it.\n return formFieldDefinitions.map((def) => {\n const { defaultValue, ...fieldDefinition } = def;\n return {\n ...fieldDefinition,\n fieldKey: String(def.fieldKey),\n fieldType: parameters?.[String(def.fieldKey)]?.type,\n fieldComponentProps:\n defaultValue === undefined\n ? def.fieldComponentProps\n : { ...def.fieldComponentProps, defaultValue },\n } as RendererFieldDefinition;\n });\n }, [formFieldDefinitions, parameters]);\n\n const rendererFieldDefinitions = useMemo(\n () =>\n customFieldDefinitions ??\n (metadata != null\n ? getDefaultFieldDefinitions(metadata)\n : EMPTY_FIELD_DEFINITIONS),\n [customFieldDefinitions, metadata]\n );\n\n const formContent = useMemo(\n (): ReadonlyArray<FormContentItem> =>\n rendererFieldDefinitions.length === 0\n ? EMPTY_FORM_CONTENT\n : rendererFieldDefinitions.map(\n (def): FormContentItem => ({ type: \"field\", definition: def })\n ),\n [rendererFieldDefinitions]\n );\n\n const coerceFormState = useCallback(\n (rawState: Record<string, unknown>): Record<string, unknown> => {\n const coerced: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(rawState)) {\n coerced[key] = coerceFieldValue(parameters?.[key]?.type, value);\n }\n return coerced;\n },\n [parameters]\n );\n\n const handleSubmit = useCallback(\n async (rawFormState: Record<string, unknown>) => {\n const formState = coerceFormState(rawFormState) as FormState<Q>;\n try {\n if (onSubmit != null) {\n await onSubmit(formState, osdkApplyAction);\n } else {\n const result = await osdkApplyAction(formState);\n onSuccess?.(result);\n }\n } catch (e) {\n onError?.({ type: \"submission\", error: e });\n }\n },\n [coerceFormState, onSubmit, osdkApplyAction, onSuccess, onError]\n );\n\n const handleFieldValueChange = useCallback(\n (fieldKey: string, value: unknown) => {\n onFormStateChange?.(\n (prev) =>\n ({\n ...prev,\n [fieldKey]: value,\n }) as FormState<Q>\n );\n },\n [onFormStateChange]\n );\n\n const resolvedTitle = showFormTitle\n ? (formTitle ?? metadata?.displayName ?? actionDefinition.apiName)\n : undefined;\n\n const isControlled = controlledFormState != null;\n\n const commonProps = {\n formTitle: resolvedTitle,\n formContent,\n onSubmit: handleSubmit,\n isSubmitDisabled,\n isPending,\n isLoading: metadataLoading,\n onFieldValueChange: handleFieldValueChange,\n };\n\n if (!isControlled) {\n return <BaseForm {...commonProps} />;\n }\n\n return <BaseForm {...commonProps} formState={controlledFormState} />;\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ActionForm.js","names":["useOsdkAction","useOsdkMetadata","React","useCallback","useEffect","useMemo","typedReactMemo","BaseForm","coerceFieldValue","getDefaultFieldDefinitions","EMPTY_FIELD_DEFINITIONS","EMPTY_FORM_CONTENT","ActionForm","actionDefinition","formTitle","showFormTitle","formFieldDefinitions","formState","controlledFormState","onFormStateChange","isSubmitDisabled","onSubmit","onValidationResponse","_onValidationResponse","onSuccess","onError","applyAction","osdkApplyAction","isPending","metadata","loading","metadataLoading","error","metadataError","type","parameters","customFieldDefinitions","map","def","defaultValue","fieldDefinition","fieldKey","String","fieldType","fieldComponentProps","undefined","rendererFieldDefinitions","formContent","length","definition","coerceFormState","rawState","coerced","key","value","Object","entries","handleSubmit","rawFormState","result","e","handleFieldValueChange","prev","resolvedTitle","displayName","apiName","commonProps","isLoading","onFieldValueChange","createElement","_extends"],"sources":["ActionForm.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 type { ActionDefinition } from \"@osdk/api\";\nimport { useOsdkAction, useOsdkMetadata } from \"@osdk/react\";\nimport React, { useCallback, useEffect, useMemo } from \"react\";\n\nimport { typedReactMemo } from \"../shared/typedMemo.js\";\nimport type {\n ActionFormProps,\n FormContentItem,\n FormState,\n} from \"./ActionFormApi.js\";\nimport { BaseForm } from \"./BaseForm.js\";\nimport type { RendererFieldDefinition } from \"./FormFieldApi.js\";\nimport { coerceFieldValue } from \"./utils/coerceFieldValue.js\";\nimport { getDefaultFieldDefinitions } from \"./utils/getDefaultFieldDefinitions.js\";\n\nconst EMPTY_FIELD_DEFINITIONS: ReadonlyArray<RendererFieldDefinition> = [];\nconst EMPTY_FORM_CONTENT: ReadonlyArray<FormContentItem> = [];\n\nexport const ActionForm: <Q extends ActionDefinition<unknown>>(\n props: ActionFormProps<Q>\n) => React.ReactElement = typedReactMemo(function ActionFormFn<\n Q extends ActionDefinition<unknown>,\n>({\n actionDefinition,\n formTitle,\n showFormTitle = false,\n formFieldDefinitions,\n formState: controlledFormState,\n onFormStateChange,\n isSubmitDisabled,\n onSubmit,\n onValidationResponse: _onValidationResponse,\n onSuccess,\n onError,\n}: ActionFormProps<Q>): React.ReactElement {\n const { applyAction: osdkApplyAction, isPending } =\n useOsdkAction(actionDefinition);\n const {\n metadata,\n loading: metadataLoading,\n error: metadataError,\n } = useOsdkMetadata(actionDefinition);\n\n useEffect(\n function saveMetadataError() {\n if (metadataError != null) {\n onError?.({ type: \"unknown\", error: metadataError });\n }\n },\n [metadataError, onError]\n );\n\n const parameters = metadata?.parameters;\n\n const customFieldDefinitions: ReadonlyArray<RendererFieldDefinition> | null =\n useMemo(() => {\n if (formFieldDefinitions == null) {\n return null;\n }\n // RendererFieldDefinition is a discriminated union keyed by fieldComponent.\n // TypeScript can't verify that the spread preserves the fieldComponent ↔\n // fieldComponentProps pairing, but FormFieldDefinition guarantees it.\n return formFieldDefinitions.map((def) => {\n const { defaultValue, ...fieldDefinition } = def;\n return {\n ...fieldDefinition,\n fieldKey: String(def.fieldKey),\n fieldType: parameters?.[String(def.fieldKey)]?.type,\n fieldComponentProps:\n defaultValue === undefined\n ? def.fieldComponentProps\n : { ...def.fieldComponentProps, defaultValue },\n } as RendererFieldDefinition;\n });\n }, [formFieldDefinitions, parameters]);\n\n const rendererFieldDefinitions = useMemo(\n () =>\n customFieldDefinitions ??\n (metadata != null\n ? getDefaultFieldDefinitions(metadata)\n : EMPTY_FIELD_DEFINITIONS),\n [customFieldDefinitions, metadata]\n );\n\n const formContent = useMemo(\n (): ReadonlyArray<FormContentItem> =>\n rendererFieldDefinitions.length === 0\n ? EMPTY_FORM_CONTENT\n : rendererFieldDefinitions.map(\n (def): FormContentItem => ({ type: \"field\", definition: def })\n ),\n [rendererFieldDefinitions]\n );\n\n const coerceFormState = useCallback(\n (rawState: Record<string, unknown>): Record<string, unknown> => {\n const coerced: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(rawState)) {\n coerced[key] = coerceFieldValue(parameters?.[key]?.type, value);\n }\n return coerced;\n },\n [parameters]\n );\n\n const handleSubmit = useCallback(\n async (rawFormState: Record<string, unknown>) => {\n const formState = coerceFormState(rawFormState) as FormState<Q>;\n try {\n if (onSubmit != null) {\n await onSubmit(formState, osdkApplyAction);\n } else {\n const result = await osdkApplyAction(formState);\n onSuccess?.(result);\n }\n } catch (e) {\n onError?.({ type: \"submission\", error: e });\n }\n },\n [coerceFormState, onSubmit, osdkApplyAction, onSuccess, onError]\n );\n\n const handleFieldValueChange = useCallback(\n (fieldKey: string, value: unknown) => {\n onFormStateChange?.(\n (prev) =>\n ({\n ...prev,\n [fieldKey]: value,\n }) as FormState<Q>\n );\n },\n [onFormStateChange]\n );\n\n const resolvedTitle = showFormTitle\n ? (formTitle ?? metadata?.displayName ?? actionDefinition.apiName)\n : undefined;\n\n const isControlled = controlledFormState != null;\n\n const commonProps = {\n formTitle: resolvedTitle,\n formContent,\n onSubmit: handleSubmit,\n isSubmitDisabled,\n isPending,\n isLoading: metadataLoading,\n onFieldValueChange: handleFieldValueChange,\n };\n\n if (!isControlled) {\n return <BaseForm {...commonProps} />;\n }\n\n return <BaseForm {...commonProps} formState={controlledFormState} />;\n});\n\n// The inner render fn is anonymous in the published build, so set a displayName\n// on the memo wrapper for React DevTools and the OSDK devtools component tree.\n(ActionForm as { displayName?: string }).displayName = \"ActionForm\";\n"],"mappings":"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","ignoreList":[]}
@@ -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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,IAAIC,SAAS,EAAEC,IAAI,QAAQ,oBAAoB;AAC7D,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAO,+BAA+B;AACtC,OAAOC,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEhD,SAASC,sBAAsB,QAAQ,iBAAiB;AACxD,SAASC,uBAAuB,QAAQ,qCAAqC;AAC7E,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,gBAAgB,QAAQ,8BAA8B;AAE/D,SAASC,oBAAoB,QAAQ,2BAA2B;AAEhE,OAAOC,MAAM,MAAM,yBAAyB;AAyB5C,OAAO,SAASC,gBAAgBA,CAAC;EAC/BC,GAAG;EACHC,WAAW,GAAGR,sBAAsB;EACpCS,iBAAiB;EACjBC,WAAW,GAAG,CAAC;EACfC,YAAY,GAAG,GAAG;EAClBC,YAAY,EAAEC,gBAAgB;EAC9BC,aAAa,EAAEC,iBAAiB;EAChCC,QAAQ;EACRC,YAAY;EACZC;AACqB,CAAC,EAAsB;EAC5C,MAAMC,MAAM,GAAGhB,gBAAgB,CAAC;IAAEI,GAAG;IAAEG,WAAW;IAAEC;EAAa,CAAC,CAAC;EACnE,MAAMS,iBAAiB,GAAGnB,uBAAuB,CAACO,WAAW,CAAC;EAE9DN,gBAAgB,CAAC;IACfmB,YAAY,EAAEF,MAAM,CAACE,YAAY;IACjCC,WAAW,EAAEH,MAAM,CAACG,WAAW;IAC/BC,QAAQ,EAAEJ,MAAM,CAACI,QAAQ;IACzBP,QAAQ;IACRC;EACF,CAAC,CAAC;;EAEF;EACA,MAAMO,eAAe,GAAGzB,MAAM,CAACc,gBAAgB,CAAC;EAChDW,eAAe,CAACC,OAAO,GAAGZ,gBAAgB;EAC1C,MAAMa,gBAAgB,GAAG3B,MAAM,CAACgB,iBAAiB,CAAC;EAClDW,gBAAgB,CAACD,OAAO,GAAGV,iBAAiB;EAC5C,MAAMY,iBAAiB,GAAG5B,MAAM,CAAC,IAAI,CAAC;EAEtCD,SAAS,CACP,YAA4B;IAC1B,IAAI6B,iBAAiB,CAACF,OAAO,EAAE;MAC7B;IACF;IACAD,eAAe,CAACC,OAAO,GAAGN,MAAM,CAACS,WAAW,CAAC;EAC/C,CAAC,EACD,CAACT,MAAM,CAACS,WAAW,CACrB,CAAC;EAED9B,SAAS,CACP,YAA6B;IAC3B,IAAI6B,iBAAiB,CAACF,OAAO,EAAE;MAC7B;IACF;IACAC,gBAAgB,CAACD,OAAO,GAAGN,MAAM,CAACU,KAAK,CAAC;EAC1C,CAAC,EACD,CAACV,MAAM,CAACU,KAAK,CACf,CAAC;EAED/B,SAAS,CAAC,YAA6B;IACrC6B,iBAAiB,CAACF,OAAO,GAAG,KAAK;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,aAAa,GAAGlC,UAAU,CAACS,MAAM,CAAC0B,SAAS,EAAEb,SAAS,CAAC;EAE7D,IAAIC,MAAM,CAACa,OAAO,EAAE;IAClB,oBACEnC,KAAA,CAAAoC,aAAA;MAAKf,SAAS,EAAEY;IAAc,gBAC5BjC,KAAA,CAAAoC,aAAA;MAAKf,SAAS,EAAEb,MAAM,CAAC6B;IAAiB,gBACtCrC,KAAA,CAAAoC,aAAA,CAACtC,IAAI;MAACuB,SAAS,EAAEb,MAAM,CAAC8B;IAAY,CAAE,CAAC,iBAEpC,CACF,CAAC;EAEV;EAEA,IAAIhB,MAAM,CAACiB,KAAK,IAAI,IAAI,EAAE;IACxB,oBACEvC,KAAA,CAAAoC,aAAA;MAAKf,SAAS,EAAEY;IAAc,gBAC5BjC,KAAA,CAAAoC,aAAA;MAAKf,SAAS,EAAEb,MAAM,CAACgC;IAAe,gBACpCxC,KAAA,CAAAoC,aAAA,CAACvC,SAAS;MAACwB,SAAS,EAAEb,MAAM,CAACiC;IAAU,CAAE,CAAC,wBACtB,EAACnB,MAAM,CAACiB,KAAK,CAACG,OAC/B,CACF,CAAC;EAEV;EAEA,IAAIpB,MAAM,CAACI,QAAQ,IAAI,IAAI,EAAE;IAC3B,oBACE1B,KAAA,CAAAoC,aAAA;MAAKf,SAAS,EAAEY;IAAc,gBAC5BjC,KAAA,CAAAoC,aAAA;MAAKf,SAAS,EAAEb,MAAM,CAAC6B;IAAiB,GAAC,aAAgB,CACtD,CAAC;EAEV;EAEA,oBACErC,KAAA,CAAAoC,aAAA;IAAKf,SAAS,EAAEY;EAAc,gBAC5BjC,KAAA,CAAAoC,aAAA;IAAKf,SAAS,EAAEb,MAAM,CAACmC;EAAuB,gBAC5C3C,KAAA,CAAAoC,aAAA;IAAKQ,GAAG,EAAEtB,MAAM,CAACuB,YAAa;IAACxB,SAAS,EAAEb,MAAM,CAACsC;EAAgB,gBAC/D9C,KAAA,CAAAoC,aAAA;IAAKQ,GAAG,EAAEtB,MAAM,CAACyB,SAAU;IAAC1B,SAAS,EAAC;EAAW,CAAE,CAAC,EACnDC,MAAM,CAAC0B,aAAa,CAACC,GAAG,CAAEC,MAAM,IAAK;IACpC,MAAMC,eAAe,GACnB5B,iBAAiB,CAAC2B,MAAM,CAACE,UAAU,CAAC,IAAIjD,sBAAsB;IAChE,IAAIgD,eAAe,CAACE,MAAM,KAAK,CAAC,EAAE;MAChC,OAAO,IAAI;IACb;IACA,oBACErD,KAAA,CAAAoC,aAAA,CAAC7B,oBAAoB;MACnB+C,GAAG,EAAEJ,MAAM,CAACE,UAAW;MACvBF,MAAM,EAAEA,MAAO;MACfvC,WAAW,EAAEwC,eAAgB;MAC7BvC,iBAAiB,EAAEA;IAAkB,CACtC,CAAC;EAEN,CAAC,CACE,CACF,CACF,CAAC;AAEV","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 {