@embedpdf/viewer-chrome 3.0.0-next.15 → 3.0.0-next.16
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/dist/{annotation-fonts-BqoLZ4Mp.js → annotation-fonts-DWjVOTP0.js} +2 -2
- package/dist/{annotation-fonts-BqoLZ4Mp.js.map → annotation-fonts-DWjVOTP0.js.map} +1 -1
- package/dist/{annotation-fonts-Dt0IQXhz.cjs → annotation-fonts-dpfVkhnq.cjs} +2 -2
- package/dist/{annotation-fonts-Dt0IQXhz.cjs.map → annotation-fonts-dpfVkhnq.cjs.map} +1 -1
- package/dist/{annotation-style-Bzvvp8-N.cjs → annotation-style-B3XKAyZ-.cjs} +3 -3
- package/dist/{annotation-style-Bzvvp8-N.cjs.map → annotation-style-B3XKAyZ-.cjs.map} +1 -1
- package/dist/{annotation-style--rPIZsuP.js → annotation-style-CXF3X47Z.js} +3 -3
- package/dist/{annotation-style--rPIZsuP.js.map → annotation-style-CXF3X47Z.js.map} +1 -1
- package/dist/{ar-DnEj5vbP.cjs → ar-B132r9bo.cjs} +93 -1
- package/dist/ar-B132r9bo.cjs.map +1 -0
- package/dist/{ar-D9XKAmDx.js → ar-BLWFJoA_.js} +93 -1
- package/dist/ar-BLWFJoA_.js.map +1 -0
- package/dist/attachments-panel-Cxln8xos.cjs +217 -0
- package/dist/attachments-panel-Cxln8xos.cjs.map +1 -0
- package/dist/attachments-panel-H1ucRbwo.js +217 -0
- package/dist/attachments-panel-H1ucRbwo.js.map +1 -0
- package/dist/chrome.cjs +21 -0
- package/dist/chrome.cjs.map +1 -1
- package/dist/chrome.js +21 -0
- package/dist/chrome.js.map +1 -1
- package/dist/{commands-BmgxhJ8B.js → commands-BkgLP3Om.js} +418 -23
- package/dist/commands-BkgLP3Om.js.map +1 -0
- package/dist/{commands-CYt4SFUX.cjs → commands-DL1gjZt7.cjs} +433 -20
- package/dist/commands-DL1gjZt7.cjs.map +1 -0
- package/dist/commands.cjs +2 -1
- package/dist/commands.d.cts +3 -1
- package/dist/commands.d.ts +3 -1
- package/dist/commands.js +2 -2
- package/dist/{comments-panel-pEcQg4Vs.cjs → comments-panel-BsnWedTh.cjs} +2 -2
- package/dist/{comments-panel-pEcQg4Vs.cjs.map → comments-panel-BsnWedTh.cjs.map} +1 -1
- package/dist/{comments-panel-MUVgLCBI.js → comments-panel-D7Eadws9.js} +2 -2
- package/dist/{comments-panel-MUVgLCBI.js.map → comments-panel-D7Eadws9.js.map} +1 -1
- package/dist/{de-Dv6zvbnd.cjs → de-7_MvFWzN.cjs} +93 -1
- package/dist/de-7_MvFWzN.cjs.map +1 -0
- package/dist/{de-Bdr4aWzm.js → de-BUhwc9-x.js} +93 -1
- package/dist/de-BUhwc9-x.js.map +1 -0
- package/dist/{dialog-B5GBisKv.js → dialog-BIb373cg.js} +3 -3
- package/dist/dialog-BIb373cg.js.map +1 -0
- package/dist/{dialog-t8F13BL_.cjs → dialog-CngKTnAM.cjs} +3 -3
- package/dist/dialog-CngKTnAM.cjs.map +1 -0
- package/dist/{es-BP09DR9w.cjs → es-DgYj-1L3.cjs} +93 -1
- package/dist/es-DgYj-1L3.cjs.map +1 -0
- package/dist/{es-BSXz5tBv.js → es-DoXTqFoO.js} +93 -1
- package/dist/es-DoXTqFoO.js.map +1 -0
- package/dist/{form-design-panel-vWWU9uB-.js → form-design-panel-CgV_5YWC.js} +3 -3
- package/dist/{form-design-panel-vWWU9uB-.js.map → form-design-panel-CgV_5YWC.js.map} +1 -1
- package/dist/{form-design-panel-B5MXTZ96.cjs → form-design-panel-D0FdmWXW.cjs} +3 -3
- package/dist/{form-design-panel-B5MXTZ96.cjs.map → form-design-panel-D0FdmWXW.cjs.map} +1 -1
- package/dist/{fr-Ckn3K9v1.js → fr-B-8NDhBA.js} +93 -1
- package/dist/fr-B-8NDhBA.js.map +1 -0
- package/dist/{fr-BBQQn7tJ.cjs → fr-C856dmQJ.cjs} +93 -1
- package/dist/fr-C856dmQJ.cjs.map +1 -0
- package/dist/{he-DRsG7bH7.cjs → he-BFTeNc4t.cjs} +93 -1
- package/dist/he-BFTeNc4t.cjs.map +1 -0
- package/dist/{he-wdGU5PkU.js → he-Dlh0fNXM.js} +93 -1
- package/dist/he-Dlh0fNXM.js.map +1 -0
- package/dist/{icons-x0Tc05bs.cjs → icons-1UfLUZ_y.cjs} +20 -1
- package/dist/icons-1UfLUZ_y.cjs.map +1 -0
- package/dist/{icons-BrK5iVL8.js → icons-7dB0Y1ct.js} +20 -1
- package/dist/icons-7dB0Y1ct.js.map +1 -0
- package/dist/index.cjs +740 -171
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -2
- package/dist/index.d.ts +16 -2
- package/dist/index.js +727 -170
- package/dist/index.js.map +1 -1
- package/dist/{it-BuP4o0xQ.cjs → it-Bef-2Yxq.cjs} +93 -1
- package/dist/it-Bef-2Yxq.cjs.map +1 -0
- package/dist/{it-Us-VmvIu.js → it-BkirG7ol.js} +93 -1
- package/dist/it-BkirG7ol.js.map +1 -0
- package/dist/{ja-Cizj0-5O.js → ja-CGEjCE-s.js} +93 -1
- package/dist/ja-CGEjCE-s.js.map +1 -0
- package/dist/{ja-DovEd6ts.cjs → ja-DNw2zqSD.cjs} +93 -1
- package/dist/ja-DNw2zqSD.cjs.map +1 -0
- package/dist/{ko-DlrXliE1.js → ko-CTkl5vMh.js} +93 -1
- package/dist/ko-CTkl5vMh.js.map +1 -0
- package/dist/{ko-B-qJEol2.cjs → ko-YHzeBqP6.cjs} +93 -1
- package/dist/ko-YHzeBqP6.cjs.map +1 -0
- package/dist/{link-editor-CSjqPnj1.cjs → link-editor-CAS7MZM2.cjs} +2 -2
- package/dist/{link-editor-CSjqPnj1.cjs.map → link-editor-CAS7MZM2.cjs.map} +1 -1
- package/dist/{link-editor-SxM1nnJU.js → link-editor-CkwtqRvb.js} +2 -2
- package/dist/{link-editor-SxM1nnJU.js.map → link-editor-CkwtqRvb.js.map} +1 -1
- package/dist/{measurement-Bs61XWbJ.js → measurement-CQdbnIrn.js} +2 -2
- package/dist/{measurement-Bs61XWbJ.js.map → measurement-CQdbnIrn.js.map} +1 -1
- package/dist/{measurement-CcCsHPOX.cjs → measurement-Cxv1Ahxx.cjs} +2 -2
- package/dist/{measurement-CcCsHPOX.cjs.map → measurement-Cxv1Ahxx.cjs.map} +1 -1
- package/dist/{nl-D3KZDDiJ.cjs → nl-BjkbaLq3.cjs} +93 -1
- package/dist/nl-BjkbaLq3.cjs.map +1 -0
- package/dist/{nl-0aF7M_0h.js → nl-Dya4sR8_.js} +93 -1
- package/dist/nl-Dya4sR8_.js.map +1 -0
- package/dist/outline-panel-BpGtBdj0.cjs +707 -0
- package/dist/outline-panel-BpGtBdj0.cjs.map +1 -0
- package/dist/outline-panel-DO5_REYw.js +707 -0
- package/dist/outline-panel-DO5_REYw.js.map +1 -0
- package/dist/outline-properties-BCa2cc0t.js +330 -0
- package/dist/outline-properties-BCa2cc0t.js.map +1 -0
- package/dist/outline-properties-DT3FIxCw.cjs +330 -0
- package/dist/outline-properties-DT3FIxCw.cjs.map +1 -0
- package/dist/{pl-DSFhAUqx.cjs → pl-CKKdVnpZ.cjs} +93 -1
- package/dist/pl-CKKdVnpZ.cjs.map +1 -0
- package/dist/{pl-BW--AaCI.js → pl-DA9b5NVg.js} +93 -1
- package/dist/pl-DA9b5NVg.js.map +1 -0
- package/dist/print-dialog-BqIrHCBh.cjs +276 -0
- package/dist/print-dialog-BqIrHCBh.cjs.map +1 -0
- package/dist/print-dialog-DvcI2m2_.js +276 -0
- package/dist/print-dialog-DvcI2m2_.js.map +1 -0
- package/dist/{pt-C5S-8MC5.cjs → pt-DLcszlzi.cjs} +93 -1
- package/dist/pt-DLcszlzi.cjs.map +1 -0
- package/dist/{pt-DIhpU5pT.js → pt-Nm8yyjbX.js} +93 -1
- package/dist/pt-Nm8yyjbX.js.map +1 -0
- package/dist/{redact-confirm-CX_SY2ZN.cjs → redact-confirm-C6EiK8yN.cjs} +2 -2
- package/dist/{redact-confirm-CX_SY2ZN.cjs.map → redact-confirm-C6EiK8yN.cjs.map} +1 -1
- package/dist/{redact-confirm-B6j36TPw.js → redact-confirm-CKuv9iN_.js} +2 -2
- package/dist/{redact-confirm-B6j36TPw.js.map → redact-confirm-CKuv9iN_.js.map} +1 -1
- package/dist/{redaction-panel-IJDshSJI.js → redaction-panel-CgNZ-pQk.js} +2 -2
- package/dist/{redaction-panel-IJDshSJI.js.map → redaction-panel-CgNZ-pQk.js.map} +1 -1
- package/dist/{redaction-panel-BmoIl-Ll.cjs → redaction-panel-ZhX0dlMi.cjs} +2 -2
- package/dist/{redaction-panel-BmoIl-Ll.cjs.map → redaction-panel-ZhX0dlMi.cjs.map} +1 -1
- package/dist/{search-panel-HfIhJm1M.js → search-panel-BE4xzWlm.js} +4 -4
- package/dist/{search-panel-HfIhJm1M.js.map → search-panel-BE4xzWlm.js.map} +1 -1
- package/dist/{search-panel-s9IoiOtv.cjs → search-panel-wcbTNG1z.cjs} +4 -4
- package/dist/{search-panel-s9IoiOtv.cjs.map → search-panel-wcbTNG1z.cjs.map} +1 -1
- package/dist/{sheet-BDsa_Sup.cjs → sheet-DTBFiwde.cjs} +30 -11
- package/dist/sheet-DTBFiwde.cjs.map +1 -0
- package/dist/{sheet-R6XDgyEf.js → sheet-DyjKfAq0.js} +25 -12
- package/dist/sheet-DyjKfAq0.js.map +1 -0
- package/dist/{sign-dialog-CgnR7akj.cjs → sign-dialog-D5WGx-Yn.cjs} +2 -2
- package/dist/{sign-dialog-CgnR7akj.cjs.map → sign-dialog-D5WGx-Yn.cjs.map} +1 -1
- package/dist/{sign-dialog-GDqCoQhA.js → sign-dialog-DerNe8qT.js} +2 -2
- package/dist/{sign-dialog-GDqCoQhA.js.map → sign-dialog-DerNe8qT.js.map} +1 -1
- package/dist/{signature-inspector-DyO313Qf.cjs → signature-inspector-Bz6TAfZM.cjs} +4 -10
- package/dist/signature-inspector-Bz6TAfZM.cjs.map +1 -0
- package/dist/{signature-inspector-okFz8do6.js → signature-inspector-CsGr9EBk.js} +4 -10
- package/dist/signature-inspector-CsGr9EBk.js.map +1 -0
- package/dist/{signature-maker-BoYa8vgA.cjs → signature-maker-D_YfBXLn.cjs} +3 -3
- package/dist/{signature-maker-BoYa8vgA.cjs.map → signature-maker-D_YfBXLn.cjs.map} +1 -1
- package/dist/{signature-maker-BhCmYyHD.js → signature-maker-Dnth4rV4.js} +3 -3
- package/dist/{signature-maker-BhCmYyHD.js.map → signature-maker-Dnth4rV4.js.map} +1 -1
- package/dist/{signatures-panel-B56PC6d9.cjs → signatures-panel-Ci_LaI1C.cjs} +4 -10
- package/dist/signatures-panel-Ci_LaI1C.cjs.map +1 -0
- package/dist/{signatures-panel-CgnFfhFm.js → signatures-panel-DZ9ywrjz.js} +4 -10
- package/dist/signatures-panel-DZ9ywrjz.js.map +1 -0
- package/dist/{stamps-panel-CDO0FPyK.js → stamps-panel-BrczStaz.js} +4 -10
- package/dist/stamps-panel-BrczStaz.js.map +1 -0
- package/dist/{stamps-panel-B9NYGayn.cjs → stamps-panel-Cv9nJBwx.cjs} +4 -10
- package/dist/stamps-panel-Cv9nJBwx.cjs.map +1 -0
- package/dist/theme-Be0OZokZ.js +97 -0
- package/dist/theme-Be0OZokZ.js.map +1 -0
- package/dist/theme-FR26JI3r.cjs +126 -0
- package/dist/theme-FR26JI3r.cjs.map +1 -0
- package/dist/{toolbar-z9od3tKl.js → toolbar-DF361xWY.js} +7 -6
- package/dist/toolbar-DF361xWY.js.map +1 -0
- package/dist/{toolbar-CJu2wKTU.cjs → toolbar-ddvpsvTb.cjs} +7 -6
- package/dist/toolbar-ddvpsvTb.cjs.map +1 -0
- package/dist/{zh-cn-CxkUUBct.js → zh-cn-BMPPkLpL.js} +93 -1
- package/dist/zh-cn-BMPPkLpL.js.map +1 -0
- package/dist/{zh-cn-3tmMeHqv.cjs → zh-cn-CZOO3p4H.cjs} +93 -1
- package/dist/zh-cn-CZOO3p4H.cjs.map +1 -0
- package/package.json +4 -4
- package/src/styles.css +8 -0
- package/dist/ar-D9XKAmDx.js.map +0 -1
- package/dist/ar-DnEj5vbP.cjs.map +0 -1
- package/dist/commands-BmgxhJ8B.js.map +0 -1
- package/dist/commands-CYt4SFUX.cjs.map +0 -1
- package/dist/de-Bdr4aWzm.js.map +0 -1
- package/dist/de-Dv6zvbnd.cjs.map +0 -1
- package/dist/dialog-B5GBisKv.js.map +0 -1
- package/dist/dialog-t8F13BL_.cjs.map +0 -1
- package/dist/es-BP09DR9w.cjs.map +0 -1
- package/dist/es-BSXz5tBv.js.map +0 -1
- package/dist/fr-BBQQn7tJ.cjs.map +0 -1
- package/dist/fr-Ckn3K9v1.js.map +0 -1
- package/dist/he-DRsG7bH7.cjs.map +0 -1
- package/dist/he-wdGU5PkU.js.map +0 -1
- package/dist/icons-BrK5iVL8.js.map +0 -1
- package/dist/icons-x0Tc05bs.cjs.map +0 -1
- package/dist/it-BuP4o0xQ.cjs.map +0 -1
- package/dist/it-Us-VmvIu.js.map +0 -1
- package/dist/ja-Cizj0-5O.js.map +0 -1
- package/dist/ja-DovEd6ts.cjs.map +0 -1
- package/dist/ko-B-qJEol2.cjs.map +0 -1
- package/dist/ko-DlrXliE1.js.map +0 -1
- package/dist/nl-0aF7M_0h.js.map +0 -1
- package/dist/nl-D3KZDDiJ.cjs.map +0 -1
- package/dist/pl-BW--AaCI.js.map +0 -1
- package/dist/pl-DSFhAUqx.cjs.map +0 -1
- package/dist/pt-C5S-8MC5.cjs.map +0 -1
- package/dist/pt-DIhpU5pT.js.map +0 -1
- package/dist/sheet-BDsa_Sup.cjs.map +0 -1
- package/dist/sheet-R6XDgyEf.js.map +0 -1
- package/dist/signature-inspector-DyO313Qf.cjs.map +0 -1
- package/dist/signature-inspector-okFz8do6.js.map +0 -1
- package/dist/signatures-panel-B56PC6d9.cjs.map +0 -1
- package/dist/signatures-panel-CgnFfhFm.js.map +0 -1
- package/dist/stamps-panel-B9NYGayn.cjs.map +0 -1
- package/dist/stamps-panel-CDO0FPyK.js.map +0 -1
- package/dist/toolbar-CJu2wKTU.cjs.map +0 -1
- package/dist/toolbar-z9od3tKl.js.map +0 -1
- package/dist/zh-cn-3tmMeHqv.cjs.map +0 -1
- package/dist/zh-cn-CxkUUBct.js.map +0 -1
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { a as PRINT_DIALOG } from "./commands-BkgLP3Om.js";
|
|
2
|
+
import { t as Dialog } from "./dialog-BIb373cg.js";
|
|
3
|
+
import { useEffect, useId, useRef, useState } from "react";
|
|
4
|
+
import { useDocumentId, useDocuments, usePageList } from "@embedpdf/react/runtime";
|
|
5
|
+
import { useStageState } from "@embedpdf/react/stage";
|
|
6
|
+
import { useT } from "@embedpdf/react/i18n";
|
|
7
|
+
import { useSurface } from "@embedpdf/react/shell";
|
|
8
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
//#region src/ui/print-pages.ts
|
|
10
|
+
/**
|
|
11
|
+
* The pages a Print dialog's range names, as people type them: page numbers counted from 1, and
|
|
12
|
+
* ranges of them, separated by commas ("1-3, 5"). They come out in the document's order, each
|
|
13
|
+
* once, as the browser's own print dialog prints them. `null` when the text names no page, or a
|
|
14
|
+
* page the document doesn't have.
|
|
15
|
+
*/
|
|
16
|
+
function pagesInRange(text, pageCount) {
|
|
17
|
+
const parts = text.split(/[,,、،]/).map((part) => part.trim()).filter((part) => part !== "");
|
|
18
|
+
if (parts.length === 0) return null;
|
|
19
|
+
const pages = /* @__PURE__ */ new Set();
|
|
20
|
+
for (const part of parts) {
|
|
21
|
+
const match = /^(\d+)(?:\s*[-–]\s*(\d+))?$/.exec(part);
|
|
22
|
+
if (!match) return null;
|
|
23
|
+
const first = Number(match[1]);
|
|
24
|
+
const last = match[2] === void 0 ? first : Number(match[2]);
|
|
25
|
+
if (first < 1 || first > last || last > pageCount) return null;
|
|
26
|
+
for (let page = first; page <= last; page += 1) pages.add(page);
|
|
27
|
+
}
|
|
28
|
+
return [...pages].sort((a, b) => a - b);
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/ui/print-dialog.tsx
|
|
32
|
+
/**
|
|
33
|
+
* The Print dialog, which `document:print` opens: every page, the current page or a range of
|
|
34
|
+
* them, and whether annotations print. Nothing is made while the user chooses: Print prepares
|
|
35
|
+
* the printout the choices describe, shows how far that is, and opens the browser's print dialog
|
|
36
|
+
* as soon as it is ready. Safari prints only from a tap, and the one on Print was spent preparing,
|
|
37
|
+
* so there the printout waits for another (`PreparedPrint.needsTap`). Cancel stops it at any
|
|
38
|
+
* point. Form fields always print, each as its own print setting says; annotations follow
|
|
39
|
+
* theirs.
|
|
40
|
+
*/
|
|
41
|
+
/** The pages a choice names: `undefined` for every page, `null` when it names none. */
|
|
42
|
+
function chosenPages(choice, pages, currentIndex, range) {
|
|
43
|
+
if (choice === "all") return void 0;
|
|
44
|
+
if (choice === "current") {
|
|
45
|
+
const page = pages[currentIndex];
|
|
46
|
+
return page ? [page.ref] : null;
|
|
47
|
+
}
|
|
48
|
+
return pagesInRange(range, pages.length)?.map((page) => pages[page - 1].ref) ?? null;
|
|
49
|
+
}
|
|
50
|
+
/** Cancel the printout on its way, or free the one made. */
|
|
51
|
+
function drop(held) {
|
|
52
|
+
held.current?.cancel.abort();
|
|
53
|
+
held.current?.prepared?.dispose();
|
|
54
|
+
held.current = null;
|
|
55
|
+
}
|
|
56
|
+
function PrintDialog() {
|
|
57
|
+
const surface = useSurface(PRINT_DIALOG);
|
|
58
|
+
return surface.isOpen ? /* @__PURE__ */ jsx(PrintForm, { onClose: surface.close }) : null;
|
|
59
|
+
}
|
|
60
|
+
function PrintForm({ onClose }) {
|
|
61
|
+
const t = useT();
|
|
62
|
+
const titleId = useId();
|
|
63
|
+
const rangeId = useId();
|
|
64
|
+
const choiceName = useId();
|
|
65
|
+
const documents = useDocuments();
|
|
66
|
+
const documentId = useDocumentId();
|
|
67
|
+
const pages = usePageList();
|
|
68
|
+
const currentIndex = useStageState((state) => state.currentPageIndex);
|
|
69
|
+
const [choice, setChoice] = useState("all");
|
|
70
|
+
const [range, setRange] = useState("");
|
|
71
|
+
const [includeAnnotations, setIncludeAnnotations] = useState(true);
|
|
72
|
+
const [job, setJob] = useState({ kind: "choosing" });
|
|
73
|
+
const held = useRef(null);
|
|
74
|
+
const cancelButton = useRef(null);
|
|
75
|
+
const printButton = useRef(null);
|
|
76
|
+
const quality = documents.getPrintQuality(documentId ?? void 0);
|
|
77
|
+
const chosen = chosenPages(choice, pages, currentIndex, range);
|
|
78
|
+
useEffect(() => () => drop(held), []);
|
|
79
|
+
const print = (prepared) => {
|
|
80
|
+
setJob({ kind: "printing" });
|
|
81
|
+
prepared.print().then(onClose, (error) => {
|
|
82
|
+
console.warn("[embedpdf] print failed", error);
|
|
83
|
+
setJob({ kind: "failed" });
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
const prepare = (pagesToPrint) => {
|
|
87
|
+
drop(held);
|
|
88
|
+
const job = {
|
|
89
|
+
cancel: new AbortController(),
|
|
90
|
+
prepared: null
|
|
91
|
+
};
|
|
92
|
+
const { signal } = job.cancel;
|
|
93
|
+
held.current = job;
|
|
94
|
+
setJob({
|
|
95
|
+
kind: "preparing",
|
|
96
|
+
progress: null
|
|
97
|
+
});
|
|
98
|
+
documents.preparePrint(documentId ?? void 0, {
|
|
99
|
+
...pagesToPrint ? { pages: pagesToPrint } : {},
|
|
100
|
+
includeAnnotations,
|
|
101
|
+
signal,
|
|
102
|
+
onProgress: (progress) => {
|
|
103
|
+
if (!signal.aborted) setJob({
|
|
104
|
+
kind: "preparing",
|
|
105
|
+
progress
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}).then((prepared) => {
|
|
109
|
+
if (signal.aborted) return prepared.dispose();
|
|
110
|
+
job.prepared = prepared;
|
|
111
|
+
if (prepared.needsTap) setJob({
|
|
112
|
+
kind: "ready",
|
|
113
|
+
prepared
|
|
114
|
+
});
|
|
115
|
+
else print(prepared);
|
|
116
|
+
}, (error) => {
|
|
117
|
+
if (signal.aborted) return;
|
|
118
|
+
console.warn("[embedpdf] preparing the printout failed", error);
|
|
119
|
+
setJob({ kind: "failed" });
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
useEffect(() => {
|
|
123
|
+
if (job.kind === "preparing" && job.progress === null) cancelButton.current?.focus();
|
|
124
|
+
if (job.kind === "ready") printButton.current?.focus();
|
|
125
|
+
}, [job]);
|
|
126
|
+
const choosing = job.kind === "choosing" || job.kind === "failed";
|
|
127
|
+
const status = job.kind === "preparing" ? job.progress && job.progress.pagesRendered > 0 ? t("print.preparingPage", { params: {
|
|
128
|
+
page: Math.min(job.progress.pagesRendered + 1, job.progress.pageCount),
|
|
129
|
+
total: job.progress.pageCount
|
|
130
|
+
} }) : t("print.preparing") : job.kind === "ready" ? t("print.ready") : job.kind === "failed" ? t("print.failed") : null;
|
|
131
|
+
const note = quality?.kind !== "images" ? null : quality.dpi < 300 ? t("print.lowResolution", { params: { dpi: quality.dpi } }) : t("print.images", { params: { dpi: quality.dpi } });
|
|
132
|
+
return /* @__PURE__ */ jsx(Dialog, {
|
|
133
|
+
labelledBy: titleId,
|
|
134
|
+
onClose: () => {
|
|
135
|
+
if (job.kind !== "printing") onClose();
|
|
136
|
+
},
|
|
137
|
+
className: "border-border bg-surface w-96 rounded-lg border p-4 shadow-xl",
|
|
138
|
+
children: /* @__PURE__ */ jsxs("form", {
|
|
139
|
+
onSubmit: (event) => {
|
|
140
|
+
event.preventDefault();
|
|
141
|
+
if (job.kind === "ready") print(job.prepared);
|
|
142
|
+
else if (choosing && chosen !== null) prepare(chosen);
|
|
143
|
+
},
|
|
144
|
+
children: [
|
|
145
|
+
/* @__PURE__ */ jsx("h2", {
|
|
146
|
+
id: titleId,
|
|
147
|
+
className: "text-fg text-base font-semibold",
|
|
148
|
+
children: t("print.title")
|
|
149
|
+
}),
|
|
150
|
+
choosing ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
151
|
+
/* @__PURE__ */ jsxs("fieldset", {
|
|
152
|
+
className: "mt-3",
|
|
153
|
+
children: [/* @__PURE__ */ jsx("legend", {
|
|
154
|
+
className: "text-fg-secondary text-sm font-medium",
|
|
155
|
+
children: t("print.pages")
|
|
156
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
157
|
+
className: "mt-1 flex flex-col gap-1",
|
|
158
|
+
children: [
|
|
159
|
+
/* @__PURE__ */ jsx(Choice, {
|
|
160
|
+
name: choiceName,
|
|
161
|
+
checked: choice === "all",
|
|
162
|
+
onChoose: () => setChoice("all"),
|
|
163
|
+
label: t("print.allPages")
|
|
164
|
+
}),
|
|
165
|
+
/* @__PURE__ */ jsx(Choice, {
|
|
166
|
+
name: choiceName,
|
|
167
|
+
checked: choice === "current",
|
|
168
|
+
onChoose: () => setChoice("current"),
|
|
169
|
+
label: t("print.currentPage")
|
|
170
|
+
}),
|
|
171
|
+
/* @__PURE__ */ jsxs("div", {
|
|
172
|
+
className: "flex items-center gap-2",
|
|
173
|
+
children: [/* @__PURE__ */ jsx(Choice, {
|
|
174
|
+
name: choiceName,
|
|
175
|
+
checked: choice === "range",
|
|
176
|
+
onChoose: () => setChoice("range"),
|
|
177
|
+
label: t("print.range"),
|
|
178
|
+
controls: rangeId
|
|
179
|
+
}), /* @__PURE__ */ jsx("input", {
|
|
180
|
+
id: rangeId,
|
|
181
|
+
type: "text",
|
|
182
|
+
inputMode: "numeric",
|
|
183
|
+
"aria-label": t("print.rangeLabel"),
|
|
184
|
+
"aria-invalid": choice === "range" && chosen === null,
|
|
185
|
+
placeholder: t("print.rangePlaceholder"),
|
|
186
|
+
value: range,
|
|
187
|
+
onFocus: () => setChoice("range"),
|
|
188
|
+
onChange: (event) => setRange(event.target.value),
|
|
189
|
+
className: "border-border bg-surface text-fg focus:border-accent focus:ring-accent min-w-0 flex-1 rounded-md border px-1.5 py-1 text-sm tabular-nums outline-none focus:ring-1 aria-[invalid=true]:border-red-600"
|
|
190
|
+
})]
|
|
191
|
+
}),
|
|
192
|
+
choice === "range" && chosen === null && range.trim() !== "" ? /* @__PURE__ */ jsx("p", {
|
|
193
|
+
className: "text-xs text-red-600",
|
|
194
|
+
children: t("print.rangeInvalid", { params: { total: pages.length } })
|
|
195
|
+
}) : null
|
|
196
|
+
]
|
|
197
|
+
})]
|
|
198
|
+
}),
|
|
199
|
+
/* @__PURE__ */ jsxs("label", {
|
|
200
|
+
className: "mt-3 flex cursor-pointer items-center gap-2 text-sm",
|
|
201
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
202
|
+
type: "checkbox",
|
|
203
|
+
className: "accent-accent",
|
|
204
|
+
checked: includeAnnotations,
|
|
205
|
+
onChange: (event) => setIncludeAnnotations(event.target.checked)
|
|
206
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
207
|
+
className: "text-fg",
|
|
208
|
+
children: t("print.annotations")
|
|
209
|
+
})]
|
|
210
|
+
}),
|
|
211
|
+
note ? /* @__PURE__ */ jsx("p", {
|
|
212
|
+
className: "text-fg-muted mt-3 text-xs",
|
|
213
|
+
children: note
|
|
214
|
+
}) : null
|
|
215
|
+
] }) : /* @__PURE__ */ jsx(ProgressBar, {
|
|
216
|
+
progress: job.kind === "preparing" ? job.progress : null,
|
|
217
|
+
done: job.kind !== "preparing"
|
|
218
|
+
}),
|
|
219
|
+
/* @__PURE__ */ jsx("p", {
|
|
220
|
+
role: "status",
|
|
221
|
+
className: "text-fg-muted mt-2 min-h-5 text-sm",
|
|
222
|
+
children: status
|
|
223
|
+
}),
|
|
224
|
+
/* @__PURE__ */ jsxs("div", {
|
|
225
|
+
className: "mt-3 flex justify-end gap-2",
|
|
226
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
227
|
+
ref: cancelButton,
|
|
228
|
+
type: "button",
|
|
229
|
+
disabled: job.kind === "printing",
|
|
230
|
+
onClick: onClose,
|
|
231
|
+
className: "border-border text-fg hover:bg-hover rounded-md border px-3 py-1.5 text-sm",
|
|
232
|
+
children: t("print.cancel")
|
|
233
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
234
|
+
ref: printButton,
|
|
235
|
+
type: "submit",
|
|
236
|
+
disabled: choosing ? chosen === null : job.kind !== "ready",
|
|
237
|
+
className: "bg-accent text-on-accent hover:bg-accent-hover rounded-md px-3 py-1.5 text-sm disabled:opacity-60",
|
|
238
|
+
children: t("print.print")
|
|
239
|
+
})]
|
|
240
|
+
})
|
|
241
|
+
]
|
|
242
|
+
})
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* How far preparing got: the bar moves until the first page is ready (a PDF copy arrives all at
|
|
247
|
+
* once), then fills page by page. Full once the printout is made.
|
|
248
|
+
*/
|
|
249
|
+
function ProgressBar({ progress, done }) {
|
|
250
|
+
const fraction = done ? 1 : progress && progress.pagesRendered > 0 ? progress.pagesRendered / progress.pageCount : null;
|
|
251
|
+
return /* @__PURE__ */ jsx("div", {
|
|
252
|
+
"aria-hidden": "true",
|
|
253
|
+
className: "bg-hover mt-4 h-1.5 overflow-hidden rounded-full",
|
|
254
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
255
|
+
className: `bg-accent h-full rounded-full transition-[width] ${fraction === null ? "w-full animate-pulse" : ""}`,
|
|
256
|
+
style: fraction === null ? void 0 : { width: `${fraction * 100}%` }
|
|
257
|
+
})
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
function Choice({ name, checked, onChoose, label, controls }) {
|
|
261
|
+
return /* @__PURE__ */ jsxs("label", {
|
|
262
|
+
className: "text-fg flex cursor-pointer items-center gap-2 text-sm",
|
|
263
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
264
|
+
type: "radio",
|
|
265
|
+
name,
|
|
266
|
+
className: "accent-accent",
|
|
267
|
+
checked,
|
|
268
|
+
onChange: onChoose,
|
|
269
|
+
"aria-controls": controls
|
|
270
|
+
}), label]
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
//#endregion
|
|
274
|
+
export { PrintDialog };
|
|
275
|
+
|
|
276
|
+
//# sourceMappingURL=print-dialog-DvcI2m2_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"print-dialog-DvcI2m2_.js","names":[],"sources":["../src/ui/print-pages.ts","../src/ui/print-dialog.tsx"],"sourcesContent":["/**\n * The pages a Print dialog's range names, as people type them: page numbers counted from 1, and\n * ranges of them, separated by commas (\"1-3, 5\"). They come out in the document's order, each\n * once, as the browser's own print dialog prints them. `null` when the text names no page, or a\n * page the document doesn't have.\n */\nexport function pagesInRange(text: string, pageCount: number): number[] | null {\n const parts = text\n // The comma, and the commas Chinese, Japanese and Arabic keyboards type.\n .split(/[,,、،]/)\n .map((part) => part.trim())\n .filter((part) => part !== '');\n if (parts.length === 0) return null;\n const pages = new Set<number>();\n for (const part of parts) {\n // A hyphen or an en dash, which some keyboards type for \"to\".\n const match = /^(\\d+)(?:\\s*[-–]\\s*(\\d+))?$/.exec(part);\n if (!match) return null;\n const first = Number(match[1]);\n const last = match[2] === undefined ? first : Number(match[2]);\n if (first < 1 || first > last || last > pageCount) return null;\n for (let page = first; page <= last; page += 1) pages.add(page);\n }\n return [...pages].sort((a, b) => a - b);\n}\n","/**\n * The Print dialog, which `document:print` opens: every page, the current page or a range of\n * them, and whether annotations print. Nothing is made while the user chooses: Print prepares\n * the printout the choices describe, shows how far that is, and opens the browser's print dialog\n * as soon as it is ready. Safari prints only from a tap, and the one on Print was spent preparing,\n * so there the printout waits for another (`PreparedPrint.needsTap`). Cancel stops it at any\n * point. Form fields always print, each as its own print setting says; annotations follow\n * theirs.\n */\nimport { useT } from '@embedpdf/react/i18n';\nimport {\n useDocumentId,\n useDocuments,\n usePageList,\n type PageInfo,\n type PageRef,\n type PreparedPrint,\n type PrintProgress,\n} from '@embedpdf/react/runtime';\nimport { useSurface } from '@embedpdf/react/shell';\nimport { useStageState } from '@embedpdf/react/stage';\nimport { useEffect, useId, useRef, useState } from 'react';\n\nimport { PRINT_DIALOG } from '../config/commands';\nimport { Dialog } from './dialog';\nimport { pagesInRange } from './print-pages';\n\ntype PageChoice = 'all' | 'current' | 'range';\n\n/** The pages a choice names: `undefined` for every page, `null` when it names none. */\nfunction chosenPages(\n choice: PageChoice,\n pages: readonly PageInfo[],\n currentIndex: number,\n range: string,\n): PageRef[] | undefined | null {\n if (choice === 'all') return undefined;\n if (choice === 'current') {\n const page = pages[currentIndex];\n return page ? [page.ref] : null;\n }\n return pagesInRange(range, pages.length)?.map((page) => pages[page - 1]!.ref) ?? null;\n}\n\n/**\n * The printout: not asked for yet, on its way (with how far), ready and waiting for the tap\n * Safari needs, being printed, or failed (the choices show again, to try once more).\n */\ntype Job =\n | { readonly kind: 'choosing' }\n | { readonly kind: 'preparing'; readonly progress: PrintProgress | null }\n | { readonly kind: 'ready'; readonly prepared: PreparedPrint }\n | { readonly kind: 'printing' }\n | { readonly kind: 'failed' };\n\n/** The printout the dialog holds: cancelled while on its way, freed once made. */\ninterface HeldPrint {\n readonly cancel: AbortController;\n prepared: PreparedPrint | null;\n}\n\n/** Cancel the printout on its way, or free the one made. */\nfunction drop(held: { current: HeldPrint | null }) {\n held.current?.cancel.abort();\n held.current?.prepared?.dispose();\n held.current = null;\n}\n\nexport function PrintDialog() {\n const surface = useSurface(PRINT_DIALOG);\n return surface.isOpen ? <PrintForm onClose={surface.close} /> : null;\n}\n\nfunction PrintForm({ onClose }: { onClose: () => void }) {\n const t = useT();\n const titleId = useId();\n const rangeId = useId();\n const choiceName = useId();\n const documents = useDocuments();\n const documentId = useDocumentId();\n const pages = usePageList();\n const currentIndex = useStageState((state) => state.currentPageIndex);\n const [choice, setChoice] = useState<PageChoice>('all');\n const [range, setRange] = useState('');\n const [includeAnnotations, setIncludeAnnotations] = useState(true);\n const [job, setJob] = useState<Job>({ kind: 'choosing' });\n const held = useRef<HeldPrint | null>(null);\n const cancelButton = useRef<HTMLButtonElement>(null);\n const printButton = useRef<HTMLButtonElement>(null);\n const quality = documents.getPrintQuality(documentId ?? undefined);\n const chosen = chosenPages(choice, pages, currentIndex, range);\n\n // Closing the dialog, by Cancel, Escape or a finished print, drops the printout.\n useEffect(() => () => drop(held), []);\n\n const print = (prepared: PreparedPrint) => {\n setJob({ kind: 'printing' });\n prepared.print().then(onClose, (error: unknown) => {\n console.warn('[embedpdf] print failed', error);\n setJob({ kind: 'failed' });\n });\n };\n\n const prepare = (pagesToPrint: readonly PageRef[] | undefined) => {\n drop(held);\n const job: HeldPrint = { cancel: new AbortController(), prepared: null };\n const { signal } = job.cancel;\n held.current = job;\n setJob({ kind: 'preparing', progress: null });\n documents\n .preparePrint(documentId ?? undefined, {\n ...(pagesToPrint ? { pages: pagesToPrint } : {}),\n includeAnnotations,\n signal,\n onProgress: (progress) => {\n if (!signal.aborted) setJob({ kind: 'preparing', progress });\n },\n })\n .then(\n (prepared) => {\n if (signal.aborted) return prepared.dispose();\n job.prepared = prepared;\n if (prepared.needsTap) setJob({ kind: 'ready', prepared });\n else print(prepared);\n },\n (error: unknown) => {\n if (signal.aborted) return;\n console.warn('[embedpdf] preparing the printout failed', error);\n setJob({ kind: 'failed' });\n },\n );\n };\n\n // While the printout is made, the choices give way to its progress: focus goes to Cancel, and\n // to Print once a printout waits for its tap.\n useEffect(() => {\n if (job.kind === 'preparing' && job.progress === null) cancelButton.current?.focus();\n if (job.kind === 'ready') printButton.current?.focus();\n }, [job]);\n\n const choosing = job.kind === 'choosing' || job.kind === 'failed';\n const status =\n job.kind === 'preparing'\n ? job.progress && job.progress.pagesRendered > 0\n ? t('print.preparingPage', {\n params: {\n page: Math.min(job.progress.pagesRendered + 1, job.progress.pageCount),\n total: job.progress.pageCount,\n },\n })\n : t('print.preparing')\n : job.kind === 'ready'\n ? t('print.ready')\n : job.kind === 'failed'\n ? t('print.failed')\n : null;\n // Pictures of the pages; a document that allows only low-resolution printing says so.\n const note =\n quality?.kind !== 'images'\n ? null\n : quality.dpi < 300\n ? t('print.lowResolution', { params: { dpi: quality.dpi } })\n : t('print.images', { params: { dpi: quality.dpi } });\n\n return (\n <Dialog\n labelledBy={titleId}\n onClose={() => {\n if (job.kind !== 'printing') onClose();\n }}\n className=\"border-border bg-surface w-96 rounded-lg border p-4 shadow-xl\"\n >\n <form\n onSubmit={(event) => {\n event.preventDefault();\n if (job.kind === 'ready') print(job.prepared);\n else if (choosing && chosen !== null) prepare(chosen);\n }}\n >\n <h2 id={titleId} className=\"text-fg text-base font-semibold\">\n {t('print.title')}\n </h2>\n {choosing ? (\n <>\n <fieldset className=\"mt-3\">\n <legend className=\"text-fg-secondary text-sm font-medium\">{t('print.pages')}</legend>\n <div className=\"mt-1 flex flex-col gap-1\">\n <Choice\n name={choiceName}\n checked={choice === 'all'}\n onChoose={() => setChoice('all')}\n label={t('print.allPages')}\n />\n <Choice\n name={choiceName}\n checked={choice === 'current'}\n onChoose={() => setChoice('current')}\n label={t('print.currentPage')}\n />\n <div className=\"flex items-center gap-2\">\n <Choice\n name={choiceName}\n checked={choice === 'range'}\n onChoose={() => setChoice('range')}\n label={t('print.range')}\n controls={rangeId}\n />\n <input\n id={rangeId}\n type=\"text\"\n inputMode=\"numeric\"\n aria-label={t('print.rangeLabel')}\n aria-invalid={choice === 'range' && chosen === null}\n placeholder={t('print.rangePlaceholder')}\n value={range}\n onFocus={() => setChoice('range')}\n onChange={(event) => setRange(event.target.value)}\n className=\"border-border bg-surface text-fg focus:border-accent focus:ring-accent min-w-0 flex-1 rounded-md border px-1.5 py-1 text-sm tabular-nums outline-none focus:ring-1 aria-[invalid=true]:border-red-600\"\n />\n </div>\n {choice === 'range' && chosen === null && range.trim() !== '' ? (\n <p className=\"text-xs text-red-600\">\n {t('print.rangeInvalid', { params: { total: pages.length } })}\n </p>\n ) : null}\n </div>\n </fieldset>\n <label className=\"mt-3 flex cursor-pointer items-center gap-2 text-sm\">\n <input\n type=\"checkbox\"\n className=\"accent-accent\"\n checked={includeAnnotations}\n onChange={(event) => setIncludeAnnotations(event.target.checked)}\n />\n <span className=\"text-fg\">{t('print.annotations')}</span>\n </label>\n {note ? <p className=\"text-fg-muted mt-3 text-xs\">{note}</p> : null}\n </>\n ) : (\n <ProgressBar\n progress={job.kind === 'preparing' ? job.progress : null}\n done={job.kind !== 'preparing'}\n />\n )}\n <p role=\"status\" className=\"text-fg-muted mt-2 min-h-5 text-sm\">\n {status}\n </p>\n <div className=\"mt-3 flex justify-end gap-2\">\n <button\n ref={cancelButton}\n type=\"button\"\n disabled={job.kind === 'printing'}\n onClick={onClose}\n className=\"border-border text-fg hover:bg-hover rounded-md border px-3 py-1.5 text-sm\"\n >\n {t('print.cancel')}\n </button>\n <button\n ref={printButton}\n type=\"submit\"\n disabled={choosing ? chosen === null : job.kind !== 'ready'}\n className=\"bg-accent text-on-accent hover:bg-accent-hover rounded-md px-3 py-1.5 text-sm disabled:opacity-60\"\n >\n {t('print.print')}\n </button>\n </div>\n </form>\n </Dialog>\n );\n}\n\n/**\n * How far preparing got: the bar moves until the first page is ready (a PDF copy arrives all at\n * once), then fills page by page. Full once the printout is made.\n */\nfunction ProgressBar({ progress, done }: { progress: PrintProgress | null; done: boolean }) {\n const fraction = done\n ? 1\n : progress && progress.pagesRendered > 0\n ? progress.pagesRendered / progress.pageCount\n : null;\n return (\n <div aria-hidden=\"true\" className=\"bg-hover mt-4 h-1.5 overflow-hidden rounded-full\">\n <div\n className={`bg-accent h-full rounded-full transition-[width] ${fraction === null ? 'w-full animate-pulse' : ''}`}\n style={fraction === null ? undefined : { width: `${fraction * 100}%` }}\n />\n </div>\n );\n}\n\nfunction Choice({\n name,\n checked,\n onChoose,\n label,\n controls,\n}: {\n /** The group's name, so the arrow keys move between its choices. */\n name: string;\n checked: boolean;\n onChoose: () => void;\n label: string;\n /** The field this choice turns on, for assistive technology. */\n controls?: string;\n}) {\n return (\n <label className=\"text-fg flex cursor-pointer items-center gap-2 text-sm\">\n <input\n type=\"radio\"\n name={name}\n className=\"accent-accent\"\n checked={checked}\n onChange={onChoose}\n aria-controls={controls}\n />\n {label}\n </label>\n );\n}\n"],"mappings":"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"}
|
|
@@ -99,6 +99,7 @@ const pt = {
|
|
|
99
99
|
note: "Comentário",
|
|
100
100
|
link: "Link",
|
|
101
101
|
gotoLink: "Ir para o link",
|
|
102
|
+
saveFile: "Salvar arquivo",
|
|
102
103
|
removeLink: "Remover link",
|
|
103
104
|
delete: "Excluir",
|
|
104
105
|
group: "Agrupar",
|
|
@@ -155,12 +156,44 @@ const pt = {
|
|
|
155
156
|
"annotations-create": "Não é permitido adicionar anotações",
|
|
156
157
|
"doc-annotate-modify": "Não é permitido alterar anotações",
|
|
157
158
|
"doc-annotate-read": "Não é permitido exibir anotações",
|
|
159
|
+
"doc-attachments-modify": "Não é permitido adicionar arquivos",
|
|
158
160
|
"doc-download": "Não é permitido baixar",
|
|
159
161
|
"doc-forms-modify": "Não é permitido editar campos de formulário",
|
|
162
|
+
"doc-outline-modify": "Não é permitido alterar os marcadores",
|
|
163
|
+
"doc-pages-assemble": "Não é permitido alterar as páginas",
|
|
160
164
|
"doc-print": "Não é permitido imprimir",
|
|
161
165
|
"doc-text-copy": "Não é permitido copiar",
|
|
162
166
|
"doc-text-search": "Não é permitido pesquisar"
|
|
163
167
|
},
|
|
168
|
+
attachment: {
|
|
169
|
+
add: "Adicionar arquivo",
|
|
170
|
+
save: "Salvar",
|
|
171
|
+
goTo: "Ir para a página",
|
|
172
|
+
delete: "Excluir",
|
|
173
|
+
more: "Mais opções"
|
|
174
|
+
},
|
|
175
|
+
outline: {
|
|
176
|
+
add: "Adicionar marcador",
|
|
177
|
+
addChild: "Adicionar marcador filho",
|
|
178
|
+
rename: "Renomear",
|
|
179
|
+
setDestination: "Definir destino para a visualização atual",
|
|
180
|
+
properties: "Propriedades…",
|
|
181
|
+
delete: "Excluir",
|
|
182
|
+
expandAll: "Expandir tudo",
|
|
183
|
+
collapseAll: "Recolher tudo",
|
|
184
|
+
more: "Mais opções"
|
|
185
|
+
},
|
|
186
|
+
pages: {
|
|
187
|
+
rotateClockwise: "Girar página no sentido horário",
|
|
188
|
+
rotateCounterclockwise: "Girar página no sentido anti-horário",
|
|
189
|
+
delete: "Excluir páginas",
|
|
190
|
+
duplicate: "Duplicar páginas",
|
|
191
|
+
insertBlank: "Inserir página em branco",
|
|
192
|
+
insertFile: "Inserir de arquivo…",
|
|
193
|
+
extract: "Extrair páginas",
|
|
194
|
+
selectAll: "Selecionar todas as páginas",
|
|
195
|
+
more: "Opções da página"
|
|
196
|
+
},
|
|
164
197
|
turnedOff: "{label} não está disponível"
|
|
165
198
|
},
|
|
166
199
|
passwordPrompt: {
|
|
@@ -213,6 +246,25 @@ const pt = {
|
|
|
213
246
|
other: "Outros"
|
|
214
247
|
},
|
|
215
248
|
goToPage: { go: "Ir" },
|
|
249
|
+
print: {
|
|
250
|
+
title: "Imprimir",
|
|
251
|
+
pages: "Páginas",
|
|
252
|
+
allPages: "Todas as páginas",
|
|
253
|
+
currentPage: "Página atual",
|
|
254
|
+
range: "Personalizado",
|
|
255
|
+
rangeLabel: "Páginas a imprimir",
|
|
256
|
+
rangePlaceholder: "ex.: 1-3, 5",
|
|
257
|
+
rangeInvalid: "Números de página de 1 a {total}, como 1-3, 5",
|
|
258
|
+
annotations: "Imprimir anotações",
|
|
259
|
+
preparing: "Preparando…",
|
|
260
|
+
preparingPage: "Preparando a página {page} de {total}…",
|
|
261
|
+
ready: "Pronto para imprimir.",
|
|
262
|
+
images: "As páginas são impressas como imagens a {dpi} DPI.",
|
|
263
|
+
lowResolution: "Este documento só permite impressão em baixa resolução ({dpi} DPI).",
|
|
264
|
+
failed: "Não foi possível preparar a impressão.",
|
|
265
|
+
cancel: "Cancelar",
|
|
266
|
+
print: "Imprimir"
|
|
267
|
+
},
|
|
216
268
|
panels: {
|
|
217
269
|
thumbnails: "Miniaturas",
|
|
218
270
|
outline: "Marcadores",
|
|
@@ -408,6 +460,46 @@ const pt = {
|
|
|
408
460
|
noRotate: "Fica na vertical quando a página gira",
|
|
409
461
|
invisible: "Legado: ocultar subtipos desconhecidos"
|
|
410
462
|
},
|
|
463
|
+
attachments: {
|
|
464
|
+
loading: "Carregando anexos…",
|
|
465
|
+
failed: "Não foi possível ler os anexos.",
|
|
466
|
+
empty: "Este documento não tem arquivos anexados",
|
|
467
|
+
drop: "Solte arquivos para anexá-los",
|
|
468
|
+
dropHint: "Ou solte arquivos aqui",
|
|
469
|
+
adding: "Adicionando…",
|
|
470
|
+
onPage: "Página {page}",
|
|
471
|
+
count: "{count} arquivo",
|
|
472
|
+
countPlural: "{count} arquivos"
|
|
473
|
+
},
|
|
474
|
+
outline: {
|
|
475
|
+
filter: "Filtrar marcadores",
|
|
476
|
+
loading: "Carregando marcadores…",
|
|
477
|
+
failed: "Não foi possível ler os marcadores.",
|
|
478
|
+
empty: "Este documento não tem marcadores",
|
|
479
|
+
noMatches: "Nenhum marcador corresponde",
|
|
480
|
+
incomplete: "Não foi possível ler parte dos marcadores.",
|
|
481
|
+
untitled: "Sem título",
|
|
482
|
+
properties: {
|
|
483
|
+
title: "Propriedades do marcador",
|
|
484
|
+
name: "Título",
|
|
485
|
+
color: "Cor",
|
|
486
|
+
noColor: "Nenhuma",
|
|
487
|
+
customColor: "Cor personalizada",
|
|
488
|
+
bold: "Negrito",
|
|
489
|
+
italic: "Itálico",
|
|
490
|
+
open: "Expandido ao abrir o documento",
|
|
491
|
+
target: "Destino",
|
|
492
|
+
targetNone: "Nenhum",
|
|
493
|
+
targetView: "Visualização atual",
|
|
494
|
+
targetNamed: "Ação de página",
|
|
495
|
+
targetKept: "Mantido como está",
|
|
496
|
+
keptNote: "Este marcador executa um script ou abre outro arquivo. Ele não pode ser alterado aqui.",
|
|
497
|
+
fit: "Ajuste",
|
|
498
|
+
fitKept: "Como está",
|
|
499
|
+
save: "Salvar",
|
|
500
|
+
cancel: "Cancelar"
|
|
501
|
+
}
|
|
502
|
+
},
|
|
411
503
|
linkEditor: {
|
|
412
504
|
toUrl: "Link para uma URL",
|
|
413
505
|
url: "URL",
|
|
@@ -563,4 +655,4 @@ const pt = {
|
|
|
563
655
|
//#endregion
|
|
564
656
|
exports.pt = pt;
|
|
565
657
|
|
|
566
|
-
//# sourceMappingURL=pt-
|
|
658
|
+
//# sourceMappingURL=pt-DLcszlzi.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pt-DLcszlzi.cjs","names":[],"sources":["../src/locales/pt.ts"],"sourcesContent":["import type { Locale } from '@embedpdf/react/i18n';\n\n/**\n * Brazilian Portuguese pack, in the words Adobe Acrobat's Português (Brasil) edition uses.\n * Machine-translated from the English pack (`./en.ts`) and not yet reviewed by a native speaker.\n */\nexport const pt: Locale = {\n code: 'pt',\n name: 'Português',\n translations: {\n measurement: {\n title: 'Medições',\n distance: 'Distância',\n perimeter: 'Perímetro',\n area: 'Área',\n areaUnit: 'Unidade de área',\n resetLabel: 'Redefinir posição do rótulo',\n calibrate: 'Calibrar escala',\n scale: 'Escala',\n custom: 'Personalizada',\n unavailable: 'Indisponível',\n instructions:\n 'Arraste para medir uma distância e clique para posicionar a linha de cota. Clique nos vértices de um perímetro ou área e clique duas vezes para concluir. Os limites da área não podem se cruzar; uma visualização indisponível não pode ser concluída. Pressione Escape para cancelar. Arraste o próprio rótulo para movê-lo.',\n sessionOnly: 'Este mecanismo mantém a calibração da página somente nesta sessão.',\n allPages: 'Aplicar a todas as páginas',\n recalculate: 'Recalcular medições existentes',\n preset: 'Escala predefinida',\n choosePreset: 'Escolha uma predefinição',\n unit: 'Unidade',\n precision: 'Precisão',\n selection: 'Medições selecionadas',\n report: '{updated} atualizadas · {skipped} ignoradas · {failed} com falha',\n knownLength: 'Digite o comprimento real representado pela linha que você acabou de desenhar.',\n length: 'Comprimento conhecido',\n apply: 'Aplicar escala',\n applying: 'Aplicando…',\n },\n commands: {\n zoom: {\n in: 'Ampliar',\n out: 'Reduzir',\n fitPage: 'Ajustar à página',\n fitWidth: 'Ajustar à largura',\n automatic: 'Automático',\n menu: 'Zoom',\n level: 'Nível de zoom',\n p50: '50%',\n p100: '100%',\n p150: '150%',\n p200: '200%',\n p400: '400%',\n },\n pan: 'Deslocar',\n pointer: 'Selecionar',\n comment: 'Comentário',\n style: 'Estilo',\n menu: 'Menu',\n viewControls: 'Controles de exibição',\n open: 'Abrir',\n download: 'Baixar',\n print: 'Imprimir',\n fullscreen: 'Tela cheia',\n spread: {\n group: 'Exibição de página',\n none: 'Página única',\n odd: 'Duas páginas',\n even: 'Página de capa',\n },\n scroll: {\n group: 'Rolagem',\n vertical: 'Vertical',\n horizontal: 'Horizontal',\n },\n rotate: {\n group: 'Girar',\n clockwise: 'Girar no sentido horário',\n counterclockwise: 'Girar no sentido anti-horário',\n },\n mode: {\n measure: 'Medir',\n group: 'Modo',\n view: 'Exibir',\n annotate: 'Anotar',\n shapes: 'Formas',\n insert: 'Inserir',\n form: 'Formulário',\n redact: 'Tarjar',\n },\n annotate: {\n cancelCreation: 'Cancelar desenho',\n highlight: 'Realçar',\n strikeout: 'Tachar',\n underline: 'Sublinhar',\n squiggly: 'Ondulado',\n ink: 'Desenhar',\n inkHighlight: 'Marca-texto',\n text: 'Texto',\n insertText: 'Inserir texto',\n replaceText: 'Substituir texto',\n callout: 'Texto explicativo',\n note: 'Comentário',\n link: 'Link',\n gotoLink: 'Ir para o link',\n saveFile: 'Salvar arquivo',\n removeLink: 'Remover link',\n delete: 'Excluir',\n group: 'Agrupar',\n ungroup: 'Desagrupar',\n stampFromSelection: 'Criar carimbo',\n strip: 'Ações de anotação',\n },\n selection: {\n copy: 'Copiar',\n strip: 'Ações de seleção de texto',\n },\n shapes: {\n rectangle: 'Retângulo',\n circle: 'Círculo',\n line: 'Linha',\n arrow: 'Seta',\n polygon: 'Polígono',\n polyline: 'Polilinha',\n },\n insert: {\n stamp: 'Carimbo',\n attachment: 'Anexar arquivo',\n signature: 'Assinatura',\n image: 'Imagem',\n },\n form: {\n textfield: 'Campo de texto',\n checkbox: 'Caixa de seleção',\n radio: 'Botão de opção',\n select: 'Lista suspensa',\n listbox: 'Caixa de listagem',\n button: 'Botão',\n signature: 'Campo de assinatura',\n // The Form mode's design switch, which opens the form designer's sidebar.\n design: 'Design de formulário',\n },\n redact: {\n mark: 'Marcar para tarjar',\n applyAll: 'Aplicar tarjas',\n clearAll: 'Limpar marcações',\n },\n undo: 'Desfazer',\n redo: 'Refazer',\n page: {\n next: 'Próxima página',\n previous: 'Página anterior',\n first: 'Primeira página',\n last: 'Última página',\n goTo: 'Ir para a página',\n },\n find: 'Localizar',\n shortcuts: 'Atalhos de teclado',\n notAllowed: {\n default: 'Ação não permitida: {label}',\n 'annotations-create': 'Não é permitido adicionar anotações',\n 'doc-annotate-modify': 'Não é permitido alterar anotações',\n 'doc-annotate-read': 'Não é permitido exibir anotações',\n 'doc-attachments-modify': 'Não é permitido adicionar arquivos',\n 'doc-download': 'Não é permitido baixar',\n 'doc-forms-modify': 'Não é permitido editar campos de formulário',\n 'doc-outline-modify': 'Não é permitido alterar os marcadores',\n 'doc-pages-assemble': 'Não é permitido alterar as páginas',\n 'doc-print': 'Não é permitido imprimir',\n 'doc-text-copy': 'Não é permitido copiar',\n 'doc-text-search': 'Não é permitido pesquisar',\n },\n attachment: {\n add: 'Adicionar arquivo',\n save: 'Salvar',\n goTo: 'Ir para a página',\n delete: 'Excluir',\n more: 'Mais opções',\n },\n outline: {\n add: 'Adicionar marcador',\n addChild: 'Adicionar marcador filho',\n rename: 'Renomear',\n setDestination: 'Definir destino para a visualização atual',\n properties: 'Propriedades…',\n delete: 'Excluir',\n expandAll: 'Expandir tudo',\n collapseAll: 'Recolher tudo',\n more: 'Mais opções',\n },\n // The page commands, in the Pages mode and a page's menu.\n pages: {\n rotateClockwise: 'Girar página no sentido horário',\n rotateCounterclockwise: 'Girar página no sentido anti-horário',\n delete: 'Excluir páginas',\n duplicate: 'Duplicar páginas',\n insertBlank: 'Inserir página em branco',\n insertFile: 'Inserir de arquivo…',\n extract: 'Extrair páginas',\n selectAll: 'Selecionar todas as páginas',\n more: 'Opções da página',\n },\n turnedOff: '{label} não está disponível',\n },\n passwordPrompt: {\n title: 'Senha necessária',\n required: 'Este documento é protegido por senha. Digite a senha para abri-lo.',\n incorrect: 'A senha está incorreta. Tente novamente.',\n incorrectWarning: 'Senha incorreta',\n label: 'Senha',\n placeholder: 'Digite a senha',\n cancel: 'Cancelar',\n open: 'Abrir',\n opening: 'Abrindo…',\n },\n dropToOpen: {\n label: 'Solte um PDF para abri-lo',\n },\n documentError: {\n title: 'Não foi possível abrir o documento',\n unknown: 'O documento não pôde ser aberto.',\n notFound: 'O arquivo não foi encontrado.',\n notAllowed: 'Você não tem acesso a este documento.',\n damaged: 'Este arquivo não é um PDF ou está danificado.',\n unsupported: 'Este visualizador não pode abrir este tipo de documento.',\n retry: 'Tentar novamente',\n close: 'Fechar documento',\n },\n tabs: {\n close: 'Fechar {name}',\n loading: 'Carregando',\n untitled: 'Documento {id}',\n },\n closeUnsaved: {\n title: 'Fechar sem salvar?',\n body: '“{name}” tem alterações que não foram baixadas. Elas serão perdidas.',\n cancel: 'Cancelar',\n close: 'Fechar sem salvar',\n },\n viewOnly: {\n label: 'Somente leitura',\n turnedOff: 'As ferramentas que alteram este documento estão desativadas',\n notAllowed: 'Você pode ler este documento, mas não alterá-lo',\n },\n panel: {\n close: 'Fechar',\n resize: 'Redimensionar {title}',\n },\n menu: {\n back: 'Voltar',\n },\n shortcuts: {\n document: 'Documento',\n viewing: 'Visualização',\n editing: 'Edição',\n other: 'Outros',\n },\n goToPage: {\n go: 'Ir',\n },\n print: {\n title: 'Imprimir',\n pages: 'Páginas',\n allPages: 'Todas as páginas',\n currentPage: 'Página atual',\n range: 'Personalizado',\n rangeLabel: 'Páginas a imprimir',\n rangePlaceholder: 'ex.: 1-3, 5',\n rangeInvalid: 'Números de página de 1 a {total}, como 1-3, 5',\n annotations: 'Imprimir anotações',\n preparing: 'Preparando…',\n preparingPage: 'Preparando a página {page} de {total}…',\n ready: 'Pronto para imprimir.',\n images: 'As páginas são impressas como imagens a {dpi} DPI.',\n lowResolution: 'Este documento só permite impressão em baixa resolução ({dpi} DPI).',\n failed: 'Não foi possível preparar a impressão.',\n cancel: 'Cancelar',\n print: 'Imprimir',\n },\n panels: {\n thumbnails: 'Miniaturas',\n outline: 'Marcadores',\n attachments: 'Anexos',\n search: 'Pesquisar',\n comments: 'Comentários',\n style: 'Estilo',\n stamps: 'Carimbos',\n signatures: 'Assinaturas',\n redaction: 'Tarjas',\n measurement: 'Medições',\n formDesign: 'Design de formulário',\n switch: 'Trocar painel',\n },\n annotation: {\n comment: 'Comentário',\n highlight: 'Realce',\n underline: 'Sublinhado',\n squiggly: 'Ondulado',\n strikeout: 'Tachado',\n square: 'Quadrado',\n circle: 'Círculo',\n line: 'Linha',\n polygon: 'Polígono',\n polyline: 'Polilinha',\n ink: 'Desenho',\n freeText: 'Texto',\n stamp: 'Carimbo',\n caret: 'Sinal de inserção',\n redact: 'Tarja',\n fileAttachment: 'Anexo',\n // The style panel's labels, as the annotation kinds name them (`labelKey`), by wording:\n // one field is called different things by different kinds.\n style: {\n opacity: 'Opacidade',\n stroke: 'Traço',\n fill: 'Preenchimento',\n color: 'Cor',\n strokeWidth: 'Espessura do traço',\n border: 'Borda',\n borderStyle: 'Estilo da borda',\n borderColor: 'Cor da borda',\n borderWidth: 'Espessura da borda',\n background: 'Plano de fundo',\n outline: 'Contorno',\n lineEndings: 'Extremidades da linha',\n blendMode: 'Modo de mesclagem',\n font: 'Fonte',\n fontSize: 'Tamanho da fonte',\n textColor: 'Cor do texto',\n bold: 'Negrito',\n italic: 'Itálico',\n underline: 'Sublinhado',\n align: 'Alinhar',\n alignment: 'Alinhamento',\n label: 'Rótulo',\n labelFont: 'Fonte do rótulo',\n labelSize: 'Tamanho do rótulo',\n labelColor: 'Cor do rótulo',\n icon: 'Ícone',\n link: 'Link',\n },\n // The annotation flags (`/F`).\n flags: {\n print: 'Imprimir',\n hidden: 'Oculta',\n noView: 'Não exibir',\n toggleNoView: 'Alternar não exibir',\n readOnly: 'Somente leitura',\n locked: 'Bloqueada',\n lockedContents: 'Conteúdo bloqueado',\n noZoom: 'Sem zoom',\n noRotate: 'Sem rotação',\n invisible: 'Invisível',\n },\n borderStyles: { solid: 'Sólido', dashed: 'Tracejado', cloudy: 'Nuvem' },\n lineEndings: {\n none: 'Nenhuma',\n square: 'Quadrado',\n circle: 'Círculo',\n diamond: 'Losango',\n openArrow: 'Seta aberta',\n closedArrow: 'Seta fechada',\n butt: 'Barra',\n reverseOpenArrow: 'Seta aberta invertida',\n reverseClosedArrow: 'Seta fechada invertida',\n slash: 'Barra diagonal',\n },\n blendModes: {\n normal: 'Normal',\n multiply: 'Multiplicação',\n screen: 'Divisão',\n overlay: 'Sobrepor',\n darken: 'Escurecer',\n lighten: 'Clarear',\n colorDodge: 'Subexposição de cores',\n colorBurn: 'Superexposição de cores',\n hardLight: 'Luz direta',\n softLight: 'Luz indireta',\n difference: 'Diferença',\n exclusion: 'Exclusão',\n hue: 'Matiz',\n saturation: 'Saturação',\n color: 'Cor',\n luminosity: 'Luminosidade',\n },\n // The standard PDF fonts, by their names: a language may keep them as they are.\n fonts: {\n courier: 'Courier',\n courierBold: 'Courier Bold',\n courierBoldOblique: 'Courier Bold Oblique',\n courierOblique: 'Courier Oblique',\n helvetica: 'Helvetica',\n helveticaBold: 'Helvetica Bold',\n helveticaBoldOblique: 'Helvetica Bold Oblique',\n helveticaOblique: 'Helvetica Oblique',\n timesRoman: 'Times Roman',\n timesBold: 'Times Bold',\n timesBoldItalic: 'Times Bold Italic',\n timesItalic: 'Times Italic',\n symbol: 'Symbol',\n zapfDingbats: 'Zapf Dingbats',\n },\n alignments: { left: 'Esquerda', center: 'Centro', right: 'Direita' },\n noteIcons: {\n comment: 'Comentário',\n key: 'Chave',\n note: 'Nota',\n help: 'Ajuda',\n newParagraph: 'Novo parágrafo',\n paragraph: 'Parágrafo',\n insert: 'Inserir',\n },\n attachmentIcons: {\n pushPin: 'Tachinha',\n paperclip: 'Clipe de papel',\n graph: 'Gráfico',\n tag: 'Etiqueta',\n },\n },\n // A form field's settings, as the form plugin names them (`labelKey`).\n form: {\n settings: {\n name: 'Nome',\n tooltip: 'Dica de ferramenta',\n required: 'Obrigatório',\n readOnly: 'Somente leitura',\n noExport: 'Não exportar',\n defaultValue: 'Valor padrão',\n maxLength: 'Comprimento máximo',\n multiline: 'Várias linhas',\n password: 'Senha',\n comb: 'Um caractere por caixa',\n radiosInUnison: 'Botões com o mesmo valor são ativados juntos',\n keepOneOn: 'Manter um ativado',\n options: 'Opções',\n allowTyping: 'Permitir digitação',\n multiSelect: 'Várias escolhas',\n },\n },\n // A thumbnail's tooltip.\n thumbnails: { page: 'Página {page}' },\n // The form designer's sidebar: the fields by page, and the selected one's buttons.\n formDesign: {\n empty: 'Nenhum campo ainda. Escolha uma ferramenta de campo para adicionar um.',\n page: 'Página {page}',\n allFields: 'Todos os campos',\n buttons: 'Botões',\n boxes: 'Caixas',\n box: 'Caixa {number}',\n addButton: 'Adicionar um botão',\n addBox: 'Adicionar uma caixa',\n },\n // The style panel's own words around the properties.\n stylePanel: {\n mixed: '(misto)',\n // A color swatch that takes the color away.\n transparent: 'Transparente',\n lineStart: 'Início',\n lineEnd: 'Fim',\n empty:\n 'Escolha uma ferramenta de desenho ou selecione uma anotação para editar o estilo dela.',\n selected: 'Selecionados: {count}',\n toolDefaults: 'Padrões de {tool}',\n defaults: 'Padrões',\n },\n // The flags section of the style panel: its title, and what each flag does.\n annotationFlags: {\n title: 'Sinalizadores (/F)',\n print: 'Incluir quando a página for impressa',\n hidden: 'Some em todo lugar: tela, cliques, impressão',\n noView: 'Oculta na tela, ainda pode ser impressa',\n toggleNoView: 'Revelar uma anotação não exibida enquanto estiver selecionada',\n readOnly: 'Visível, mas não clicável',\n locked: 'Sem mover / redimensionar / excluir / mudar estilo',\n lockedContents: 'O texto não pode mudar; a geometria pode',\n noZoom: 'Tamanho constante na tela (ancorada no canto superior esquerdo)',\n noRotate: 'Fica na vertical quando a página gira',\n invisible: 'Legado: ocultar subtipos desconhecidos',\n },\n // The link editor over a selected annotation.\n attachments: {\n loading: 'Carregando anexos…',\n failed: 'Não foi possível ler os anexos.',\n empty: 'Este documento não tem arquivos anexados',\n drop: 'Solte arquivos para anexá-los',\n dropHint: 'Ou solte arquivos aqui',\n adding: 'Adicionando…',\n onPage: 'Página {page}',\n count: '{count} arquivo',\n countPlural: '{count} arquivos',\n },\n outline: {\n filter: 'Filtrar marcadores',\n loading: 'Carregando marcadores…',\n failed: 'Não foi possível ler os marcadores.',\n empty: 'Este documento não tem marcadores',\n noMatches: 'Nenhum marcador corresponde',\n incomplete: 'Não foi possível ler parte dos marcadores.',\n untitled: 'Sem título',\n properties: {\n title: 'Propriedades do marcador',\n name: 'Título',\n color: 'Cor',\n noColor: 'Nenhuma',\n customColor: 'Cor personalizada',\n bold: 'Negrito',\n italic: 'Itálico',\n open: 'Expandido ao abrir o documento',\n target: 'Destino',\n targetNone: 'Nenhum',\n targetView: 'Visualização atual',\n targetNamed: 'Ação de página',\n targetKept: 'Mantido como está',\n keptNote:\n 'Este marcador executa um script ou abre outro arquivo. Ele não pode ser alterado aqui.',\n fit: 'Ajuste',\n fitKept: 'Como está',\n save: 'Salvar',\n cancel: 'Cancelar',\n },\n },\n linkEditor: {\n toUrl: 'Link para uma URL',\n url: 'URL',\n toPage: 'Link para uma página',\n page: 'Página',\n urlPlaceholder: 'https://…',\n pagePlaceholder: 'Número da página',\n add: 'Adicionar link',\n update: 'Atualizar link',\n },\n demo: {\n starting: 'Iniciando o visualizador…',\n opening: 'Abrindo o documento…',\n more: 'Mais',\n searchPlaceholder: 'Pesquisar no documento…',\n searchCaseSensitive: 'Diferenciar maiúsculas',\n searchWholeWord: 'Palavra inteira',\n searchRegex: 'Expressão regular',\n searchSearching: 'Pesquisando…',\n searchResults: '{count} resultados encontrados',\n searchNoResults: 'Nenhum resultado',\n searchPrevious: 'Resultado anterior',\n searchNext: 'Próximo resultado',\n searchPage: 'Página {page}',\n commentsForbidden: 'Você não tem acesso aos comentários deste documento.',\n commentsLoading: 'Carregando comentários…',\n commentsError: 'Não foi possível carregar os comentários.',\n commentsRetry: 'Tentar novamente',\n commentsEmpty:\n 'Nenhum comentário ainda. Use a ferramenta de nota para iniciar uma discussão.',\n commentsEmptyReadOnly: 'Nenhum comentário neste documento.',\n commentsAnonymous: 'Desconhecido',\n commentsPage: 'Página {page}',\n commentCount: '{count} comentário',\n commentCountPlural: '{count} comentários',\n commentsReply: 'Responder',\n commentsReplyPlaceholder: 'Responder…',\n commentsAddPlaceholder: 'Adicionar um comentário…',\n commentsDelete: 'Excluir comentário',\n commentsDeleteThread: 'Excluir discussão',\n commentsEdit: 'Editar comentário',\n commentsStatus: 'Status',\n commentsStatusNone: 'Sem status',\n commentsStatusAccepted: 'Aceito',\n commentsStatusRejected: 'Rejeitado',\n commentsStatusCancelled: 'Cancelado',\n commentsStatusCompleted: 'Concluído',\n empty: 'Ainda não há nada neste painel de demonstração.',\n page: 'Página {current} de {total}',\n goToPage: 'Ir para a página',\n cancel: 'Cancelar',\n pageBadge: 'pág. {page}',\n redactionEmpty: 'Nenhuma tarja pendente. Use a ferramenta Tarjar para marcar texto ou áreas.',\n redactionArea: 'Marcação de área',\n redactionText: 'Marcação de texto',\n redactionRemove: 'Remover marcação',\n redactConfirmTitle: 'Aplicar tarjas?',\n redactConfirmBody:\n 'Remover permanentemente o conteúdo sob {count} marcações de tarja. Esta ação não pode ser desfeita.',\n redactConfirmCollateral: '{count} outras anotações também serão removidas.',\n redactApply: 'Aplicar',\n redactApplying: 'Aplicando…',\n formatLabel: 'Formato',\n fieldSettingsTitle: 'Campo',\n fieldOptionLabel: 'Rótulo',\n fieldOptionValue: 'Valor',\n fieldOptionAdd: 'Adicionar opção',\n fieldOptionRemove: 'Remover opção',\n fieldNone: 'Nenhum',\n redactLabelTitle: 'Rótulo da tarja',\n redactLabelPlaceholder: 'ex.: TARJADO',\n redactLabelRepeat: 'Repetir rótulo em toda a região',\n stampsAll: 'Todos os carimbos',\n stampsLoading: 'Carregando carimbos…',\n stampsEmpty:\n 'Nenhum carimbo ainda. Importe um PDF para transformar cada página dele em um carimbo.',\n stampsRemoveStamp: 'Remover carimbo',\n stampsArmedHint: 'Clique em uma página para posicionar o carimbo.',\n stampsImport: 'Importar PDF…',\n stampsImporting: 'Importando…',\n stampsImportHint: 'Importe um PDF como biblioteca de carimbos — cada página vira um carimbo.',\n stampsRemoveLibrary: 'Remover biblioteca',\n stampsExportLibrary: 'Exportar biblioteca como PDF',\n stampsCustomLibrary: 'Meus carimbos',\n stampsCustomLabel: 'Carimbo personalizado',\n stampsError: 'Não foi possível carregar os carimbos integrados.',\n stampsArmError: 'Não foi possível ativar esse carimbo.',\n stampsImportError: 'Não foi possível importar esse PDF como biblioteca de carimbos.',\n quickStampsLabel: 'Carimbos rápidos',\n signaturesEmpty: 'Nenhuma assinatura ainda. Crie uma para assinar.',\n signaturesNew: 'Nova assinatura…',\n signaturesArmedHint:\n 'Clique em um campo de assinatura para assiná-lo, ou em qualquer lugar de uma página para posicionar a marca.',\n signaturesTargetHint: 'Escolha uma marca para o campo selecionado.',\n signaturesInDocument: 'Neste documento',\n signaturesNone: 'Este documento não tem campos de assinatura.',\n signaturesValidate: 'Validar',\n signaturesValidating: 'Validando…',\n signaturesSigned: 'Assinado',\n signaturesUnsigned: 'Não assinado',\n signaturesRename: 'Renomear',\n signaturesRemove: 'Remover',\n signaturesExport: 'Exportar como PDF',\n signaturesAddInitials: 'Adicionar iniciais',\n signatureLabel: 'Assinatura',\n initialsLabel: 'Iniciais',\n makerTitle: 'Nova assinatura',\n makerName: 'Nome',\n makerNamePlaceholder: 'Seu nome',\n makerDraw: 'Desenhar',\n makerType: 'Digitar',\n makerUpload: 'Carregar',\n makerTypePlaceholder: 'Digite seu nome',\n makerFont: 'Fonte',\n makerUploadHint: 'Escolha um PNG, JPEG ou PDF de uma página',\n makerClear: 'Limpar',\n makerOptional: '(opcional)',\n makerSave: 'Salvar',\n makerSaving: 'Salvando…',\n makerError: 'Não foi possível salvar a assinatura.',\n signTitle: 'Assinar este campo',\n signReason: 'Motivo',\n signLocation: 'Local',\n signKind: 'O que pode mudar depois',\n signKindApproval:\n 'Assinatura de aprovação — o preenchimento de formulários e outras assinaturas continuam válidos',\n signKindCertifyAnnotate:\n 'Certificar — permitir comentários, preenchimento de formulários e assinaturas',\n signKindCertifyFill:\n 'Certificar — permitir somente preenchimento de formulários e assinaturas',\n signKindCertifyLocked: 'Certificar — não permitir alterações',\n signButton: 'Assinar',\n signSigning: 'Assinando…',\n signFill: 'Posicionar sem assinar',\n signError: 'Não foi possível assinar o campo.',\n inspectTitle: 'Assinatura',\n inspectSigner: 'Assinado por',\n inspectReason: 'Motivo',\n inspectLocation: 'Local',\n inspectTime: 'Data e hora',\n inspectIntegrity: 'Documento',\n inspectCryptography: 'Assinatura',\n inspectTrust: 'Signatário',\n inspectChanges: 'Alterações posteriores',\n inspectDownload: 'Baixar versão assinada',\n verdictValid: 'Válida',\n verdictValidUntrusted: 'Válida, signatário não confiável',\n verdictInvalid: 'Inválida — documento alterado após a assinatura',\n verdictWillInvalidate: 'Válida, inválida ao salvar',\n signaturesInvalidating:\n 'Esta alteração invalidará {field} quando o documento for salvo. Desfaça-a para manter a assinatura.',\n verdictIndeterminate: 'Não foi possível verificar',\n verdictUnchanged: 'Nenhuma',\n verdictRestored: 'Alterado e depois restaurado',\n inspectLaterRevisions: 'Revisões após a assinatura',\n verdictPermitted: 'Permitidas',\n verdictForbidden: 'Não permitidas',\n },\n },\n};\n"],"mappings":"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"}
|