@pallasoft/ps-file-components 1.0.0
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.
- package/LICENSE +32 -0
- package/README.md +10 -0
- package/dist/components/ps-file-delete-confirm.d.ts +11 -0
- package/dist/components/ps-file-delete-confirm.js +8 -0
- package/dist/components/ps-file-kind-icon.d.ts +6 -0
- package/dist/components/ps-file-kind-icon.js +10 -0
- package/dist/components/ps-file-list.d.ts +12 -0
- package/dist/components/ps-file-list.js +27 -0
- package/dist/components/ps-file-picker.d.ts +18 -0
- package/dist/components/ps-file-picker.js +48 -0
- package/dist/components/ps-file-viewer-button.d.ts +10 -0
- package/dist/components/ps-file-viewer-button.js +7 -0
- package/dist/components/ps-file-viewer-content.d.ts +2 -0
- package/dist/components/ps-file-viewer-content.js +28 -0
- package/dist/components/ps-file-viewer.d.ts +14 -0
- package/dist/components/ps-file-viewer.js +102 -0
- package/dist/components/ps-progress-bar.d.ts +7 -0
- package/dist/components/ps-progress-bar.js +15 -0
- package/dist/components/ps-upload-modal.d.ts +10 -0
- package/dist/components/ps-upload-modal.js +19 -0
- package/dist/components/ps-upload-row.d.ts +11 -0
- package/dist/components/ps-upload-row.js +28 -0
- package/dist/components/viewers/ps-highlighted-text.d.ts +6 -0
- package/dist/components/viewers/ps-highlighted-text.js +8 -0
- package/dist/components/viewers/ps-image-viewer.d.ts +2 -0
- package/dist/components/viewers/ps-image-viewer.js +33 -0
- package/dist/components/viewers/ps-media-viewer.d.ts +2 -0
- package/dist/components/viewers/ps-media-viewer.js +8 -0
- package/dist/components/viewers/ps-pdf-page.d.ts +12 -0
- package/dist/components/viewers/ps-pdf-page.js +37 -0
- package/dist/components/viewers/ps-pdf-thumbnail.d.ts +11 -0
- package/dist/components/viewers/ps-pdf-thumbnail.js +28 -0
- package/dist/components/viewers/ps-pdf-viewer.d.ts +2 -0
- package/dist/components/viewers/ps-pdf-viewer.js +100 -0
- package/dist/components/viewers/ps-text-viewer.d.ts +2 -0
- package/dist/components/viewers/ps-text-viewer.js +42 -0
- package/dist/components/viewers/ps-unsupported-viewer.d.ts +2 -0
- package/dist/components/viewers/ps-unsupported-viewer.js +8 -0
- package/dist/constants/ps-file-kind-icons.d.ts +3 -0
- package/dist/constants/ps-file-kind-icons.js +14 -0
- package/dist/constants/ps-file-kind.d.ts +10 -0
- package/dist/constants/ps-file-kind.js +12 -0
- package/dist/constants/ps-file-list-labels.d.ts +6 -0
- package/dist/constants/ps-file-list-labels.js +9 -0
- package/dist/constants/ps-file-picker-labels.d.ts +7 -0
- package/dist/constants/ps-file-picker-labels.js +10 -0
- package/dist/constants/ps-file-type-config.d.ts +7 -0
- package/dist/constants/ps-file-type-config.js +30 -0
- package/dist/constants/ps-file-viewer-config.d.ts +9 -0
- package/dist/constants/ps-file-viewer-config.js +12 -0
- package/dist/constants/ps-file-viewer-kinds.d.ts +5 -0
- package/dist/constants/ps-file-viewer-kinds.js +9 -0
- package/dist/constants/ps-file-viewer-labels.d.ts +21 -0
- package/dist/constants/ps-file-viewer-labels.js +24 -0
- package/dist/constants/ps-upload-labels.d.ts +14 -0
- package/dist/constants/ps-upload-labels.js +17 -0
- package/dist/constants/ps-upload-messages.d.ts +4 -0
- package/dist/constants/ps-upload-messages.js +7 -0
- package/dist/constants/ps-upload-queue-config.d.ts +4 -0
- package/dist/constants/ps-upload-queue-config.js +7 -0
- package/dist/constants/ps-upload-status-tones.d.ts +2 -0
- package/dist/constants/ps-upload-status-tones.js +12 -0
- package/dist/constants/ps-upload-status.d.ts +9 -0
- package/dist/constants/ps-upload-status.js +11 -0
- package/dist/esm/components/ps-file-delete-confirm.js +4 -0
- package/dist/esm/components/ps-file-kind-icon.js +6 -0
- package/dist/esm/components/ps-file-list.js +23 -0
- package/dist/esm/components/ps-file-picker.js +44 -0
- package/dist/esm/components/ps-file-viewer-button.js +3 -0
- package/dist/esm/components/ps-file-viewer-content.js +24 -0
- package/dist/esm/components/ps-file-viewer.js +98 -0
- package/dist/esm/components/ps-progress-bar.js +11 -0
- package/dist/esm/components/ps-upload-modal.js +15 -0
- package/dist/esm/components/ps-upload-row.js +24 -0
- package/dist/esm/components/viewers/ps-highlighted-text.js +4 -0
- package/dist/esm/components/viewers/ps-image-viewer.js +29 -0
- package/dist/esm/components/viewers/ps-media-viewer.js +4 -0
- package/dist/esm/components/viewers/ps-pdf-page.js +33 -0
- package/dist/esm/components/viewers/ps-pdf-thumbnail.js +24 -0
- package/dist/esm/components/viewers/ps-pdf-viewer.js +96 -0
- package/dist/esm/components/viewers/ps-text-viewer.js +38 -0
- package/dist/esm/components/viewers/ps-unsupported-viewer.js +4 -0
- package/dist/esm/constants/ps-file-kind-icons.js +11 -0
- package/dist/esm/constants/ps-file-kind.js +9 -0
- package/dist/esm/constants/ps-file-list-labels.js +6 -0
- package/dist/esm/constants/ps-file-picker-labels.js +7 -0
- package/dist/esm/constants/ps-file-type-config.js +27 -0
- package/dist/esm/constants/ps-file-viewer-config.js +9 -0
- package/dist/esm/constants/ps-file-viewer-kinds.js +6 -0
- package/dist/esm/constants/ps-file-viewer-labels.js +21 -0
- package/dist/esm/constants/ps-upload-labels.js +14 -0
- package/dist/esm/constants/ps-upload-messages.js +4 -0
- package/dist/esm/constants/ps-upload-queue-config.js +4 -0
- package/dist/esm/constants/ps-upload-status-tones.js +9 -0
- package/dist/esm/constants/ps-upload-status.js +8 -0
- package/dist/esm/hooks/use-ps-active-match-scroll.js +8 -0
- package/dist/esm/hooks/use-ps-file-text.js +21 -0
- package/dist/esm/hooks/use-ps-in-view.js +17 -0
- package/dist/esm/hooks/use-ps-upload-queue.js +67 -0
- package/dist/esm/index.js +62 -0
- package/dist/esm/models/ps-file-rejection.js +1 -0
- package/dist/esm/models/ps-file-selection-rules.js +1 -0
- package/dist/esm/models/ps-file-selection.js +1 -0
- package/dist/esm/models/ps-file-text-state.js +1 -0
- package/dist/esm/models/ps-file-viewer-content-props.js +1 -0
- package/dist/esm/models/ps-label-set.js +1 -0
- package/dist/esm/models/ps-page-size.js +1 -0
- package/dist/esm/models/ps-pdf-match.js +1 -0
- package/dist/esm/models/ps-point.js +1 -0
- package/dist/esm/models/ps-text-match.js +1 -0
- package/dist/esm/models/ps-text-segment.js +1 -0
- package/dist/esm/models/ps-upload-handler-options.js +1 -0
- package/dist/esm/models/ps-upload-item.js +1 -0
- package/dist/esm/models/ps-upload-queue-options.js +1 -0
- package/dist/esm/models/ps-upload-queue-state.js +1 -0
- package/dist/esm/models/ps-upload-summary.js +1 -0
- package/dist/esm/models/ps-viewer-file.js +1 -0
- package/dist/esm/models/ps-xhr-upload-request.js +1 -0
- package/dist/esm/models/ps-xhr-upload-response.js +1 -0
- package/dist/esm/services/ps-csv-service.js +42 -0
- package/dist/esm/services/ps-file-selection-service.js +16 -0
- package/dist/esm/services/ps-file-size-service.js +14 -0
- package/dist/esm/services/ps-file-type-service.js +38 -0
- package/dist/esm/services/ps-pdf-service.js +59 -0
- package/dist/esm/services/ps-text-search-service.js +32 -0
- package/dist/esm/services/ps-upload-queue-service.js +37 -0
- package/dist/esm/services/ps-xhr-upload-service.js +52 -0
- package/dist/hooks/use-ps-active-match-scroll.d.ts +2 -0
- package/dist/hooks/use-ps-active-match-scroll.js +12 -0
- package/dist/hooks/use-ps-file-text.d.ts +2 -0
- package/dist/hooks/use-ps-file-text.js +25 -0
- package/dist/hooks/use-ps-in-view.d.ts +2 -0
- package/dist/hooks/use-ps-in-view.js +21 -0
- package/dist/hooks/use-ps-upload-queue.d.ts +3 -0
- package/dist/hooks/use-ps-upload-queue.js +71 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.js +78 -0
- package/dist/models/ps-file-rejection.d.ts +4 -0
- package/dist/models/ps-file-rejection.js +2 -0
- package/dist/models/ps-file-selection-rules.d.ts +6 -0
- package/dist/models/ps-file-selection-rules.js +2 -0
- package/dist/models/ps-file-selection.d.ts +5 -0
- package/dist/models/ps-file-selection.js +2 -0
- package/dist/models/ps-file-text-state.d.ts +4 -0
- package/dist/models/ps-file-text-state.js +2 -0
- package/dist/models/ps-file-viewer-content-props.d.ts +13 -0
- package/dist/models/ps-file-viewer-content-props.js +2 -0
- package/dist/models/ps-label-set.d.ts +3 -0
- package/dist/models/ps-label-set.js +2 -0
- package/dist/models/ps-page-size.d.ts +4 -0
- package/dist/models/ps-page-size.js +2 -0
- package/dist/models/ps-pdf-match.d.ts +7 -0
- package/dist/models/ps-pdf-match.js +2 -0
- package/dist/models/ps-point.d.ts +4 -0
- package/dist/models/ps-point.js +2 -0
- package/dist/models/ps-text-match.d.ts +4 -0
- package/dist/models/ps-text-match.js +2 -0
- package/dist/models/ps-text-segment.d.ts +5 -0
- package/dist/models/ps-text-segment.js +2 -0
- package/dist/models/ps-upload-handler-options.d.ts +4 -0
- package/dist/models/ps-upload-handler-options.js +2 -0
- package/dist/models/ps-upload-item.d.ts +8 -0
- package/dist/models/ps-upload-item.js +2 -0
- package/dist/models/ps-upload-queue-options.d.ts +6 -0
- package/dist/models/ps-upload-queue-options.js +2 -0
- package/dist/models/ps-upload-queue-state.d.ts +10 -0
- package/dist/models/ps-upload-queue-state.js +2 -0
- package/dist/models/ps-upload-summary.d.ts +5 -0
- package/dist/models/ps-upload-summary.js +2 -0
- package/dist/models/ps-viewer-file.d.ts +9 -0
- package/dist/models/ps-viewer-file.js +2 -0
- package/dist/models/ps-xhr-upload-request.d.ts +8 -0
- package/dist/models/ps-xhr-upload-request.js +2 -0
- package/dist/models/ps-xhr-upload-response.d.ts +4 -0
- package/dist/models/ps-xhr-upload-response.js +2 -0
- package/dist/services/ps-csv-service.d.ts +3 -0
- package/dist/services/ps-csv-service.js +46 -0
- package/dist/services/ps-file-selection-service.d.ts +5 -0
- package/dist/services/ps-file-selection-service.js +20 -0
- package/dist/services/ps-file-size-service.d.ts +3 -0
- package/dist/services/ps-file-size-service.js +18 -0
- package/dist/services/ps-file-type-service.d.ts +6 -0
- package/dist/services/ps-file-type-service.js +42 -0
- package/dist/services/ps-pdf-service.d.ts +11 -0
- package/dist/services/ps-pdf-service.js +96 -0
- package/dist/services/ps-text-search-service.d.ts +6 -0
- package/dist/services/ps-text-search-service.js +36 -0
- package/dist/services/ps-upload-queue-service.d.ts +10 -0
- package/dist/services/ps-upload-queue-service.js +41 -0
- package/dist/services/ps-xhr-upload-service.d.ts +7 -0
- package/dist/services/ps-xhr-upload-service.js +56 -0
- package/package.json +85 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePsUploadQueue = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const ps_upload_queue_config_1 = require("../constants/ps-upload-queue-config");
|
|
6
|
+
const ps_upload_status_1 = require("../constants/ps-upload-status");
|
|
7
|
+
const ps_upload_queue_service_1 = require("../services/ps-upload-queue-service");
|
|
8
|
+
const usePsUploadQueue = ({ concurrency = ps_upload_queue_config_1.PsUploadQueueConfig.concurrency, onSettled, upload, }) => {
|
|
9
|
+
const [items, setItems] = (0, react_1.useState)([]);
|
|
10
|
+
const controllers = (0, react_1.useRef)(new Map());
|
|
11
|
+
const uploadRef = (0, react_1.useRef)(upload);
|
|
12
|
+
const onSettledRef = (0, react_1.useRef)(onSettled);
|
|
13
|
+
const wasBusy = (0, react_1.useRef)(false);
|
|
14
|
+
uploadRef.current = upload;
|
|
15
|
+
onSettledRef.current = onSettled;
|
|
16
|
+
const update = (0, react_1.useCallback)((id, patch) => setItems((current) => current.map((item) => (item.id === id ? { ...item, ...patch } : item))), []);
|
|
17
|
+
const start = (0, react_1.useCallback)((item) => {
|
|
18
|
+
const controller = new AbortController();
|
|
19
|
+
controllers.current.set(item.id, controller);
|
|
20
|
+
update(item.id, { error: null, progress: 0, status: ps_upload_status_1.PsUploadStatus.uploading });
|
|
21
|
+
uploadRef
|
|
22
|
+
.current(item.file, {
|
|
23
|
+
onProgress: (progress) => update(item.id, {
|
|
24
|
+
progress,
|
|
25
|
+
status: progress >= ps_upload_queue_config_1.PsUploadQueueConfig.progressDone
|
|
26
|
+
? ps_upload_status_1.PsUploadStatus.processing
|
|
27
|
+
: ps_upload_status_1.PsUploadStatus.uploading,
|
|
28
|
+
}),
|
|
29
|
+
signal: controller.signal,
|
|
30
|
+
})
|
|
31
|
+
.then(() => update(item.id, {
|
|
32
|
+
progress: ps_upload_queue_config_1.PsUploadQueueConfig.progressDone,
|
|
33
|
+
status: ps_upload_status_1.PsUploadStatus.done,
|
|
34
|
+
}))
|
|
35
|
+
.catch((error) => update(item.id, controller.signal.aborted
|
|
36
|
+
? { status: ps_upload_status_1.PsUploadStatus.cancelled }
|
|
37
|
+
: {
|
|
38
|
+
error: error instanceof Error ? error.message : null,
|
|
39
|
+
status: ps_upload_status_1.PsUploadStatus.failed,
|
|
40
|
+
}))
|
|
41
|
+
.finally(() => controllers.current.delete(item.id));
|
|
42
|
+
}, [update]);
|
|
43
|
+
(0, react_1.useEffect)(() => {
|
|
44
|
+
ps_upload_queue_service_1.PsUploadQueueService.next(items, concurrency)
|
|
45
|
+
.filter((item) => !controllers.current.has(item.id))
|
|
46
|
+
.forEach(start);
|
|
47
|
+
const isBusy = ps_upload_queue_service_1.PsUploadQueueService.isBusy(items);
|
|
48
|
+
if (wasBusy.current && !isBusy && onSettledRef.current)
|
|
49
|
+
onSettledRef.current();
|
|
50
|
+
wasBusy.current = isBusy;
|
|
51
|
+
}, [items, concurrency, start]);
|
|
52
|
+
(0, react_1.useEffect)(() => () => {
|
|
53
|
+
controllers.current.forEach((controller) => controller.abort());
|
|
54
|
+
}, []);
|
|
55
|
+
return {
|
|
56
|
+
add: (files) => setItems((current) => [...current, ...ps_upload_queue_service_1.PsUploadQueueService.itemsFor(files)]),
|
|
57
|
+
cancel: (id) => {
|
|
58
|
+
const controller = controllers.current.get(id);
|
|
59
|
+
if (controller)
|
|
60
|
+
controller.abort();
|
|
61
|
+
else
|
|
62
|
+
update(id, { status: ps_upload_status_1.PsUploadStatus.cancelled });
|
|
63
|
+
},
|
|
64
|
+
clear: () => setItems((current) => current.filter((item) => ps_upload_queue_service_1.PsUploadQueueService.isActive(item))),
|
|
65
|
+
isBusy: ps_upload_queue_service_1.PsUploadQueueService.isBusy(items),
|
|
66
|
+
items,
|
|
67
|
+
remove: (id) => setItems((current) => current.filter((item) => item.id !== id)),
|
|
68
|
+
retry: (id) => update(id, { error: null, progress: 0, status: ps_upload_status_1.PsUploadStatus.waiting }),
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
exports.usePsUploadQueue = usePsUploadQueue;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export * from './components/ps-file-delete-confirm';
|
|
2
|
+
export * from './components/ps-file-kind-icon';
|
|
3
|
+
export * from './components/ps-file-list';
|
|
4
|
+
export * from './components/ps-file-picker';
|
|
5
|
+
export * from './components/ps-file-viewer-button';
|
|
6
|
+
export * from './components/ps-file-viewer-content';
|
|
7
|
+
export * from './components/ps-file-viewer';
|
|
8
|
+
export * from './components/ps-progress-bar';
|
|
9
|
+
export * from './components/ps-upload-modal';
|
|
10
|
+
export * from './components/ps-upload-row';
|
|
11
|
+
export * from './components/viewers/ps-highlighted-text';
|
|
12
|
+
export * from './components/viewers/ps-image-viewer';
|
|
13
|
+
export * from './components/viewers/ps-media-viewer';
|
|
14
|
+
export * from './components/viewers/ps-pdf-page';
|
|
15
|
+
export * from './components/viewers/ps-pdf-thumbnail';
|
|
16
|
+
export * from './components/viewers/ps-pdf-viewer';
|
|
17
|
+
export * from './components/viewers/ps-text-viewer';
|
|
18
|
+
export * from './components/viewers/ps-unsupported-viewer';
|
|
19
|
+
export * from './constants/ps-file-kind-icons';
|
|
20
|
+
export * from './constants/ps-file-kind';
|
|
21
|
+
export * from './constants/ps-file-list-labels';
|
|
22
|
+
export * from './constants/ps-file-picker-labels';
|
|
23
|
+
export * from './constants/ps-file-type-config';
|
|
24
|
+
export * from './constants/ps-file-viewer-config';
|
|
25
|
+
export * from './constants/ps-file-viewer-kinds';
|
|
26
|
+
export * from './constants/ps-file-viewer-labels';
|
|
27
|
+
export * from './constants/ps-upload-labels';
|
|
28
|
+
export * from './constants/ps-upload-messages';
|
|
29
|
+
export * from './constants/ps-upload-queue-config';
|
|
30
|
+
export * from './constants/ps-upload-status-tones';
|
|
31
|
+
export * from './constants/ps-upload-status';
|
|
32
|
+
export * from './hooks/use-ps-active-match-scroll';
|
|
33
|
+
export * from './hooks/use-ps-file-text';
|
|
34
|
+
export * from './hooks/use-ps-in-view';
|
|
35
|
+
export * from './hooks/use-ps-upload-queue';
|
|
36
|
+
export * from './models/ps-file-rejection';
|
|
37
|
+
export * from './models/ps-file-selection-rules';
|
|
38
|
+
export * from './models/ps-file-selection';
|
|
39
|
+
export * from './models/ps-file-text-state';
|
|
40
|
+
export * from './models/ps-file-viewer-content-props';
|
|
41
|
+
export * from './models/ps-label-set';
|
|
42
|
+
export * from './models/ps-page-size';
|
|
43
|
+
export * from './models/ps-pdf-match';
|
|
44
|
+
export * from './models/ps-point';
|
|
45
|
+
export * from './models/ps-text-match';
|
|
46
|
+
export * from './models/ps-text-segment';
|
|
47
|
+
export * from './models/ps-upload-handler-options';
|
|
48
|
+
export * from './models/ps-upload-item';
|
|
49
|
+
export * from './models/ps-upload-queue-options';
|
|
50
|
+
export * from './models/ps-upload-queue-state';
|
|
51
|
+
export * from './models/ps-upload-summary';
|
|
52
|
+
export * from './models/ps-viewer-file';
|
|
53
|
+
export * from './models/ps-xhr-upload-request';
|
|
54
|
+
export * from './models/ps-xhr-upload-response';
|
|
55
|
+
export * from './services/ps-csv-service';
|
|
56
|
+
export * from './services/ps-file-selection-service';
|
|
57
|
+
export * from './services/ps-file-size-service';
|
|
58
|
+
export * from './services/ps-file-type-service';
|
|
59
|
+
export * from './services/ps-pdf-service';
|
|
60
|
+
export * from './services/ps-text-search-service';
|
|
61
|
+
export * from './services/ps-upload-queue-service';
|
|
62
|
+
export * from './services/ps-xhr-upload-service';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./components/ps-file-delete-confirm"), exports);
|
|
18
|
+
__exportStar(require("./components/ps-file-kind-icon"), exports);
|
|
19
|
+
__exportStar(require("./components/ps-file-list"), exports);
|
|
20
|
+
__exportStar(require("./components/ps-file-picker"), exports);
|
|
21
|
+
__exportStar(require("./components/ps-file-viewer-button"), exports);
|
|
22
|
+
__exportStar(require("./components/ps-file-viewer-content"), exports);
|
|
23
|
+
__exportStar(require("./components/ps-file-viewer"), exports);
|
|
24
|
+
__exportStar(require("./components/ps-progress-bar"), exports);
|
|
25
|
+
__exportStar(require("./components/ps-upload-modal"), exports);
|
|
26
|
+
__exportStar(require("./components/ps-upload-row"), exports);
|
|
27
|
+
__exportStar(require("./components/viewers/ps-highlighted-text"), exports);
|
|
28
|
+
__exportStar(require("./components/viewers/ps-image-viewer"), exports);
|
|
29
|
+
__exportStar(require("./components/viewers/ps-media-viewer"), exports);
|
|
30
|
+
__exportStar(require("./components/viewers/ps-pdf-page"), exports);
|
|
31
|
+
__exportStar(require("./components/viewers/ps-pdf-thumbnail"), exports);
|
|
32
|
+
__exportStar(require("./components/viewers/ps-pdf-viewer"), exports);
|
|
33
|
+
__exportStar(require("./components/viewers/ps-text-viewer"), exports);
|
|
34
|
+
__exportStar(require("./components/viewers/ps-unsupported-viewer"), exports);
|
|
35
|
+
__exportStar(require("./constants/ps-file-kind-icons"), exports);
|
|
36
|
+
__exportStar(require("./constants/ps-file-kind"), exports);
|
|
37
|
+
__exportStar(require("./constants/ps-file-list-labels"), exports);
|
|
38
|
+
__exportStar(require("./constants/ps-file-picker-labels"), exports);
|
|
39
|
+
__exportStar(require("./constants/ps-file-type-config"), exports);
|
|
40
|
+
__exportStar(require("./constants/ps-file-viewer-config"), exports);
|
|
41
|
+
__exportStar(require("./constants/ps-file-viewer-kinds"), exports);
|
|
42
|
+
__exportStar(require("./constants/ps-file-viewer-labels"), exports);
|
|
43
|
+
__exportStar(require("./constants/ps-upload-labels"), exports);
|
|
44
|
+
__exportStar(require("./constants/ps-upload-messages"), exports);
|
|
45
|
+
__exportStar(require("./constants/ps-upload-queue-config"), exports);
|
|
46
|
+
__exportStar(require("./constants/ps-upload-status-tones"), exports);
|
|
47
|
+
__exportStar(require("./constants/ps-upload-status"), exports);
|
|
48
|
+
__exportStar(require("./hooks/use-ps-active-match-scroll"), exports);
|
|
49
|
+
__exportStar(require("./hooks/use-ps-file-text"), exports);
|
|
50
|
+
__exportStar(require("./hooks/use-ps-in-view"), exports);
|
|
51
|
+
__exportStar(require("./hooks/use-ps-upload-queue"), exports);
|
|
52
|
+
__exportStar(require("./models/ps-file-rejection"), exports);
|
|
53
|
+
__exportStar(require("./models/ps-file-selection-rules"), exports);
|
|
54
|
+
__exportStar(require("./models/ps-file-selection"), exports);
|
|
55
|
+
__exportStar(require("./models/ps-file-text-state"), exports);
|
|
56
|
+
__exportStar(require("./models/ps-file-viewer-content-props"), exports);
|
|
57
|
+
__exportStar(require("./models/ps-label-set"), exports);
|
|
58
|
+
__exportStar(require("./models/ps-page-size"), exports);
|
|
59
|
+
__exportStar(require("./models/ps-pdf-match"), exports);
|
|
60
|
+
__exportStar(require("./models/ps-point"), exports);
|
|
61
|
+
__exportStar(require("./models/ps-text-match"), exports);
|
|
62
|
+
__exportStar(require("./models/ps-text-segment"), exports);
|
|
63
|
+
__exportStar(require("./models/ps-upload-handler-options"), exports);
|
|
64
|
+
__exportStar(require("./models/ps-upload-item"), exports);
|
|
65
|
+
__exportStar(require("./models/ps-upload-queue-options"), exports);
|
|
66
|
+
__exportStar(require("./models/ps-upload-queue-state"), exports);
|
|
67
|
+
__exportStar(require("./models/ps-upload-summary"), exports);
|
|
68
|
+
__exportStar(require("./models/ps-viewer-file"), exports);
|
|
69
|
+
__exportStar(require("./models/ps-xhr-upload-request"), exports);
|
|
70
|
+
__exportStar(require("./models/ps-xhr-upload-response"), exports);
|
|
71
|
+
__exportStar(require("./services/ps-csv-service"), exports);
|
|
72
|
+
__exportStar(require("./services/ps-file-selection-service"), exports);
|
|
73
|
+
__exportStar(require("./services/ps-file-size-service"), exports);
|
|
74
|
+
__exportStar(require("./services/ps-file-type-service"), exports);
|
|
75
|
+
__exportStar(require("./services/ps-pdf-service"), exports);
|
|
76
|
+
__exportStar(require("./services/ps-text-search-service"), exports);
|
|
77
|
+
__exportStar(require("./services/ps-upload-queue-service"), exports);
|
|
78
|
+
__exportStar(require("./services/ps-xhr-upload-service"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PsFileViewerLabels } from '../constants/ps-file-viewer-labels';
|
|
2
|
+
import type { PsLabelSet } from './ps-label-set';
|
|
3
|
+
import type { PsViewerFile } from './ps-viewer-file';
|
|
4
|
+
export interface PsFileViewerContentProps {
|
|
5
|
+
activeMatch: number;
|
|
6
|
+
file: PsViewerFile;
|
|
7
|
+
labels: PsLabelSet<typeof PsFileViewerLabels>;
|
|
8
|
+
onMatchCount: (count: number) => void;
|
|
9
|
+
pdfWorkerSrc?: string;
|
|
10
|
+
query: string;
|
|
11
|
+
rotation: number;
|
|
12
|
+
zoom: number;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PsUploadItem } from './ps-upload-item';
|
|
2
|
+
export interface PsUploadQueueState {
|
|
3
|
+
add: (files: File[]) => void;
|
|
4
|
+
cancel: (id: string) => void;
|
|
5
|
+
clear: () => void;
|
|
6
|
+
isBusy: boolean;
|
|
7
|
+
items: PsUploadItem[];
|
|
8
|
+
remove: (id: string) => void;
|
|
9
|
+
retry: (id: string) => void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PsCsvService = void 0;
|
|
4
|
+
class PsCsvService {
|
|
5
|
+
static parse(text) {
|
|
6
|
+
const rows = [];
|
|
7
|
+
let row = [];
|
|
8
|
+
let cell = '';
|
|
9
|
+
let inQuotes = false;
|
|
10
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
11
|
+
const char = text[index];
|
|
12
|
+
if (inQuotes) {
|
|
13
|
+
if (char === '"' && text[index + 1] === '"') {
|
|
14
|
+
cell += '"';
|
|
15
|
+
index += 1;
|
|
16
|
+
}
|
|
17
|
+
else if (char === '"')
|
|
18
|
+
inQuotes = false;
|
|
19
|
+
else
|
|
20
|
+
cell += char;
|
|
21
|
+
}
|
|
22
|
+
else if (char === '"')
|
|
23
|
+
inQuotes = true;
|
|
24
|
+
else if (char === ',') {
|
|
25
|
+
row.push(cell);
|
|
26
|
+
cell = '';
|
|
27
|
+
}
|
|
28
|
+
else if (char === '\n' || char === '\r') {
|
|
29
|
+
if (char === '\r' && text[index + 1] === '\n')
|
|
30
|
+
index += 1;
|
|
31
|
+
row.push(cell);
|
|
32
|
+
rows.push(row);
|
|
33
|
+
row = [];
|
|
34
|
+
cell = '';
|
|
35
|
+
}
|
|
36
|
+
else
|
|
37
|
+
cell += char;
|
|
38
|
+
}
|
|
39
|
+
if (cell.length > 0 || row.length > 0) {
|
|
40
|
+
row.push(cell);
|
|
41
|
+
rows.push(row);
|
|
42
|
+
}
|
|
43
|
+
return rows;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.PsCsvService = PsCsvService;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PsFileSelection } from '../models/ps-file-selection';
|
|
2
|
+
import type { PsFileSelectionRules } from '../models/ps-file-selection-rules';
|
|
3
|
+
export declare class PsFileSelectionService {
|
|
4
|
+
static split(files: File[], rules: PsFileSelectionRules): PsFileSelection;
|
|
5
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PsFileSelectionService = void 0;
|
|
4
|
+
const ps_file_type_service_1 = require("./ps-file-type-service");
|
|
5
|
+
class PsFileSelectionService {
|
|
6
|
+
static split(files, rules) {
|
|
7
|
+
const accepted = [];
|
|
8
|
+
const rejected = [];
|
|
9
|
+
files.forEach((file) => {
|
|
10
|
+
if (!ps_file_type_service_1.PsFileTypeService.isAccepted(file, rules.accept))
|
|
11
|
+
rejected.push({ file, message: `${file.name} ${rules.invalidTypeMessage}` });
|
|
12
|
+
else if (rules.maxSizeBytes !== undefined && file.size > rules.maxSizeBytes)
|
|
13
|
+
rejected.push({ file, message: `${file.name} ${rules.tooLargeMessage}` });
|
|
14
|
+
else
|
|
15
|
+
accepted.push(file);
|
|
16
|
+
});
|
|
17
|
+
return { accepted, rejected };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.PsFileSelectionService = PsFileSelectionService;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PsFileSizeService = void 0;
|
|
4
|
+
const ps_file_type_config_1 = require("../constants/ps-file-type-config");
|
|
5
|
+
class PsFileSizeService {
|
|
6
|
+
static format(bytes) {
|
|
7
|
+
if (bytes < 1024)
|
|
8
|
+
return `${bytes} ${ps_file_type_config_1.PsFileTypeConfig.sizeUnits[0]}`;
|
|
9
|
+
let value = bytes;
|
|
10
|
+
let unit = 0;
|
|
11
|
+
while (value >= 1024 && unit < ps_file_type_config_1.PsFileTypeConfig.sizeUnits.length - 1) {
|
|
12
|
+
value /= 1024;
|
|
13
|
+
unit += 1;
|
|
14
|
+
}
|
|
15
|
+
return `${value >= 10 ? Math.round(value) : Math.round(value * 10) / 10} ${ps_file_type_config_1.PsFileTypeConfig.sizeUnits[unit]}`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.PsFileSizeService = PsFileSizeService;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PsFileKind } from '../constants/ps-file-kind';
|
|
2
|
+
export declare class PsFileTypeService {
|
|
3
|
+
static extension(name: string): string;
|
|
4
|
+
static kindOf(contentType: string, name: string): PsFileKind;
|
|
5
|
+
static isAccepted(file: File, accept: readonly string[]): boolean;
|
|
6
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PsFileTypeService = void 0;
|
|
4
|
+
const ps_file_kind_1 = require("../constants/ps-file-kind");
|
|
5
|
+
const ps_file_type_config_1 = require("../constants/ps-file-type-config");
|
|
6
|
+
class PsFileTypeService {
|
|
7
|
+
static extension(name) {
|
|
8
|
+
const dot = name.lastIndexOf('.');
|
|
9
|
+
return dot <= 0 ? '' : name.slice(dot + 1).toLowerCase();
|
|
10
|
+
}
|
|
11
|
+
static kindOf(contentType, name) {
|
|
12
|
+
const type = contentType.toLowerCase();
|
|
13
|
+
if (type === 'application/pdf')
|
|
14
|
+
return ps_file_kind_1.PsFileKind.pdf;
|
|
15
|
+
if (ps_file_type_config_1.PsFileTypeConfig.csvTypes.includes(type))
|
|
16
|
+
return ps_file_kind_1.PsFileKind.csv;
|
|
17
|
+
if (type.startsWith('image/'))
|
|
18
|
+
return ps_file_kind_1.PsFileKind.image;
|
|
19
|
+
if (type.startsWith('video/'))
|
|
20
|
+
return ps_file_kind_1.PsFileKind.video;
|
|
21
|
+
if (type.startsWith('audio/'))
|
|
22
|
+
return ps_file_kind_1.PsFileKind.audio;
|
|
23
|
+
if (type.startsWith('text/') ||
|
|
24
|
+
ps_file_type_config_1.PsFileTypeConfig.textTypes.includes(type))
|
|
25
|
+
return ps_file_kind_1.PsFileKind.text;
|
|
26
|
+
const byExtension = ps_file_type_config_1.PsFileTypeConfig.extensionKinds[PsFileTypeService.extension(name)];
|
|
27
|
+
return byExtension === undefined ? ps_file_kind_1.PsFileKind.other : byExtension;
|
|
28
|
+
}
|
|
29
|
+
static isAccepted(file, accept) {
|
|
30
|
+
if (accept.length === 0)
|
|
31
|
+
return true;
|
|
32
|
+
return accept.some((entry) => {
|
|
33
|
+
const rule = entry.toLowerCase();
|
|
34
|
+
if (rule.startsWith('.'))
|
|
35
|
+
return file.name.toLowerCase().endsWith(rule);
|
|
36
|
+
if (rule.endsWith('/*'))
|
|
37
|
+
return file.type.toLowerCase().startsWith(rule.slice(0, -1));
|
|
38
|
+
return file.type.toLowerCase() === rule;
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.PsFileTypeService = PsFileTypeService;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PDFDocumentProxy, PDFPageProxy, RenderTask } from 'pdfjs-dist';
|
|
2
|
+
import type { PsPdfMatch } from '../models/ps-pdf-match';
|
|
3
|
+
type PdfLibrary = typeof import('pdfjs-dist');
|
|
4
|
+
export declare class PsPdfService {
|
|
5
|
+
private static library;
|
|
6
|
+
static load(workerSrc: string): Promise<PdfLibrary>;
|
|
7
|
+
static open(url: string, workerSrc: string): Promise<PDFDocumentProxy>;
|
|
8
|
+
static render(page: PDFPageProxy, canvas: HTMLCanvasElement, scale: number, rotation: number): RenderTask;
|
|
9
|
+
static search(document: PDFDocumentProxy, query: string, rotation: number): Promise<PsPdfMatch[]>;
|
|
10
|
+
}
|
|
11
|
+
export {};
|