pro-editor-schema 0.1.193 → 0.1.195

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/index.d.mts CHANGED
@@ -26,7 +26,7 @@ type Schema<TRequiredAttributes = readonly AttributeDefinition[], TOptionalAttri
26
26
  forbiddenElements?: ReadonlySet<ForbiddenElement>;
27
27
  };
28
28
  type SchemaCode = ElementSchemaCode | InlineSchemaCode | AtomSchemaCode;
29
- type ElementSchemaCode = "degrees" | "email" | "equation" | "fignote" | "figsource" | "firstname" | "footnote" | "footnoteno" | "honorific" | "img" | "informalfigure" | "keyword" | "label1" | "li" | "line" | "lrh" | "math" | "mathphrase" | "merror" | "mfrac" | "mi" | "mmultiscripts" | "mn" | "mo" | "mover" | "mpadded" | "mphantom" | "mprescripts" | "mroot" | "mrow" | "ms" | "mspace" | "msqrt" | "mstyle" | "msub" | "msubsup" | "msup" | "mtable" | "mtd" | "mtext" | "mtr" | "munder" | "munderover" | "olink" | "org" | "orgname" | "para" | "punc" | "rrh" | "source1" | "speaker" | "subtitle1" | "surname" | "tag" | "tblfn" | "tblsource" | "thead" | "title1" | "token" | "tp" | "abstract1" | "affiliation" | "alttext" | "appendix" | "author" | "authorgroup" | "blockquote" | "caption1" | "chapter" | "dialogue" | "epigraph" | "figure1" | "footnoteSection" | "heading" | "imageobject" | "info1" | "keywordset" | "mediaobject" | "ol" | "personname" | "poem" | "sidebar" | "table" | "table1" | "tbody" | "td" | "tgroup" | "tr" | "ul";
29
+ type ElementSchemaCode = "referenceBibliomixed" | "referenceBibliography" | "bibliodiv" | "degrees" | "email" | "equation" | "fignote" | "figsource" | "firstname" | "footnote" | "footnoteno" | "honorific" | "img" | "informalfigure" | "keyword" | "label1" | "li" | "line" | "lrh" | "math" | "mathphrase" | "merror" | "mfrac" | "mi" | "mmultiscripts" | "mn" | "mo" | "mover" | "mpadded" | "mphantom" | "mprescripts" | "mroot" | "mrow" | "ms" | "mspace" | "msqrt" | "mstyle" | "msub" | "msubsup" | "msup" | "mtable" | "mtd" | "mtext" | "mtr" | "munder" | "munderover" | "olink" | "org" | "orgname" | "para" | "punc" | "rrh" | "source1" | "speaker" | "subtitle1" | "surname" | "tag" | "tblfn" | "tblsource" | "thead" | "title1" | "token" | "tp" | "abstract1" | "affiliation" | "alttext" | "appendix" | "author" | "authorgroup" | "blockquote" | "caption1" | "chapter" | "dialogue" | "epigraph" | "figure1" | "footnoteSection" | "heading" | "imageobject" | "info1" | "keywordset" | "mediaobject" | "ol" | "personname" | "poem" | "sidebar" | "table" | "table1" | "tbody" | "td" | "tgroup" | "tr" | "ul";
30
30
  type AtomSchemaCode = "indexterm" | "primary" | "secondary" | "tertiary" | "quaternary" | "bookmark" | "see" | "commentQuerySection" | "comment" | "content" | "query" | "reply" | "deletion" | "emphasis" | "highlightmark" | "i" | "insertion" | "sc" | "strike" | "sub" | "sup" | "u" | "b" | "referenceMark";
31
31
  type InlineSchemaCode = "footnote1" | "inlineequation" | "link" | "uri";
32
32
  declare const ElementLabel: Record<SchemaCode, string>;
@@ -74,11 +74,10 @@ declare const LAYOUT_TABLE_ORIENTATION_ATTRIBUTE = "data-table-orientation";
74
74
  declare const LAYOUT_TABLE_PLACEMENT_ATTRIBUTE = "data-table-placement";
75
75
  declare const LAYOUT_ATTRIBUTES: readonly ["data-alignment", "data-left-indent", "data-right-indent", "data-special-indent", "data-space-above", "data-space-below", "data-indent-type", "data-layout-user", "data-paragraph-style"];
76
76
  declare const TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
77
- declare const TRACK_CHANGES_ATTR_DATA_USER = "data-user";
78
77
  declare const TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
79
78
  declare const TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
80
79
  declare const TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
81
- declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-user", "data-userid", "data-time", "data-date"];
80
+ declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-userid", "data-time", "data-date"];
82
81
  declare const ELE_ID_ATTRIBUTE = "ele-id";
83
82
  declare const STORE_ATTRIBUTE = "store";
84
83
  declare const ID_ATTRS: readonly ["store", "ele-id"];
