@embedpdf/plugin-form 2.10.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 +21 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1789 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/actions.d.ts +33 -0
- package/dist/lib/form-plugin.d.ts +59 -0
- package/dist/lib/handlers/checkbox.handler.d.ts +3 -0
- package/dist/lib/handlers/combobox.handler.d.ts +3 -0
- package/dist/lib/handlers/index.d.ts +5 -0
- package/dist/lib/handlers/listbox.handler.d.ts +3 -0
- package/dist/lib/handlers/radio-button.handler.d.ts +3 -0
- package/dist/lib/handlers/text-field.handler.d.ts +3 -0
- package/dist/lib/index.d.ts +10 -0
- package/dist/lib/manifest.d.ts +4 -0
- package/dist/lib/reducer.d.ts +6 -0
- package/dist/lib/tools.d.ts +457 -0
- package/dist/lib/types.d.ts +98 -0
- package/dist/preact/adapter.d.ts +13 -0
- package/dist/preact/annotation.d.ts +1 -0
- package/dist/preact/core.d.ts +1 -0
- package/dist/preact/index.cjs +2 -0
- package/dist/preact/index.cjs.map +1 -0
- package/dist/preact/index.d.ts +1 -0
- package/dist/preact/index.js +1359 -0
- package/dist/preact/index.js.map +1 -0
- package/dist/react/adapter.d.ts +6 -0
- package/dist/react/annotation.d.ts +1 -0
- package/dist/react/core.d.ts +1 -0
- package/dist/react/index.cjs +2 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.js +1358 -0
- package/dist/react/index.js.map +1 -0
- package/dist/shared/components/annotations/form-checkbox.d.ts +12 -0
- package/dist/shared/components/annotations/form-combobox.d.ts +12 -0
- package/dist/shared/components/annotations/form-listbox.d.ts +12 -0
- package/dist/shared/components/annotations/form-radio-button.d.ts +12 -0
- package/dist/shared/components/annotations/form-text-field.d.ts +12 -0
- package/dist/shared/components/fields/checkbox.d.ts +2 -0
- package/dist/shared/components/fields/combobox.d.ts +2 -0
- package/dist/shared/components/fields/listbox.d.ts +2 -0
- package/dist/shared/components/fields/push-button.d.ts +2 -0
- package/dist/shared/components/fields/radio-button.d.ts +2 -0
- package/dist/shared/components/fields/style.d.ts +6 -0
- package/dist/shared/components/fields/text.d.ts +2 -0
- package/dist/shared/components/fill-mode/combobox-fill-mode.d.ts +3 -0
- package/dist/shared/components/fill-mode/listbox-fill-mode.d.ts +3 -0
- package/dist/shared/components/fill-mode/push-button-fill-mode.d.ts +3 -0
- package/dist/shared/components/fill-mode/radio-button-fill-mode.d.ts +3 -0
- package/dist/shared/components/fill-mode/text-fill-mode.d.ts +3 -0
- package/dist/shared/components/fill-mode/toggle-fill-mode.d.ts +3 -0
- package/dist/shared/components/form-renderer-registration.d.ts +5 -0
- package/dist/shared/components/form-renderers.d.ts +9 -0
- package/dist/shared/components/index.d.ts +2 -0
- package/dist/shared/components/render-widget.d.ts +12 -0
- package/dist/shared/components/types.d.ts +42 -0
- package/dist/shared/hooks/index.d.ts +1 -0
- package/dist/shared/hooks/use-form-widget-state.d.ts +12 -0
- package/dist/shared/hooks/use-form.d.ts +16 -0
- package/dist/shared/index.d.ts +4 -0
- package/dist/shared-preact/components/annotations/form-checkbox.d.ts +12 -0
- package/dist/shared-preact/components/annotations/form-combobox.d.ts +12 -0
- package/dist/shared-preact/components/annotations/form-listbox.d.ts +12 -0
- package/dist/shared-preact/components/annotations/form-radio-button.d.ts +12 -0
- package/dist/shared-preact/components/annotations/form-text-field.d.ts +12 -0
- package/dist/shared-preact/components/fields/checkbox.d.ts +2 -0
- package/dist/shared-preact/components/fields/combobox.d.ts +2 -0
- package/dist/shared-preact/components/fields/listbox.d.ts +2 -0
- package/dist/shared-preact/components/fields/push-button.d.ts +2 -0
- package/dist/shared-preact/components/fields/radio-button.d.ts +2 -0
- package/dist/shared-preact/components/fields/style.d.ts +6 -0
- package/dist/shared-preact/components/fields/text.d.ts +2 -0
- package/dist/shared-preact/components/fill-mode/combobox-fill-mode.d.ts +3 -0
- package/dist/shared-preact/components/fill-mode/listbox-fill-mode.d.ts +3 -0
- package/dist/shared-preact/components/fill-mode/push-button-fill-mode.d.ts +3 -0
- package/dist/shared-preact/components/fill-mode/radio-button-fill-mode.d.ts +3 -0
- package/dist/shared-preact/components/fill-mode/text-fill-mode.d.ts +3 -0
- package/dist/shared-preact/components/fill-mode/toggle-fill-mode.d.ts +3 -0
- package/dist/shared-preact/components/form-renderer-registration.d.ts +5 -0
- package/dist/shared-preact/components/form-renderers.d.ts +9 -0
- package/dist/shared-preact/components/index.d.ts +2 -0
- package/dist/shared-preact/components/render-widget.d.ts +12 -0
- package/dist/shared-preact/components/types.d.ts +42 -0
- package/dist/shared-preact/hooks/index.d.ts +1 -0
- package/dist/shared-preact/hooks/use-form-widget-state.d.ts +12 -0
- package/dist/shared-preact/hooks/use-form.d.ts +16 -0
- package/dist/shared-preact/index.d.ts +4 -0
- package/dist/shared-react/components/annotations/form-checkbox.d.ts +12 -0
- package/dist/shared-react/components/annotations/form-combobox.d.ts +12 -0
- package/dist/shared-react/components/annotations/form-listbox.d.ts +12 -0
- package/dist/shared-react/components/annotations/form-radio-button.d.ts +12 -0
- package/dist/shared-react/components/annotations/form-text-field.d.ts +12 -0
- package/dist/shared-react/components/fields/checkbox.d.ts +2 -0
- package/dist/shared-react/components/fields/combobox.d.ts +2 -0
- package/dist/shared-react/components/fields/listbox.d.ts +2 -0
- package/dist/shared-react/components/fields/push-button.d.ts +2 -0
- package/dist/shared-react/components/fields/radio-button.d.ts +2 -0
- package/dist/shared-react/components/fields/style.d.ts +6 -0
- package/dist/shared-react/components/fields/text.d.ts +2 -0
- package/dist/shared-react/components/fill-mode/combobox-fill-mode.d.ts +3 -0
- package/dist/shared-react/components/fill-mode/listbox-fill-mode.d.ts +3 -0
- package/dist/shared-react/components/fill-mode/push-button-fill-mode.d.ts +3 -0
- package/dist/shared-react/components/fill-mode/radio-button-fill-mode.d.ts +3 -0
- package/dist/shared-react/components/fill-mode/text-fill-mode.d.ts +3 -0
- package/dist/shared-react/components/fill-mode/toggle-fill-mode.d.ts +3 -0
- package/dist/shared-react/components/form-renderer-registration.d.ts +5 -0
- package/dist/shared-react/components/form-renderers.d.ts +9 -0
- package/dist/shared-react/components/index.d.ts +2 -0
- package/dist/shared-react/components/render-widget.d.ts +12 -0
- package/dist/shared-react/components/types.d.ts +42 -0
- package/dist/shared-react/hooks/index.d.ts +1 -0
- package/dist/shared-react/hooks/use-form-widget-state.d.ts +12 -0
- package/dist/shared-react/hooks/use-form.d.ts +16 -0
- package/dist/shared-react/index.d.ts +4 -0
- package/dist/svelte/components/FormRendererRegistration.svelte.d.ts +18 -0
- package/dist/svelte/components/RenderWidget.svelte.d.ts +11 -0
- package/dist/svelte/components/annotations/FormCheckbox.svelte.d.ts +5 -0
- package/dist/svelte/components/annotations/FormCombobox.svelte.d.ts +5 -0
- package/dist/svelte/components/annotations/FormListbox.svelte.d.ts +5 -0
- package/dist/svelte/components/annotations/FormRadioButton.svelte.d.ts +5 -0
- package/dist/svelte/components/annotations/FormTextField.svelte.d.ts +5 -0
- package/dist/svelte/components/fields/ComboboxField.svelte.d.ts +4 -0
- package/dist/svelte/components/fields/ListboxField.svelte.d.ts +4 -0
- package/dist/svelte/components/fields/TextField.svelte.d.ts +4 -0
- package/dist/svelte/components/fill-mode/ComboboxFillMode.svelte.d.ts +5 -0
- package/dist/svelte/components/fill-mode/ListboxFillMode.svelte.d.ts +5 -0
- package/dist/svelte/components/fill-mode/RadioButtonFillMode.svelte.d.ts +5 -0
- package/dist/svelte/components/fill-mode/TextFillMode.svelte.d.ts +5 -0
- package/dist/svelte/components/fill-mode/ToggleFillMode.svelte.d.ts +5 -0
- package/dist/svelte/components/form-renderers.d.ts +9 -0
- package/dist/svelte/components/previews/CheckboxPreview.svelte.d.ts +9 -0
- package/dist/svelte/components/previews/ListboxPreview.svelte.d.ts +9 -0
- package/dist/svelte/components/previews/RadioButtonPreview.svelte.d.ts +9 -0
- package/dist/svelte/components/previews/TextFieldPreview.svelte.d.ts +9 -0
- package/dist/svelte/hooks/index.d.ts +2 -0
- package/dist/svelte/hooks/use-form-widget-state.svelte.d.ts +12 -0
- package/dist/svelte/hooks/use-form.svelte.d.ts +14 -0
- package/dist/svelte/index.cjs +2 -0
- package/dist/svelte/index.cjs.map +1 -0
- package/dist/svelte/index.d.ts +3 -0
- package/dist/svelte/index.js +1567 -0
- package/dist/svelte/index.js.map +1 -0
- package/dist/vue/components/annotations/form-checkbox.vue.d.ts +6 -0
- package/dist/vue/components/annotations/form-combobox.vue.d.ts +6 -0
- package/dist/vue/components/annotations/form-listbox.vue.d.ts +6 -0
- package/dist/vue/components/annotations/form-radio-button.vue.d.ts +6 -0
- package/dist/vue/components/annotations/form-text-field.vue.d.ts +6 -0
- package/dist/vue/components/fields/combobox-field.vue.d.ts +4 -0
- package/dist/vue/components/fields/listbox-field.vue.d.ts +4 -0
- package/dist/vue/components/fields/style.d.ts +6 -0
- package/dist/vue/components/fields/text-field.vue.d.ts +4 -0
- package/dist/vue/components/fill-mode/combobox-fill-mode.vue.d.ts +6 -0
- package/dist/vue/components/fill-mode/listbox-fill-mode.vue.d.ts +6 -0
- package/dist/vue/components/fill-mode/radio-button-fill-mode.vue.d.ts +6 -0
- package/dist/vue/components/fill-mode/text-fill-mode.vue.d.ts +6 -0
- package/dist/vue/components/fill-mode/toggle-fill-mode.vue.d.ts +6 -0
- package/dist/vue/components/form-renderer-registration.vue.d.ts +13 -0
- package/dist/vue/components/form-renderers.d.ts +3 -0
- package/dist/vue/components/previews/checkbox-preview.vue.d.ts +10 -0
- package/dist/vue/components/previews/listbox-preview.vue.d.ts +10 -0
- package/dist/vue/components/previews/radio-button-preview.vue.d.ts +10 -0
- package/dist/vue/components/previews/text-field-preview.vue.d.ts +10 -0
- package/dist/vue/components/render-widget.vue.d.ts +15 -0
- package/dist/vue/hooks/index.d.ts +2 -0
- package/dist/vue/hooks/use-form-widget-state.d.ts +12 -0
- package/dist/vue/hooks/use-form.d.ts +12 -0
- package/dist/vue/index.cjs +2 -0
- package/dist/vue/index.cjs.map +1 -0
- package/dist/vue/index.d.ts +3 -0
- package/dist/vue/index.js +1643 -0
- package/dist/vue/index.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/vue/components/annotations/form-text-field.vue","../../src/vue/components/annotations/form-checkbox.vue","../../src/vue/components/annotations/form-radio-button.vue","../../src/vue/components/annotations/form-combobox.vue","../../src/vue/components/annotations/form-listbox.vue","../../src/vue/hooks/use-form.ts","../../src/vue/hooks/use-form-widget-state.ts","../../src/vue/components/render-widget.vue","../../src/vue/components/fields/style.ts","../../src/vue/components/fields/text-field.vue","../../src/vue/components/fill-mode/text-fill-mode.vue","../../src/vue/components/fill-mode/toggle-fill-mode.vue","../../src/vue/components/fill-mode/radio-button-fill-mode.vue","../../src/vue/components/fields/combobox-field.vue","../../src/vue/components/fill-mode/combobox-fill-mode.vue","../../src/vue/components/fields/listbox-field.vue","../../src/vue/components/fill-mode/listbox-fill-mode.vue","../../src/vue/components/previews/text-field-preview.vue","../../src/vue/components/previews/checkbox-preview.vue","../../src/vue/components/previews/radio-button-preview.vue","../../src/vue/components/previews/listbox-preview.vue","../../src/vue/components/form-renderers.ts","../../src/vue/components/form-renderer-registration.vue","../../src/vue/index.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport type { PdfWidgetAnnoObject, PdfTextWidgetAnnoField } from '@embedpdf/models';\nimport {\n PDF_FORM_FIELD_TYPE,\n PDF_FORM_FIELD_FLAG,\n standardFontCssProperties,\n} from '@embedpdf/models';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\n\nconst isHovered = ref(false);\n\nconst object = computed(() => props.currentObject);\nconst field = computed(() => object.value.field);\nconst isTextField = computed(() => field.value.type === PDF_FORM_FIELD_TYPE.TEXTFIELD);\nconst value = computed(() =>\n isTextField.value ? (field.value as PdfTextWidgetAnnoField).value : '',\n);\nconst isComb = computed(\n () =>\n isTextField.value &&\n !!(field.value.flag & PDF_FORM_FIELD_FLAG.TEXT_COMB) &&\n !!(field.value as PdfTextWidgetAnnoField).maxLen,\n);\nconst isMultiline = computed(\n () => isTextField.value && !!(field.value.flag & PDF_FORM_FIELD_FLAG.TEXT_MULTIPLINE),\n);\nconst maxLen = computed(() =>\n isTextField.value ? (field.value as PdfTextWidgetAnnoField).maxLen : undefined,\n);\nconst borderWidth = computed(() => (object.value.strokeWidth ?? 1) * props.scale);\nconst fontCss = computed(() => standardFontCssProperties(object.value.fontFamily));\nconst fontSize = computed(() => (object.value.fontSize ?? 12) * props.scale);\nconst fontColor = computed(() => object.value.fontColor ?? '#000000');\n\nconst cellWidth = computed(() =>\n isComb.value && maxLen.value ? (object.value.rect.size.width * props.scale) / maxLen.value : 0,\n);\nconst chars = computed(() => (value.value ?? '').split(''));\n</script>\n\n<template>\n <div\n @pointerdown=\"\n (e) => {\n if (!props.isSelected) props.onClick?.(e);\n }\n \"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n :style=\"{\n position: 'absolute',\n inset: '0',\n background: object.color ?? 'rgba(255, 255, 255, 0.9)',\n border: `${borderWidth}px solid ${object.strokeColor ?? 'rgba(0, 0, 0, 0.2)'}`,\n outline: isHovered || props.isSelected ? '1px solid rgba(66, 133, 244, 0.5)' : 'none',\n outlineOffset: '-1px',\n boxSizing: 'border-box',\n pointerEvents: 'auto',\n cursor: props.isSelected ? 'move' : 'pointer',\n display: 'flex',\n alignItems: isMultiline ? 'flex-start' : 'center',\n overflow: 'hidden',\n padding: !isComb ? `${borderWidth}px ${borderWidth}px` : undefined,\n }\"\n >\n <template v-if=\"isComb && maxLen\">\n <div style=\"position: relative; width: 100%; height: 100%\">\n <span\n v-for=\"(_, i) in Array.from({ length: maxLen })\"\n :key=\"i\"\n :style=\"{\n position: 'absolute',\n top: '0',\n left: `${i * cellWidth}px`,\n width: `${cellWidth}px`,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight:\n i < maxLen - 1 ? `1px solid ${object.strokeColor ?? 'rgba(0, 0, 0, 0.2)'}` : 'none',\n boxSizing: 'border-box',\n fontSize: `${fontSize}px`,\n fontFamily: fontCss.fontFamily,\n fontWeight: fontCss.fontWeight,\n fontStyle: fontCss.fontStyle,\n color: fontColor,\n lineHeight: '1.2',\n }\"\n >{{ chars[i] || '' }}</span\n >\n </div>\n </template>\n <template v-else>\n <span\n :style=\"{\n fontSize: `${fontSize}px`,\n fontFamily: fontCss.fontFamily,\n fontWeight: fontCss.fontWeight,\n fontStyle: fontCss.fontStyle,\n color: fontColor,\n lineHeight: '1.2',\n display: 'block',\n width: '100%',\n whiteSpace: isMultiline ? 'pre-wrap' : 'nowrap',\n wordBreak: isMultiline ? 'break-word' : 'normal',\n overflowWrap: isMultiline ? 'break-word' : 'normal',\n overflow: 'hidden',\n textOverflow: isMultiline ? 'clip' : 'ellipsis',\n }\"\n >{{ value }}</span\n >\n </template>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { isWidgetChecked } from '@embedpdf/models';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\n\nconst isHovered = ref(false);\n\nconst object = computed(() => props.currentObject);\nconst isChecked = computed(() => isWidgetChecked(object.value));\nconst borderWidth = computed(() => (object.value.strokeWidth ?? 1) * props.scale);\n</script>\n\n<template>\n <div\n @pointerdown=\"\n (e) => {\n if (!props.isSelected) props.onClick?.(e);\n }\n \"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n :style=\"{\n position: 'absolute',\n inset: '0',\n background: object.color ?? '#FFFFFF',\n border: `${borderWidth}px solid ${object.strokeColor ?? '#000000'}`,\n outline: isHovered || props.isSelected ? '1px solid rgba(66, 133, 244, 0.5)' : 'none',\n outlineOffset: '-1px',\n boxSizing: 'border-box',\n pointerEvents: 'auto',\n cursor: props.isSelected ? 'move' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }\"\n >\n <svg v-if=\"isChecked\" viewBox=\"0 0 100 100\" style=\"width: 100%; height: 100%\">\n <path\n d=\"M28 48C27.45 50.21 29.45 63.13 30 67C30.55 69.21 34.58 72 39 72C44.52 71.45 76.55 32.55 76 32C77.1 31.45 76 25 76 25C74.34 22.24 68 25.45 68 26C68 26 43.55 53 43 53C41.34 53 40.55 41.1 40 40C33.37 36.69 29.1 45.79 28 48Z\"\n fill=\"#000000\"\n />\n </svg>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { isWidgetChecked } from '@embedpdf/models';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\n\nconst isHovered = ref(false);\n\nconst object = computed(() => props.currentObject);\nconst isChecked = computed(() => isWidgetChecked(object.value));\nconst borderWidth = computed(() => (object.value.strokeWidth ?? 1) * props.scale);\n</script>\n\n<template>\n <div\n @pointerdown=\"\n (e) => {\n if (!props.isSelected) props.onClick?.(e);\n }\n \"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n :style=\"{\n position: 'absolute',\n inset: '0',\n background: object.color ?? '#FFFFFF',\n border: `${borderWidth}px solid ${object.strokeColor ?? '#000000'}`,\n borderRadius: '50%',\n outline: isHovered || props.isSelected ? '1px solid rgba(66, 133, 244, 0.5)' : 'none',\n outlineOffset: '-1px',\n boxSizing: 'border-box',\n pointerEvents: 'auto',\n cursor: props.isSelected ? 'move' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }\"\n >\n <div\n v-if=\"isChecked\"\n :style=\"{\n width: '50%',\n height: '50%',\n borderRadius: '50%',\n background: '#000000',\n }\"\n ></div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { PDF_FORM_FIELD_TYPE, standardFontCssProperties } from '@embedpdf/models';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\n\nconst isHovered = ref(false);\n\nconst object = computed(() => props.currentObject);\nconst field = computed(() => object.value.field);\nconst options = computed(() =>\n field.value.type === PDF_FORM_FIELD_TYPE.COMBOBOX ? field.value.options : [],\n);\nconst selectedLabel = computed(() => options.value.find((o) => o.isSelected)?.label ?? '');\nconst borderWidth = computed(() => (object.value.strokeWidth ?? 1) * props.scale);\nconst fontSize = computed(() => (object.value.fontSize ?? 12) * props.scale);\nconst fontCss = computed(() => standardFontCssProperties(object.value.fontFamily));\n</script>\n\n<template>\n <div\n @pointerdown=\"\n (e) => {\n if (!props.isSelected) props.onClick?.(e);\n }\n \"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n :style=\"{\n position: 'absolute',\n inset: '0',\n background: object.color ?? '#FFFFFF',\n border: `${borderWidth}px solid ${object.strokeColor ?? '#000000'}`,\n outline: isHovered || props.isSelected ? '1px solid rgba(66, 133, 244, 0.5)' : 'none',\n outlineOffset: '-1px',\n boxSizing: 'border-box',\n pointerEvents: 'auto',\n cursor: props.isSelected ? 'move' : 'pointer',\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n }\"\n >\n <span\n :style=\"{\n flex: '1',\n padding: `0 ${4 * props.scale}px`,\n fontSize: `${fontSize}px`,\n fontFamily: fontCss.fontFamily,\n fontWeight: fontCss.fontWeight,\n fontStyle: fontCss.fontStyle,\n color: object.fontColor ?? '#000000',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }\"\n >{{ selectedLabel }}</span\n >\n <div\n :style=\"{\n width: `${13 * props.scale}px`,\n minWidth: `${13 * props.scale}px`,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderLeft: `1px solid ${object.strokeColor ?? '#000000'}`,\n }\"\n >\n <svg\n viewBox=\"0 0 10 6\"\n :style=\"{ width: `${8 * props.scale}px`, height: `${5 * props.scale}px` }\"\n fill=\"currentColor\"\n >\n <path d=\"M0 0 L5 6 L10 0 Z\" />\n </svg>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { PDF_FORM_FIELD_TYPE, standardFontCssProperties } from '@embedpdf/models';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\n\nconst isHovered = ref(false);\n\nconst object = computed(() => props.currentObject);\nconst field = computed(() => object.value.field);\nconst options = computed(() =>\n field.value.type === PDF_FORM_FIELD_TYPE.LISTBOX ? field.value.options : [],\n);\nconst borderWidth = computed(() => (object.value.strokeWidth ?? 1) * props.scale);\nconst fontSize = computed(() => (object.value.fontSize ?? 12) * props.scale);\nconst lineHeight = computed(() => fontSize.value * 1.2);\nconst fontCss = computed(() => standardFontCssProperties(object.value.fontFamily));\n</script>\n\n<template>\n <div\n @pointerdown=\"\n (e) => {\n if (!props.isSelected) props.onClick?.(e);\n }\n \"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n :style=\"{\n position: 'absolute',\n inset: '0',\n background: object.color ?? '#FFFFFF',\n border: `${borderWidth}px solid ${object.strokeColor ?? '#000000'}`,\n outline: isHovered || props.isSelected ? '1px solid rgba(66, 133, 244, 0.5)' : 'none',\n outlineOffset: '-1px',\n boxSizing: 'border-box',\n pointerEvents: 'auto',\n cursor: props.isSelected ? 'move' : 'pointer',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }\"\n >\n <div\n v-for=\"(opt, i) in options\"\n :key=\"i\"\n :style=\"{\n padding: `0 ${4 * props.scale}px`,\n fontSize: `${fontSize}px`,\n lineHeight: `${lineHeight}px`,\n fontFamily: fontCss.fontFamily,\n fontWeight: fontCss.fontWeight,\n fontStyle: fontCss.fontStyle,\n color: opt.isSelected ? '#FFFFFF' : (object.fontColor ?? '#000000'),\n background: opt.isSelected ? 'rgba(0, 51, 113, 1)' : 'transparent',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }\"\n >\n {{ opt.label }}\n </div>\n </div>\n</template>\n","import { ref, watch, computed, toValue, type MaybeRefOrGetter } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { FormPlugin, FormDocumentState, initialDocumentState } from '@embedpdf/plugin-form';\n\nexport const useFormPlugin = () => usePlugin<FormPlugin>(FormPlugin.id);\nexport const useFormCapability = () => useCapability<FormPlugin>(FormPlugin.id);\n\nexport const useFormDocumentState = (documentId: MaybeRefOrGetter<string>) => {\n const { provides } = useFormCapability();\n const state = ref<FormDocumentState>({ ...initialDocumentState });\n\n watch(\n [provides, () => toValue(documentId)],\n ([providesValue, docId], _, onCleanup) => {\n if (providesValue && docId) {\n const scope = providesValue.forDocument(docId);\n state.value = scope.getState();\n\n const unsubscribe = scope.onStateChange((newState) => {\n state.value = newState;\n });\n onCleanup(unsubscribe);\n } else {\n state.value = { ...initialDocumentState };\n }\n },\n { immediate: true },\n );\n\n return {\n state,\n provides: computed(() => provides.value?.forDocument(toValue(documentId)) ?? null),\n };\n};\n","import { ref, computed, watchEffect } from 'vue';\nimport { PDF_FORM_FIELD_FLAG, PdfWidgetAnnoField, PdfWidgetAnnoObject } from '@embedpdf/models';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport { useFormCapability } from './use-form';\n\nexport function useFormWidgetState(props: AnnotationRendererProps<PdfWidgetAnnoObject>) {\n const { provides: formProvides } = useFormCapability();\n const renderKey = ref(0);\n\n const scope = computed(() => formProvides.value?.forDocument(props.documentId) ?? null);\n const annotation = computed(() => props.currentObject);\n const field = computed(() => annotation.value.field);\n const scale = computed(() => props.scale);\n const pageIndex = computed(() => props.pageIndex);\n const isReadOnly = computed(() => !!(field.value.flag & PDF_FORM_FIELD_FLAG.READONLY));\n\n watchEffect((onCleanup) => {\n const s = scope.value;\n if (!s) return;\n const id = annotation.value.id;\n const unsubscribe = s.onFieldValueChange((event) => {\n if (event.annotationId === id) {\n renderKey.value++;\n }\n });\n onCleanup(unsubscribe);\n });\n\n function handleChangeField(newField: PdfWidgetAnnoField) {\n const s = scope.value;\n if (!s) return;\n s.setFormFieldValues(pageIndex.value, annotation.value, newField);\n }\n\n return {\n annotation,\n field,\n scale,\n pageIndex,\n scope,\n handleChangeField,\n renderKey,\n isReadOnly,\n };\n}\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\nimport { useFormCapability } from '../hooks/use-form';\nimport { deepToRaw } from '@embedpdf/utils/vue';\n\nconst props = withDefaults(\n defineProps<{\n pageIndex: number;\n annotation: PdfWidgetAnnoObject;\n scaleFactor?: number;\n renderKey?: number;\n style?: Record<string, string>;\n }>(),\n {\n scaleFactor: 1,\n renderKey: 0,\n style: () => ({}),\n },\n);\n\nconst { provides: formProvides } = useFormCapability();\nconst imageUrl = ref<string | null>(null);\nlet prevUrl: string | null = null;\n\nconst annotationId = computed(() => props.annotation.id);\nconst rectWidth = computed(() => props.annotation.rect.size.width);\nconst rectHeight = computed(() => props.annotation.rect.size.height);\n\nwatch(\n () => [\n props.pageIndex,\n props.scaleFactor,\n props.renderKey,\n annotationId.value,\n rectWidth.value,\n rectHeight.value,\n formProvides.value,\n ],\n (_, __, onCleanup) => {\n const fp = formProvides.value;\n if (!fp) return;\n\n const task = fp.renderWidget({\n pageIndex: props.pageIndex,\n annotation: deepToRaw(props.annotation),\n options: {\n scaleFactor: props.scaleFactor,\n dpr: window.devicePixelRatio,\n },\n });\n\n task.wait((blob) => {\n const url = URL.createObjectURL(blob);\n if (prevUrl) {\n URL.revokeObjectURL(prevUrl);\n }\n prevUrl = url;\n imageUrl.value = url;\n }, ignore);\n\n onCleanup(() => {\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n if (prevUrl) {\n URL.revokeObjectURL(prevUrl);\n prevUrl = null;\n }\n });\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <img\n v-if=\"imageUrl\"\n :src=\"imageUrl\"\n alt=\"\"\n :style=\"{ width: '100%', height: '100%', display: 'block', ...style }\"\n />\n</template>\n","import type { CSSProperties } from 'vue';\n\nconst baseStyle: CSSProperties = {\n position: 'absolute',\n top: 0,\n left: 0,\n padding: 0,\n margin: 0,\n width: '100%',\n height: '100%',\n};\n\nconst baseInputStyle: CSSProperties = {\n ...baseStyle,\n borderRadius: 0,\n outline: 'none',\n boxSizing: 'border-box',\n};\n\nexport const checkboxStyle: CSSProperties = {\n ...baseStyle,\n borderRadius: 0,\n backgroundColor: 'transparent',\n borderWidth: 0,\n borderStyle: 'none',\n outline: 'none',\n};\n\nexport const inputStyle: CSSProperties = baseInputStyle;\n\nexport const selectStyle: CSSProperties = {\n ...baseInputStyle,\n cursor: 'inherit',\n};\n\nexport const textareaStyle: CSSProperties = {\n ...baseInputStyle,\n resize: 'none',\n lineHeight: 1.14,\n};\n\nexport const buttonStyle: CSSProperties = baseStyle;\n","<script setup lang=\"ts\">\nimport { computed, ref, watch, type CSSProperties } from 'vue';\nimport { PDF_FORM_FIELD_FLAG, standardFontCssProperties } from '@embedpdf/models';\nimport type { TextFieldProps } from '../../../shared/components/types';\nimport { inputStyle, textareaStyle } from './style';\nimport { useIOSZoomPrevention } from '@embedpdf/plugin-annotation/vue';\n\nconst props = defineProps<TextFieldProps>();\n\nconst field = computed(() => props.annotation.field);\nconst flag = computed(() => field.value.flag);\nconst name = computed(() => field.value.name);\nconst value = computed(() => field.value.value);\n\nconst localValue = ref(value.value);\n\nwatch(value, (v) => {\n if (!props.syncExternalValue) return;\n localValue.value = v;\n});\n\nfunction changeValue(evt: Event) {\n const newValue = (evt.target as HTMLInputElement).value;\n localValue.value = newValue;\n props.onChangeField?.({ ...field.value, value: newValue });\n}\n\nconst bw = computed(() => (props.annotation.strokeWidth ?? 0) * props.scale);\nconst fontCss = computed(() => standardFontCssProperties(props.annotation.fontFamily));\nconst computedFontPx = computed(() => props.annotation.fontSize * props.scale);\n\nconst iosCompensation = useIOSZoomPrevention(computedFontPx, true);\n\nconst visualStyle = computed<CSSProperties>(() => ({\n backgroundColor: props.annotation.color ?? 'transparent',\n borderStyle: 'solid',\n borderColor: props.annotation.strokeColor ?? 'transparent',\n borderWidth: `${bw.value}px`,\n color: props.annotation.fontColor,\n ...fontCss.value,\n fontSize: `${iosCompensation.value.adjustedFontPx}px`,\n padding: `${bw.value}px ${bw.value}px`,\n}));\n\nconst isDisabled = computed(\n () => !props.isEditable || !!(flag.value & PDF_FORM_FIELD_FLAG.READONLY),\n);\nconst isRequired = computed(() => !!(flag.value & PDF_FORM_FIELD_FLAG.REQUIRED));\nconst isPassword = computed(() => !!(flag.value & PDF_FORM_FIELD_FLAG.TEXT_PASSWORD));\nconst isMultipleLine = computed(() => !!(flag.value & PDF_FORM_FIELD_FLAG.TEXT_MULTIPLINE));\nconst isComb = computed(() => !!(flag.value & PDF_FORM_FIELD_FLAG.TEXT_COMB));\nconst maxLen = computed(() => field.value.maxLen);\n\nconst cellWidth = computed(() =>\n isComb.value && maxLen.value\n ? (props.annotation.rect.size.width * props.scale) / maxLen.value\n : 0,\n);\nconst chars = computed(() => (localValue.value || '').split(''));\nconst caretIndex = computed(() => chars.value.length);\n\nconst caretVisible = ref(true);\nlet caretInterval: ReturnType<typeof setInterval> | undefined;\n\nwatch(\n caretIndex,\n () => {\n caretVisible.value = true;\n clearInterval(caretInterval);\n caretInterval = setInterval(() => {\n caretVisible.value = !caretVisible.value;\n }, 530);\n },\n { immediate: true },\n);\n\nconst combContainerStyle = computed<CSSProperties>(() => ({\n position: 'relative',\n width: '100%',\n height: '100%',\n borderRadius: 0,\n boxSizing: 'border-box',\n backgroundColor: props.annotation.color ?? 'transparent',\n borderStyle: 'solid',\n borderColor: props.annotation.strokeColor ?? 'transparent',\n borderWidth: `${bw.value}px`,\n}));\n\nconst cellFontStyle = computed<CSSProperties>(() => ({\n color: props.annotation.fontColor,\n ...fontCss.value,\n fontSize: `${iosCompensation.value.adjustedFontPx}px`,\n}));\n\nfunction setInputRef(el: any) {\n props.inputRef?.(el as HTMLElement | null);\n}\n</script>\n\n<template>\n <template v-if=\"isComb && maxLen\">\n <div v-if=\"iosCompensation.wrapperStyle\" :style=\"iosCompensation.wrapperStyle\">\n <div :style=\"combContainerStyle\">\n <input\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :type=\"isPassword ? 'password' : 'text'\"\n :name=\"name\"\n :aria-label=\"name\"\n :value=\"localValue\"\n :maxlength=\"maxLen\"\n @focus=\"props.onFocus?.()\"\n @input=\"changeValue\"\n @blur=\"props.onBlur?.()\"\n :style=\"{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n zIndex: 1,\n }\"\n />\n <span\n v-for=\"(_, i) in Array.from({ length: maxLen })\"\n :key=\"i\"\n :style=\"{\n ...cellFontStyle,\n position: 'absolute',\n top: 0,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n left: `${i * cellWidth}px`,\n width: `${cellWidth}px`,\n }\"\n >{{ chars[i] || '' }}</span\n >\n <span\n v-if=\"caretIndex < maxLen\"\n :style=\"{\n position: 'absolute',\n top: '15%',\n height: '70%',\n width: '1px',\n backgroundColor: 'black',\n pointerEvents: 'none',\n left: `${caretIndex * cellWidth + cellWidth / 2}px`,\n opacity: caretVisible ? 1 : 0,\n }\"\n ></span>\n </div>\n </div>\n <div v-else :style=\"combContainerStyle\">\n <input\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :type=\"isPassword ? 'password' : 'text'\"\n :name=\"name\"\n :aria-label=\"name\"\n :value=\"localValue\"\n :maxlength=\"maxLen\"\n @focus=\"props.onFocus?.()\"\n @input=\"changeValue\"\n @blur=\"props.onBlur?.()\"\n :style=\"{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n zIndex: 1,\n }\"\n />\n <span\n v-for=\"(_, i) in Array.from({ length: maxLen })\"\n :key=\"i\"\n :style=\"{\n ...cellFontStyle,\n position: 'absolute',\n top: 0,\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n left: `${i * cellWidth}px`,\n width: `${cellWidth}px`,\n }\"\n >{{ chars[i] || '' }}</span\n >\n <span\n v-if=\"caretIndex < maxLen\"\n :style=\"{\n position: 'absolute',\n top: '15%',\n height: '70%',\n width: '1px',\n backgroundColor: 'black',\n pointerEvents: 'none',\n left: `${caretIndex * cellWidth + cellWidth / 2}px`,\n opacity: caretVisible ? 1 : 0,\n }\"\n ></span>\n </div>\n </template>\n <template v-else-if=\"isMultipleLine\">\n <div v-if=\"iosCompensation.wrapperStyle\" :style=\"iosCompensation.wrapperStyle\">\n <textarea\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :name=\"name\"\n :aria-label=\"name\"\n :value=\"localValue\"\n :maxlength=\"maxLen\"\n @focus=\"props.onFocus?.()\"\n @input=\"changeValue\"\n @blur=\"props.onBlur?.()\"\n :style=\"{ ...textareaStyle, ...visualStyle }\"\n ></textarea>\n </div>\n <textarea\n v-else\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :name=\"name\"\n :aria-label=\"name\"\n :value=\"localValue\"\n :maxlength=\"maxLen\"\n @focus=\"props.onFocus?.()\"\n @input=\"changeValue\"\n @blur=\"props.onBlur?.()\"\n :style=\"{ ...textareaStyle, ...visualStyle }\"\n ></textarea>\n </template>\n <template v-else>\n <div v-if=\"iosCompensation.wrapperStyle\" :style=\"iosCompensation.wrapperStyle\">\n <input\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :type=\"isPassword ? 'password' : 'text'\"\n :name=\"name\"\n :aria-label=\"name\"\n :value=\"localValue\"\n :maxlength=\"maxLen\"\n @focus=\"props.onFocus?.()\"\n @input=\"changeValue\"\n @blur=\"props.onBlur?.()\"\n :style=\"{ ...inputStyle, ...visualStyle }\"\n />\n </div>\n <input\n v-else\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :type=\"isPassword ? 'password' : 'text'\"\n :name=\"name\"\n :aria-label=\"name\"\n :value=\"localValue\"\n :maxlength=\"maxLen\"\n @focus=\"props.onFocus?.()\"\n @input=\"changeValue\"\n @blur=\"props.onBlur?.()\"\n :style=\"{ ...inputStyle, ...visualStyle }\"\n />\n </template>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport { useFormWidgetState } from '../../hooks/use-form-widget-state';\nimport { useFormDocumentState } from '../../hooks/use-form';\nimport RenderWidget from '../render-widget.vue';\nimport TextField from '../fields/text-field.vue';\nimport type { TextFieldProps } from '../../../shared/components/types';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\nconst ws = useFormWidgetState(props);\nconst { state: formState } = useFormDocumentState(() => props.documentId);\n\nconst editing = ref(false);\nconst inputEl = ref<HTMLElement | null>(null);\n\nconst isFocused = computed(() => formState.value.selectedFieldId === ws.annotation.value.id);\n\nwatch(isFocused, (focused) => {\n if (focused && inputEl.value && document.activeElement !== inputEl.value) {\n inputEl.value.focus();\n }\n});\n\nfunction handleFocus() {\n if (ws.isReadOnly.value) return;\n ws.scope.value?.selectField(ws.annotation.value.id);\n editing.value = true;\n}\n\nfunction handleBlur() {\n editing.value = false;\n if (ws.scope.value?.getSelectedFieldId() === ws.annotation.value.id) {\n ws.scope.value?.deselectField();\n }\n}\n\nfunction handleInputRef(el: HTMLElement | null) {\n inputEl.value = el;\n}\n</script>\n\n<template>\n <div\n :style=\"{\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n pointerEvents: 'auto',\n outline: 'none',\n }\"\n >\n <RenderWidget\n :pageIndex=\"ws.pageIndex.value\"\n :annotation=\"ws.annotation.value\"\n :scaleFactor=\"ws.scale.value\"\n :renderKey=\"ws.renderKey.value\"\n :style=\"{\n position: 'absolute',\n inset: '0',\n pointerEvents: 'none',\n visibility: editing ? 'hidden' : 'visible',\n }\"\n />\n <div\n :style=\"{\n position: 'absolute',\n inset: '0',\n zIndex: 1,\n opacity: editing ? 1 : 0,\n }\"\n >\n <TextField\n :annotation=\"ws.annotation.value as TextFieldProps['annotation']\"\n :scale=\"ws.scale.value\"\n :pageIndex=\"ws.pageIndex.value\"\n :isEditable=\"true\"\n :onChangeField=\"ws.handleChangeField\"\n :syncExternalValue=\"!editing\"\n :onFocus=\"handleFocus\"\n :onBlur=\"handleBlur\"\n :inputRef=\"handleInputRef\"\n />\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { isWidgetChecked } from '@embedpdf/models';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport { useFormWidgetState } from '../../hooks/use-form-widget-state';\nimport { useFormDocumentState } from '../../hooks/use-form';\nimport RenderWidget from '../render-widget.vue';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\nconst ws = useFormWidgetState(props);\nconst { state: formState } = useFormDocumentState(() => props.documentId);\n\nconst wrapperEl = ref<HTMLDivElement | null>(null);\n\nconst isFocused = computed(() => formState.value.selectedFieldId === ws.annotation.value.id);\n\nwatch(isFocused, (focused) => {\n if (focused && wrapperEl.value && document.activeElement !== wrapperEl.value) {\n wrapperEl.value.focus();\n }\n});\n\nfunction toggle() {\n if (ws.isReadOnly.value) return;\n const checked = isWidgetChecked(ws.annotation.value);\n const newValue = checked ? 'Off' : (ws.annotation.value.exportValue ?? 'Yes');\n ws.handleChangeField({ ...ws.field.value, value: newValue });\n}\n\nfunction handleClick() {\n if (ws.isReadOnly.value) return;\n ws.scope.value?.selectField(ws.annotation.value.id);\n toggle();\n}\n\nfunction handleFocus() {\n if (ws.isReadOnly.value) return;\n ws.scope.value?.selectField(ws.annotation.value.id);\n}\n\nfunction handleBlur() {\n if (ws.scope.value?.getSelectedFieldId() === ws.annotation.value.id) {\n ws.scope.value?.deselectField();\n }\n}\n\nfunction handleKeyDown(e: KeyboardEvent) {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n toggle();\n }\n}\n</script>\n\n<template>\n <div\n ref=\"wrapperEl\"\n :tabindex=\"ws.isReadOnly.value ? -1 : 0\"\n @click=\"handleClick\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeyDown\"\n :style=\"{\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n cursor: ws.isReadOnly.value ? 'default' : 'pointer',\n pointerEvents: 'auto',\n outline: isFocused ? '2px solid rgba(66, 133, 244, 0.8)' : 'none',\n outlineOffset: '-2px',\n }\"\n >\n <RenderWidget\n :pageIndex=\"ws.pageIndex.value\"\n :annotation=\"ws.annotation.value\"\n :scaleFactor=\"ws.scale.value\"\n :renderKey=\"ws.renderKey.value\"\n :style=\"{ pointerEvents: 'none' }\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport { isWidgetChecked } from '@embedpdf/models';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport { useFormWidgetState } from '../../hooks/use-form-widget-state';\nimport { useFormDocumentState } from '../../hooks/use-form';\nimport RenderWidget from '../render-widget.vue';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\nconst ws = useFormWidgetState(props);\nconst { state: formState } = useFormDocumentState(() => props.documentId);\n\nconst wrapperEl = ref<HTMLDivElement | null>(null);\n\nconst isFocused = computed(() => formState.value.selectedFieldId === ws.annotation.value.id);\n\nwatch(isFocused, (focused) => {\n if (focused && wrapperEl.value && document.activeElement !== wrapperEl.value) {\n wrapperEl.value.focus();\n }\n});\n\nfunction selectRadio() {\n if (ws.isReadOnly.value) return;\n if (!isWidgetChecked(ws.annotation.value) && ws.annotation.value.exportValue) {\n ws.handleChangeField({ ...ws.field.value, value: ws.annotation.value.exportValue });\n }\n}\n\nfunction handleClick() {\n if (ws.isReadOnly.value) return;\n ws.scope.value?.selectField(ws.annotation.value.id);\n selectRadio();\n}\n\nfunction handleFocus() {\n if (ws.isReadOnly.value) return;\n ws.scope.value?.selectField(ws.annotation.value.id);\n}\n\nfunction handleBlur() {\n if (ws.scope.value?.getSelectedFieldId() === ws.annotation.value.id) {\n ws.scope.value?.deselectField();\n }\n}\n\nfunction handleKeyDown(e: KeyboardEvent) {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n selectRadio();\n }\n}\n</script>\n\n<template>\n <div\n ref=\"wrapperEl\"\n :tabindex=\"ws.isReadOnly.value ? -1 : 0\"\n @click=\"handleClick\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeyDown\"\n :style=\"{\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n cursor: ws.isReadOnly.value ? 'default' : 'pointer',\n pointerEvents: 'auto',\n outline: isFocused ? '2px solid rgba(66, 133, 244, 0.8)' : 'none',\n outlineOffset: '-2px',\n }\"\n >\n <RenderWidget\n :pageIndex=\"ws.pageIndex.value\"\n :annotation=\"ws.annotation.value\"\n :scaleFactor=\"ws.scale.value\"\n :renderKey=\"ws.renderKey.value\"\n :style=\"{ pointerEvents: 'none' }\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { PDF_FORM_FIELD_FLAG } from '@embedpdf/models';\nimport type { ComboboxFieldProps } from '../../../shared/components/types';\nimport { selectStyle } from './style';\n\nconst props = defineProps<ComboboxFieldProps>();\n\nconst field = computed(() => props.annotation.field);\nconst flag = computed(() => field.value.flag);\nconst options = computed(() => field.value.options);\nconst name = computed(() => field.value.alternateName || field.value.name);\nconst isDisabled = computed(\n () => !props.isEditable || !!(flag.value & PDF_FORM_FIELD_FLAG.READONLY),\n);\nconst isRequired = computed(() => !!(flag.value & PDF_FORM_FIELD_FLAG.REQUIRED));\nconst selectedIndex = computed(() => options.value.findIndex((o) => o.isSelected));\n\nfunction handleChange(evt: Event) {\n const select = evt.target as HTMLSelectElement;\n const updatedOptions = options.value.map((opt, i) => ({\n ...opt,\n isSelected: i === select.selectedIndex,\n }));\n props.onChangeField?.({ ...field.value, options: updatedOptions });\n}\n\nfunction setInputRef(el: any) {\n props.inputRef?.(el as HTMLElement | null);\n}\n</script>\n\n<template>\n <select\n :ref=\"setInputRef\"\n :required=\"isRequired\"\n :disabled=\"isDisabled\"\n :name=\"name\"\n :aria-label=\"name\"\n @change=\"handleChange\"\n @blur=\"props.onBlur?.()\"\n :style=\"{ ...selectStyle, opacity: 0 }\"\n >\n <option\n v-for=\"(option, index) in options\"\n :key=\"index\"\n :value=\"option.label\"\n :selected=\"index === selectedIndex\"\n >\n {{ option.label }}\n </option>\n </select>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport { useFormWidgetState } from '../../hooks/use-form-widget-state';\nimport { useFormDocumentState } from '../../hooks/use-form';\nimport RenderWidget from '../render-widget.vue';\nimport ComboboxField from '../fields/combobox-field.vue';\nimport type { ComboboxFieldProps } from '../../../shared/components/types';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\nconst ws = useFormWidgetState(props);\nconst { state: formState } = useFormDocumentState(() => props.documentId);\n\nconst wrapperEl = ref<HTMLDivElement | null>(null);\nconst selectEl = ref<HTMLElement | null>(null);\n\nconst isFocused = computed(() => formState.value.selectedFieldId === ws.annotation.value.id);\n\nwatch(isFocused, (focused) => {\n if (focused && wrapperEl.value && !wrapperEl.value.contains(document.activeElement)) {\n (selectEl.value ?? wrapperEl.value).focus();\n }\n});\n\nfunction handleFocus() {\n ws.scope.value?.selectField(ws.annotation.value.id);\n}\n\nfunction handleBlur() {\n requestAnimationFrame(() => {\n if (wrapperEl.value?.contains(document.activeElement)) return;\n if (ws.scope.value?.getSelectedFieldId() === ws.annotation.value.id) {\n ws.scope.value?.deselectField();\n }\n });\n}\n\nfunction selectInputRef(el: HTMLElement | null) {\n selectEl.value = el;\n}\n</script>\n\n<template>\n <div\n ref=\"wrapperEl\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n :style=\"{\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n cursor: ws.isReadOnly.value ? 'default' : 'pointer',\n pointerEvents: 'auto',\n outline: isFocused ? '2px solid rgba(66, 133, 244, 0.8)' : 'none',\n outlineOffset: '-2px',\n }\"\n >\n <RenderWidget\n :pageIndex=\"ws.pageIndex.value\"\n :annotation=\"ws.annotation.value\"\n :scaleFactor=\"ws.scale.value\"\n :renderKey=\"ws.renderKey.value\"\n :style=\"{ pointerEvents: 'none' }\"\n />\n <ComboboxField\n :annotation=\"ws.annotation.value as ComboboxFieldProps['annotation']\"\n :scale=\"ws.scale.value\"\n :pageIndex=\"ws.pageIndex.value\"\n :isEditable=\"true\"\n :onChangeField=\"ws.handleChangeField\"\n :inputRef=\"selectInputRef\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, type CSSProperties } from 'vue';\nimport { PDF_FORM_FIELD_FLAG, standardFontCssProperties } from '@embedpdf/models';\nimport type { ListboxFieldProps } from '../../../shared/components/types';\n\nconst props = defineProps<ListboxFieldProps>();\n\nconst field = computed(() => props.annotation.field);\nconst flag = computed(() => field.value.flag);\nconst options = computed(() => field.value.options);\nconst isDisabled = computed(\n () => !props.isEditable || !!(flag.value & PDF_FORM_FIELD_FLAG.READONLY),\n);\nconst isMultipleChoice = computed(() => !!(flag.value & PDF_FORM_FIELD_FLAG.CHOICE_MULTL_SELECT));\n\nconst bw = computed(() => (props.annotation.strokeWidth ?? 0) * props.scale);\nconst fontSize = computed(() => (props.annotation.fontSize ?? 12) * props.scale);\nconst lineHeight = computed(() => fontSize.value * 1.2);\nconst fontCss = computed(() => standardFontCssProperties(props.annotation.fontFamily));\n\nconst containerStyle = computed<CSSProperties>(() => ({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n background: props.annotation.color ?? '#FFFFFF',\n borderStyle: 'solid',\n borderColor: props.annotation.strokeColor ?? '#000000',\n borderWidth: `${bw.value}px`,\n boxSizing: 'border-box',\n overflow: 'auto',\n display: 'flex',\n flexDirection: 'column',\n outline: 'none',\n}));\n\nfunction handleOptionClick(clickedIndex: number) {\n if (isDisabled.value) return;\n const updatedOptions = options.value.map((opt, i) => ({\n ...opt,\n isSelected: isMultipleChoice.value\n ? i === clickedIndex\n ? !opt.isSelected\n : opt.isSelected\n : i === clickedIndex,\n }));\n props.onChangeField?.({ ...field.value, options: updatedOptions });\n}\n\nfunction setInputRef(el: any) {\n props.inputRef?.(el as HTMLElement | null);\n}\n</script>\n\n<template>\n <div :ref=\"setInputRef\" @blur=\"props.onBlur?.()\" :style=\"containerStyle\">\n <div\n v-for=\"(opt, i) in options\"\n :key=\"i\"\n @click=\"handleOptionClick(i)\"\n :style=\"{\n padding: `0 ${4 * props.scale}px`,\n fontSize: `${fontSize}px`,\n lineHeight: `${lineHeight}px`,\n fontFamily: fontCss.fontFamily,\n fontWeight: fontCss.fontWeight,\n fontStyle: fontCss.fontStyle,\n color: opt.isSelected ? '#FFFFFF' : (props.annotation.fontColor ?? '#000000'),\n background: opt.isSelected ? 'rgba(0, 51, 113, 1)' : 'transparent',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n cursor: isDisabled ? 'default' : 'pointer',\n }\"\n >\n {{ opt.label }}\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport type { PdfWidgetAnnoObject } from '@embedpdf/models';\nimport type { AnnotationRendererProps } from '@embedpdf/plugin-annotation/vue';\nimport { useFormWidgetState } from '../../hooks/use-form-widget-state';\nimport { useFormDocumentState } from '../../hooks/use-form';\nimport RenderWidget from '../render-widget.vue';\nimport ListboxField from '../fields/listbox-field.vue';\nimport type { ListboxFieldProps } from '../../../shared/components/types';\n\nconst props = defineProps<AnnotationRendererProps<PdfWidgetAnnoObject>>();\nconst ws = useFormWidgetState(props);\nconst { state: formState } = useFormDocumentState(() => props.documentId);\n\nconst editing = ref(false);\nconst wrapperEl = ref<HTMLDivElement | null>(null);\n\nconst isFocused = computed(() => formState.value.selectedFieldId === ws.annotation.value.id);\n\nwatch(isFocused, (focused) => {\n if (focused && wrapperEl.value && !wrapperEl.value.contains(document.activeElement)) {\n wrapperEl.value.focus();\n }\n});\n\nfunction handleFocus() {\n if (ws.isReadOnly.value) return;\n ws.scope.value?.selectField(ws.annotation.value.id);\n editing.value = true;\n}\n\nfunction handleBlur() {\n requestAnimationFrame(() => {\n if (wrapperEl.value?.contains(document.activeElement)) return;\n editing.value = false;\n if (ws.scope.value?.getSelectedFieldId() === ws.annotation.value.id) {\n ws.scope.value?.deselectField();\n }\n });\n}\n</script>\n\n<template>\n <div\n ref=\"wrapperEl\"\n :tabindex=\"ws.isReadOnly.value ? -1 : 0\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n :style=\"{\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n cursor: ws.isReadOnly.value ? 'default' : 'pointer',\n pointerEvents: 'auto',\n outline: isFocused && !editing ? '2px solid rgba(66, 133, 244, 0.8)' : 'none',\n outlineOffset: '-2px',\n }\"\n >\n <ListboxField\n :annotation=\"ws.annotation.value as ListboxFieldProps['annotation']\"\n :scale=\"ws.scale.value\"\n :pageIndex=\"ws.pageIndex.value\"\n :isEditable=\"true\"\n :onChangeField=\"ws.handleChangeField\"\n />\n <RenderWidget\n v-if=\"!editing\"\n :pageIndex=\"ws.pageIndex.value\"\n :annotation=\"ws.annotation.value\"\n :scaleFactor=\"ws.scale.value\"\n :renderKey=\"ws.renderKey.value\"\n :style=\"{ pointerEvents: 'none' }\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { Rect } from '@embedpdf/models';\nimport type { WidgetPreviewData } from '../types';\n\nconst props = defineProps<{\n data: WidgetPreviewData;\n bounds: Rect;\n scale: number;\n}>();\n\nconst style = computed(() => ({\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: `${props.bounds.size.width * props.scale}px`,\n height: `${props.bounds.size.height * props.scale}px`,\n border: '1px dashed rgba(66, 133, 244, 0.6)',\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n boxSizing: 'border-box' as const,\n display: 'flex',\n alignItems: 'center',\n padding: `0 ${2 * props.scale}px`,\n overflow: 'hidden',\n}));\n</script>\n\n<template>\n <div :style=\"style\" />\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { Rect } from '@embedpdf/models';\nimport type { WidgetPreviewData } from '../types';\n\nconst props = defineProps<{\n data: WidgetPreviewData;\n bounds: Rect;\n scale: number;\n}>();\n\nconst style = computed(() => ({\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: `${props.bounds.size.width * props.scale}px`,\n height: `${props.bounds.size.height * props.scale}px`,\n border: '1px dashed rgba(66, 133, 244, 0.6)',\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n boxSizing: 'border-box' as const,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n}));\n</script>\n\n<template>\n <div :style=\"style\" />\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { Rect } from '@embedpdf/models';\nimport type { WidgetPreviewData } from '../types';\n\nconst props = defineProps<{\n data: WidgetPreviewData;\n bounds: Rect;\n scale: number;\n}>();\n\nconst style = computed(() => ({\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: `${props.bounds.size.width * props.scale}px`,\n height: `${props.bounds.size.height * props.scale}px`,\n border: '1px dashed rgba(66, 133, 244, 0.6)',\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n borderRadius: '50%',\n boxSizing: 'border-box' as const,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n}));\n</script>\n\n<template>\n <div :style=\"style\" />\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { Rect } from '@embedpdf/models';\nimport type { WidgetPreviewData } from '../types';\n\nconst props = defineProps<{\n data: WidgetPreviewData;\n bounds: Rect;\n scale: number;\n}>();\n\nconst style = computed(() => ({\n position: 'absolute' as const,\n left: 0,\n top: 0,\n width: `${props.bounds.size.width * props.scale}px`,\n height: `${props.bounds.size.height * props.scale}px`,\n border: '1px dashed rgba(66, 133, 244, 0.6)',\n backgroundColor: 'rgba(255, 255, 255, 0.9)',\n boxSizing: 'border-box' as const,\n display: 'flex',\n flexDirection: 'column' as const,\n overflow: 'hidden',\n}));\n</script>\n\n<template>\n <div :style=\"style\" />\n</template>\n","import { PdfAnnotationSubtype, PdfWidgetAnnoObject, PDF_FORM_FIELD_TYPE } from '@embedpdf/models';\nimport { createRenderer, type BoxedAnnotationRenderer } from '@embedpdf/plugin-annotation/vue';\nimport FormTextField from './annotations/form-text-field.vue';\nimport FormCheckbox from './annotations/form-checkbox.vue';\nimport FormRadioButton from './annotations/form-radio-button.vue';\nimport FormCombobox from './annotations/form-combobox.vue';\nimport FormListbox from './annotations/form-listbox.vue';\nimport TextFillMode from './fill-mode/text-fill-mode.vue';\nimport ToggleFillMode from './fill-mode/toggle-fill-mode.vue';\nimport RadioButtonFillMode from './fill-mode/radio-button-fill-mode.vue';\nimport ComboboxFillMode from './fill-mode/combobox-fill-mode.vue';\nimport ListboxFillMode from './fill-mode/listbox-fill-mode.vue';\nimport TextFieldPreview from './previews/text-field-preview.vue';\nimport CheckboxPreview from './previews/checkbox-preview.vue';\nimport RadioButtonPreview from './previews/radio-button-preview.vue';\nimport ListboxPreview from './previews/listbox-preview.vue';\nimport type { WidgetPreviewData } from './types';\n\nexport type { WidgetPreviewData } from './types';\n\nexport const formRenderers: BoxedAnnotationRenderer[] = [\n createRenderer<PdfWidgetAnnoObject, WidgetPreviewData>({\n id: 'formTextField',\n matches: (a): a is PdfWidgetAnnoObject =>\n a.type === PdfAnnotationSubtype.WIDGET && a.field?.type === PDF_FORM_FIELD_TYPE.TEXTFIELD,\n component: FormTextField,\n renderPreview: TextFieldPreview,\n interactionDefaults: { isDraggable: false, isResizable: true, isRotatable: false },\n useAppearanceStream: false,\n renderLocked: TextFillMode,\n }),\n createRenderer<PdfWidgetAnnoObject, WidgetPreviewData>({\n id: 'formCheckbox',\n matches: (a): a is PdfWidgetAnnoObject =>\n a.type === PdfAnnotationSubtype.WIDGET && a.field?.type === PDF_FORM_FIELD_TYPE.CHECKBOX,\n component: FormCheckbox,\n renderPreview: CheckboxPreview,\n interactionDefaults: { isDraggable: false, isResizable: true, isRotatable: false },\n useAppearanceStream: false,\n renderLocked: ToggleFillMode,\n }),\n createRenderer<PdfWidgetAnnoObject, WidgetPreviewData>({\n id: 'formRadioButton',\n matches: (a): a is PdfWidgetAnnoObject =>\n a.type === PdfAnnotationSubtype.WIDGET && a.field?.type === PDF_FORM_FIELD_TYPE.RADIOBUTTON,\n component: FormRadioButton,\n renderPreview: RadioButtonPreview,\n interactionDefaults: { isDraggable: false, isResizable: true, isRotatable: false },\n useAppearanceStream: false,\n renderLocked: RadioButtonFillMode,\n }),\n createRenderer<PdfWidgetAnnoObject, WidgetPreviewData>({\n id: 'formCombobox',\n matches: (a): a is PdfWidgetAnnoObject =>\n a.type === PdfAnnotationSubtype.WIDGET && a.field?.type === PDF_FORM_FIELD_TYPE.COMBOBOX,\n component: FormCombobox,\n renderPreview: TextFieldPreview,\n interactionDefaults: { isDraggable: false, isResizable: true, isRotatable: false },\n useAppearanceStream: false,\n renderLocked: ComboboxFillMode,\n }),\n createRenderer<PdfWidgetAnnoObject, WidgetPreviewData>({\n id: 'formListbox',\n matches: (a): a is PdfWidgetAnnoObject =>\n a.type === PdfAnnotationSubtype.WIDGET && a.field?.type === PDF_FORM_FIELD_TYPE.LISTBOX,\n component: FormListbox,\n renderPreview: ListboxPreview,\n interactionDefaults: { isDraggable: false, isResizable: true, isRotatable: false },\n useAppearanceStream: false,\n renderLocked: ListboxFillMode,\n }),\n];\n","<script setup lang=\"ts\">\nimport { useRegisterRenderers } from '@embedpdf/plugin-annotation/vue';\nimport { formRenderers } from './form-renderers';\n\nuseRegisterRenderers(formRenderers);\n</script>\n\n<template>\n <slot />\n</template>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { FormPluginPackage as BaseFormPluginPackage } from '@embedpdf/plugin-form';\nimport FormRendererRegistration from './components/form-renderer-registration.vue';\n\nexport * from './hooks';\n\nexport * from '@embedpdf/plugin-form';\n\nexport const FormPluginPackage = createPluginPackage(BaseFormPluginPackage)\n .addUtility(FormRendererRegistration)\n .build();\n"],"names":["_createElementBlock","_normalizeStyle","_openBlock","_hoisted_1","_Fragment","_renderList","_toDisplayString","_createElementVNode","_unref","_createVNode","RenderWidget","TextField","ComboboxField","ListboxField","_createBlock","FormTextField","TextFieldPreview","TextFillMode","FormCheckbox","CheckboxPreview","ToggleFillMode","FormRadioButton","RadioButtonPreview","RadioButtonFillMode","FormCombobox","ComboboxFillMode","FormListbox","ListboxPreview","ListboxFillMode","_renderSlot","BaseFormPluginPackage","FormRendererRegistration"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@embedpdf/plugin-form",
|
|
3
|
+
"version": "2.10.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.cjs",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"require": "./dist/index.cjs"
|
|
13
|
+
},
|
|
14
|
+
"./preact": {
|
|
15
|
+
"types": "./dist/preact/index.d.ts",
|
|
16
|
+
"import": "./dist/preact/index.js",
|
|
17
|
+
"require": "./dist/preact/index.cjs"
|
|
18
|
+
},
|
|
19
|
+
"./react": {
|
|
20
|
+
"types": "./dist/react/index.d.ts",
|
|
21
|
+
"import": "./dist/react/index.js",
|
|
22
|
+
"require": "./dist/react/index.cjs"
|
|
23
|
+
},
|
|
24
|
+
"./vue": {
|
|
25
|
+
"types": "./dist/vue/index.d.ts",
|
|
26
|
+
"import": "./dist/vue/index.js",
|
|
27
|
+
"require": "./dist/vue/index.cjs"
|
|
28
|
+
},
|
|
29
|
+
"./svelte": {
|
|
30
|
+
"types": "./dist/svelte/index.d.ts",
|
|
31
|
+
"import": "./dist/svelte/index.js",
|
|
32
|
+
"require": "./dist/svelte/index.cjs"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"@embedpdf/utils": "2.10.0",
|
|
37
|
+
"@embedpdf/models": "2.10.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/react": "^18.2.0",
|
|
41
|
+
"typescript": "^5.0.0",
|
|
42
|
+
"@embedpdf/core": "2.10.0",
|
|
43
|
+
"@embedpdf/plugin-annotation": "2.10.0",
|
|
44
|
+
"@embedpdf/build": "1.1.0",
|
|
45
|
+
"@embedpdf/plugin-history": "2.10.0"
|
|
46
|
+
},
|
|
47
|
+
"peerDependencies": {
|
|
48
|
+
"react": ">=16.8.0",
|
|
49
|
+
"react-dom": ">=16.8.0",
|
|
50
|
+
"preact": "^10.26.4",
|
|
51
|
+
"vue": ">=3.2.0",
|
|
52
|
+
"svelte": ">=5 <6",
|
|
53
|
+
"@embedpdf/plugin-history": "2.10.0",
|
|
54
|
+
"@embedpdf/core": "2.10.0",
|
|
55
|
+
"@embedpdf/plugin-annotation": "2.10.0"
|
|
56
|
+
},
|
|
57
|
+
"files": [
|
|
58
|
+
"dist",
|
|
59
|
+
"README.md"
|
|
60
|
+
],
|
|
61
|
+
"repository": {
|
|
62
|
+
"type": "git",
|
|
63
|
+
"url": "https://github.com/embedpdf/embed-pdf-viewer",
|
|
64
|
+
"directory": "packages/plugin-form"
|
|
65
|
+
},
|
|
66
|
+
"homepage": "https://www.embedpdf.com/docs",
|
|
67
|
+
"bugs": {
|
|
68
|
+
"url": "https://github.com/embedpdf/embed-pdf-viewer/issues"
|
|
69
|
+
},
|
|
70
|
+
"publishConfig": {
|
|
71
|
+
"access": "public"
|
|
72
|
+
},
|
|
73
|
+
"scripts": {
|
|
74
|
+
"build:base": "vite build --mode base",
|
|
75
|
+
"build:react": "vite build --mode react",
|
|
76
|
+
"build:preact": "vite build --mode preact",
|
|
77
|
+
"build:vue": "vite build --mode vue",
|
|
78
|
+
"build:svelte": "vite build --mode svelte",
|
|
79
|
+
"build": "pnpm run clean && concurrently -c auto -n base,react,preact,vue,svelte \"vite build --mode base\" \"vite build --mode react\" \"vite build --mode preact\" \"vite build --mode vue\" \"vite build --mode svelte\"",
|
|
80
|
+
"clean": "rimraf dist",
|
|
81
|
+
"lint": "eslint src --color",
|
|
82
|
+
"lint:fix": "eslint src --color --fix"
|
|
83
|
+
}
|
|
84
|
+
}
|