Merge pull request #12568 from calixteman/defaultvalue
[api-minor] JS -- Add default value in annotation data
This commit is contained in:
		
						commit
						646f895d35
					
				@ -951,6 +951,13 @@ class WidgetAnnotation extends Annotation {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
    data.fieldValue = this._decodeFormValue(fieldValue);
 | 
					    data.fieldValue = this._decodeFormValue(fieldValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const defaultFieldValue = getInheritableProperty({
 | 
				
			||||||
 | 
					      dict,
 | 
				
			||||||
 | 
					      key: "DV",
 | 
				
			||||||
 | 
					      getArray: true,
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    data.alternativeText = stringToPDFString(dict.get("TU") || "");
 | 
					    data.alternativeText = stringToPDFString(dict.get("TU") || "");
 | 
				
			||||||
    data.defaultAppearance =
 | 
					    data.defaultAppearance =
 | 
				
			||||||
      getInheritableProperty({ dict, key: "DA" }) ||
 | 
					      getInheritableProperty({ dict, key: "DA" }) ||
 | 
				
			||||||
@ -1652,6 +1659,7 @@ class TextWidgetAnnotation extends WidgetAnnotation {
 | 
				
			|||||||
    return {
 | 
					    return {
 | 
				
			||||||
      id: this.data.id,
 | 
					      id: this.data.id,
 | 
				
			||||||
      value: this.data.fieldValue,
 | 
					      value: this.data.fieldValue,
 | 
				
			||||||
 | 
					      defaultValue: this.data.defaultFieldValue,
 | 
				
			||||||
      multiline: this.data.multiLine,
 | 
					      multiline: this.data.multiLine,
 | 
				
			||||||
      password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),
 | 
					      password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),
 | 
				
			||||||
      charLimit: this.data.maxLen,
 | 
					      charLimit: this.data.maxLen,
 | 
				
			||||||
@ -1976,6 +1984,7 @@ class ButtonWidgetAnnotation extends WidgetAnnotation {
 | 
				
			|||||||
    return {
 | 
					    return {
 | 
				
			||||||
      id: this.data.id,
 | 
					      id: this.data.id,
 | 
				
			||||||
      value,
 | 
					      value,
 | 
				
			||||||
 | 
					      defaultValue: this.data.defaultFieldValue,
 | 
				
			||||||
      editable: !this.data.readOnly,
 | 
					      editable: !this.data.readOnly,
 | 
				
			||||||
      name: this.data.fieldName,
 | 
					      name: this.data.fieldName,
 | 
				
			||||||
      rect: this.data.rect,
 | 
					      rect: this.data.rect,
 | 
				
			||||||
@ -2052,6 +2061,7 @@ class ChoiceWidgetAnnotation extends WidgetAnnotation {
 | 
				
			|||||||
    return {
 | 
					    return {
 | 
				
			||||||
      id: this.data.id,
 | 
					      id: this.data.id,
 | 
				
			||||||
      value,
 | 
					      value,
 | 
				
			||||||
 | 
					      defaultValue: this.data.defaultFieldValue,
 | 
				
			||||||
      editable: !this.data.readOnly,
 | 
					      editable: !this.data.readOnly,
 | 
				
			||||||
      name: this.data.fieldName,
 | 
					      name: this.data.fieldName,
 | 
				
			||||||
      rect: this.data.rect,
 | 
					      rect: this.data.rect,
 | 
				
			||||||
 | 
				
			|||||||
@ -1421,6 +1421,8 @@ describe("annotation", function () {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it("should handle unknown text alignment, maximum length and flags", function (done) {
 | 
					    it("should handle unknown text alignment, maximum length and flags", function (done) {
 | 
				
			||||||
 | 
					      textWidgetDict.set("DV", "foo");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const textWidgetRef = Ref.get(124, 0);
 | 
					      const textWidgetRef = Ref.get(124, 0);
 | 
				
			||||||
      const xref = new XRefMock([{ ref: textWidgetRef, data: textWidgetDict }]);
 | 
					      const xref = new XRefMock([{ ref: textWidgetRef, data: textWidgetDict }]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1437,6 +1439,7 @@ describe("annotation", function () {
 | 
				
			|||||||
        expect(data.hidden).toEqual(false);
 | 
					        expect(data.hidden).toEqual(false);
 | 
				
			||||||
        expect(data.multiLine).toEqual(false);
 | 
					        expect(data.multiLine).toEqual(false);
 | 
				
			||||||
        expect(data.comb).toEqual(false);
 | 
					        expect(data.comb).toEqual(false);
 | 
				
			||||||
 | 
					        expect(data.defaultFieldValue).toEqual("foo");
 | 
				
			||||||
        done();
 | 
					        done();
 | 
				
			||||||
      }, done.fail);
 | 
					      }, done.fail);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -2021,6 +2024,7 @@ describe("annotation", function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it("should handle checkboxes with export value", function (done) {
 | 
					    it("should handle checkboxes with export value", function (done) {
 | 
				
			||||||
      buttonWidgetDict.set("V", Name.get("1"));
 | 
					      buttonWidgetDict.set("V", Name.get("1"));
 | 
				
			||||||
 | 
					      buttonWidgetDict.set("DV", Name.get("2"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const appearanceStatesDict = new Dict();
 | 
					      const appearanceStatesDict = new Dict();
 | 
				
			||||||
      const normalAppearanceDict = new Dict();
 | 
					      const normalAppearanceDict = new Dict();
 | 
				
			||||||
@ -2044,6 +2048,7 @@ describe("annotation", function () {
 | 
				
			|||||||
        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
					        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
				
			||||||
        expect(data.checkBox).toEqual(true);
 | 
					        expect(data.checkBox).toEqual(true);
 | 
				
			||||||
        expect(data.fieldValue).toEqual("1");
 | 
					        expect(data.fieldValue).toEqual("1");
 | 
				
			||||||
 | 
					        expect(data.defaultFieldValue).toEqual("2");
 | 
				
			||||||
        expect(data.radioButton).toEqual(false);
 | 
					        expect(data.radioButton).toEqual(false);
 | 
				
			||||||
        expect(data.exportValue).toEqual("Checked");
 | 
					        expect(data.exportValue).toEqual("Checked");
 | 
				
			||||||
        done();
 | 
					        done();
 | 
				
			||||||
@ -2052,6 +2057,7 @@ describe("annotation", function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it("should handle checkboxes without export value", function (done) {
 | 
					    it("should handle checkboxes without export value", function (done) {
 | 
				
			||||||
      buttonWidgetDict.set("V", Name.get("1"));
 | 
					      buttonWidgetDict.set("V", Name.get("1"));
 | 
				
			||||||
 | 
					      buttonWidgetDict.set("DV", Name.get("2"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const buttonWidgetRef = Ref.get(124, 0);
 | 
					      const buttonWidgetRef = Ref.get(124, 0);
 | 
				
			||||||
      const xref = new XRefMock([
 | 
					      const xref = new XRefMock([
 | 
				
			||||||
@ -2067,6 +2073,7 @@ describe("annotation", function () {
 | 
				
			|||||||
        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
					        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
				
			||||||
        expect(data.checkBox).toEqual(true);
 | 
					        expect(data.checkBox).toEqual(true);
 | 
				
			||||||
        expect(data.fieldValue).toEqual("1");
 | 
					        expect(data.fieldValue).toEqual("1");
 | 
				
			||||||
 | 
					        expect(data.defaultFieldValue).toEqual("2");
 | 
				
			||||||
        expect(data.radioButton).toEqual(false);
 | 
					        expect(data.radioButton).toEqual(false);
 | 
				
			||||||
        done();
 | 
					        done();
 | 
				
			||||||
      }, done.fail);
 | 
					      }, done.fail);
 | 
				
			||||||
@ -2074,6 +2081,7 @@ describe("annotation", function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it("should handle checkboxes without /Off appearance", function (done) {
 | 
					    it("should handle checkboxes without /Off appearance", function (done) {
 | 
				
			||||||
      buttonWidgetDict.set("V", Name.get("1"));
 | 
					      buttonWidgetDict.set("V", Name.get("1"));
 | 
				
			||||||
 | 
					      buttonWidgetDict.set("DV", Name.get("2"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const appearanceStatesDict = new Dict();
 | 
					      const appearanceStatesDict = new Dict();
 | 
				
			||||||
      const normalAppearanceDict = new Dict();
 | 
					      const normalAppearanceDict = new Dict();
 | 
				
			||||||
@ -2096,6 +2104,7 @@ describe("annotation", function () {
 | 
				
			|||||||
        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
					        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
				
			||||||
        expect(data.checkBox).toEqual(true);
 | 
					        expect(data.checkBox).toEqual(true);
 | 
				
			||||||
        expect(data.fieldValue).toEqual("1");
 | 
					        expect(data.fieldValue).toEqual("1");
 | 
				
			||||||
 | 
					        expect(data.defaultFieldValue).toEqual("2");
 | 
				
			||||||
        expect(data.radioButton).toEqual(false);
 | 
					        expect(data.radioButton).toEqual(false);
 | 
				
			||||||
        expect(data.exportValue).toEqual("Checked");
 | 
					        expect(data.exportValue).toEqual("Checked");
 | 
				
			||||||
        done();
 | 
					        done();
 | 
				
			||||||
@ -3093,6 +3102,7 @@ describe("annotation", function () {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      choiceWidgetDict.set("Opt", [encodedString]);
 | 
					      choiceWidgetDict.set("Opt", [encodedString]);
 | 
				
			||||||
      choiceWidgetDict.set("V", encodedString);
 | 
					      choiceWidgetDict.set("V", encodedString);
 | 
				
			||||||
 | 
					      choiceWidgetDict.set("DV", Name.get("foo"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const choiceWidgetRef = Ref.get(984, 0);
 | 
					      const choiceWidgetRef = Ref.get(984, 0);
 | 
				
			||||||
      const xref = new XRefMock([
 | 
					      const xref = new XRefMock([
 | 
				
			||||||
@ -3107,6 +3117,7 @@ describe("annotation", function () {
 | 
				
			|||||||
      ).then(({ data }) => {
 | 
					      ).then(({ data }) => {
 | 
				
			||||||
        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
					        expect(data.annotationType).toEqual(AnnotationType.WIDGET);
 | 
				
			||||||
        expect(data.fieldValue).toEqual([decodedString]);
 | 
					        expect(data.fieldValue).toEqual([decodedString]);
 | 
				
			||||||
 | 
					        expect(data.defaultFieldValue).toEqual("foo");
 | 
				
			||||||
        expect(data.options).toEqual([
 | 
					        expect(data.options).toEqual([
 | 
				
			||||||
          { exportValue: decodedString, displayValue: decodedString },
 | 
					          { exportValue: decodedString, displayValue: decodedString },
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user