pro-editor-schema 0.1.190 → 0.1.192

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
@@ -27,7 +27,7 @@ type Schema<TRequiredAttributes = readonly AttributeDefinition[], TOptionalAttri
27
27
  };
28
28
  type SchemaCode = ElementSchemaCode | InlineSchemaCode | AtomSchemaCode;
29
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";
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";
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>;
33
33
 
@@ -36,6 +36,7 @@ declare const SCHEMAS: Record<SchemaCode, Schema>;
36
36
  declare const isIgnoredAttribute: (attribute: string) => boolean;
37
37
  declare const isIgnoredElement: (element: Element) => boolean;
38
38
  declare const findSchemaByCode: (code: SchemaCode) => Schema;
39
+ declare const findSchemaByTagName: (tagName: string) => Schema[];
39
40
  declare const findSchemaByElement: (element: Element) => Schema;
40
41
  declare const isAttributeRestricted: (attr: AttributeDefinition) => attr is RestrictedAttribute;
41
42
  declare const getAttributeName: (attribute: AttributeDefinition) => string;
@@ -73,10 +74,11 @@ declare const LAYOUT_TABLE_ORIENTATION_ATTRIBUTE = "data-table-orientation";
73
74
  declare const LAYOUT_TABLE_PLACEMENT_ATTRIBUTE = "data-table-placement";
74
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"];
75
76
  declare const TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
77
+ declare const TRACK_CHANGES_ATTR_DATA_USER = "data-user";
76
78
  declare const TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
77
79
  declare const TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
78
80
  declare const TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
79
- declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-userid", "data-time", "data-date"];
81
+ declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-user", "data-userid", "data-time", "data-date"];
80
82
  declare const ELE_ID_ATTRIBUTE = "ele-id";
81
83
  declare const STORE_ATTRIBUTE = "store";
82
84
  declare const ID_ATTRS: readonly ["store", "ele-id"];
@@ -109,4 +111,4 @@ type ValidationError = {
109
111
  */
110
112
  declare const validateXml: (xml: Element, elementsLinkedTo: readonly string[], schemasToValidateAgainst: SchemaCode[]) => ValidationError[];
111
113
 
112
- 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, 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_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 };
package/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@ type Schema<TRequiredAttributes = readonly AttributeDefinition[], TOptionalAttri
27
27
  };
28
28
  type SchemaCode = ElementSchemaCode | InlineSchemaCode | AtomSchemaCode;
29
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";
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";
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>;
33
33
 
@@ -36,6 +36,7 @@ declare const SCHEMAS: Record<SchemaCode, Schema>;
36
36
  declare const isIgnoredAttribute: (attribute: string) => boolean;
37
37
  declare const isIgnoredElement: (element: Element) => boolean;
38
38
  declare const findSchemaByCode: (code: SchemaCode) => Schema;
39
+ declare const findSchemaByTagName: (tagName: string) => Schema[];
39
40
  declare const findSchemaByElement: (element: Element) => Schema;
40
41
  declare const isAttributeRestricted: (attr: AttributeDefinition) => attr is RestrictedAttribute;
41
42
  declare const getAttributeName: (attribute: AttributeDefinition) => string;
@@ -73,10 +74,11 @@ declare const LAYOUT_TABLE_ORIENTATION_ATTRIBUTE = "data-table-orientation";
73
74
  declare const LAYOUT_TABLE_PLACEMENT_ATTRIBUTE = "data-table-placement";
74
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"];
75
76
  declare const TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
77
+ declare const TRACK_CHANGES_ATTR_DATA_USER = "data-user";
76
78
  declare const TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
77
79
  declare const TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
78
80
  declare const TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
79
- declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-userid", "data-time", "data-date"];
81
+ declare const TRACK_CHANGES_ATTRS: readonly ["data-username", "data-user", "data-userid", "data-time", "data-date"];
80
82
  declare const ELE_ID_ATTRIBUTE = "ele-id";
81
83
  declare const STORE_ATTRIBUTE = "store";
82
84
  declare const ID_ATTRS: readonly ["store", "ele-id"];
@@ -109,4 +111,4 @@ type ValidationError = {
109
111
  */
110
112
  declare const validateXml: (xml: Element, elementsLinkedTo: readonly string[], schemasToValidateAgainst: SchemaCode[]) => ValidationError[];
111
113
 
112
- 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, 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_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 };
package/dist/index.js CHANGED
@@ -48,12 +48,14 @@ __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,
51
52
  TRACK_CHANGES_ATTR_DATA_USERID: () => TRACK_CHANGES_ATTR_DATA_USERID,
