@operato/ocr 0.2.19 → 0.2.20
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/CHANGELOG.md +10 -0
- package/demo/index.html +666 -2
- package/dist/src/ox-ocr-helper.d.ts +4 -2
- package/dist/src/ox-ocr-helper.js +22 -27
- package/dist/src/ox-ocr-helper.js.map +1 -1
- package/dist/src/ox-ocr-result-image.d.ts +2 -12
- package/dist/src/ox-ocr-result-image.js +31 -673
- package/dist/src/ox-ocr-result-image.js.map +1 -1
- package/dist/src/type.d.ts +15 -0
- package/dist/src/type.js +6 -0
- package/dist/src/type.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/ox-ocr-helper.ts +18 -25
- package/src/ox-ocr-result-image.ts +35 -686
- package/src/type.ts +13 -0
- package/dist/src/camera-capturer.d.ts +0 -14
- package/dist/src/camera-capturer.js +0 -170
- package/dist/src/camera-capturer.js.map +0 -1
- package/dist/src/file-drop-helper.d.ts +0 -16
- package/dist/src/file-drop-helper.js +0 -47
- package/dist/src/file-drop-helper.js.map +0 -1
- package/dist/src/utils/touch-mouse-event.d.ts +0 -0
- package/dist/src/utils/touch-mouse-event.js +0 -2
- package/dist/src/utils/touch-mouse-event.js.map +0 -1
|
@@ -3,16 +3,20 @@ import '@material/mwc-button';
|
|
|
3
3
|
import './ox-camera-capturer';
|
|
4
4
|
import './ox-ocr-result-image';
|
|
5
5
|
import { css, html, LitElement } from 'lit';
|
|
6
|
-
import { customElement, property, query } from 'lit/decorators.js';
|
|
6
|
+
import { customElement, property, query, state } from 'lit/decorators.js';
|
|
7
|
+
import { NOTHING_RESULT } from './type';
|
|
7
8
|
let OcrHelper = class OcrHelper extends LitElement {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
10
|
-
this.
|
|
11
|
+
this.result = [];
|
|
12
|
+
this._index = 0;
|
|
11
13
|
}
|
|
12
14
|
render() {
|
|
15
|
+
var _a;
|
|
13
16
|
const files = this._files || [];
|
|
14
|
-
const index = this.
|
|
17
|
+
const index = this._index || 0;
|
|
15
18
|
const file = files[index];
|
|
19
|
+
const result = ((_a = this.result) === null || _a === void 0 ? void 0 : _a[index]) || NOTHING_RESULT;
|
|
16
20
|
return html `
|
|
17
21
|
<div attachment-wrap>
|
|
18
22
|
<ox-camera-capturer
|
|
@@ -38,16 +42,20 @@ let OcrHelper = class OcrHelper extends LitElement {
|
|
|
38
42
|
const item = (_a = e.target) === null || _a === void 0 ? void 0 : _a.closest('[i]');
|
|
39
43
|
const children = (_b = e.currentTarget) === null || _b === void 0 ? void 0 : _b.querySelectorAll('[i]');
|
|
40
44
|
if (item) {
|
|
41
|
-
this.
|
|
45
|
+
this._index = Array.from(children).indexOf(item);
|
|
42
46
|
}
|
|
43
47
|
}}
|
|
44
48
|
>
|
|
45
49
|
${files.map((file, idx) => html `<div i ?active=${idx === index}>${idx}</div>`)}
|
|
46
50
|
</div>
|
|
47
|
-
<ox-ocr-result-image
|
|
51
|
+
<ox-ocr-result-image
|
|
52
|
+
.file=${file}
|
|
53
|
+
@selected=${(e) => this.onSelected(e)}
|
|
54
|
+
.result=${result}
|
|
55
|
+
></ox-ocr-result-image>
|
|
48
56
|
</div>
|
|
49
57
|
|
|
50
|
-
<div id="
|
|
58
|
+
<div id="copied"></div>
|
|
51
59
|
`;
|
|
52
60
|
}
|
|
53
61
|
fileschange(e) {
|
|
@@ -55,7 +63,7 @@ let OcrHelper = class OcrHelper extends LitElement {
|
|
|
55
63
|
}
|
|
56
64
|
reset() {
|
|
57
65
|
this.fileUploader.reset();
|
|
58
|
-
this.
|
|
66
|
+
this.copied.textContent = '';
|
|
59
67
|
}
|
|
60
68
|
onSelected(e) {
|
|
61
69
|
navigator.clipboard.writeText(e.detail);
|
|
@@ -65,22 +73,6 @@ let OcrHelper = class OcrHelper extends LitElement {
|
|
|
65
73
|
this.dispatchEvent(new CustomEvent('attached', {
|
|
66
74
|
detail: (_a = this.fileUploader) === null || _a === void 0 ? void 0 : _a.files
|
|
67
75
|
}));
|
|
68
|
-
// const response = await client.query({
|
|
69
|
-
// query: gql`
|
|
70
|
-
// query ocrRequest($images: [Upload!]!) {
|
|
71
|
-
// ocrRequest(images: $images)
|
|
72
|
-
// }
|
|
73
|
-
// `,
|
|
74
|
-
// variables: {
|
|
75
|
-
// images: this.fileUploader?.files
|
|
76
|
-
// },
|
|
77
|
-
// context: { hasUpload: true }
|
|
78
|
-
// })
|
|
79
|
-
// if (!response.errors) {
|
|
80
|
-
// this.result.textContent = response.data.ocrRequest
|
|
81
|
-
// } else {
|
|
82
|
-
// this.result.textContent = 'error'
|
|
83
|
-
// }
|
|
84
76
|
}
|
|
85
77
|
};
|
|
86
78
|
OcrHelper.styles = [
|
|
@@ -131,16 +123,19 @@ OcrHelper.styles = [
|
|
|
131
123
|
];
|
|
132
124
|
__decorate([
|
|
133
125
|
property({ type: Array })
|
|
126
|
+
], OcrHelper.prototype, "result", void 0);
|
|
127
|
+
__decorate([
|
|
128
|
+
state()
|
|
134
129
|
], OcrHelper.prototype, "_files", void 0);
|
|
135
130
|
__decorate([
|
|
136
|
-
|
|
137
|
-
], OcrHelper.prototype, "
|
|
131
|
+
state()
|
|
132
|
+
], OcrHelper.prototype, "_index", void 0);
|
|
138
133
|
__decorate([
|
|
139
134
|
query('#capturer')
|
|
140
135
|
], OcrHelper.prototype, "fileUploader", void 0);
|
|
141
136
|
__decorate([
|
|
142
|
-
query('#
|
|
143
|
-
], OcrHelper.prototype, "
|
|
137
|
+
query('#copied')
|
|
138
|
+
], OcrHelper.prototype, "copied", void 0);
|
|
144
139
|
OcrHelper = __decorate([
|
|
145
140
|
customElement('ox-ocr-helper')
|
|
146
141
|
], OcrHelper);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ox-ocr-helper.js","sourceRoot":"","sources":["../../src/ox-ocr-helper.ts"],"names":[],"mappings":";AAAA,OAAO,sBAAsB,CAAA;AAC7B,OAAO,sBAAsB,CAAA;AAC7B,OAAO,uBAAuB,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ox-ocr-helper.js","sourceRoot":"","sources":["../../src/ox-ocr-helper.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-button'\nimport './ox-camera-capturer'\nimport './ox-ocr-result-image'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport { NOTHING_RESULT, ScanResult } from './type'\n\n@customElement('ox-ocr-helper')\nexport class OcrHelper extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: column;\n min-width: 240px;\n }\n\n [buttons] {\n display: flex;\n flex-direction: row-reverse;\n }\n\n #images {\n flex: 1;\n background-color: var(--main-section-background-color, #f4f7fb);\n color: white;\n\n display: flex;\n flex-direction: column;\n }\n\n [tab] {\n display: flex;\n flex-direction: row;\n }\n\n [i] {\n min-width: 50px;\n background-color: var(--secondary-color, #394e64);\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n padding: var(--padding-narrow, 4px);\n text-align: center;\n height: 1.4em;\n }\n\n [i][active] {\n background-color: var(--primary-color, #22a6a7);\n font-weight: bold;\n }\n\n ox-ocr-result-image {\n flex: 1;\n }\n `\n ]\n\n @property({ type: Array }) result: ScanResult[] = []\n\n @state() _files: any\n @state() _index: number = 0\n\n @query('#capturer') fileUploader!: any\n @query('#copied') copied!: HTMLElement\n\n render() {\n const files = this._files || []\n const index = this._index || 0\n const file = files[index]\n const result = this.result?.[index] || NOTHING_RESULT\n\n return html`\n <div attachment-wrap>\n <ox-camera-capturer\n name=\"scanner\"\n id=\"capturer\"\n label=\"Capture Images\"\n accept=\"image/*\"\n multiple=\"true\"\n ?hidden=${false}\n custom-input\n @files-change=${(e: Event) => this.fileschange(e)}\n ></ox-camera-capturer>\n </div>\n <div buttons>\n <mwc-button @click=${(e: Event) => this.submit()}>submit</mwc-button>\n <mwc-button @click=${(e: Event) => this.reset()}>reset</mwc-button>\n </div>\n <div id=\"images\">\n <div\n tab\n @click=${(e: MouseEvent) => {\n const item = (e.target as HTMLElement)?.closest('[i]')\n const children = (e.currentTarget as HTMLElement)?.querySelectorAll('[i]')\n if (item) {\n this._index = Array.from(children).indexOf(item)\n }\n }}\n >\n ${files.map((file: any, idx: number) => html`<div i ?active=${idx === index}>${idx}</div>`)}\n </div>\n <ox-ocr-result-image\n .file=${file}\n @selected=${(e: CustomEvent) => this.onSelected(e)}\n .result=${result}\n ></ox-ocr-result-image>\n </div>\n\n <div id=\"copied\"></div>\n `\n }\n\n fileschange(e: Event) {\n this._files = this.fileUploader.files\n }\n\n reset() {\n this.fileUploader.reset()\n this.copied.textContent = ''\n }\n\n onSelected(e: CustomEvent) {\n navigator.clipboard.writeText(e.detail)\n }\n\n async submit() {\n this.dispatchEvent(\n new CustomEvent('attached', {\n detail: this.fileUploader?.files\n })\n )\n }\n}\n"]}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
-
|
|
3
|
-
status_code: number;
|
|
4
|
-
key_values: {
|
|
5
|
-
[key: string]: Array<string>;
|
|
6
|
-
};
|
|
7
|
-
boundaries: Array<Array<{
|
|
8
|
-
x: number;
|
|
9
|
-
y: number;
|
|
10
|
-
}>>;
|
|
11
|
-
texts: Array<string>;
|
|
12
|
-
};
|
|
2
|
+
import { ScanResult } from './type';
|
|
13
3
|
export declare class OcrResultImage extends LitElement {
|
|
14
4
|
static styles: import("lit").CSSResult[];
|
|
15
5
|
file: any;
|
|
@@ -34,6 +24,7 @@ export declare class OcrResultImage extends LitElement {
|
|
|
34
24
|
calculateRatio(): Promise<void>;
|
|
35
25
|
connectedCallback(): Promise<void>;
|
|
36
26
|
disconnectedCallback(): void;
|
|
27
|
+
initialize(): void;
|
|
37
28
|
updated(changes: PropertyValues<this>): Promise<void>;
|
|
38
29
|
findIndex(x: number, y: number): number;
|
|
39
30
|
updateTrails(point: {
|
|
@@ -44,4 +35,3 @@ export declare class OcrResultImage extends LitElement {
|
|
|
44
35
|
onTrailEnd(e: MouseEvent): void;
|
|
45
36
|
onTrail(e: MouseEvent): void;
|
|
46
37
|
}
|
|
47
|
-
export {};
|