@@ -104,11 +103,12 @@ type ValidationError = {
104
103
  * Validates the XML document against the schema.
105
104
 
106
105
  * @param xml - The XML document to validate.
107
- * @param elementsLinkedTo - The elements IDs that are linked to.
106
+ * @param elementsToLink - The elements IDs that are linked to.
107
+ * @param linkElements - The elements IDs that are linked to.
108
108
  * @param schemasToValidateAgainst - The schemas to validate against.
109
109
  * * ValidateConsecutiveFootnotes and ValidateConsecutiveFootnoteCues are default validations.
110
110
  * @returns The validation errors.
111
111
  */
112
- declare const validateXml: (xml: Element, elementsLinkedTo: readonly string[], schemasToValidateAgainst: SchemaCode[]) => ValidationError[];
112
+ declare const validateXml: (xml: Element, elementsToLink: readonly string[], linkElements: readonly string[], schemasToValidateAgainst: SchemaCode[]) => ValidationError[];
113
113
 
114
- export { ALIGNMENT_ATTRIBUTE, ATOM_SCHEMAS, type AllowedChildren, type AtomSchemaCode, type AttributeDefinition, ELEMENT_SCHEMAS, ELE_ID_ATTRIBUTE, ElementLabel, type ElementSchemaCode, FIGURE_PLACEMENT_ATTRIBUTE, type ForbiddenElement, type FreeAttribute, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, INDENT_TYPE_ATTRIBUTE, INLINE_ELEMENT_SCHEMAS, type InlineSchemaCode, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH_ATTRIBUTE, LAYOUT_TABLE_ORIENTATION_ATTRIBUTE, LAYOUT_TABLE_PLACEMENT_ATTRIBUTE, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, RIGHT_INDENT_ATTRIBUTE, type ResolveTo, type RestrictedAttribute, SCHEMAS, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STYLE_NAME_ATTRIBUTE, type Schema, type SchemaCode, type SchemaKind, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USER, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, type ValidationError, type ValidationErrorKind, type ValidationErrorLevel, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, findSchemaByTagName, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateXml };
114
+ export { ALIGNMENT_ATTRIBUTE, ATOM_SCHEMAS, type AllowedChildren, type AtomSchemaCode, type AttributeDefinition, ELEMENT_SCHEMAS, ELE_ID_ATTRIBUTE, ElementLabel, type ElementSchemaCode, FIGURE_PLACEMENT_ATTRIBUTE, type ForbiddenElement, type FreeAttribute, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, INDENT_TYPE_ATTRIBUTE, INLINE_ELEMENT_SCHEMAS, type InlineSchemaCode, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH_ATTRIBUTE, LAYOUT_TABLE_ORIENTATION_ATTRIBUTE, LAYOUT_TABLE_PLACEMENT_ATTRIBUTE, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, RIGHT_INDENT_ATTRIBUTE, type ResolveTo, type RestrictedAttribute, SCHEMAS, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STYLE_NAME_ATTRIBUTE, type Schema, type SchemaCode, type SchemaKind, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, type ValidationError, type ValidationErrorKind, type ValidationErrorLevel, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, findSchemaByTagName, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateXml };
package/dist/index.d.ts CHANGED
@@ -26,7 +26,7 @@ type Schema<TRequiredAttributes = readonly AttributeDefinition[], TOptionalAttri
26
26
  forbiddenElements?: ReadonlySet<ForbiddenElement>;
27
27
  };
28
28
  type SchemaCode = ElementSchemaCode | InlineSchemaCode | AtomSchemaCode;
29
- type ElementSchemaCode = "degrees" | "email" | "equation" | "fignote" | "figsource" | "firstname" | "footnote" | "footnoteno" | "honorific" | "img" | "informalfigure" | "keyword" | "label1" | "li" | "line" | "lrh" | "math" | "mathphrase" | "merror" | "mfrac" | "mi" | "mmultiscripts" | "mn" | "mo" | "mover" | "mpadded" | "mphantom" | "mprescripts" | "mroot" | "mrow" | "ms" | "mspace" | "msqrt" | "mstyle" | "msub" | "msubsup" | "msup" | "mtable" | "mtd" | "mtext" | "mtr" | "munder" | "munderover" | "olink" | "org" | "orgname" | "para" | "punc" | "rrh" | "source1" | "speaker" | "subtitle1" | "surname" | "tag" | "tblfn" | "tblsource" | "thead" | "title1" | "token" | "tp" | "abstract1" | "affiliation" | "alttext" | "appendix" | "author" | "authorgroup" | "blockquote" | "caption1" | "chapter" | "dialogue" | "epigraph" | "figure1" | "footnoteSection" | "heading" | "imageobject" | "info1" | "keywordset" | "mediaobject" | "ol" | "personname" | "poem" | "sidebar" | "table" | "table1" | "tbody" | "td" | "tgroup" | "tr" | "ul";
29
+ type ElementSchemaCode = "referenceBibliomixed" | "referenceBibliography" | "bibliodiv" | "degrees" | "email" | "equation" | "fignote" | "figsource" | "firstname" | "footnote" | "footnoteno" | "honorific" | "img" | "informalfigure" | "keyword" | "label1" | "li" | "line" | "lrh" | "math" | "mathphrase" | "merror" | "mfrac" | "mi" | "mmultiscripts" | "mn" | "mo" | "mover" | "mpadded" | "mphantom" | "mprescripts" | "mroot" | "mrow" | "ms" | "mspace" | "msqrt" | "mstyle" | "msub" | "msubsup" | "msup" | "mtable" | "mtd" | "mtext" | "mtr" | "munder" | "munderover" | "olink" | "org" | "orgname" | "para" | "punc" | "rrh" | "source1" | "speaker" | "subtitle1" | "surname" | "tag" | "tblfn" | "tblsource" | "thead" | "title1" | "token" | "tp" | "abstract1" | "affiliation" | "alttext" | "appendix" | "author" | "authorgroup" | "blockquote" | "caption1" | "chapter" | "dialogue" | "epigraph" | "figure1" | "footnoteSection" | "heading" | "imageobject" | "info1" | "keywordset" | "mediaobject" | "ol" | "personname" | "poem" | "sidebar" | "table" | "table1" | "tbody" | "td" | "tgroup" | "tr" | "ul";
30
30
  type AtomSchemaCode = "indexterm" | "primary" | "secondary" | "tertiary" | "quaternary" | "bookmark" | "see" | "commentQuerySection" | "comment" | "content" | "query" | "reply" | "deletion" | "emphasis" | "highlightmark" | "i" | "insertion" | "sc" | "strike" | "sub" | "sup" | "u" | "b" | "referenceMark";
