@progress/kendo-react-pdf-viewer 5.10.0-dev.202211241147

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.
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.removeChildren = exports.calculateZoomLevel = exports.goToPreviousSearchMatch = exports.goToNextSearchMatch = exports.print = exports.reloadDocument = exports.loadPDF = exports.download = exports.DEFAULT_ZOOM_LEVEL = void 0;
4
+ const kendo_file_saver_1 = require("@progress/kendo-file-saver");
5
+ const pdfjs_dist_1 = require("pdfjs-dist");
6
+ /**
7
+ * @hidden
8
+ */
9
+ exports.DEFAULT_ZOOM_LEVEL = 1.25;
10
+ const parsePdfFromBase64String = (base64String) => {
11
+ return atob(base64String.replace(/^(data:application\/pdf;base64,)/ig, ''));
12
+ };
13
+ const getDocumentParameters = (options) => {
14
+ let params = { verbosity: 0 };
15
+ if (typeof options.data === 'string') {
16
+ params.data = parsePdfFromBase64String(options.data);
17
+ }
18
+ else if (typeof options.url === 'string') {
19
+ params.url = options.url;
20
+ }
21
+ else if (options.arrayBuffer instanceof ArrayBuffer) {
22
+ params = options.arrayBuffer;
23
+ }
24
+ else if (options.typedArray) {
25
+ params = options.typedArray;
26
+ }
27
+ return params;
28
+ };
29
+ /**
30
+ * @hidden
31
+ */
32
+ const download = (options, fileName = 'Document', saveOptions = {}, onDownload) => {
33
+ const params = getDocumentParameters(options);
34
+ (0, pdfjs_dist_1.getDocument)(params).promise
35
+ .then((pdf) => pdf.getData())
36
+ .then((data) => new Blob([data], { type: 'application/pdf' }))
37
+ .then((blob) => {
38
+ if (!onDownload(blob, fileName, saveOptions)) {
39
+ (0, kendo_file_saver_1.saveAs)(blob, fileName, saveOptions);
40
+ }
41
+ })
42
+ .catch((reason) => { options.error(reason); });
43
+ };
44
+ exports.download = download;
45
+ /**
46
+ * @hidden
47
+ */
48
+ const loadPDF = (options) => {
49
+ const params = getDocumentParameters(options);
50
+ const { dom, zoom, done, error } = options;
51
+ (0, pdfjs_dist_1.getDocument)(params).promise.then((pdfDoc) => {
52
+ const pages = [];
53
+ for (let i = 1; i <= pdfDoc.numPages; i++) {
54
+ pages.push(pdfDoc.getPage(i));
55
+ }
56
+ return { pages, pdfDoc };
57
+ }).then(({ pages, pdfDoc }) => {
58
+ Promise.all(pages)
59
+ .then(all => all.map(page => {
60
+ dom.appendChild(renderPage(page, zoom, error));
61
+ return page;
62
+ }))
63
+ .then((pdfPages) => {
64
+ done({ pdfPages, pdfDoc });
65
+ }).catch((reason) => { options.error(reason); });
66
+ }).catch((reason) => { options.error(reason); });
67
+ };
68
+ exports.loadPDF = loadPDF;
69
+ /**
70
+ * @hidden
71
+ */
72
+ const reloadDocument = (params) => {
73
+ const { pdfDoc, zoom, dom, done, error } = params;
74
+ const pages = [];
75
+ for (let i = 1; i <= pdfDoc.numPages; i++) {
76
+ pages.push(pdfDoc.getPage(i));
77
+ }
78
+ Promise.all(pages)
79
+ .then(all => all.map(page => {
80
+ dom.appendChild(renderPage(page, zoom, error));
81
+ return page;
82
+ }))
83
+ .then(done)
84
+ .catch(error);
85
+ };
86
+ exports.reloadDocument = reloadDocument;
87
+ /**
88
+ * @hidden
89
+ */
90
+ const print = (pages, done, error) => {
91
+ const dom = document.createElement('div');
92
+ let dones = pages.map(() => false);
93
+ pages.forEach((page, index) => {
94
+ const viewport = renderCanvas(page, (el) => {
95
+ dom.appendChild(el);
96
+ dones[index] = true;
97
+ if (dones.every(Boolean)) {
98
+ openPrintDialog(dom, viewport.width, viewport.height, done, error);
99
+ }
100
+ }, error);
101
+ });
102
+ };
103
+ exports.print = print;
104
+ const openPrintDialog = (dom, width, height, done, onError) => {
105
+ const printDialog = window.open('', '', 'innerWidth=' + width + ',innerHeight=' + height + 'location=no,titlebar=no,toolbar=no');
106
+ if (!printDialog || !printDialog.document) {
107
+ onError();
108
+ return;
109
+ }
110
+ if (printDialog) {
111
+ printDialog.document.body.appendChild(dom);
112
+ printDialog.focus();
113
+ setTimeout(() => {
114
+ printDialog.print();
115
+ done();
116
+ }, 0);
117
+ const onAfterPrint = () => {
118
+ printDialog.removeEventListener('afterprint', onAfterPrint);
119
+ printDialog.close();
120
+ };
121
+ printDialog.addEventListener('afterprint', onAfterPrint);
122
+ }
123
+ };
124
+ const renderCanvas = (page, done, error) => {
125
+ const viewport = page.getViewport({ scale: exports.DEFAULT_ZOOM_LEVEL });
126
+ const styles = {};
127
+ const pageElement = createElement('div', '', styles);
128
+ const canvas = createElement('canvas', '', { width: '100%', height: '100%' });
129
+ const canvasContext = canvas.getContext('2d');
130
+ canvas.height = viewport.height;
131
+ canvas.width = viewport.width;
132
+ pageElement.appendChild(canvas);
133
+ page.render({ canvasContext, viewport }).promise.then(() => {
134
+ const printContent = new Image();
135
+ printContent.src = canvas.toDataURL();
136
+ pageElement.removeChild(canvas);
137
+ pageElement.appendChild(printContent);
138
+ printContent.width = canvas.width;
139
+ printContent.height = canvas.height;
140
+ const onload = () => {
141
+ printContent.removeEventListener('load', onload);
142
+ done(pageElement);
143
+ };
144
+ printContent.addEventListener('load', onload);
145
+ }).catch(error);
146
+ return viewport;
147
+ };
148
+ const createElement = function (name, className, styles) {
149
+ const element = document.createElement(name);
150
+ if (className) {
151
+ element.className = className;
152
+ }
153
+ Object.keys(styles).forEach(key => element.style[key] = styles[key]);
154
+ return element;
155
+ };
156
+ const renderPage = (page, zoom, error) => {
157
+ const viewport = page.getViewport({ scale: zoom });
158
+ const styles = { width: viewport.width + 'px', height: viewport.height + 'px' };
159
+ const pageElement = createElement('div', 'k-page', styles);
160
+ const canvas = createElement('canvas', '', { width: '100%', height: '100%' });
161
+ const canvasContext = canvas.getContext('2d');
162
+ canvas.height = viewport.height;
163
+ canvas.width = viewport.width;
164
+ pageElement.appendChild(canvas);
165
+ page.render({ canvasContext, viewport }).promise.then(() => {
166
+ page.getTextContent().then((textContent) => {
167
+ const textLayer = createElement('div', 'k-text-layer', styles);
168
+ (0, pdfjs_dist_1.renderTextLayer)({
169
+ textContent: textContent,
170
+ container: textLayer,
171
+ viewport: viewport,
172
+ textDivs: []
173
+ }).promise.then(() => {
174
+ pageElement.appendChild(textLayer);
175
+ }).catch(error);
176
+ });
177
+ }).catch(error);
178
+ return pageElement;
179
+ };
180
+ const searchMatchScrollLeftOffset = 0;
181
+ const searchMatchScrollTopOffset = -64;
182
+ const scrollToSearchMatch = (matchElement, ref) => {
183
+ if (!matchElement) {
184
+ return;
185
+ }
186
+ const closestCharElement = matchElement.closest('.k-text-char');
187
+ const closestTextElement = closestCharElement ?
188
+ closestCharElement.closest('span[role=\'presentation\']') :
189
+ null;
190
+ if (!closestTextElement) {
191
+ return;
192
+ }
193
+ const closestPageElement = closestTextElement.closest('.k-page');
194
+ if (!closestPageElement) {
195
+ return;
196
+ }
197
+ const scrollLeft = closestPageElement.offsetLeft +
198
+ (-1) * ref.scroller.element.offsetLeft +
199
+ closestTextElement.offsetLeft + searchMatchScrollLeftOffset;
200
+ const scrollTop = closestPageElement.offsetTop +
201
+ (-1) * ref.scroller.element.offsetTop +
202
+ closestTextElement.offsetTop + searchMatchScrollTopOffset;
203
+ ref.scroller.scrollTo(scrollLeft, scrollTop, { trackScrollEvent: false });
204
+ };
205
+ /**
206
+ * @hidden
207
+ */
208
+ const goToNextSearchMatch = (ref) => {
209
+ ref.search.markNextMatch();
210
+ const matchElement = ref.search.getActiveMatchElement();
211
+ scrollToSearchMatch(matchElement, ref);
212
+ };
213
+ exports.goToNextSearchMatch = goToNextSearchMatch;
214
+ /**
215
+ * @hidden
216
+ */
217
+ const goToPreviousSearchMatch = (ref) => {
218
+ ref.search.markPreviousMatch();
219
+ const matchElement = ref.search.getActiveMatchElement();
220
+ scrollToSearchMatch(matchElement, ref);
221
+ };
222
+ exports.goToPreviousSearchMatch = goToPreviousSearchMatch;
223
+ /**
224
+ * @hidden
225
+ */
226
+ const calculateZoomLevel = (zoomLevel, zoomLevelType, currentZoom, dom) => {
227
+ const documentContainer = dom.closest('.k-pdf-viewer-canvas');
228
+ const page = dom.querySelector('.k-page');
229
+ const pageSize = { width: page.offsetWidth, height: page.offsetHeight };
230
+ let calculatedZoomLevel = zoomLevel;
231
+ if (zoomLevelType === 'ActualWidth') {
232
+ calculatedZoomLevel = 1;
233
+ }
234
+ else if (zoomLevelType === 'FitToWidth') {
235
+ calculatedZoomLevel = (documentContainer.offsetWidth / (pageSize.width / currentZoom));
236
+ }
237
+ else if (zoomLevelType === 'FitToPage') {
238
+ calculatedZoomLevel = (documentContainer.offsetHeight / (pageSize.height / currentZoom));
239
+ }
240
+ return calculatedZoomLevel;
241
+ };
242
+ exports.calculateZoomLevel = calculateZoomLevel;
243
+ /**
244
+ * @hidden
245
+ */
246
+ const removeChildren = (dom) => {
247
+ while (dom.firstChild) {
248
+ dom.removeChild(dom.firstChild);
249
+ }
250
+ };
251
+ exports.removeChildren = removeChildren;
@@ -0,0 +1 @@
1
+ System.register("@progress/kendo-react-pdf-viewer",["@progress/kendo-file-saver","@progress/kendo-react-buttons","@progress/kendo-react-common","@progress/kendo-react-data-tools","@progress/kendo-react-dropdowns","@progress/kendo-react-indicators","@progress/kendo-react-inputs","@progress/kendo-react-intl","@progress/kendo-react-upload","@telerik/kendo-draggable","pdfjs-dist","pdfjs-dist/build/pdf.worker.entry","prop-types","react"],function(e,t){var s={},l={},i={},c={},h={},d={},u={},p={},g={},f={},m={},v={},b={},k={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(l,"__esModule",{value:!0}),Object.defineProperty(i,"__esModule",{value:!0}),Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(h,"__esModule",{value:!0}),Object.defineProperty(d,"__esModule",{value:!0}),Object.defineProperty(u,"__esModule",{value:!0}),Object.defineProperty(p,"__esModule",{value:!0}),Object.defineProperty(g,"__esModule",{value:!0}),Object.defineProperty(f,"__esModule",{value:!0}),Object.defineProperty(m,"__esModule",{value:!0}),Object.defineProperty(v,"__esModule",{value:!0}),Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(k,"__esModule",{value:!0}),{setters:[function(t){Object.keys(t).forEach(function(e){s[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){l[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){i[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){c[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){h[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){d[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){u[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){p[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){g[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){f[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){m[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){v[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){b[e]=t[e]})},function(t){Object.keys(t).forEach(function(e){k[e]=t[e]})}],execute:function(){e((()=>{"use strict";var a={464:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PDFViewer=void 0;const se=a(954),r=a(895),le=a(536),ie=a(21),ce=a(816),he=a(789),de=a(445),ue=a(142),pe=a(811),ge=a(987),fe=(a(629),a(363)),me=a(314),ve=a(605),be=a(147),ke=a(3),Ee=[{id:1,value:1,text:"ActualWidth",type:"ActualWidth",locationString:ke.actualWidth},{id:2,value:1,text:"FitToWidth",type:"FitToWidth",locationString:ke.fitToWidth},{id:3,value:1,text:"FitToPage",type:"FitToPage",locationString:ke.fitToPage},{id:4,value:.5,text:"50%",type:""},{id:5,value:.75,text:"75%",type:""},{id:6,value:1,text:"100%",type:""},{id:7,value:1.25,text:"125%",type:""},{id:8,value:1.5,text:"150%",type:""},{id:9,value:2,text:"200%",type:""},{id:10,value:3,text:"300%",type:""},{id:11,value:4,text:"400%",type:""}],xe=[".k-toolbar > button",".k-toolbar .k-combobox > input",".k-toolbar .k-button-group > button",".k-toolbar .k-pager > a",".k-toolbar .k-pager input"];t.PDFViewer=se.forwardRef((o,e)=>{(0,pe.validatePackage)(fe.packageMetadata);const t=(0,ge.useLocalization)(),a=se.useRef(null),[r,n]=se.useState(be.DEFAULT_ZOOM_LEVEL),[F,B]=se.useState(Ee.find(e=>e.value===be.DEFAULT_ZOOM_LEVEL)),[I,s]=se.useState(!0),[l,i]=se.useState(0),[c,h]=se.useState([]),[d,u]=se.useState(null),[p,g]=se.useState(!1),[z,f]=se.useState(!1),[m,v]=se.useState(0),[b,k]=se.useState(0),[E,x]=se.useState(!1),[y,M]=se.useState(""),S=se.useMemo(()=>({}),[]),C=se.useRef(null),T=se.useRef(null),R=(se.useImperativeHandle(C,()=>({element:T.current,props:o,pages:c,document:d}),[c,d]),se.useImperativeHandle(e,()=>C.current),se.useCallback(()=>{var e;o.onLoad&&(e={target:C.current},o.onLoad.call(void 0,e))},[o.onLoad])),O=se.useCallback((e,t,a)=>{let r=!1;return o.onDownload&&(e={target:C.current,blob:e,fileName:t,saveOptions:a},r=o.onDownload.call(void 0,e)||!1),r},[o.onDownload]),W=se.useCallback(()=>{var e;S.scroller&&S.scroller.destroy(),S.scroller=new me.Scroller(null==(e=a.current)?void 0:e.parentNode,{filter:".k-page",events:{}}),S.scroller.enablePanEventsTracking()},[]),V=se.useCallback(e=>{e=Array.from(e.querySelectorAll(".k-text-layer"));S.search=new ve.SearchService({textContainers:e||[],highlightClass:"k-search-highlight",highlightMarkClass:"k-search-highlight-mark",charClass:"k-text-char"})},[]),D=se.useCallback(({pdfPages:e,pdfDoc:t})=>{u(t),h(e),W(),s(!1),R()},[]),w=se.useCallback(e=>{s(!1),u(null),h([]),o.onError&&(e={error:"string"==typeof e?{message:e}:e,target:C.current},o.onError.call(void 0,e))},[o.onError]),P=(se.useEffect(()=>{a.current&&(o.url||o.data||o.arrayBuffer?(s(!0),(0,be.removeChildren)(a.current),(0,be.loadPDF)({url:o.url,data:o.data,arrayBuffer:o.arrayBuffer,dom:a.current,zoom:be.DEFAULT_ZOOM_LEVEL,done:D,error:w})):(s(!1),(0,be.removeChildren)(a.current),u(null),h([])))},[o.url,o.data,o.arrayBuffer,w]),se.useCallback((e,t=be.DEFAULT_ZOOM_LEVEL)=>{a.current&&(s(!0),(0,be.removeChildren)(a.current),(0,be.reloadDocument)({pdfDoc:e,zoom:t,dom:a.current,done:e=>{h(e),s(!1)},error:w}))},[w])),H=se.useCallback(()=>{f(!0),V(a.current)},[]),U=se.useCallback(e=>{var e=e.value,t=S.search.search({text:e,matchCase:E});k(t.length?1:0),v(t.length),M(e)},[E]),Z=se.useCallback(()=>{var e=S.search.search({text:y,matchCase:!E});k(e.length?1:0),v(e.length),x(!E)},[E,y]),q=se.useCallback(()=>{(0,be.goToNextSearchMatch)(S),k(b+1>m?1:b+1)},[b,m]),X=se.useCallback(()=>{(0,be.goToPreviousSearchMatch)(S),k(b-1<1?m:b-1)},[b,m]),L=se.useCallback(()=>{S.search.destroy(),k(0),v(0),x(!1),M(""),f(!1)},[]),Y=se.useCallback(e=>{"Enter"===e.key?(e.preventDefault(),(0,be.goToNextSearchMatch)(S),k(b+1>m?1:b+1)):"Escape"===e.key&&L()},[b,m]),K=se.useCallback(e=>{var t;a.current&&a.current.parentNode instanceof HTMLDivElement&&(t=a.current.querySelector(".k-page"))instanceof HTMLDivElement&&(t=(t.offsetHeight+t.offsetTop)*e.skip,a.current.parentNode.scrollTo({top:t,behavior:"auto"})),i(e.skip)},[l]),G=se.useCallback(e=>{var e=e.target,t=e.querySelector(".k-page");t&&i(Math.floor(e.scrollTop/(t.offsetHeight+t.offsetTop)))},[]),J=se.useCallback(()=>{var e=Math.min(r+.25,4);e!==r&&d&&(n(e),P(d,e))},[r,d]),Q=se.useCallback(()=>{var e=Math.max(r-.25,.5);e!==r&&d&&(n(e),P(d,e))},[r,d]),$=se.useCallback(e=>{var e=e.value,t=e?(0,be.calculateZoomLevel)(e.value,e.type,r,a.current):1;r!==t&&d&&(n(t),P(d,t)),B(e)},[r,d]),ee=se.useCallback(()=>{S.scroller.disablePanEventsTracking(),g(!0)},[]),te=se.useCallback(()=>{S.scroller.enablePanEventsTracking(),g(!1)},[]),ae=se.useCallback(()=>{(0,be.download)({url:o.url,data:o.data,arrayBuffer:o.arrayBuffer,error:w},o.saveFileName,o.saveOptions,O)},[o.url,o.data,o.arrayBuffer,w,o.saveFileName,o.saveOptions,O]),re=se.useCallback(()=>{s(!0),(0,be.print)(c,()=>{s(!1)},e=>{w("string"==typeof(e?e.message||e:null)?e.message||e:t.toLanguageString(ke.popupBlocked,ke.messages[ke.popupBlocked]))})},[c,w]),oe=se.useCallback(e=>{e=e.newState;e[0]&&e[0].getRawFile&&e[0].getRawFile().arrayBuffer().then(e=>{a.current&&(s(!0),(0,be.removeChildren)(a.current),(0,be.loadPDF)({arrayBuffer:e,dom:a.current,zoom:be.DEFAULT_ZOOM_LEVEL,done:D,error:w}),n(be.DEFAULT_ZOOM_LEVEL))})},[w]),ne=se.useCallback(e=>{var t=e.target;if(t instanceof HTMLElement&&t.parentNode){const e=t.closest(".k-toolbar"),a=e&&e.querySelector(".k-upload input");a&&a.click()}},[]),N=!d,_=I&&se.createElement("div",{className:"k-loader-container k-loader-container-md k-loader-top"},se.createElement("div",{className:"k-loader-container-overlay k-overlay-light"}),se.createElement("div",{className:"k-loader-container-inner "},se.createElement(ue.Loader,{size:"large"}))),A=se.createElement(le.Toolbar,{buttons:xe},se.createElement(ce.Pager,{previousNext:!0,type:"input",skip:l,take:1,total:c.length,info:!1,onPageChange:K}),se.createElement(le.ToolbarSpacer,null),se.createElement(le.ButtonGroup,null,se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.zoomIn,ke.messages[ke.zoomIn]),disabled:4===r||N,onClick:J,icon:"zoom-in"}),se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.zoomOut,ke.messages[ke.zoomOut]),disabled:.5===r||N,onClick:Q,icon:"zoom-out"})),se.createElement(de.ComboBox,{disabled:N,data:(o.zoomLevels||Ee).map(e=>Object.assign(Object.assign({},e),{text:e.locationString?t.toLanguageString(e.locationString,ke.messages[e.locationString]):e.text})),dataItemKey:"id",textField:"text",value:N?null:F,onChange:$}),se.createElement(le.ButtonGroup,null,se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.enableSelection,ke.messages[ke.enableSelection]),icon:"cursor",disabled:N,togglable:!0,selected:p&&!N,onClick:ee}),se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.enablePanning,ke.messages[ke.enablePanning]),icon:"hand",disabled:N,togglable:!0,selected:!p&&!N,onClick:te})),se.createElement(le.ToolbarSpacer,null),se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.search,ke.messages[ke.search]),icon:"search",disabled:N,onClick:H}),se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.open,ke.messages[ke.open]),icon:"folder-open",onClick:ne}),se.createElement("div",{style:{display:"none"}},se.createElement(he.Upload,{restrictions:{allowedExtensions:[".pdf"]},onAdd:oe,autoUpload:!1,defaultFiles:[],multiple:!1,accept:".pdf,.PDF",withCredentials:!1})),se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.download,ke.messages[ke.download]),icon:"download",disabled:N,onClick:ae}),se.createElement(le.Button,{className:"k-toolbar-button",title:t.toLanguageString(ke.print,ke.messages[ke.print]),icon:"print",disabled:N,onClick:re})),j=se.createElement("div",{className:(0,pe.classNames)("k-canvas k-pdf-viewer-canvas k-pos-relative k-overflow-auto",{"k-enable-text-select":p,"k-enable-panning":!p}),onScroll:G},z&&se.createElement("div",{className:"k-search-panel k-pos-sticky k-top-center"},se.createElement(ie.TextBox,{value:y,onChange:U,placeholder:t.toLanguageString(ke.search,ke.messages[ke.search]),autoFocus:!0,onKeyDown:Y,suffix:()=>se.createElement(ie.InputSuffix,null,se.createElement(le.Button,{icon:"convert-lowercase",title:t.toLanguageString(ke.matchCase,ke.messages[ke.matchCase]),fillMode:"flat",togglable:!0,selected:E,onClick:Z}))}),se.createElement("span",{className:"k-search-matches"},se.createElement("span",null,b)," of ",se.createElement("span",null,m)),se.createElement(le.Button,{title:t.toLanguageString(ke.prevMatch,ke.messages[ke.prevMatch]),fillMode:"flat",icon:"arrow-up",disabled:0===m,onClick:X}),se.createElement(le.Button,{title:t.toLanguageString(ke.nextMatch,ke.messages[ke.nextMatch]),fillMode:"flat",icon:"arrow-down",disabled:0===m,onClick:q}),se.createElement(le.Button,{title:t.toLanguageString(ke.close,ke.messages[ke.close]),fillMode:"flat",icon:"close",onClick:L})),se.createElement("div",{ref:a,className:"k-pdf-viewer-pages"}));return se.createElement("div",{className:"k-pdf-viewer",style:o.style,ref:T},o.onRenderLoader?o.onRenderLoader.call(void 0,_||null):_,o.onRenderToolbar?o.onRenderToolbar.call(void 0,A):A,o.onRenderContent?o.onRenderContent.call(void 0,j):j)}),t.PDFViewer.displayName="KendoReactPDFViewer",t.PDFViewer.propTypes={url:r.string,data:r.string,arrayBuffer:r.any,typedArray:r.any,style:r.object,saveFileName:r.string,saveOptions:r.object,zoomLevels:r.arrayOf(r.any),onError:r.func,onLoad:r.func,onDownload:r.func,onRenderToolbar:r.func,onRenderContent:r.func,onRenderLoader:r.func}},3:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.messages=t.popupBlocked=t.fitToPage=t.fitToWidth=t.actualWidth=t.nextMatch=t.prevMatch=t.matchCase=t.close=t.print=t.download=t.open=t.search=t.enablePanning=t.enableSelection=t.zoomOut=t.zoomIn=void 0,t.zoomIn="pdfviewer.zoomIn",t.zoomOut="pdfviewer.zoomOut",t.enableSelection="pdfviewer.enableSelection",t.enablePanning="pdfviewer.enablePanning",t.search="pdfviewer.search",t.open="pdfviewer.open",t.download="pdfviewer.download",t.print="pdfviewer.print",t.close="pdfviewer.close",t.matchCase="pdfviewer.matchCase",t.prevMatch="pdfviewer.prevMatch",t.nextMatch="pdfviewer.nextMatch",t.actualWidth="pdfviewer.actualWidth",t.fitToWidth="pdfviewer.fitToWidth",t.fitToPage="pdfviewer.fitToPage",t.popupBlocked="pdfviewer.popupBlocked",t.messages={[t.zoomIn]:"Zoom in",[t.zoomOut]:"Zoom out",[t.enableSelection]:"Enable selection",[t.enablePanning]:"Enable panning",[t.search]:"Search",[t.open]:"Open",[t.download]:"Download",[t.print]:"Print",[t.close]:"Close",[t.matchCase]:"Match case",[t.prevMatch]:"Previous match",[t.nextMatch]:"Next match",[t.actualWidth]:"Actual width",[t.fitToWidth]:"Fit to width",[t.fitToPage]:"Fit to page",[t.popupBlocked]:"Popup is blocked."}},363:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.packageMetadata=void 0,t.packageMetadata={name:"@progress/kendo-react-pdf-viewer",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:1669290352,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/my-license/?utm_medium=product&utm_source=kendoreact&utm_campaign=kendo-ui-react-purchase-license-keys-warning"}},314:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Scroller=void 0;function r(a,r,o={}){let n,s,l,i,c=0;function h(){c=!1===o.leading?0:(new Date).getTime(),n=void 0,i=a.apply(s,l),n||(s=l=null)}return o=o||{},function(){var e=(new Date).getTime(),t=(c||!1!==o.leading||(c=e),r-(e-c));return s=void 0,l=arguments,t<=0||r<t?(n&&(clearTimeout(n),n=void 0),c=e,i=a.apply(s,l),n||(s=l=null)):n||!1===o.trailing||(n=window.setTimeout(h,t)),i}}const o=a(110),n="scroll";t.Scroller=class{constructor(e,t){this.options={scrollDirectionModifier:-1,panScrollThrottleDelay:1e3/60,scrollThrottleDelay:1e3/60,filter:"",events:{scroll:()=>{}}},this.onElementScroll=()=>{var e=this.element;this.state.trackNextElementScroll?this.scrollTo(e.scrollLeft,e.scrollTop):this.state.trackNextElementScroll=!0},this.OnDragStart=e=>{var t,a;this.state.dragStarted=!1,this.shouldTrackPanEvents()&&(t=e.target||(e.originalEvent||{}).target,!this.options.filter||(t=t,a=this.options.filter,t&&a&&t.closest(a)))&&((t=e).preventDefault&&t.preventDefault(),t.originalEvent&&t.originalEvent.preventDefault(),this.setState({dragStarted:!0,location:{pageX:e.pageX,pageY:e.pageY},locationDelta:{x:0,y:0}}))},this.onDrag=e=>{var t;this.shouldTrackPanEvents()&&this.state.dragStarted&&(this.calculateEventLocationDelta(e),this.setState({location:{pageX:e.pageX,pageY:e.pageY}}),e=this.options.scrollDirectionModifier,t=this.element.scrollLeft+e*this.state.locationDelta.x,e=this.element.scrollTop+e*this.state.locationDelta.y,this.scrollTo(t,e))},this.onDragEnd=()=>{this.shouldTrackPanEvents()},this.element=e,this.options=Object.assign({},this.options,t),this.resetState(),this.bindEvents()}destroy(){this.unbindEvents()}initDraggable(){this.destroyDraggable(),0<this.options.panScrollThrottleDelay?this.throttledOnDrag=r(this.onDrag,this.options.panScrollThrottleDelay):this.throttledOnDrag=this.onDrag,this.draggable=new o.default({mouseOnly:!1,press:this.OnDragStart,drag:this.throttledOnDrag,release:this.onDragEnd}),this.draggable.bindTo(this.element)}destroyDraggable(){this.draggable&&this.draggable.destroy&&(this.draggable.destroy(),this.throttledOnDrag)&&this.throttledOnDrag.cancel&&(this.throttledOnDrag.cancel(),this.throttledOnDrag=null)}bindEvents(){this.bindDraggableEvents(),this.bindElementScroll()}bindDraggableEvents(){this.initDraggable()}bindElementScroll(){0<this.options.scrollThrottleDelay?this.throttledOnElementScroll=r(this.onElementScroll,this.options.scrollThrottleDelay):this.throttledOnElementScroll=this.onElementScroll,this.element.addEventListener(n,this.throttledOnElementScroll)}unbindEvents(){this.unbindElementScroll(),this.unbindDraggableEvents()}unbindDraggableEvents(){this.destroyDraggable()}unbindElementScroll(){this.throttledOnElementScroll&&this.throttledOnElementScroll.cancel&&(this.throttledOnElementScroll.cancel(),this.throttledOnElementScroll=null),this.element.removeEventListener(n,this.throttledOnElementScroll)}setState(e){this.state=Object.assign({},this.state||{},e)}resetState(){this.setState({trackPanEvents:!1,trackNextElementScroll:!1,location:{pageX:0,pageY:0},locationDelta:{x:0,y:0}})}enablePanEventsTracking(){this.state.trackPanEvents=!0,this.bindDraggableEvents()}disablePanEventsTracking(){this.unbindDraggableEvents(),this.state.trackPanEvents=!1}shouldTrackPanEvents(){return this.state.trackPanEvents}calculateEventLocationDelta(e){this.state.locationDelta={x:e.pageX-this.state.location.pageX,y:e.pageY-this.state.location.pageY}}scrollTo(e,t,a={trackScrollEvent:!0}){a.trackScrollEvent||(this.state.trackNextElementScroll=!1),this.element.scrollLeft=e,this.element.scrollTop=t}}},605:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SearchService=void 0;const o=e=>{var t=e.parentElement;e&&t&&t.replaceWith(...Array.from(t.childNodes))},n="data-match-index";t.SearchService=class{constructor(e){this.options={highlightClass:"k-search-highlight",highlightMarkClass:"k-search-highlight-mark",charClass:"k-text-char",textContainers:[]},this.extendOptions(e),this.resetState()}destroy(){this.clearSearch()}extendOptions(e){this.options=Object.assign({},this.options,e)}setState(e){this.state=Object.assign({},this.state||{},e)}resetState(){this.setState({text:"",textNodes:[],charIndex:0,activeMatchIndex:0,matches:[]})}search({text:e,matchCase:t}){let a,r=new RegExp(e,t?"g":"ig");if(this.shouldTransformText()&&this.transformTextForSearch(),this.state.matches=[],this.state.activeMatchIndex=0,this.removeIndicators(),""===e)return[];for(a=r.exec(this.state.text);a;)this.state.matches.push({startOffset:a.index,endOffset:a.index+a[0].length}),a=r.exec(this.state.text);return this.highlightAllMatches(),this.addActiveMatchMark(),this.state.matches}clearSearch(){this.removeIndicators(),this.restoreOriginalText()}restoreOriginalText(){this.forEachTextContainer(e=>{Array.from(e.querySelectorAll("span:not(."+this.options.charClass+")")).forEach(e=>{e.innerHTML=e.textContent})})}shouldTransformText(){return!this.state.text}transformTextForSearch(){this.state.textNodes=[],this.state.charIndex=0,this.state.text="",this.forEachTextContainer(e=>{this.extractTextNodes(e)}),this.transformTextNodesForSearch(this.state.textNodes)}extractTextNodes(t){if(t.nodeType===Node.TEXT_NODE)this.state.textNodes.push(t);else for(let e=0;e<t.childNodes.length;e++)this.extractTextNodes(t.childNodes[e])}transformTextNodesForSearch(t){for(let e=0;e<t.length;e++)this.transformTextNodeForSearch(t[e])}transformTextNodeForSearch(e){var t,a,r=e.textContent;r.length<=0||(this.state.text=this.state.text+r,a=t=document.createElement("span"),(e=e).parentNode&&(e.parentNode.insertBefore(a,e),a.appendChild(e)),a=this.splitTextByChars(r),t.innerHTML=a,o(t.childNodes[0]))}splitTextByChars(t){let a="";for(let e=0;e<t.length;e++)a+="<span class='"+this.options.charClass+"' data-char-index="+this.state.charIndex+">"+t[e]+"</span>",this.state.charIndex++;return a}forEachTextContainer(t){for(let e=0;e<this.options.textContainers.length;e++)t(this.options.textContainers[e],e)}highlightAllMatches(){this.state.matches.forEach((e,t)=>{this.addMatchHighlight(e.startOffset,e.endOffset,t)})}addMatchHighlight(e,a,r){for(let t=e;t<a;t++)this.forEachTextContainer(e=>{Array.from(e.querySelectorAll("."+this.options.charClass+"[data-char-index='"+t+"']")).forEach(e=>{var t=this.options.highlightClass;e.classList.add(t),e.setAttribute(n,r)})})}removeMatchHighlights(){this.forEachTextContainer(e=>{Array.from(e.querySelectorAll("."+this.options.highlightClass)).forEach(e=>{var t=this.options.highlightClass;e.classList.remove(t),e.removeAttribute(n)})})}addActiveMatchMark(){this.state.activeMatchIndex||0===this.state.activeMatchIndex?this.state.activeMatchIndex>this.state.matches.length?this.state.activeMatchIndex=this.state.matches.length:this.removeActiveMatchMark():this.state.activeMatchIndex=0;const r=document.createElement("span");r.classList.add(this.options.highlightMarkClass),this.forEachTextContainer(e=>{Array.from(e.querySelectorAll("."+this.options.charClass+"[data-match-index='"+this.state.activeMatchIndex+"']")).forEach(e=>{var t=e,a=r.cloneNode(!0);if(t&&t.parentNode&&a)for(t.appendChild(a);t.firstChild&&t.firstChild!==a;)a.appendChild(t.firstChild)})})}removeActiveMatchMark(){this.forEachTextContainer(e=>{var t=Array.from(e.querySelectorAll("."+this.options.highlightMarkClass)).flatMap(e=>Array.from(e.childNodes));if(t&&t.length&&!(t.length<=0))for(let e=0;e<t.length;e++)o(t[e])})}removeIndicators(){this.removeActiveMatchMark(),this.removeMatchHighlights()}markNextMatch(){this.markNextMatchIndex(),this.addActiveMatchMark()}markPreviousMatch(){this.markPreviousMatchIndex(),this.addActiveMatchMark()}markNextMatchIndex(){this.moveActiveMatchIndex(1)}markPreviousMatchIndex(){this.moveActiveMatchIndex(-1)}moveActiveMatchIndex(e){this.state.activeMatchIndex+=e,this.state.activeMatchIndex<0?this.state.activeMatchIndex=Math.max(this.state.matches.length-1,0):this.state.activeMatchIndex>this.state.matches.length-1&&(this.state.activeMatchIndex=0)}getActiveMatchElement(){let t;return this.forEachTextContainer(e=>{e=e.querySelector("."+this.options.highlightMarkClass);e&&(t=e)}),t}}},147:(e,l,t)=>{Object.defineProperty(l,"__esModule",{value:!0}),l.removeChildren=l.calculateZoomLevel=l.goToPreviousSearchMatch=l.goToNextSearchMatch=l.print=l.reloadDocument=l.loadPDF=l.download=l.DEFAULT_ZOOM_LEVEL=void 0;const n=t(619),i=t(439),c=(l.DEFAULT_ZOOM_LEVEL=1.25,e=>{let t={verbosity:0};var a;return"string"==typeof e.data?t.data=(a=e.data,atob(a.replace(/^(data:application\/pdf;base64,)/gi,""))):"string"==typeof e.url?t.url=e.url:e.arrayBuffer instanceof ArrayBuffer?t=e.arrayBuffer:e.typedArray&&(t=e.typedArray),t}),h=(l.download=(t,a="Document",r={},o)=>{var e=c(t);(0,i.getDocument)(e).promise.then(e=>e.getData()).then(e=>new Blob([e],{type:"application/pdf"})).then(e=>{o(e,a,r)||(0,n.saveAs)(e,a,r)}).catch(e=>{t.error(e)})},l.loadPDF=a=>{const e=c(a),{dom:r,zoom:o,done:n,error:s}=a;(0,i.getDocument)(e).promise.then(t=>{var a=[];for(let e=1;e<=t.numPages;e++)a.push(t.getPage(e));return{pages:a,pdfDoc:t}}).then(({pages:e,pdfDoc:t})=>{Promise.all(e).then(e=>e.map(e=>(r.appendChild(p(e,o,s)),e))).then(e=>{n({pdfPages:e,pdfDoc:t})}).catch(e=>{a.error(e)})}).catch(e=>{a.error(e)})},l.reloadDocument=e=>{const{pdfDoc:t,zoom:a,dom:r,done:o,error:n}=e,s=[];for(let e=1;e<=t.numPages;e++)s.push(t.getPage(e));Promise.all(s).then(e=>e.map(e=>(r.appendChild(p(e,a,n)),e))).then(o).catch(n)},l.print=(e,r,o)=>{const n=document.createElement("div");let s=e.map(()=>!1);e.forEach((e,t)=>{const a=d(e,e=>{n.appendChild(e),s[t]=!0,s.every(Boolean)&&h(n,a.width,a.height,r,o)},o)})},(e,t,a,r,o)=>{const n=window.open("","","innerWidth="+t+",innerHeight="+a+"location=no,titlebar=no,toolbar=no");if(n&&n.document){if(n){n.document.body.appendChild(e),n.focus(),setTimeout(()=>{n.print(),r()},0);const t=()=>{n.removeEventListener("afterprint",t),n.close()};n.addEventListener("afterprint",t)}}else o()}),d=(e,a,t)=>{const r=e.getViewport({scale:l.DEFAULT_ZOOM_LEVEL}),o=u("div","",{}),n=u("canvas","",{width:"100%",height:"100%"}),s=n.getContext("2d");return n.height=r.height,n.width=r.width,o.appendChild(n),e.render({canvasContext:s,viewport:r}).promise.then(()=>{const e=new Image,t=(e.src=n.toDataURL(),o.removeChild(n),o.appendChild(e),e.width=n.width,e.height=n.height,()=>{e.removeEventListener("load",t),a(o)});e.addEventListener("load",t)}).catch(t),r},u=function(e,t,a){const r=document.createElement(e);return t&&(r.className=t),Object.keys(a).forEach(e=>r.style[e]=a[e]),r},p=(e,t,a)=>{const r=e.getViewport({scale:t}),o={width:r.width+"px",height:r.height+"px"},n=u("div","k-page",o),s=u("canvas","",{width:"100%",height:"100%"}),l=s.getContext("2d");return s.height=r.height,s.width=r.width,n.appendChild(s),e.render({canvasContext:l,viewport:r}).promise.then(()=>{e.getTextContent().then(e=>{const t=u("div","k-text-layer",o);(0,i.renderTextLayer)({textContent:e,container:t,viewport:r,textDivs:[]}).promise.then(()=>{n.appendChild(t)}).catch(a)})}).catch(a),n},a=(e,t)=>{var a,r;e&&(e=(e=e.closest(".k-text-char"))?e.closest("span[role='presentation']"):null)&&(r=e.closest(".k-page"))&&(a=r.offsetLeft+-1*t.scroller.element.offsetLeft+e.offsetLeft+0,r=r.offsetTop+-1*t.scroller.element.offsetTop+e.offsetTop+-64,t.scroller.scrollTo(a,r,{trackScrollEvent:!1}))};l.goToNextSearchMatch=e=>{e.search.markNextMatch();var t=e.search.getActiveMatchElement();a(t,e)},l.goToPreviousSearchMatch=e=>{e.search.markPreviousMatch();var t=e.search.getActiveMatchElement();a(t,e)},l.calculateZoomLevel=(e,t,a,r)=>{var o=r.closest(".k-pdf-viewer-canvas"),r=r.querySelector(".k-page"),n=r.offsetWidth,r=r.offsetHeight;let s=e;return"ActualWidth"===t?s=1:"FitToWidth"===t?s=o.offsetWidth/(n/a):"FitToPage"===t&&(s=o.offsetHeight/(r/a)),s},l.removeChildren=e=>{for(;e.firstChild;)e.removeChild(e.firstChild)}},619:e=>{e.exports=s},536:e=>{e.exports=l},811:e=>{e.exports=i},816:e=>{e.exports=c},445:e=>{e.exports=h},142:e=>{e.exports=d},21:e=>{e.exports=u},987:e=>{e.exports=p},789:e=>{e.exports=g},110:e=>{e.exports=f},439:e=>{e.exports=m},629:e=>{e.exports=v},895:e=>{e.exports=b},954:e=>{e.exports=k}},r={};function o(e){var t=r[e];return void 0!==t||(t=r[e]={exports:{}},a[e](t,t.exports,o)),t.exports}var e,t,n={};return e=n,Object.defineProperty(e,"__esModule",{value:!0}),e.PDFViewer=void 0,t=o(464),Object.defineProperty(e,"PDFViewer",{enumerable:!0,get:function(){return t.PDFViewer}}),n})())}}});
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@progress/kendo-react-pdf-viewer",
3
+ "version": "5.10.0-dev.202211241147",
4
+ "description": "KendoReact PDFViewer package",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/telerik/kendo-react.git"
8
+ },
9
+ "main": "dist/npm/main.js",
10
+ "types": "dist/npm/main.d.ts",
11
+ "module": "dist/es/main.js",
12
+ "jsnext:main": "dist/es/main.js",
13
+ "scripts": {
14
+ "test": "cd ../../ && npm run test -- --testPathPattern=/packages/pdf-viewer/.*",
15
+ "e2e": "cd ../../ && npx jest --maxWorkers=4 --config jest.e2e.js packages/pdf-viewer",
16
+ "start": "gulp start",
17
+ "build-package": "gulp build-package"
18
+ },
19
+ "homepage": "https://www.telerik.com/kendo-react-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-react-trial-npm-pdf-viewer&utm_content=homepage",
20
+ "keywords": [
21
+ "Kendo UI",
22
+ "React",
23
+ "PDFViewer",
24
+ "Progress",
25
+ "KendoReact",
26
+ "reactjs",
27
+ "UI component",
28
+ "React component",
29
+ "PDFViewer",
30
+ "Pivot Table"
31
+ ],
32
+ "peerDependencies": {
33
+ "@progress/kendo-data-query": "^1.0.0",
34
+ "@progress/kendo-drawing": "^1.17.1",
35
+ "@progress/kendo-file-saver": "^1.1.1",
36
+ "@progress/kendo-react-animation": "^5.0.0",
37
+ "@progress/kendo-react-buttons": "^5.0.0",
38
+ "@progress/kendo-react-data-tools": "^5.0.0",
39
+ "@progress/kendo-react-dateinputs": "^5.0.0",
40
+ "@progress/kendo-react-dropdowns": "^5.0.0",
41
+ "@progress/kendo-react-indicators": "^5.0.0",
42
+ "@progress/kendo-react-inputs": "^5.0.0",
43
+ "@progress/kendo-react-intl": "^5.0.0",
44
+ "@progress/kendo-react-treeview": "^5.0.0",
45
+ "@progress/kendo-react-upload": "^5.0.0",
46
+ "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
47
+ "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
48
+ },
49
+ "dependencies": {
50
+ "@progress/kendo-react-common": "5.9.1-dev.202211011805",
51
+ "@telerik/kendo-draggable": "^2.2.1",
52
+ "pdfjs-dist": "^3.0.279",
53
+ "prop-types": "^15.6.0"
54
+ },
55
+ "devDependencies": {
56
+ "@progress/kendo-data-query": "^1.0.0",
57
+ "@progress/kendo-drawing": "^1.17.1",
58
+ "@progress/kendo-file-saver": "^1.1.1",
59
+ "@progress/kendo-react-animation": "5.9.1-dev.202211011805",
60
+ "@progress/kendo-react-buttons": "5.9.1-dev.202211011805",
61
+ "@progress/kendo-react-data-tools": "5.9.1-dev.202211011805",
62
+ "@progress/kendo-react-dateinputs": "5.9.1-dev.202211011805",
63
+ "@progress/kendo-react-dropdowns": "5.9.1-dev.202211011805",
64
+ "@progress/kendo-react-indicators": "5.9.1-dev.202211011805",
65
+ "@progress/kendo-react-inputs": "5.9.1-dev.202211011805",
66
+ "@progress/kendo-react-intl": "5.9.1-dev.202211011805",
67
+ "@progress/kendo-react-treeview": "5.9.1-dev.202211011805",
68
+ "@progress/kendo-react-upload": "5.9.1-dev.202211011805"
69
+ },
70
+ "@progress": {
71
+ "friendlyName": "PDFViewer",
72
+ "framework": "KendoReact"
73
+ },
74
+ "author": "Progress",
75
+ "license": "SEE LICENSE IN LICENSE.md",
76
+ "publishConfig": {
77
+ "access": "public"
78
+ },
79
+ "sideEffects": false
80
+ }