52
53
  TRACK_CHANGES_ATTR_DATA_USERNAME: () => TRACK_CHANGES_ATTR_DATA_USERNAME,
53
54
  createElement: () => createElement,
54
55
  findAttributeDefinitionByName: () => findAttributeDefinitionByName,
55
56
  findSchemaByCode: () => findSchemaByCode,
56
57
  findSchemaByElement: () => findSchemaByElement,
58
+ findSchemaByTagName: () => findSchemaByTagName,
57
59
  getAttributeName: () => getAttributeName,
58
60
  isAttributeRestricted: () => isAttributeRestricted,
59
61
  isIgnoredAttribute: () => isIgnoredAttribute,
@@ -111,11 +113,13 @@ var LAYOUT_ATTRIBUTES = [
111
113
  STYLE_NAME_ATTRIBUTE
112
114
  ];
113
115
  var TRACK_CHANGES_ATTR_DATA_USERNAME = "data-username";
116
+ var TRACK_CHANGES_ATTR_DATA_USER = "data-user";
114
117
  var TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
115
118
  var TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
116
119
  var TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
117
120
  var TRACK_CHANGES_ATTRS = [
118
121
  TRACK_CHANGES_ATTR_DATA_USERNAME,
122
+ TRACK_CHANGES_ATTR_DATA_USER,
119
123
  TRACK_CHANGES_ATTR_DATA_USERID,
120
124
  TRACK_CHANGES_ATTR_DATA_TIME,
121
125
  TRACK_CHANGES_ATTR_DATA_DATE
@@ -146,6 +150,7 @@ var TERTIARY_TAG = "TERTIARY";
146
150
  var QUATERNARY_TAG = "QUATERNARY";
147
151
  var BOOKMARK_TAG = "BOOKMARK";
148
152
  var SEE_TAG = "SEE";
153
+ var REFERENCE_MARK_TAG = "REFERENCE";
149
154
 
150
155
  // src/schema/shared/allowedAtomsChildren.ts
151
156
  var ATOM_TAGS_ALLOWED_CHILDREN = [
@@ -404,8 +409,8 @@ var INDEX_TERM_ENTRY_REQUIRED_ATTRIBUTES = [
404
409
  "secondEntry",
405
410
  "thirdEntry",
406
411
  "entry",
407
- STORE_ATTRIBUTE,
408
- "linkend"
412
+ "linkend",
413
+ ...ID_ATTRS
409
414
  ];
410
415
  var BOOKMARK_INDEX_POSITION_ATTRIBUTE = {
411
416
  name: "index-position",
@@ -421,7 +426,7 @@ var SEE_REQUIRED_ATTRIBUTES = [
421
426
  values: ["see", "see-also"],
422
427
  defaultValue: ""
423
428
  },
424
- STORE_ATTRIBUTE,
429
+ ...ID_ATTRS,
425
430
  "data-date",
426
431
  "crossref-firstEntry",
427
432
  "crossref-secondEntry",
@@ -459,7 +464,7 @@ var INDEXTERM_SCHEMA = createSchema({
459
464
  values: ["PRIMARY", "SECONDARY", "TERTIARY", "QUATERNARY"],
460
465
  defaultValue: "PRIMARY"
461
466
  },
462
- STORE_ATTRIBUTE
467
+ ...ID_ATTRS
463
468
  ],
464
469
  optionalAttributes: [],
465
470
  allowedChildTagNames: [
@@ -533,6 +538,26 @@ var TERTIARY_SCHEMA = createSchema({
533
538
  ]
534
539
  });
535
540
 
541
+ // src/schema/elementSchemas/atoms/referenceMark.ts
542
+ var REFERENCE_MARK_SCHEMA = createSchema({
543
+ code: "referenceMark",
544
+ kind: "atom",
545
+ tag: REFERENCE_MARK_TAG,
546
+ requiredAttributes: [
547
+ ...ID_ATTRS,
548
+ TRACK_CHANGES_ATTR_DATA_DATE,
549
+ TRACK_CHANGES_ATTR_DATA_USERNAME,
550
+ TRACK_CHANGES_ATTR_DATA_USERID,
551
+ {
552
+ name: "data-position",
553
+ values: ["single", "middle", "start", "end"],
554
+ defaultValue: "single"
555
+ }
556
+ ],
557
+ optionalAttributes: [],
558
+ allowedChildTagNames: [...ATOM_TAGS_ALLOWED_CHILDREN]
559
+ });
560
+
536
561
  // src/schema/elementSchemas/atoms/index.ts
537
562
  var ATOM_SCHEMAS = {
538
563
  indexterm: INDEXTERM_SCHEMA,
@@ -543,6 +568,7 @@ var ATOM_SCHEMAS = {
543
568
  bookmark: BOOKMARK_SCHEMA,
544
569
  see: SEE_SCHEMA,
545
570
  b: B_SCHEMA,
571
+ referenceMark: REFERENCE_MARK_SCHEMA,
546
572
  i: I_SCHEMA,
547
573
  u: U_SCHEMA,
548
574
  sc: SC_SCHEMA,
@@ -622,6 +648,7 @@ var CHAPTER_TAG = "CHAPTER";
622
648
  var EPIGRAPH_TAG = "EPIGRAPH";
623
649
  var INFO_TAG = "INFO1";
624
650
  var POEM_TAG = "POEM";
651
+ var BIBLIOMIXED_TAG = "BIBLIOMIXED";
625
652
  var MATHPHRASE_TAG = "MATHPHRASE";
626
653
  var MATH_TAG = "MATH";
627
654
  var MERROR_TAG = "MERROR";
@@ -1564,7 +1591,8 @@ var PARA_SCHEMA = createSchema({
1564
1591
  { tagName: SOURCE_TAG, required: false },
1565
1592
  { tagName: INFORMALFIGURE_TAG, required: false },
1566
1593
  { tagName: FIGURE_TAG, required: false },
1567
- { tagName: TOKEN_TAG, required: false }
1594
+ { tagName: TOKEN_TAG, required: false },
1595
+ { tagName: BIBLIOMIXED_TAG, required: false }
1568
1596
  ]
1569
1597
  });
1570
1598
 
@@ -1650,7 +1678,11 @@ var TD_SCHEMA = createSchema({
1650
1678
  kind: "element",
1651
1679
  tag: TD_TAG,
1652
1680
  requiredAttributes: [...ID_ATTRS],
1653
- optionalAttributes: [...TRACK_CHANGES_ATTRS, LAYOUT_CELL_WIDTH_ATTRIBUTE],
1681
+ optionalAttributes: [
1682
+ ...TRACK_CHANGES_ATTRS,
1683
+ LAYOUT_CELL_WIDTH_ATTRIBUTE,
1684
+ "width"
1685
+ ],
1654
1686
  allowedChildTagNames: [
1655
1687
  { tagName: TP_TAG, required: false },
1656
1688
  { tagName: UL_TAG, required: false },
@@ -2031,7 +2063,7 @@ var POEM_SCHEMA = createSchema({
2031
2063
  optionalAttributes: [...TRACK_CHANGES_ATTRS, "role"],
2032
2064
  defaultChildTagName: LINE_TAG,
2033
2065
  allowedChildTagNames: [
2034
- { tagName: LINE_TAG, required: false },
2066
+ { tagName: LINE_TAG, required: true },
2035
2067
  { tagName: SOURCE_TAG, required: false }
2036
2068
  ]
2037
2069
  });
@@ -2252,6 +2284,7 @@ var ElementLabel = {
2252
2284
  sup: "Superscript",
2253
2285
  u: "Underline",
2254
2286
  b: "Bold",
2287
+ referenceMark: "Reference Mark",
2255
2288
  degrees: "Degrees",
2256
2289
  email: "Email",
2257
2290
  equation: "Equation",
@@ -2353,7 +2386,9 @@ var IGNORED_ELEMENT_SELECTORS = [
2353
2386
  "span.printlabel",
2354
2387
  "span.refIcon",
2355
2388
  "span.missLink",
2356
- "span.ref-drag"
2389
+ "span.ref-drag",
2390
+ "bibliomixed"
2391
+ // TODO: Remove this once we have a proper schema for bibliomixed
2357
2392
  ];
2358
2393
 
2359
2394
  // src/schema/shared/ignoredAttributes.ts
@@ -2364,6 +2399,7 @@ var IGNORED_ATTRIBUTES = [
2364
2399
  // Editor state
2365
2400
  "contenteditable",
2366
2401
  "draggable",
2402
+ "data-prevpos",
2367
2403
  "tabindex",
2368
2404
  // Browser behaviour
2369
2405
  "spellcheck",
@@ -2372,7 +2408,7 @@ var IGNORED_ATTRIBUTES = [
2372
2408
  "dir",
2373
2409
  "hidden"
2374
2410
  ];
2375
- var IGNORED_ATTRIBUTES_STARTS_WITH = ["er-", "er_"];
2411
+ var IGNORED_ATTRIBUTES_STARTS_WITH = ["er-", "er_", "drop", "drag"];
2376
2412
 
2377
2413
  // src/schema/utils/utils.ts
2378
2414
  var isIgnoredAttribute = (attribute) => IGNORED_ATTRIBUTES.includes(attribute) || IGNORED_ATTRIBUTES_STARTS_WITH.some(
@@ -2380,32 +2416,44 @@ var isIgnoredAttribute = (attribute) => IGNORED_ATTRIBUTES.includes(attribute) |
2380
2416
  );
2381
2417
  var isIgnoredElement = (element) => IGNORED_ELEMENT_SELECTORS.some((selector) => element.matches(selector));
2382
2418
  var findSchemaByCode = (code) => SCHEMAS[code];
2419
+ var findSchemaByTagName = (tagName) => {
2420
+ const candidates = Object.values(SCHEMAS).filter(
2421
+ (schema) => schema.tag === tagName.toUpperCase()
2422
+ );
2423
+ return candidates;
2424
+ };
2383
2425
  var findSchemaByElement = (element) => {
2384
2426
  const tagName = element.tagName.toUpperCase();
2385
2427
  const isInsertion = element.classList.contains("ins");
2386
2428
  const isDeletion = element.classList.contains("del");
2387
2429
  const isQueryComment = element.classList.contains("cmtQurySection");
2388
2430
  const role = element.getAttribute("role");
2389
- if (isQueryComment && tagName === SPAN_TAG) {
2390
- return findSchemaByCode("commentQuerySection");
2391
- }
2392
- if (isInsertion && tagName === SPAN_TAG) {
2393
- return findSchemaByCode("insertion");
2394
- }
2395
- if (isDeletion && tagName === SPAN_TAG) {
2396
- return findSchemaByCode("deletion");
2431
+ if (tagName === SPAN_TAG) {
2432
+ if (isQueryComment) {
2433
+ return findSchemaByCode("commentQuerySection");
2434
+ }
2435
+ if (isInsertion) {
2436
+ return findSchemaByCode("insertion");
2437
+ }
2438
+ if (isDeletion) {
2439
+ return findSchemaByCode("deletion");
2440
+ }
2397
2441
  }
2398
- if (role && tagName === SECTION_TAG) {
2399
- if (role.startsWith("H")) {
2400
- return findSchemaByCode("heading");
2442
+ if (tagName === SECTION_TAG) {
2443
+ if (role) {
2444
+ if (role.startsWith("H")) {
2445
+ return findSchemaByCode("heading");
2446
+ }
2447
+ if (role === "ch" || role === "bk") {
2448
+ return findSchemaByCode("footnoteSection");
2449
+ }
2401
2450
  }
2402
- if (role === "ch" || role === "bk") {
2451
+ const isFootnoteSectionWithoutRole = element.querySelector(FOOTNOTE_TAG);
2452
+ if (isFootnoteSectionWithoutRole) {
2403
2453
  return findSchemaByCode("footnoteSection");
2404
2454
  }
2405
2455
  }
2406
- const candidates = Object.values(SCHEMAS).filter(
2407
- (schema) => schema.tag === element.tagName.toUpperCase()
2408
- );
2456
+ const candidates = findSchemaByTagName(element.tagName.toUpperCase());
2409
2457
  return candidates[0];
2410
2458
  };
2411
2459
  var isAttributeRestricted = (attr) => typeof attr !== "string";
@@ -2888,12 +2936,14 @@ var validateXml = (xml, elementsLinkedTo, schemasToValidateAgainst) => {
2888
2936
  TRACK_CHANGES_ATTRS,
2889
2937
  TRACK_CHANGES_ATTR_DATA_DATE,
2890
2938
  TRACK_CHANGES_ATTR_DATA_TIME,
2939
+ TRACK_CHANGES_ATTR_DATA_USER,
2891
2940
  TRACK_CHANGES_ATTR_DATA_USERID,
2892
2941
  TRACK_CHANGES_ATTR_DATA_USERNAME,
2893
2942
  createElement,
2894
2943
  findAttributeDefinitionByName,
2895
2944
  findSchemaByCode,
2896
2945
  findSchemaByElement,
2946
+ findSchemaByTagName,
2897
2947
  getAttributeName,
2898
2948
  isAttributeRestricted,
2899
2949
  isIgnoredAttribute,
package/dist/index.mjs CHANGED
@@ -47,11 +47,13 @@ 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";
50
51
  var TRACK_CHANGES_ATTR_DATA_USERID = "data-userid";
51
52
  var TRACK_CHANGES_ATTR_DATA_TIME = "data-time";
52
53
  var TRACK_CHANGES_ATTR_DATA_DATE = "data-date";
53
54
  var TRACK_CHANGES_ATTRS = [
54
55
  TRACK_CHANGES_ATTR_DATA_USERNAME,
56
+ TRACK_CHANGES_ATTR_DATA_USER,
55
57
  TRACK_CHANGES_ATTR_DATA_USERID,
56
58
  TRACK_CHANGES_ATTR_DATA_TIME,
57
59
  TRACK_CHANGES_ATTR_DATA_DATE
@@ -82,6 +84,7 @@ var TERTIARY_TAG = "TERTIARY";
82
84
  var QUATERNARY_TAG = "QUATERNARY";
83
85
  var BOOKMARK_TAG = "BOOKMARK";
84
86
  var SEE_TAG = "SEE";
87
+ var REFERENCE_MARK_TAG = "REFERENCE";
85
88
 
86
89
  // src/schema/shared/allowedAtomsChildren.ts
87
90
  var ATOM_TAGS_ALLOWED_CHILDREN = [
@@ -340,8 +343,8 @@ var INDEX_TERM_ENTRY_REQUIRED_ATTRIBUTES = [
340
343
  "secondEntry",
341
344
  "thirdEntry",
342
345
  "entry",
343
- STORE_ATTRIBUTE,
344
- "linkend"
346
+ "linkend",
347
+ ...ID_ATTRS
345
348
  ];
346
349
  var BOOKMARK_INDEX_POSITION_ATTRIBUTE = {
347
350
  name: "index-position",
@@ -357,7 +360,7 @@ var SEE_REQUIRED_ATTRIBUTES = [
357
360
  values: ["see", "see-also"],
358
361
  defaultValue: ""
359
362
  },
360
- STORE_ATTRIBUTE,
363
+ ...ID_ATTRS,
361
364
  "data-date",
362
365
  "crossref-firstEntry",
363
366
  "crossref-secondEntry",
@@ -395,7 +398,7 @@ var INDEXTERM_SCHEMA = createSchema({
395
398
  values: ["PRIMARY", "SECONDARY", "TERTIARY", "QUATERNARY"],
396
399
  defaultValue: "PRIMARY"
397
400
  },
398
- STORE_ATTRIBUTE
401
+ ...ID_ATTRS
399
402
  ],
400
403
  optionalAttributes: [],
401
404
  allowedChildTagNames: [
@@ -469,6 +472,26 @@ var TERTIARY_SCHEMA = createSchema({
469
472
  ]
470
473
  });
471
474
 
475
+ // src/schema/elementSchemas/atoms/referenceMark.ts
476
+ var REFERENCE_MARK_SCHEMA = createSchema({
477
+ code: "referenceMark",
478
+ kind: "atom",
479
+ tag: REFERENCE_MARK_TAG,
480
+ requiredAttributes: [
481
+ ...ID_ATTRS,
482
+ TRACK_CHANGES_ATTR_DATA_DATE,
483
+ TRACK_CHANGES_ATTR_DATA_USERNAME,
484
+ TRACK_CHANGES_ATTR_DATA_USERID,
485
+ {
486
+ name: "data-position",
487
+ values: ["single", "middle", "start", "end"],
488
+ defaultValue: "single"
489
+ }
490
+ ],
491
+ optionalAttributes: [],
492
+ allowedChildTagNames: [...ATOM_TAGS_ALLOWED_CHILDREN]
493
+ });
494
+
472
495
  // src/schema/elementSchemas/atoms/index.ts
473
496
  var ATOM_SCHEMAS = {
474
497
  indexterm: INDEXTERM_SCHEMA,
@@ -479,6 +502,7 @@ var ATOM_SCHEMAS = {
479
502
  bookmark: BOOKMARK_SCHEMA,
480
503
  see: SEE_SCHEMA,
481
504
  b: B_SCHEMA,
505
+ referenceMark: REFERENCE_MARK_SCHEMA,
482
506
  i: I_SCHEMA,
483
507
  u: U_SCHEMA,
484
508
  sc: SC_SCHEMA,
@@ -558,6 +582,7 @@ var CHAPTER_TAG = "CHAPTER";
558
582
  var EPIGRAPH_TAG = "EPIGRAPH";
559
583
  var INFO_TAG = "INFO1";
560
584
  var POEM_TAG = "POEM";
585
+ var BIBLIOMIXED_TAG = "BIBLIOMIXED";
561
586
  var MATHPHRASE_TAG = "MATHPHRASE";
562
587
  var MATH_TAG = "MATH";
563
588
  var MERROR_TAG = "MERROR";
@@ -1500,7 +1525,8 @@ var PARA_SCHEMA = createSchema({
1500
1525
  { tagName: SOURCE_TAG, required: false },
1501
1526
  { tagName: INFORMALFIGURE_TAG, required: false },
1502
1527
  { tagName: FIGURE_TAG, required: false },
1503
- { tagName: TOKEN_TAG, required: false }
1528
+ { tagName: TOKEN_TAG, required: false },
1529
+ { tagName: BIBLIOMIXED_TAG, required: false }
1504
1530
  ]
1505
1531
  });
1506
1532
 
@@ -1586,7 +1612,11 @@ var TD_SCHEMA = createSchema({
1586
1612
  kind: "element",
1587
1613
  tag: TD_TAG,
1588
1614
  requiredAttributes: [...ID_ATTRS],
1589
- optionalAttributes: [...TRACK_CHANGES_ATTRS, LAYOUT_CELL_WIDTH_ATTRIBUTE],
1615
+ optionalAttributes: [
1616
+ ...TRACK_CHANGES_ATTRS,
1617
+ LAYOUT_CELL_WIDTH_ATTRIBUTE,
1618
+ "width"
1619
+ ],
1590
1620
  allowedChildTagNames: [
1591
1621
  { tagName: TP_TAG, required: false },
1592
1622
  { tagName: UL_TAG, required: false },
@@ -1967,7 +1997,7 @@ var POEM_SCHEMA = createSchema({
1967
1997
  optionalAttributes: [...TRACK_CHANGES_ATTRS, "role"],
1968
1998
  defaultChildTagName: LINE_TAG,
1969
1999
  allowedChildTagNames: [
1970
- { tagName: LINE_TAG, required: false },
2000
+ { tagName: LINE_TAG, required: true },
1971
2001
  { tagName: SOURCE_TAG, required: false }
1972
2002
  ]
1973
2003
  });
@@ -2188,6 +2218,7 @@ var ElementLabel = {
2188
2218
  sup: "Superscript",
2189
2219
  u: "Underline",
2190
2220
  b: "Bold",
2221
+ referenceMark: "Reference Mark",
2191
2222
  degrees: "Degrees",
2192
2223
  email: "Email",
2193
2224
  equation: "Equation",
@@ -2289,7 +2320,9 @@ var IGNORED_ELEMENT_SELECTORS = [
2289
2320
  "span.printlabel",
2290
2321
  "span.refIcon",
2291
2322
  "span.missLink",
2292
- "span.ref-drag"
2323
+ "span.ref-drag",
2324
+ "bibliomixed"
2325
+ // TODO: Remove this once we have a proper schema for bibliomixed
2293
2326
  ];
2294
2327
 
2295
2328
  // src/schema/shared/ignoredAttributes.ts
@@ -2300,6 +2333,7 @@ var IGNORED_ATTRIBUTES = [
2300
2333
  // Editor state
2301
2334
  "contenteditable",
2302
2335
  "draggable",
2336
+ "data-prevpos",
2303
2337
  "tabindex",
2304
2338
  // Browser behaviour
2305
2339
  "spellcheck",
@@ -2308,7 +2342,7 @@ var IGNORED_ATTRIBUTES = [
2308
2342
  "dir",
2309
2343
  "hidden"
2310
2344
  ];
2311
- var IGNORED_ATTRIBUTES_STARTS_WITH = ["er-", "er_"];
2345
+ var IGNORED_ATTRIBUTES_STARTS_WITH = ["er-", "er_", "drop", "drag"];
2312
2346
 
2313
2347
  // src/schema/utils/utils.ts
2314
2348
  var isIgnoredAttribute = (attribute) => IGNORED_ATTRIBUTES.includes(attribute) || IGNORED_ATTRIBUTES_STARTS_WITH.some(
@@ -2316,32 +2350,44 @@ var isIgnoredAttribute = (attribute) => IGNORED_ATTRIBUTES.includes(attribute) |
2316
2350
  );
2317
2351
  var isIgnoredElement = (element) => IGNORED_ELEMENT_SELECTORS.some((selector) => element.matches(selector));
2318
2352
  var findSchemaByCode = (code) => SCHEMAS[code];
2353
+ var findSchemaByTagName = (tagName) => {
2354
+ const candidates = Object.values(SCHEMAS).filter(
2355
+ (schema) => schema.tag === tagName.toUpperCase()
2356
+ );
2357
+ return candidates;
2358
+ };
2319
2359
  var findSchemaByElement = (element) => {
2320
2360
  const tagName = element.tagName.toUpperCase();
2321
2361
  const isInsertion = element.classList.contains("ins");
2322
2362
  const isDeletion = element.classList.contains("del");
2323
2363
  const isQueryComment = element.classList.contains("cmtQurySection");
2324
2364
  const role = element.getAttribute("role");
2325
- if (isQueryComment && tagName === SPAN_TAG) {
2326
- return findSchemaByCode("commentQuerySection");
2327
- }
2328
- if (isInsertion && tagName === SPAN_TAG) {
2329
- return findSchemaByCode("insertion");
2330
- }
2331
- if (isDeletion && tagName === SPAN_TAG) {
2332
- return findSchemaByCode("deletion");
2365
+ if (tagName === SPAN_TAG) {
2366
+ if (isQueryComment) {
2367
+ return findSchemaByCode("commentQuerySection");
2368
+ }
2369
+ if (isInsertion) {
2370
+ return findSchemaByCode("insertion");
2371
+ }
2372
+ if (isDeletion) {
2373
+ return findSchemaByCode("deletion");
2374
+ }
2333
2375
  }
2334
- if (role && tagName === SECTION_TAG) {
2335
- if (role.startsWith("H")) {
2336
- return findSchemaByCode("heading");
2376
+ if (tagName === SECTION_TAG) {
2377
+ if (role) {
2378
+ if (role.startsWith("H")) {
2379
+ return findSchemaByCode("heading");
2380
+ }
2381
+ if (role === "ch" || role === "bk") {
2382
+ return findSchemaByCode("footnoteSection");
2383
+ }
2337
2384
  }
2338
- if (role === "ch" || role === "bk") {
2385
+ const isFootnoteSectionWithoutRole = element.querySelector(FOOTNOTE_TAG);
2386
+ if (isFootnoteSectionWithoutRole) {
2339
2387
  return findSchemaByCode("footnoteSection");
2340
2388
  }
2341
2389
  }
2342
- const candidates = Object.values(SCHEMAS).filter(
2343
- (schema) => schema.tag === element.tagName.toUpperCase()
2344
- );
2390
+ const candidates = findSchemaByTagName(element.tagName.toUpperCase());
2345
2391
  return candidates[0];
2346
2392
  };
2347
2393
  var isAttributeRestricted = (attr) => typeof attr !== "string";
@@ -2823,12 +2869,14 @@ export {
2823
2869
  TRACK_CHANGES_ATTRS,
2824
2870
  TRACK_CHANGES_ATTR_DATA_DATE,
2825
2871
  TRACK_CHANGES_ATTR_DATA_TIME,
2872
+ TRACK_CHANGES_ATTR_DATA_USER,
2826
2873
  TRACK_CHANGES_ATTR_DATA_USERID,
2827
2874
  TRACK_CHANGES_ATTR_DATA_USERNAME,
2828
2875
  createElement,
2829
2876
  findAttributeDefinitionByName,
2830
2877
  findSchemaByCode,
2831
2878
  findSchemaByElement,
2879
+ findSchemaByTagName,
2832
2880
  getAttributeName,
2833
2881
  isAttributeRestricted,
2834
2882
  isIgnoredAttribute,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pro-editor-schema",
3
- "version": "0.1.190",
3
+ "version": "0.1.192",
4
4
  "description": "Pro Editor XML schemas",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",