31
31
  type InlineSchemaCode = "footnote1" | "inlineequation" | "link" | "uri";
32
32
  declare const ElementLabel: Record<SchemaCode, string>;
@@ -74,11 +74,10 @@ declare const LAYOUT_TABLE_ORIENTATION_ATTRIBUTE = "data-table-orientation";
74
74
  declare const LAYOUT_TABLE_PLACEMENT_ATTRIBUTE = "data-table-placement";
75
75
  declare const LAYOUT_ATTRIBUTES: readonly ["data-alignment", "data-left-indent", "data-right-indent", "data-special-indent", "data-space-above", "data-space-below", "data-indent-type", "data-layout-user", "data-paragraph-style"];
76
76
  declare const TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
77
- declare const TRACK_CHANGES_ATTR_DATA_USER = "data-user";
78
77
  declare const TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
79
78
  declare const TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
80
79
  declare const TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
81
- declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-user", "data-userid", "data-time", "data-date"];
80
+ declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-userid", "data-time", "data-date"];
82
81
  declare const ELE_ID_ATTRIBUTE = "ele-id";
83
82
  declare const STORE_ATTRIBUTE = "store";
84
83
  declare const ID_ATTRS: readonly ["store", "ele-id"];
@@ -104,11 +103,12 @@ type ValidationError = {
104
103
  * Validates the XML document against the schema.
105
104
 
106
105
  * @param xml - The XML document to validate.
107
- * @param elementsLinkedTo - The elements IDs that are linked to.
106
+ * @param elementsToLink - The elements IDs that are linked to.
107
+ * @param linkElements - The elements IDs that are linked to.
108
108
  * @param schemasToValidateAgainst - The schemas to validate against.
109
109
  * * ValidateConsecutiveFootnotes and ValidateConsecutiveFootnoteCues are default validations.
110
110
  * @returns The validation errors.
111
111
  */
112
- declare const validateXml: (xml: Element, elementsLinkedTo: readonly string[], schemasToValidateAgainst: SchemaCode[]) => ValidationError[];
112
+ declare const validateXml: (xml: Element, elementsToLink: readonly string[], linkElements: readonly string[], schemasToValidateAgainst: SchemaCode[]) => ValidationError[];
113
113
 
114
- export { ALIGNMENT_ATTRIBUTE, ATOM_SCHEMAS, type AllowedChildren, type AtomSchemaCode, type AttributeDefinition, ELEMENT_SCHEMAS, ELE_ID_ATTRIBUTE, ElementLabel, type ElementSchemaCode, FIGURE_PLACEMENT_ATTRIBUTE, type ForbiddenElement, type FreeAttribute, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, INDENT_TYPE_ATTRIBUTE, INLINE_ELEMENT_SCHEMAS, type InlineSchemaCode, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH_ATTRIBUTE, LAYOUT_TABLE_ORIENTATION_ATTRIBUTE, LAYOUT_TABLE_PLACEMENT_ATTRIBUTE, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, RIGHT_INDENT_ATTRIBUTE, type ResolveTo, type RestrictedAttribute, SCHEMAS, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STYLE_NAME_ATTRIBUTE, type Schema, type SchemaCode, type SchemaKind, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USER, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, type ValidationError, type ValidationErrorKind, type ValidationErrorLevel, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, findSchemaByTagName, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateXml };
114
+ export { ALIGNMENT_ATTRIBUTE, ATOM_SCHEMAS, type AllowedChildren, type AtomSchemaCode, type AttributeDefinition, ELEMENT_SCHEMAS, ELE_ID_ATTRIBUTE, ElementLabel, type ElementSchemaCode, FIGURE_PLACEMENT_ATTRIBUTE, type ForbiddenElement, type FreeAttribute, ID_ATTRS, IGNORED_ATTRIBUTES, IGNORED_ATTRIBUTES_STARTS_WITH, IGNORED_ELEMENT_SELECTORS, INDENT_TYPE_ATTRIBUTE, INLINE_ELEMENT_SCHEMAS, type InlineSchemaCode, LAYOUT_ATTRIBUTES, LAYOUT_CELL_WIDTH_ATTRIBUTE, LAYOUT_TABLE_ORIENTATION_ATTRIBUTE, LAYOUT_TABLE_PLACEMENT_ATTRIBUTE, LAYOUT_USER_ATTRIBUTE, LEFT_INDENT_ATTRIBUTE, RIGHT_INDENT_ATTRIBUTE, type ResolveTo, type RestrictedAttribute, SCHEMAS, SPACE_ABOVE_ATTRIBUTE, SPACE_BELOW_ATTRIBUTE, SPECIAL_INDENT_ATTRIBUTE, STORE_ATTRIBUTE, STYLE_NAME_ATTRIBUTE, type Schema, type SchemaCode, type SchemaKind, TRACK_CHANGES_ATTRS, TRACK_CHANGES_ATTR_DATA_DATE, TRACK_CHANGES_ATTR_DATA_TIME, TRACK_CHANGES_ATTR_DATA_USERID, TRACK_CHANGES_ATTR_DATA_USERNAME, type ValidationError, type ValidationErrorKind, type ValidationErrorLevel, createElement, findAttributeDefinitionByName, findSchemaByCode, findSchemaByElement, findSchemaByTagName, getAttributeName, isAttributeRestricted, isIgnoredAttribute, isIgnoredElement, validateXml };
package/dist/index.js CHANGED
@@ -48,7 +48,6 @@ __export(index_exports, {
48
48
  TRACK_CHANGES_ATTRS: () => TRACK_CHANGES_ATTRS,
49
49
  TRACK_CHANGES_ATTR_DATA_DATE: () => TRACK_CHANGES_ATTR_DATA_DATE,
50
50
  TRACK_CHANGES_ATTR_DATA_TIME: () => TRACK_CHANGES_ATTR_DATA_TIME,
51
- TRACK_CHANGES_ATTR_DATA_USER: () => TRACK_CHANGES_ATTR_DATA_USER,
52
51
  TRACK_CHANGES_ATTR_DATA_USERID: () => TRACK_CHANGES_ATTR_DATA_USERID,
53
52
  TRACK_CHANGES_ATTR_DATA_USERNAME: () => TRACK_CHANGES_ATTR_DATA_USERNAME,
54
53
  createElement: () => createElement,
@@ -113,13 +112,11 @@ var LAYOUT_ATTRIBUTES = [
113
112
  STYLE_NAME_ATTRIBUTE
114
113
  ];
115
114
  var TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
116
- var TRACK_CHANGES_ATTR_DATA_USER = "data-user";
117
115
  var TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
118
116
  var TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
119
117
  var TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
120
118
  var TRACK_CHANGES_ATTRS = [
121
119
  TRACK_CHANGES_ATTR_DATA_USERNAME,
122
- TRACK_CHANGES_ATTR_DATA_USER,
123
120
  TRACK_CHANGES_ATTR_DATA_USERID,
124
121
  TRACK_CHANGES_ATTR_DATA_TIME,
125
122
  TRACK_CHANGES_ATTR_DATA_DATE
@@ -650,6 +647,8 @@ var EPIGRAPH_TAG = "EPIGRAPH";
650
647
  var INFO_TAG = "INFO1";
651
648
  var POEM_TAG = "POEM";
652
649
  var BIBLIOMIXED_TAG = "BIBLIOMIXED";
650
+ var REFERENCE_BIBLIOGRAPHY_TAG = "REFERENCE_BIBLIOGRAPHY";
651
+ var BIBLIODIV_TAG = "BIBLIODIV";
653
652
  var MATHPHRASE_TAG = "MATHPHRASE";
654
653
  var MATH_TAG = "MATH";
655
654
  var MERROR_TAG = "MERROR";
@@ -1956,7 +1955,8 @@ var CHAPTER_SCHEMA = createSchema({
1956
1955
  { tagName: DIALOGUE_TAG, required: false },
1957
1956
  { tagName: APPENDIX_TAG, required: false },
1958
1957
  { tagName: TABLE_TAG, required: false },
1959
- { tagName: FIGURE_TAG, required: false }
1958
+ { tagName: FIGURE_TAG, required: false },
1959
+ { tagName: REFERENCE_BIBLIOGRAPHY_TAG, required: false }
1960
1960
  ]
1961
1961
  });
1962
1962
 
@@ -2085,8 +2085,75 @@ var MATHPHRASE_SCHEMA = createSchema({
2085
2085
  ]
2086
2086
  });
2087
2087
 
2088
+ // src/schema/elementSchemas/elements/reference/bibliodiv.ts
2089
+ var BIBLIODIV_SCHEMA = createSchema({
2090
+ code: "bibliodiv",
2091
+ kind: "element",
2092
+ tag: BIBLIODIV_TAG,
2093
+ requiredAttributes: [
2094
+ ...ID_ATTRS,
2095
+ {
2096
+ name: "role",
2097
+ values: ["H1", "H2", "H3", "H4", "H5", "H6"],
2098
+ defaultValue: "H1"
2099
+ }
2100
+ ],
2101
+ optionalAttributes: [],
2102
+ allowedChildTagNames: [
2103
+ { tagName: BIBLIODIV_TAG, required: false },
2104
+ { tagName: BIBLIOMIXED_TAG, required: false },
2105
+ { tagName: PARA_TAG, required: false },
2106
+ { tagName: TITLE_TAG, required: false }
2107
+ ]
2108
+ });
2109
+
2110
+ // src/schema/elementSchemas/elements/reference/bibliography.ts
2111
+ var REFERENCE_BIBLIOGRAPHY_SCHEMA = createSchema({
2112
+ code: "referenceBibliography",
2113
+ kind: "element",
2114
+ tag: REFERENCE_BIBLIOGRAPHY_TAG,
2115
+ requiredAttributes: [
2116
+ ...ID_ATTRS,
2117
+ "xmlid",
2118
+ {
2119
+ name: "role",
2120
+ values: ["chapterend"],
2121
+ defaultValue: "chapterend"
2122
+ },
2123
+ {
2124
+ name: "doc-type",
2125
+ values: ["doc-bibliography"],
2126
+ defaultValue: "doc-bibliography"
2127
+ }
2128
+ ],
2129
+ optionalAttributes: [],
2130
+ allowedChildTagNames: [
2131
+ { tagName: BIBLIODIV_TAG, required: false },
2132
+ { tagName: BIBLIOMIXED_TAG, required: false },
2133
+ { tagName: PARA_TAG, required: false },
2134
+ { tagName: TITLE_TAG, required: false }
2135
+ ]
2136
+ });
2137
+
2138
+ // src/schema/elementSchemas/elements/reference/bibliomixed.ts
2139
+ var BIBLIOMIXED_SCHEMA = createSchema({
2140
+ code: "referenceBibliomixed",
2141
+ kind: "element",
2142
+ tag: BIBLIOMIXED_TAG,
2143
+ requiredAttributes: [...ID_ATTRS, "xmlid", "role"],
2144
+ optionalAttributes: [
2145
+ "track-role",
2146
+ TRACK_CHANGES_ATTR_DATA_USERID,
2147
+ TRACK_CHANGES_ATTR_DATA_DATE
2148
+ ],
2149
+ allowedChildTagNames: []
2150
+ });
2151
+
2088
2152
  // src/schema/elementSchemas/elements/index.ts
2089
2153
  var ELEMENT_SCHEMAS = {
2154
+ bibliodiv: BIBLIODIV_SCHEMA,
2155
+ referenceBibliography: REFERENCE_BIBLIOGRAPHY_SCHEMA,
2156
+ referenceBibliomixed: BIBLIOMIXED_SCHEMA,
2090
2157
  para: PARA_SCHEMA,
2091
2158
  title1: TITLE_SCHEMA,
2092
2159
  footnote: FOOTNOTE_SCHEMA,
@@ -2262,6 +2329,9 @@ var SCHEMAS = {
2262
2329
 
2263
2330
  // src/schema/schema.types.ts
2264
2331
  var ElementLabel = {
2332
+ referenceBibliomixed: "Reference Bibliomixed",
2333
+ referenceBibliography: "Reference Bibliography",
2334
+ bibliodiv: "Bibliodiv",
2265
2335
  indexterm: "Indexterm",
2266
2336
  primary: "Primary",
2267
2337
  secondary: "Secondary",
@@ -2387,9 +2457,7 @@ var IGNORED_ELEMENT_SELECTORS = [
2387
2457
  "span.printlabel",
2388
2458
  "span.refIcon",
2389
2459
  "span.missLink",
2390
- "span.ref-drag",
2391
- "bibliomixed"
2392
- // TODO: Remove this once we have a proper schema for bibliomixed
2460
+ "span.ref-drag"
2393
2461
  ];
2394
2462
 
2395
2463
  // src/schema/shared/ignoredAttributes.ts
@@ -2615,17 +2683,17 @@ var validateConsecutiveFootnoteCues = (root) => {
2615
2683
  };
2616
2684
 
2617
2685
  // src/validation/validateLinkend.ts
2618
- var findElementLinkedTo = (linkend, elementsLinkedTo) => {
2619
- return elementsLinkedTo.includes(linkend);
2686
+ var findElementLinkedTo = (linkend, elementsToLink) => {
2687
+ return elementsToLink.includes(linkend);
2620
2688
  };
2621
- var validateLinkend = (linkElement, elementsLinkedTo) => {
2689
+ var validateLinkend = (linkElement, elementsToLink) => {
2622
2690
  const linkend = linkElement.getAttribute("linkend");
2623
2691
  if (!linkend) {
2624
2692
  return [];
2625
2693
  }
2626
2694
  const isLinkFootnoteCue = linkElement.tagName.toUpperCase() === FOOTNOTE_LINK_SCHEMA.tag;
2627
2695
  if (isLinkFootnoteCue) {
2628
- if (findElementLinkedTo(linkend, elementsLinkedTo)) {
2696
+ if (findElementLinkedTo(linkend, elementsToLink)) {
2629
2697
  return [];
2630
2698
  }
2631
2699
  return [
@@ -2638,7 +2706,7 @@ var validateLinkend = (linkElement, elementsLinkedTo) => {
2638
2706
  })
2639
2707
  ];
2640
2708
  }
2641
- if (findElementLinkedTo(linkend, elementsLinkedTo)) {
2709
+ if (findElementLinkedTo(linkend, elementsToLink)) {
2642
2710
  return [];
2643
2711
  }
2644
2712
  return [
@@ -2662,13 +2730,6 @@ var validateAttributes = (element, schema) => {
2662
2730
  for (const attribute of schema.requiredAttributes) {
2663
2731
  const name = getAttributeName(attribute);
2664
2732
  if (!element.hasAttribute(name)) {
2665
- addValidationIssue(errors, {
2666
- store: getStore(element),
2667
- title: `Missing required attribute "${name}"`,
2668
- level: "warning",
2669
- kind: "missing",
2670
- description: `The attribute "${name}" is required but not present in the element.`
2671
- });
2672
2733
  }
2673
2734
  }
2674
2735
  for (const name of element.getAttributeNames()) {
@@ -2677,13 +2738,6 @@ var validateAttributes = (element, schema) => {
2677
2738
  }
2678
2739
  const definition = findAttributeDefinitionByName(definitions, name);
2679
2740
  if (!definition) {
2680
- addValidationIssue(errors, {
2681
- store: element.id,
2682
- title: `Unexpected attribute "${name}"`,
2683
- level: "warning",
2684
- kind: "forbidden",
2685
- description: `The attribute "${name}" is not allowed in this element.`
2686
- });
2687
2741
  continue;
2688
2742
  }
2689
2743
  if (!isAttributeRestricted(definition)) {
@@ -2853,8 +2907,31 @@ var getLinkableRoles = () => {
2853
2907
  return [];
2854
2908
  };
2855
2909
 
2910
+ // src/validation/validateReferences.ts
2911
+ var findElementLinkedTo2 = (xmlid, linkElements) => {
2912
+ return linkElements.includes(xmlid);
2913
+ };
2914
+ var validateReferenceCited = (referenceElement, linkElements) => {
2915
+ const xmlid = referenceElement.getAttribute("xmlid");
2916
+ if (!xmlid) {
2917
+ return [];
2918
+ }
2919
+ if (findElementLinkedTo2(xmlid, linkElements)) {
2920
+ return [];
2921
+ }
2922
+ return [
2923
+ createValidationIssue({
2924
+ store: getStore(referenceElement),
2925
+ title: "Unlinked element",
2926
+ kind: "unlinked",
2927
+ description: "This reference is not cited in this chapter or any other chapter. Please add a link to this reference or delete the reference.",
2928
+ level: "blocker"
2929
+ })
2930
+ ];
2931
+ };
2932
+
2856
2933
  // src/validation/validateXml.ts
2857
- var validateElement = (element, root, elementsLinkedTo, schemasToValidateAgainst) => {
2934
+ var validateElement = (element, root, elementsToLink, linkElements, schemasToValidateAgainst) => {
2858
2935
  if (isIgnoredElement(element)) {
2859
2936
  return [];
2860
2937
  }
@@ -2873,7 +2950,11 @@ var validateElement = (element, root, elementsLinkedTo, schemasToValidateAgainst
2873
2950
  const role = element.getAttribute("role") || "";
2874
2951
  const linkableRoles = getLinkableRoles();
2875
2952
  if (schema.tag === LINK_SCHEMA.tag && linkableRoles.includes(role) || schema.tag === FOOTNOTE_LINK_SCHEMA.tag) {
2876
- errors.push(...validateLinkend(element, elementsLinkedTo));
2953
+ errors.push(...validateLinkend(element, elementsToLink));
2954
+ }
2955
+ if (schema.tag === BIBLIOMIXED_SCHEMA.tag) {
2956
+ errors.push(...validateReferenceCited(element, linkElements));
2957
+ return errors;
2877
2958
  }
2878
2959
  if (schema.tag === FOOTNOTE_SCHEMA.tag) {
2879
2960
  errors.push(...validateFootnoteCue(element, root));
@@ -2884,14 +2965,15 @@ var validateElement = (element, root, elementsLinkedTo, schemasToValidateAgainst
2884
2965
  ...validateElement(
2885
2966
  child,
2886
2967
  root,
2887
- elementsLinkedTo,
2968
+ elementsToLink,
2969
+ linkElements,
2888
2970
  schemasToValidateAgainst
2889
2971
  )
2890
2972
  );
2891
2973
  }
2892
2974
  return errors;
2893
2975
  };
2894
- var validateXml = (xml, elementsLinkedTo, schemasToValidateAgainst) => {
2976
+ var validateXml = (xml, elementsToLink, linkElements, schemasToValidateAgainst) => {
2895
2977
  const errors = [];
2896
2978
  errors.push(...validateConsecutiveFootnotes(xml));
2897
2979
  errors.push(...validateConsecutiveFootnoteCues(xml));
@@ -2900,7 +2982,8 @@ var validateXml = (xml, elementsLinkedTo, schemasToValidateAgainst) => {
2900
2982
  ...validateElement(
2901
2983
  child,
2902
2984
  xml,
2903
- elementsLinkedTo,
2985
+ elementsToLink,
2986
+ linkElements,
2904
2987
  schemasToValidateAgainst
2905
2988
  )
2906
2989
  );
@@ -2937,7 +3020,6 @@ var validateXml = (xml, elementsLinkedTo, schemasToValidateAgainst) => {
2937
3020
  TRACK_CHANGES_ATTRS,
2938
3021
  TRACK_CHANGES_ATTR_DATA_DATE,
2939
3022
  TRACK_CHANGES_ATTR_DATA_TIME,
2940
- TRACK_CHANGES_ATTR_DATA_USER,
2941
3023
  TRACK_CHANGES_ATTR_DATA_USERID,
2942
3024
  TRACK_CHANGES_ATTR_DATA_USERNAME,
2943
3025
  createElement,
package/dist/index.mjs CHANGED
@@ -47,13 +47,11 @@ var LAYOUT_ATTRIBUTES = [
47
47
  STYLE_NAME_ATTRIBUTE
48
48
  ];
49
49
  var TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
50
- var TRACK_CHANGES_ATTR_DATA_USER = "data-user";
51
50
  var TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
52
51
  var TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
53
52
  var TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
54
53
  var TRACK_CHANGES_ATTRS = [
55
54
  TRACK_CHANGES_ATTR_DATA_USERNAME,
56
- TRACK_CHANGES_ATTR_DATA_USER,
57
55
  TRACK_CHANGES_ATTR_DATA_USERID,
58
56
  TRACK_CHANGES_ATTR_DATA_TIME,
59
57
  TRACK_CHANGES_ATTR_DATA_DATE
@@ -584,6 +582,8 @@ var EPIGRAPH_TAG = "EPIGRAPH";
584
582
  var INFO_TAG = "INFO1";
585
583
  var POEM_TAG = "POEM";
586
584
  var BIBLIOMIXED_TAG = "BIBLIOMIXED";
585
+ var REFERENCE_BIBLIOGRAPHY_TAG = "REFERENCE_BIBLIOGRAPHY";
586
+ var BIBLIODIV_TAG = "BIBLIODIV";
587
587
  var MATHPHRASE_TAG = "MATHPHRASE";
588
588
  var MATH_TAG = "MATH";
589
589
  var MERROR_TAG = "MERROR";
@@ -1890,7 +1890,8 @@ var CHAPTER_SCHEMA = createSchema({
1890
1890
  { tagName: DIALOGUE_TAG, required: false },
1891
1891
  { tagName: APPENDIX_TAG, required: false },
1892
1892
  { tagName: TABLE_TAG, required: false },
1893
- { tagName: FIGURE_TAG, required: false }
1893
+ { tagName: FIGURE_TAG, required: false },
1894
+ { tagName: REFERENCE_BIBLIOGRAPHY_TAG, required: false }
1894
1895
  ]
1895
1896
  });
1896
1897
 
@@ -2019,8 +2020,75 @@ var MATHPHRASE_SCHEMA = createSchema({
2019
2020
  ]
2020
2021
  });
2021
2022
 
2023
+ // src/schema/elementSchemas/elements/reference/bibliodiv.ts
2024
+ var BIBLIODIV_SCHEMA = createSchema({
2025
+ code: "bibliodiv",
2026
+ kind: "element",
2027
+ tag: BIBLIODIV_TAG,
2028
+ requiredAttributes: [
2029
+ ...ID_ATTRS,
2030
+ {
2031
+ name: "role",
2032
+ values: ["H1", "H2", "H3", "H4", "H5", "H6"],
2033
+ defaultValue: "H1"
2034
+ }
2035
+ ],
2036
+ optionalAttributes: [],
2037
+ allowedChildTagNames: [
2038
+ { tagName: BIBLIODIV_TAG, required: false },
2039
+ { tagName: BIBLIOMIXED_TAG, required: false },
2040
+ { tagName: PARA_TAG, required: false },
2041
+ { tagName: TITLE_TAG, required: false }
2042
+ ]
2043
+ });
2044
+
2045
+ // src/schema/elementSchemas/elements/reference/bibliography.ts
2046
+ var REFERENCE_BIBLIOGRAPHY_SCHEMA = createSchema({
2047
+ code: "referenceBibliography",
2048
+ kind: "element",
2049
+ tag: REFERENCE_BIBLIOGRAPHY_TAG,
2050
+ requiredAttributes: [
2051
+ ...ID_ATTRS,
2052
+ "xmlid",
2053
+ {
2054
+ name: "role",
2055
+ values: ["chapterend"],
2056
+ defaultValue: "chapterend"
2057
+ },
2058
+ {
2059
+ name: "doc-type",
2060
+ values: ["doc-bibliography"],
2061
+ defaultValue: "doc-bibliography"
2062
+ }
2063
+ ],
2064
+ optionalAttributes: [],
2065
+ allowedChildTagNames: [
2066
+ { tagName: BIBLIODIV_TAG, required: false },
2067
+ { tagName: BIBLIOMIXED_TAG, required: false },
2068
+ { tagName: PARA_TAG, required: false },
2069
+ { tagName: TITLE_TAG, required: false }
2070
+ ]
2071
+ });
2072
+
2073
+ // src/schema/elementSchemas/elements/reference/bibliomixed.ts
2074
+ var BIBLIOMIXED_SCHEMA = createSchema({
2075
+ code: "referenceBibliomixed",
2076
+ kind: "element",
2077
+ tag: BIBLIOMIXED_TAG,
2078
+ requiredAttributes: [...ID_ATTRS, "xmlid", "role"],
2079
+ optionalAttributes: [
2080
+ "track-role",
2081
+ TRACK_CHANGES_ATTR_DATA_USERID,
2082
+ TRACK_CHANGES_ATTR_DATA_DATE
2083
+ ],
2084
+ allowedChildTagNames: []
2085
+ });
2086
+
2022
2087
  // src/schema/elementSchemas/elements/index.ts
2023
2088
  var ELEMENT_SCHEMAS = {
2089
+ bibliodiv: BIBLIODIV_SCHEMA,
2090
+ referenceBibliography: REFERENCE_BIBLIOGRAPHY_SCHEMA,
2091
+ referenceBibliomixed: BIBLIOMIXED_SCHEMA,
2024
2092
  para: PARA_SCHEMA,
2025
2093
  title1: TITLE_SCHEMA,
2026
2094
  footnote: FOOTNOTE_SCHEMA,
@@ -2196,6 +2264,9 @@ var SCHEMAS = {
2196
2264
 
2197
2265
  // src/schema/schema.types.ts
2198
2266
  var ElementLabel = {
2267
+ referenceBibliomixed: "Reference Bibliomixed",
2268
+ referenceBibliography: "Reference Bibliography",
2269
+ bibliodiv: "Bibliodiv",
2199
2270
  indexterm: "Indexterm",
2200
2271
  primary: "Primary",
2201
2272
  secondary: "Secondary",
@@ -2321,9 +2392,7 @@ var IGNORED_ELEMENT_SELECTORS = [
2321
2392
  "span.printlabel",
2322
2393
  "span.refIcon",
2323
2394
  "span.missLink",
2324
- "span.ref-drag",
2325
- "bibliomixed"
2326
- // TODO: Remove this once we have a proper schema for bibliomixed
2395
+ "span.ref-drag"
2327
2396
  ];
2328
2397
 
2329
2398
  // src/schema/shared/ignoredAttributes.ts
@@ -2549,17 +2618,17 @@ var validateConsecutiveFootnoteCues = (root) => {
2549
2618
  };
2550
2619
 
2551
2620
  // src/validation/validateLinkend.ts
2552
- var findElementLinkedTo = (linkend, elementsLinkedTo) => {
2553
- return elementsLinkedTo.includes(linkend);
2621
+ var findElementLinkedTo = (linkend, elementsToLink) => {
2622
+ return elementsToLink.includes(linkend);
2554
2623
  };
2555
- var validateLinkend = (linkElement, elementsLinkedTo) => {
2624
+ var validateLinkend = (linkElement, elementsToLink) => {
2556
2625
  const linkend = linkElement.getAttribute("linkend");
2557
2626
  if (!linkend) {
2558
2627
  return [];
2559
2628
  }
2560
2629
  const isLinkFootnoteCue = linkElement.tagName.toUpperCase() === FOOTNOTE_LINK_SCHEMA.tag;
2561
2630
  if (isLinkFootnoteCue) {
2562
- if (findElementLinkedTo(linkend, elementsLinkedTo)) {
2631
+ if (findElementLinkedTo(linkend, elementsToLink)) {
2563
2632
  return [];
2564
2633
  }
2565
2634
  return [
@@ -2572,7 +2641,7 @@ var validateLinkend = (linkElement, elementsLinkedTo) => {
2572
2641
  })
2573
2642
  ];
2574
2643
  }
2575
- if (findElementLinkedTo(linkend, elementsLinkedTo)) {
2644
+ if (findElementLinkedTo(linkend, elementsToLink)) {
2576
2645
  return [];
2577
2646
  }
2578
2647
  return [
@@ -2596,13 +2665,6 @@ var validateAttributes = (element, schema) => {
2596
2665
  for (const attribute of schema.requiredAttributes) {
2597
2666
  const name = getAttributeName(attribute);
2598
2667
  if (!element.hasAttribute(name)) {
2599
- addValidationIssue(errors, {
2600
- store: getStore(element),
2601
- title: `Missing required attribute "${name}"`,
2602
- level: "warning",
2603
- kind: "missing",
2604
- description: `The attribute "${name}" is required but not present in the element.`
2605
- });
2606
2668
  }
2607
2669
  }
2608
2670
  for (const name of element.getAttributeNames()) {
@@ -2611,13 +2673,6 @@ var validateAttributes = (element, schema) => {
2611
2673
  }
2612
2674
  const definition = findAttributeDefinitionByName(definitions, name);
2613
2675
  if (!definition) {
2614
- addValidationIssue(errors, {
2615
- store: element.id,
2616
- title: `Unexpected attribute "${name}"`,
2617
- level: "warning",
2618
- kind: "forbidden",
2619
- description: `The attribute "${name}" is not allowed in this element.`
2620
- });
2621
2676
  continue;
2622
2677
  }
2623
2678
  if (!isAttributeRestricted(definition)) {
@@ -2787,8 +2842,31 @@ var getLinkableRoles = () => {
2787
2842
  return [];
2788
2843
  };
2789
2844
 
2845
+ // src/validation/validateReferences.ts
2846
+ var findElementLinkedTo2 = (xmlid, linkElements) => {
2847
+ return linkElements.includes(xmlid);
2848
+ };
2849
+ var validateReferenceCited = (referenceElement, linkElements) => {
2850
+ const xmlid = referenceElement.getAttribute("xmlid");
2851
+ if (!xmlid) {
2852
+ return [];
2853
+ }
2854
+ if (findElementLinkedTo2(xmlid, linkElements)) {
2855
+ return [];
2856
+ }
2857
+ return [
2858
+ createValidationIssue({
2859
+ store: getStore(referenceElement),
2860
+ title: "Unlinked element",
2861
+ kind: "unlinked",
2862
+ description: "This reference is not cited in this chapter or any other chapter. Please add a link to this reference or delete the reference.",
2863
+ level: "blocker"
2864
+ })
2865
+ ];
2866
+ };
2867
+
2790
2868
  // src/validation/validateXml.ts
2791
- var validateElement = (element, root, elementsLinkedTo, schemasToValidateAgainst) => {
2869
+ var validateElement = (element, root, elementsToLink, linkElements, schemasToValidateAgainst) => {
2792
2870
  if (isIgnoredElement(element)) {
2793
2871
  return [];
2794
2872
  }
@@ -2807,7 +2885,11 @@ var validateElement = (element, root, elementsLinkedTo, schemasToValidateAgainst
2807
2885
  const role = element.getAttribute("role") || "";
2808
2886
  const linkableRoles = getLinkableRoles();
2809
2887
  if (schema.tag === LINK_SCHEMA.tag && linkableRoles.includes(role) || schema.tag === FOOTNOTE_LINK_SCHEMA.tag) {
2810
- errors.push(...validateLinkend(element, elementsLinkedTo));
2888
+ errors.push(...validateLinkend(element, elementsToLink));
2889
+ }
2890
+ if (schema.tag === BIBLIOMIXED_SCHEMA.tag) {
2891
+ errors.push(...validateReferenceCited(element, linkElements));
2892
+ return errors;
2811
2893
  }
2812
2894
  if (schema.tag === FOOTNOTE_SCHEMA.tag) {
2813
2895
  errors.push(...validateFootnoteCue(element, root));
@@ -2818,14 +2900,15 @@ var validateElement = (element, root, elementsLinkedTo, schemasToValidateAgainst
2818
2900
  ...validateElement(
2819
2901
  child,
2820
2902
  root,
2821
- elementsLinkedTo,
2903
+ elementsToLink,
2904
+ linkElements,
2822
2905
  schemasToValidateAgainst
2823
2906
  )
2824
2907
  );
2825
2908
  }
2826
2909
  return errors;
2827
2910
  };
2828
- var validateXml = (xml, elementsLinkedTo, schemasToValidateAgainst) => {
2911
+ var validateXml = (xml, elementsToLink, linkElements, schemasToValidateAgainst) => {
2829
2912
  const errors = [];
2830
2913
  errors.push(...validateConsecutiveFootnotes(xml));
2831
2914
  errors.push(...validateConsecutiveFootnoteCues(xml));
@@ -2834,7 +2917,8 @@ var validateXml = (xml, elementsLinkedTo, schemasToValidateAgainst) => {
2834
2917
  ...validateElement(
2835
2918
  child,
2836
2919
  xml,
2837
- elementsLinkedTo,
2920
+ elementsToLink,
2921
+ linkElements,
2838
2922
  schemasToValidateAgainst
2839
2923
  )
2840
2924
  );
@@ -2870,7 +2954,6 @@ export {
2870
2954
  TRACK_CHANGES_ATTRS,
2871
2955
  TRACK_CHANGES_ATTR_DATA_DATE,
2872
2956
  TRACK_CHANGES_ATTR_DATA_TIME,
2873
- TRACK_CHANGES_ATTR_DATA_USER,
2874
2957
  TRACK_CHANGES_ATTR_DATA_USERID,
2875
2958
  TRACK_CHANGES_ATTR_DATA_USERNAME,
2876
2959
  createElement,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pro-editor-schema",
3
- "version": "0.1.193",
3
+ "version": "0.1.195",
4
4
  "description": "Pro Editor XML schemas",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",