UNPKG

@pdfme/pdf-lib

Version:

Create and modify PDF files with JavaScript

62 lines 2.21 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const PDFName_1 = __importDefault(require("../objects/PDFName")); const PDFAcroButton_1 = __importDefault(require("./PDFAcroButton")); const flags_1 = require("./flags"); const errors_1 = require("../errors"); class PDFAcroRadioButton extends PDFAcroButton_1.default { setValue(value) { const onValues = this.getOnValues(); if (!onValues.includes(value) && value !== PDFName_1.default.of('Off')) { throw new errors_1.InvalidAcroFieldValueError(); } this.dict.set(PDFName_1.default.of('V'), value); const widgets = this.getWidgets(); for (let idx = 0, len = widgets.length; idx < len; idx++) { const widget = widgets[idx]; const state = widget.getOnValue() === value ? value : PDFName_1.default.of('Off'); widget.setAppearanceState(state); } } getValue() { const v = this.V(); if (v instanceof PDFName_1.default) return v; return PDFName_1.default.of('Off'); } getOnValues() { const widgets = this.getWidgets(); const onValues = []; for (let idx = 0, len = widgets.length; idx < len; idx++) { const onValue = widgets[idx].getOnValue(); if (onValue) onValues.push(onValue); } return onValues; } } Object.defineProperty(PDFAcroRadioButton, "fromDict", { enumerable: true, configurable: true, writable: true, value: (dict, ref) => new PDFAcroRadioButton(dict, ref) }); Object.defineProperty(PDFAcroRadioButton, "create", { enumerable: true, configurable: true, writable: true, value: (context) => { const dict = context.obj({ FT: 'Btn', Ff: flags_1.AcroButtonFlags.Radio, Kids: [], }); const ref = context.register(dict); return new PDFAcroRadioButton(dict, ref); } }); exports.default = PDFAcroRadioButton; //# sourceMappingURL=PDFAcroRadioButton.js.map