@gmb/bitmark-parser-generator 5.35.0 → 5.37.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/dist/browser/bitmark-parser-generator.min.js +1 -1
- package/dist/browser/bundle-report.html +2 -2
- package/dist/browser/cjs/index.cjs +998 -111
- package/dist/browser/cjs/index.cjs.map +1 -1
- package/dist/browser/cjs/index.d.cts +25 -0
- package/dist/browser/esm/index.d.ts +25 -0
- package/dist/browser/esm/index.js +998 -111
- package/dist/browser/esm/index.js.map +1 -1
- package/dist/cli/main.js +1144 -206
- package/dist/cli/main.js.map +1 -1
- package/dist/index.cjs +1144 -206
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +25 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +1144 -206
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/main.js
CHANGED
|
@@ -1316,6 +1316,7 @@ var propertyKeys = {
|
|
|
1316
1316
|
property_dateEnd: "@dateEnd",
|
|
1317
1317
|
property_decimalPlaces: "@decimalPlaces",
|
|
1318
1318
|
property_deeplink: "@deeplink",
|
|
1319
|
+
property_displayName: "@displayName",
|
|
1319
1320
|
property_diffContext: "@diffContext",
|
|
1320
1321
|
property_diffOp: "@diffOp",
|
|
1321
1322
|
property_diffRef: "@diffRef",
|
|
@@ -1528,6 +1529,8 @@ var propertyKeys = {
|
|
|
1528
1529
|
property_trim: "@trim",
|
|
1529
1530
|
property_unit: "@unit",
|
|
1530
1531
|
property_unitAbbr: "@unitAbbr",
|
|
1532
|
+
property_unitAbbrPlural: "@unitAbbrPlural",
|
|
1533
|
+
property_unitPlural: "@unitPlural",
|
|
1531
1534
|
property_vendorDashboardId: "@vendorDashboardId",
|
|
1532
1535
|
property_vendorSurveyId: "@vendorSurveyId",
|
|
1533
1536
|
property_vendorUrl: "@vendorUrl",
|
|
@@ -2456,9 +2459,30 @@ var CARDSETS = {
|
|
|
2456
2459
|
[CardSetConfigKey.definitionList]: {
|
|
2457
2460
|
jsonKey: "definitions",
|
|
2458
2461
|
exportJsonKey: { definitions: "$" },
|
|
2462
|
+
// PLAN-141 F1 (NISO import): each <def-item> is one card; the sides
|
|
2463
|
+
// read <term>/<def>; the enclosing <legend>'s <title> lands on the
|
|
2464
|
+
// term side's heading tag ([#Key] header card).
|
|
2465
|
+
// PLAN-141 F3: a <tbx:langSet> is ALSO one card (a terminology entry —
|
|
2466
|
+
// its enclosing <tbx:termEntry> is a transparent claim wrapper); its
|
|
2467
|
+
// children compose the term/definition sides via the side rules below.
|
|
2468
|
+
mappingKeys: {
|
|
2469
|
+
"xml-niso-iec": [
|
|
2470
|
+
{ "@el": "def-item", "@children": "$" },
|
|
2471
|
+
{ "@el": "tbx:langSet", "@children": "$" }
|
|
2472
|
+
]
|
|
2473
|
+
},
|
|
2459
2474
|
sides: [
|
|
2460
2475
|
{
|
|
2461
2476
|
name: "term",
|
|
2477
|
+
// F3: every <tbx:tig>'s <tbx:term> STACKS one-per-line onto the
|
|
2478
|
+
// single term side (the "$\n" template's authored separator; the
|
|
2479
|
+
// trailing one is trimmed) — the PDF's Maus/Mus/M/Müsli stack.
|
|
2480
|
+
mappingKeys: {
|
|
2481
|
+
"xml-niso-iec": [
|
|
2482
|
+
{ "@el": "term", "@text": "$" },
|
|
2483
|
+
{ "@el": "tbx:tig", "@children": { "@el": "tbx:term", "@text": "$\n" } }
|
|
2484
|
+
]
|
|
2485
|
+
},
|
|
2462
2486
|
variants: [
|
|
2463
2487
|
{
|
|
2464
2488
|
jsonKey: "term.text",
|
|
@@ -2474,7 +2498,8 @@ var CARDSETS = {
|
|
|
2474
2498
|
format: TagFormat.plainText,
|
|
2475
2499
|
nullable: true,
|
|
2476
2500
|
jsonKey: "^heading.forKeys",
|
|
2477
|
-
exportJsonKey: { "@bit": { heading: { forKeys: "$" } } }
|
|
2501
|
+
exportJsonKey: { "@bit": { heading: { forKeys: "$" } } },
|
|
2502
|
+
mappingKeys: { "xml-niso-iec": { "@el": "title", "@text": "$" } }
|
|
2478
2503
|
},
|
|
2479
2504
|
{
|
|
2480
2505
|
key: ConfigKey.group_resourceIcon,
|
|
@@ -2500,6 +2525,24 @@ var CARDSETS = {
|
|
|
2500
2525
|
},
|
|
2501
2526
|
{
|
|
2502
2527
|
name: "definition",
|
|
2528
|
+
// F3: the definition side COMPOSES from the entry's fields in
|
|
2529
|
+
// document order, with the ES-rendered locale affixes AUTHORED as
|
|
2530
|
+
// value-position templates (never engine text): the subject field
|
|
2531
|
+
// in ⟨⟩ glues (trailing space) onto the definition line; example /
|
|
2532
|
+
// notes / source follow as blank-line-separated lines. The TBX
|
|
2533
|
+
// grammar flags (normativeAuthorization, termType, partOfSpeech,
|
|
2534
|
+
// grammaticalNumber) are unrendered machine-only data — dropped and
|
|
2535
|
+
// recorded (catalog R-2, reviewed under D7 max-preservation).
|
|
2536
|
+
mappingKeys: {
|
|
2537
|
+
"xml-niso-iec": [
|
|
2538
|
+
{ "@el": "def", "@children": "$" },
|
|
2539
|
+
{ "@el": "tbx:subjectField", "@text": "\u27E8$\u27E9 " },
|
|
2540
|
+
{ "@el": "tbx:definition", "@children": "$" },
|
|
2541
|
+
{ "@el": "tbx:example", "@children": "BEISPIEL $" },
|
|
2542
|
+
{ "@el": "tbx:note", "@children": "Anmerkung zu Begriff: $" },
|
|
2543
|
+
{ "@el": "tbx:source", "@text": "[QUELLE: $]" }
|
|
2544
|
+
]
|
|
2545
|
+
},
|
|
2503
2546
|
variants: [
|
|
2504
2547
|
{
|
|
2505
2548
|
jsonKey: "definition.text",
|
|
@@ -3890,6 +3933,11 @@ var CARDSETS = {
|
|
|
3890
3933
|
{ table: { header: { rows: ["$"] } } }
|
|
3891
3934
|
],
|
|
3892
3935
|
htmlKey: { "@el": "thead", "@children": { "@el": "tr", "@children": "$" } },
|
|
3936
|
+
// PLAN-141 F2 (NISO import): the XHTML table model NISO uses — a
|
|
3937
|
+
// <thead> SECTION whose <tr> rows are the header cards.
|
|
3938
|
+
mappingKeys: {
|
|
3939
|
+
"xml-niso-iec": { "@el": "thead", "@children": { "@el": "tr", "@children": "$" } }
|
|
3940
|
+
},
|
|
3893
3941
|
sideJsonKey: "cells[{s}]|set(title=true)",
|
|
3894
3942
|
sideExportJsonKey: { cells: { $s: { title: true, $: "$" } } },
|
|
3895
3943
|
// Header cells are `<th>`. The `width` attribute is contributed by the
|
|
@@ -3901,12 +3949,21 @@ var CARDSETS = {
|
|
|
3901
3949
|
jsonKey: "table.body.rows",
|
|
3902
3950
|
exportJsonKey: { table: { body: { rows: "$" } } },
|
|
3903
3951
|
htmlKey: { "@el": "tbody", "@children": { "@el": "tr", "@children": "$" } },
|
|
3952
|
+
// PLAN-141 F2 (NISO import): <tbody> rows are the (default) data cards.
|
|
3953
|
+
mappingKeys: {
|
|
3954
|
+
"xml-niso-iec": { "@el": "tbody", "@children": { "@el": "tr", "@children": "$" } }
|
|
3955
|
+
},
|
|
3904
3956
|
isDefault: true
|
|
3905
3957
|
},
|
|
3906
3958
|
"table-footer": {
|
|
3907
3959
|
jsonKey: "table.footer.rows",
|
|
3908
3960
|
exportJsonKey: { table: { footer: { rows: "$" } } },
|
|
3909
3961
|
htmlKey: { "@el": "tfoot", "@children": { "@el": "tr", "@children": "$" } },
|
|
3962
|
+
// PLAN-141 F2 (NISO import): NISO has no <tfoot> — the footer card's
|
|
3963
|
+
// source is the <table-wrap-foot> block (CONTENT-shaped: no rows; its
|
|
3964
|
+
// prose/notes flatten into one footer card — catalog table-wrap-foot
|
|
3965
|
+
// row; a contained <def-list> promotes as a sibling legend bit).
|
|
3966
|
+
mappingKeys: { "xml-niso-iec": { "@el": "table-wrap-foot", "@children": "$" } },
|
|
3910
3967
|
sideJsonKey: "cells[{s}]|set(title=true)",
|
|
3911
3968
|
sideExportJsonKey: { cells: { $s: { title: true, $: "$" } } },
|
|
3912
3969
|
// Footer cells render as `<th>` (mirrors the header `title: true`
|
|
@@ -3923,6 +3980,8 @@ var CARDSETS = {
|
|
|
3923
3980
|
// Default (body) cell → `<td>`; the header/footer sections override the
|
|
3924
3981
|
// side to `<th>` via their sideHtmlKey (HTML.md §8).
|
|
3925
3982
|
htmlKey: { "@el": "td", "@children": "$" },
|
|
3983
|
+
// PLAN-141 F2 (NISO import): a <td> row child is a body cell side.
|
|
3984
|
+
mappingKeys: { "xml-niso-iec": { "@el": "td", "@children": "$" } },
|
|
3926
3985
|
variants: [
|
|
3927
3986
|
{
|
|
3928
3987
|
jsonKey: "content",
|
|
@@ -3940,7 +3999,11 @@ var CARDSETS = {
|
|
|
3940
3999
|
// cell with `title: true` automatically.
|
|
3941
4000
|
jsonKey: "content",
|
|
3942
4001
|
exportJsonKey: { content: "$" },
|
|
3943
|
-
description: "Title text of the table cell (header rows)."
|
|
4002
|
+
description: "Title text of the table cell (header rows).",
|
|
4003
|
+
// PLAN-141 F2 (NISO import): a <th> row child is a TITLE cell —
|
|
4004
|
+
// its content lands in the `[#…]` tag (an empty <th> keeps its
|
|
4005
|
+
// slot as a bare `[#]`).
|
|
4006
|
+
mappingKeys: { "xml-niso-iec": { "@el": "th", "@children": "$" } }
|
|
3944
4007
|
},
|
|
3945
4008
|
{
|
|
3946
4009
|
key: ConfigKey.property_tableCellType,
|
|
@@ -3959,6 +4022,9 @@ var CARDSETS = {
|
|
|
3959
4022
|
// HTML-C2: contribute a `rowspan` attribute onto the enclosing
|
|
3960
4023
|
// cell element (`<th>`/`<td>`).
|
|
3961
4024
|
htmlKey: { "@el": { "@attr": { rowspan: "$" } } },
|
|
4025
|
+
// PLAN-141 F2 (NISO import): recover the source cell's own
|
|
4026
|
+
// `rowspan` attribute (element-scope attr form).
|
|
4027
|
+
mappingKeys: { "xml-niso-iec": { "@el": { "@attr": { rowspan: "$" } } } },
|
|
3962
4028
|
description: "Number of rows the cell spans.",
|
|
3963
4029
|
format: TagFormat.number
|
|
3964
4030
|
},
|
|
@@ -3969,6 +4035,9 @@ var CARDSETS = {
|
|
|
3969
4035
|
// HTML-C2: contribute a `colspan` attribute onto the enclosing
|
|
3970
4036
|
// cell element (`<th>`/`<td>`).
|
|
3971
4037
|
htmlKey: { "@el": { "@attr": { colspan: "$" } } },
|
|
4038
|
+
// PLAN-141 F2 (NISO import): recover the source cell's own
|
|
4039
|
+
// `colspan` attribute (element-scope attr form).
|
|
4040
|
+
mappingKeys: { "xml-niso-iec": { "@el": { "@attr": { colspan: "$" } } } },
|
|
3972
4041
|
description: "Number of columns the cell spans.",
|
|
3973
4042
|
format: TagFormat.number
|
|
3974
4043
|
},
|
|
@@ -3990,6 +4059,13 @@ var CARDSETS = {
|
|
|
3990
4059
|
// HTML.md §8 + HTML-C2: contribute a `width` attribute onto the
|
|
3991
4060
|
// enclosing cell element (`<th>`/`<td>`).
|
|
3992
4061
|
htmlKey: { "@el": { "@attr": { width: "$" } } },
|
|
4062
|
+
// PLAN-141 F2 (NISO import): NISO carries widths as PER-COLUMN
|
|
4063
|
+
// <col width="…"> descriptors at container level, not on cells.
|
|
4064
|
+
// The matched values distribute positionally onto the first
|
|
4065
|
+
// (header) card's sides. Number format ⇒ only an integral
|
|
4066
|
+
// percentage survives ("20.0000%" → 20); a fractional one
|
|
4067
|
+
// (renderer-equalised "4.7619%") is dropped — catalog `col` row.
|
|
4068
|
+
mappingKeys: { "xml-niso-iec": { "@el": "col", "@attr": { width: "$" } } },
|
|
3993
4069
|
description: "Width for the column.",
|
|
3994
4070
|
format: TagFormat.number
|
|
3995
4071
|
}
|
|
@@ -4259,12 +4335,22 @@ var CARDSETS = {
|
|
|
4259
4335
|
},
|
|
4260
4336
|
{
|
|
4261
4337
|
key: ConfigKey.property_unit,
|
|
4262
|
-
description: "Unit of measurement for the ingredient.",
|
|
4338
|
+
description: "Unit of measurement for the ingredient (singular).",
|
|
4339
|
+
format: TagFormat.plainText
|
|
4340
|
+
},
|
|
4341
|
+
{
|
|
4342
|
+
key: ConfigKey.property_unitPlural,
|
|
4343
|
+
description: "Unit of measurement for the ingredient (plural).",
|
|
4263
4344
|
format: TagFormat.plainText
|
|
4264
4345
|
},
|
|
4265
4346
|
{
|
|
4266
4347
|
key: ConfigKey.property_unitAbbr,
|
|
4267
|
-
description: "Abbreviation for the unit of measurement.",
|
|
4348
|
+
description: "Abbreviation for the unit of measurement (singular).",
|
|
4349
|
+
format: TagFormat.plainText
|
|
4350
|
+
},
|
|
4351
|
+
{
|
|
4352
|
+
key: ConfigKey.property_unitAbbrPlural,
|
|
4353
|
+
description: "Abbreviation for the unit of measurement (plural).",
|
|
4268
4354
|
format: TagFormat.plainText
|
|
4269
4355
|
},
|
|
4270
4356
|
{
|
|
@@ -4363,7 +4449,22 @@ var GROUPS = {
|
|
|
4363
4449
|
key: ConfigKey.property_externalId,
|
|
4364
4450
|
description: "The external identifier for the bit",
|
|
4365
4451
|
format: TagFormat.plainText,
|
|
4366
|
-
maxCount: Count.infinity
|
|
4452
|
+
maxCount: Count.infinity,
|
|
4453
|
+
// PLAN-140 refs family (NISO import): the machine identifier of a
|
|
4454
|
+
// referenced standard. NESTED content slot — the tag reads (and
|
|
4455
|
+
// consumes) ONLY the <std-id> inside a <std> child; the remaining
|
|
4456
|
+
// designation/title text stays bit body. A <std> without <std-id>
|
|
4457
|
+
// does not fire the key.
|
|
4458
|
+
// PLAN-141 F5: on the [.book] bit, the DATED <std-ref> designation
|
|
4459
|
+
// is the document's external id. Safe rule order: <std-ref> is a
|
|
4460
|
+
// direct bit-element child only under <std-meta> (everywhere else
|
|
4461
|
+
// it nests inside <std>, which the tag spine never reaches).
|
|
4462
|
+
mappingKeys: {
|
|
4463
|
+
"xml-niso-iec": [
|
|
4464
|
+
{ "@el": "std", "@children": { "@el": "std-id", "@text": "$" } },
|
|
4465
|
+
{ "@el": "std-ref", "@attr": { type: "dated" }, "@text": "$" }
|
|
4466
|
+
]
|
|
4467
|
+
}
|
|
4367
4468
|
},
|
|
4368
4469
|
{
|
|
4369
4470
|
key: ConfigKey.property_sourceRL,
|
|
@@ -4425,6 +4526,11 @@ var GROUPS = {
|
|
|
4425
4526
|
description: "Translation source reference",
|
|
4426
4527
|
format: TagFormat.plainText
|
|
4427
4528
|
},
|
|
4529
|
+
{
|
|
4530
|
+
key: ConfigKey.property_isCollapsible,
|
|
4531
|
+
description: "If true, the bit is collapsible",
|
|
4532
|
+
format: TagFormat.boolean
|
|
4533
|
+
},
|
|
4428
4534
|
{
|
|
4429
4535
|
key: ConfigKey.property_spansPageBreak,
|
|
4430
4536
|
description: "If true, the bit spans a page break",
|
|
@@ -4504,7 +4610,8 @@ var GROUPS = {
|
|
|
4504
4610
|
{
|
|
4505
4611
|
key: ConfigKey.property_diffTime,
|
|
4506
4612
|
description: "The diff time for the bit",
|
|
4507
|
-
format: TagFormat.number
|
|
4613
|
+
format: TagFormat.number,
|
|
4614
|
+
nullable: true
|
|
4508
4615
|
},
|
|
4509
4616
|
{
|
|
4510
4617
|
key: ConfigKey.property_ageRange,
|
|
@@ -4515,7 +4622,18 @@ var GROUPS = {
|
|
|
4515
4622
|
{
|
|
4516
4623
|
key: ConfigKey.property_lang,
|
|
4517
4624
|
description: "The language for the bit",
|
|
4518
|
-
format: TagFormat.plainText
|
|
4625
|
+
format: TagFormat.plainText,
|
|
4626
|
+
// PLAN-141 F3 (NISO import): a term-sec's language rides
|
|
4627
|
+
// <tbx:termEntry><tbx:langSet xml:lang> — a nested content slot
|
|
4628
|
+
// whose leaf is a $-in-ATTR-position slot (the nested counterpart
|
|
4629
|
+
// of the value-attr slot). Only termEntry elements match, so the
|
|
4630
|
+
// shared tag is inert everywhere else.
|
|
4631
|
+
mappingKeys: {
|
|
4632
|
+
"xml-niso-iec": {
|
|
4633
|
+
"@el": "tbx:termEntry",
|
|
4634
|
+
"@children": { "@el": "tbx:langSet", "@attr": { "xml:lang": "$" } }
|
|
4635
|
+
}
|
|
4636
|
+
}
|
|
4519
4637
|
},
|
|
4520
4638
|
{
|
|
4521
4639
|
key: ConfigKey.property_publisher,
|
|
@@ -4714,6 +4832,9 @@ var GROUPS = {
|
|
|
4714
4832
|
key: ConfigKey.tag_item,
|
|
4715
4833
|
jsonKey: "item",
|
|
4716
4834
|
exportJsonKey: { item: "$" },
|
|
4835
|
+
// PLAN-140 W3 (NISO import): the clause/note label of a mapped
|
|
4836
|
+
// source element ([%1], [%ANMERKUNG 1]).
|
|
4837
|
+
mappingKeys: { "xml-niso-iec": { "@el": "label", "@text": "$" } },
|
|
4717
4838
|
description: "The item for the bit",
|
|
4718
4839
|
chain: [
|
|
4719
4840
|
{
|
|
@@ -5676,7 +5797,20 @@ var GROUPS = {
|
|
|
5676
5797
|
key: ConfigKey.property_language,
|
|
5677
5798
|
description: "The language of the book",
|
|
5678
5799
|
format: TagFormat.plainText,
|
|
5679
|
-
maxCount: Count.infinity
|
|
5800
|
+
maxCount: Count.infinity,
|
|
5801
|
+
// PLAN-141 F5 (NISO import): only the PRIMARY (first)
|
|
5802
|
+
// <content-language> survives — the maxEmits cap realises the
|
|
5803
|
+
// catalog's document-language rule (extras drop, R-4).
|
|
5804
|
+
mappingKeys: {
|
|
5805
|
+
"xml-niso-iec": [
|
|
5806
|
+
{ predicates: [], maxEmits: 1, rule: { "@el": "content-language", "@text": "$" } }
|
|
5807
|
+
]
|
|
5808
|
+
}
|
|
5809
|
+
},
|
|
5810
|
+
{
|
|
5811
|
+
key: ConfigKey.property_displayName,
|
|
5812
|
+
description: "The display name of the book",
|
|
5813
|
+
format: TagFormat.plainText
|
|
5680
5814
|
},
|
|
5681
5815
|
{
|
|
5682
5816
|
key: ConfigKey.property_customerExternalId,
|
|
@@ -5752,7 +5886,18 @@ var GROUPS = {
|
|
|
5752
5886
|
description: "The title of the book",
|
|
5753
5887
|
maxCount: 2,
|
|
5754
5888
|
jsonKey: "title|multi(count=2, key=subtitle)",
|
|
5755
|
-
exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }]
|
|
5889
|
+
exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
|
|
5890
|
+
// PLAN-141 F5 (NISO import): the PRIMARY (first) <title-wrap>'s
|
|
5891
|
+
// assembled <full> title → [#]; the per-language extras drop (R-4).
|
|
5892
|
+
mappingKeys: {
|
|
5893
|
+
"xml-niso-iec": [
|
|
5894
|
+
{
|
|
5895
|
+
predicates: [],
|
|
5896
|
+
maxEmits: 1,
|
|
5897
|
+
rule: { "@el": "title-wrap", "@children": { "@el": "full", "@text": "$" } }
|
|
5898
|
+
}
|
|
5899
|
+
]
|
|
5900
|
+
}
|
|
5756
5901
|
},
|
|
5757
5902
|
{
|
|
5758
5903
|
key: ConfigKey.property_subtype,
|
|
@@ -6065,17 +6210,20 @@ var GROUPS = {
|
|
|
6065
6210
|
{
|
|
6066
6211
|
key: ConfigKey.property_platformMargin,
|
|
6067
6212
|
description: "The platform margin",
|
|
6068
|
-
format: TagFormat.number
|
|
6213
|
+
format: TagFormat.number,
|
|
6214
|
+
nullable: true
|
|
6069
6215
|
},
|
|
6070
6216
|
{
|
|
6071
6217
|
key: ConfigKey.property_platformBorderRadius,
|
|
6072
6218
|
description: "The platform border radius",
|
|
6073
|
-
format: TagFormat.number
|
|
6219
|
+
format: TagFormat.number,
|
|
6220
|
+
nullable: true
|
|
6074
6221
|
},
|
|
6075
6222
|
{
|
|
6076
6223
|
key: ConfigKey.property_platformSelectionBorderRadius,
|
|
6077
6224
|
description: "The platform selection border radius",
|
|
6078
|
-
format: TagFormat.number
|
|
6225
|
+
format: TagFormat.number,
|
|
6226
|
+
nullable: true
|
|
6079
6227
|
},
|
|
6080
6228
|
{
|
|
6081
6229
|
key: ConfigKey.property_platformNeedsShadow,
|
|
@@ -6182,7 +6330,13 @@ var GROUPS = {
|
|
|
6182
6330
|
{
|
|
6183
6331
|
key: ConfigKey.property_caption,
|
|
6184
6332
|
description: "The caption for the resource",
|
|
6185
|
-
format: TagFormat.bitmarkText
|
|
6333
|
+
format: TagFormat.bitmarkText,
|
|
6334
|
+
// PLAN-141 F1 (NISO import): a figure's <caption><title> — the
|
|
6335
|
+
// nested content slot reads the title text; the caption rides the
|
|
6336
|
+
// resource chain ([&image:…][@caption:…], catalog D5).
|
|
6337
|
+
mappingKeys: {
|
|
6338
|
+
"xml-niso-iec": { "@el": "caption", "@children": { "@el": "title", "@text": "$" } }
|
|
6339
|
+
}
|
|
6186
6340
|
},
|
|
6187
6341
|
{
|
|
6188
6342
|
key: ConfigKey.property_showInIndex,
|
|
@@ -6456,6 +6610,10 @@ var GROUPS = {
|
|
|
6456
6610
|
{
|
|
6457
6611
|
key: ConfigKey.resource_image,
|
|
6458
6612
|
exportJsonKey: { resource: { type: "image", image: { src: "$" } } },
|
|
6613
|
+
// PLAN-141 F1 (NISO import): the image URL rides the `$`-in-attr
|
|
6614
|
+
// value slot — a <graphic xlink:href> child of the mapped bit
|
|
6615
|
+
// element roots the [&image:URL] chain.
|
|
6616
|
+
mappingKeys: { "xml-niso-iec": { "@el": "graphic", "@attr": { "xlink:href": "$" } } },
|
|
6459
6617
|
description: "The image resource",
|
|
6460
6618
|
chain: [
|
|
6461
6619
|
{
|
|
@@ -7330,6 +7488,8 @@ var BITS = {
|
|
|
7330
7488
|
maxCount: 2,
|
|
7331
7489
|
jsonKey: "title|multi(count=2, key=subtitle)",
|
|
7332
7490
|
exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
|
|
7491
|
+
// PLAN-140 W3 (NISO import): the title of a mapped source element.
|
|
7492
|
+
mappingKeys: { "xml-niso-iec": { "@el": "title", "@text": "$" } },
|
|
7333
7493
|
key: ConfigKey.tag_title,
|
|
7334
7494
|
description: "The title of the article"
|
|
7335
7495
|
}
|
|
@@ -7371,22 +7531,84 @@ var BITS = {
|
|
|
7371
7531
|
[BitType.smartStandardArticleNormative]: {
|
|
7372
7532
|
since: "1.28.0",
|
|
7373
7533
|
baseBitType: BitType.standardArticleNormative,
|
|
7374
|
-
description: "Smart standard normative article bit"
|
|
7534
|
+
description: "Smart standard normative article bit",
|
|
7535
|
+
// PLAN-140 W3 (NISO import, tranche 1): one article bit per NISO
|
|
7536
|
+
// paragraph (catalog D1). CONTENT keys (@children): the subtree is the
|
|
7537
|
+
// bit's body; nothing inside it promotes. (Ancestor-context normativity
|
|
7538
|
+
// is the non-normative sibling's @ancestor key — plan Q4, resolved.)
|
|
7539
|
+
//
|
|
7540
|
+
// Second rule (catalog D1 push-down): a NUMBERED-PARAGRAPH sec is an
|
|
7541
|
+
// article, not a chapter — the sec-type literal outranks the chapter
|
|
7542
|
+
// key's plain sec|app rule (most-specific-wins). Content key: the sec's
|
|
7543
|
+
// label rides [%] via the label tag key, its inner <p> is the body, its
|
|
7544
|
+
// id is the bit's customerId, and the anchor slot marks it
|
|
7545
|
+
// anchor-bearing.
|
|
7546
|
+
mappingKeys: {
|
|
7547
|
+
"xml-niso-iec": [
|
|
7548
|
+
{ "@el": "p", "@attr": { id: "$customerId" }, "@children": "$" },
|
|
7549
|
+
{
|
|
7550
|
+
"@el": "sec",
|
|
7551
|
+
"@attr": { "sec-type": "numbered-paragraph", id: "$customerId" },
|
|
7552
|
+
"@children": "$",
|
|
7553
|
+
"\u25BC": "$anchor"
|
|
7554
|
+
}
|
|
7555
|
+
]
|
|
7556
|
+
}
|
|
7375
7557
|
},
|
|
7376
7558
|
[BitType.smartStandardArticleNonNormative]: {
|
|
7377
7559
|
since: "1.28.0",
|
|
7378
7560
|
baseBitType: BitType.standardArticleNonNormative,
|
|
7379
|
-
description: "Smart standard non-normative article bit"
|
|
7561
|
+
description: "Smart standard non-normative article bit",
|
|
7562
|
+
// PLAN-140 Q4 (normativity inheritance): a <p> is non-normative because
|
|
7563
|
+
// of an ANCESTOR element — a foreword/intro sec or an informative annex.
|
|
7564
|
+
// @ancestor is a reverse-match-only constraint (forward emission ignores
|
|
7565
|
+
// it); the rules are alternatives, first-satisfied wins, and the
|
|
7566
|
+
// @ancestor literals give this key higher specificity than the plain
|
|
7567
|
+
// normative-article <p> key wherever the context applies.
|
|
7568
|
+
mappingKeys: {
|
|
7569
|
+
"xml-niso-iec": [
|
|
7570
|
+
{
|
|
7571
|
+
"@el": "p",
|
|
7572
|
+
"@attr": { id: "$customerId" },
|
|
7573
|
+
"@ancestor": { "@attr": { "sec-type": "foreword|intro" } },
|
|
7574
|
+
"@children": "$"
|
|
7575
|
+
},
|
|
7576
|
+
{
|
|
7577
|
+
"@el": "p",
|
|
7578
|
+
"@attr": { id: "$customerId" },
|
|
7579
|
+
"@ancestor": { "@attr": { "content-type": "informative" } },
|
|
7580
|
+
"@children": "$"
|
|
7581
|
+
}
|
|
7582
|
+
]
|
|
7583
|
+
}
|
|
7380
7584
|
},
|
|
7381
7585
|
[BitType.smartStandardArticleNormativeCollapsible]: {
|
|
7382
7586
|
since: "1.28.0",
|
|
7587
|
+
deprecated: "5.37.0",
|
|
7383
7588
|
baseBitType: BitType.smartStandardArticleNormative,
|
|
7384
|
-
description: "Smart standard normative article bit that is collapsible"
|
|
7589
|
+
description: "Smart standard normative article bit that is collapsible",
|
|
7590
|
+
tags: [
|
|
7591
|
+
{
|
|
7592
|
+
key: ConfigKey.property_isCollapsible,
|
|
7593
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
7594
|
+
format: TagFormat.boolean,
|
|
7595
|
+
defaultValue: "true"
|
|
7596
|
+
}
|
|
7597
|
+
]
|
|
7385
7598
|
},
|
|
7386
7599
|
[BitType.smartStandardArticleNonNormativeCollapsible]: {
|
|
7387
7600
|
since: "1.28.0",
|
|
7601
|
+
deprecated: "5.37.0",
|
|
7388
7602
|
baseBitType: BitType.smartStandardArticleNonNormative,
|
|
7389
|
-
description: "Smart standard non-normative article bit that is collapsible"
|
|
7603
|
+
description: "Smart standard non-normative article bit that is collapsible",
|
|
7604
|
+
tags: [
|
|
7605
|
+
{
|
|
7606
|
+
key: ConfigKey.property_isCollapsible,
|
|
7607
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
7608
|
+
format: TagFormat.boolean,
|
|
7609
|
+
defaultValue: "true"
|
|
7610
|
+
}
|
|
7611
|
+
]
|
|
7390
7612
|
},
|
|
7391
7613
|
[BitType.statement]: {
|
|
7392
7614
|
since: "1.3.0",
|
|
@@ -8007,7 +8229,8 @@ var BITS = {
|
|
|
8007
8229
|
{
|
|
8008
8230
|
key: ConfigKey.property_maxCreatedBits,
|
|
8009
8231
|
description: "The maximum number of bits that can be created from this bit",
|
|
8010
|
-
format: TagFormat.number
|
|
8232
|
+
format: TagFormat.number,
|
|
8233
|
+
nullable: true
|
|
8011
8234
|
}
|
|
8012
8235
|
],
|
|
8013
8236
|
textFormatDefault: TextFormat.plainText
|
|
@@ -8137,6 +8360,13 @@ var BITS = {
|
|
|
8137
8360
|
since: "1.3.0",
|
|
8138
8361
|
baseBitType: BitType._standard,
|
|
8139
8362
|
description: "Book bit, used to represent a book",
|
|
8363
|
+
// PLAN-141 F5 (NISO import): the <std-meta> front-matter container is
|
|
8364
|
+
// the [.book] bit (STRUCTURAL, first in document order): primary
|
|
8365
|
+
// title-wrap → [#], primary content-language → [@language], dated
|
|
8366
|
+
// std-ref → [@externalId] (tag keys with maxEmits caps — the NISO
|
|
8367
|
+
// convention puts the document language first). std-meta has no id, so
|
|
8368
|
+
// no anchor/customerId. Remaining leaves drop as recorded loss (R-4).
|
|
8369
|
+
mappingKeys: { "xml-niso-iec": { "@el": "std-meta" } },
|
|
8140
8370
|
tags: [
|
|
8141
8371
|
{
|
|
8142
8372
|
key: ConfigKey.group_bookCommon,
|
|
@@ -8423,12 +8653,14 @@ var BITS = {
|
|
|
8423
8653
|
{
|
|
8424
8654
|
key: ConfigKey.property_focusX,
|
|
8425
8655
|
description: "The X coordinate for focusing the image in the browser",
|
|
8426
|
-
format: TagFormat.number
|
|
8656
|
+
format: TagFormat.number,
|
|
8657
|
+
nullable: true
|
|
8427
8658
|
},
|
|
8428
8659
|
{
|
|
8429
8660
|
key: ConfigKey.property_focusY,
|
|
8430
8661
|
description: "The Y coordinate for focusing the image in the browser",
|
|
8431
|
-
format: TagFormat.number
|
|
8662
|
+
format: TagFormat.number,
|
|
8663
|
+
nullable: true
|
|
8432
8664
|
}
|
|
8433
8665
|
]
|
|
8434
8666
|
},
|
|
@@ -8459,6 +8691,15 @@ var BITS = {
|
|
|
8459
8691
|
since: "1.3.0",
|
|
8460
8692
|
baseBitType: BitType._standard,
|
|
8461
8693
|
description: "Chapter bit, used to define chapters in books or articles",
|
|
8694
|
+
// PLAN-140 W3 (NISO import, tranche 1): recover a chapter from a NISO
|
|
8695
|
+
// section or annex. STRUCTURAL key (no @children content slot): the
|
|
8696
|
+
// element carries no body of its own — tag children (label/title) map
|
|
8697
|
+
// via tag keys, every mapped descendant promotes to a following sibling
|
|
8698
|
+
// bit, and the chapter level derives from nesting depth (catalog D1).
|
|
8699
|
+
// The source id lands as [@customerId] (two-id model, D2).
|
|
8700
|
+
mappingKeys: {
|
|
8701
|
+
"xml-niso-iec": { "@el": "sec|app", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" }
|
|
8702
|
+
},
|
|
8462
8703
|
tags: [
|
|
8463
8704
|
{
|
|
8464
8705
|
exportJsonKey: { anchor: "$" },
|
|
@@ -8470,7 +8711,10 @@ var BITS = {
|
|
|
8470
8711
|
key: ConfigKey.tag_title,
|
|
8471
8712
|
description: "The title of the chapter",
|
|
8472
8713
|
jsonKey: "title|setMulti(level)",
|
|
8473
|
-
exportJsonKey: { title: "$", level: "$level" }
|
|
8714
|
+
exportJsonKey: { title: "$", level: "$level" },
|
|
8715
|
+
// PLAN-140 W3 (NISO import): the section/annex title; the heading
|
|
8716
|
+
// level rides the normalizer-derived nesting depth (plan Q2).
|
|
8717
|
+
mappingKeys: { "xml-niso-iec": { "@el": "title", "@text": "$" } }
|
|
8474
8718
|
},
|
|
8475
8719
|
{
|
|
8476
8720
|
key: ConfigKey.property_toc,
|
|
@@ -8483,12 +8727,6 @@ var BITS = {
|
|
|
8483
8727
|
description: "The progress of the chapter, used for tracking reading progress",
|
|
8484
8728
|
format: TagFormat.boolean,
|
|
8485
8729
|
defaultValue: "true"
|
|
8486
|
-
},
|
|
8487
|
-
{
|
|
8488
|
-
key: ConfigKey.property_isCollapsible,
|
|
8489
|
-
description: "If true, the chapter is collapsible",
|
|
8490
|
-
format: TagFormat.boolean,
|
|
8491
|
-
defaultValue: "false"
|
|
8492
8730
|
}
|
|
8493
8731
|
]
|
|
8494
8732
|
},
|
|
@@ -8676,11 +8914,28 @@ var BITS = {
|
|
|
8676
8914
|
since: "1.3.0",
|
|
8677
8915
|
baseBitType: BitType._standard,
|
|
8678
8916
|
description: "Code bit, used for code snippets in articles or documents",
|
|
8917
|
+
// PLAN-141 F4 (NISO import): a <code> block is a CONTENT bit with a
|
|
8918
|
+
// literal text body; @language recovers as [@computerLanguage] (absent
|
|
8919
|
+
// attr → no tag). Anchor = the source id (D2 revised).
|
|
8920
|
+
mappingKeys: {
|
|
8921
|
+
"xml-niso-iec": {
|
|
8922
|
+
"@el": "code",
|
|
8923
|
+
"@attr": { id: "$customerId", language: "$computerLanguage" },
|
|
8924
|
+
"\u25BC": "$anchor",
|
|
8925
|
+
"@text": "$"
|
|
8926
|
+
}
|
|
8927
|
+
},
|
|
8679
8928
|
tags: [
|
|
8680
8929
|
{
|
|
8681
8930
|
key: ConfigKey.property_computerLanguage,
|
|
8682
8931
|
description: "The programming language of the code snippet",
|
|
8683
|
-
format: TagFormat.plainText
|
|
8932
|
+
format: TagFormat.plainText,
|
|
8933
|
+
// PLAN-141 F4 (NISO import): the bit key's `language` sigil recovers
|
|
8934
|
+
// a present attr; this `@absent` rule supplies the AUTHORED default
|
|
8935
|
+
// when the source carries none (catalog code row — an untyped block
|
|
8936
|
+
// is `[@computerLanguage:text]`). Fires only on foreign imports,
|
|
8937
|
+
// never the carrier round-trip.
|
|
8938
|
+
mappingKeys: { "xml-niso-iec": [{ "@absent": "text" }] }
|
|
8684
8939
|
},
|
|
8685
8940
|
{
|
|
8686
8941
|
key: ConfigKey.property_codeLineNumbers,
|
|
@@ -8719,7 +8974,20 @@ var BITS = {
|
|
|
8719
8974
|
[BitType.smartStandardFormulaNormative]: {
|
|
8720
8975
|
since: "3.11.0",
|
|
8721
8976
|
baseBitType: BitType.formula,
|
|
8722
|
-
description: "Smart standard normative formula bit, used for mathematical formulas in smart standards that are normative"
|
|
8977
|
+
description: "Smart standard normative formula bit, used for mathematical formulas in smart standards that are normative",
|
|
8978
|
+
// PLAN-141 F4 (NISO import): a <disp-formula> is a CONTENT bit whose
|
|
8979
|
+
// latex-format body carries the <mml:math> subtree VERBATIM (G1 — no
|
|
8980
|
+
// MathML↔LaTeX transform; ids stripped); <label> → [%]; a contained
|
|
8981
|
+
// <legend> PROMOTES as a sibling legend bit (cards cannot nest in a
|
|
8982
|
+
// body). Anchor = the source id (D2 revised).
|
|
8983
|
+
mappingKeys: {
|
|
8984
|
+
"xml-niso-iec": {
|
|
8985
|
+
"@el": "disp-formula",
|
|
8986
|
+
"@attr": { id: "$customerId" },
|
|
8987
|
+
"\u25BC": "$anchor",
|
|
8988
|
+
"@children": "$"
|
|
8989
|
+
}
|
|
8990
|
+
}
|
|
8723
8991
|
},
|
|
8724
8992
|
[BitType.smartStandardRemarkFormula]: {
|
|
8725
8993
|
since: "3.11.0",
|
|
@@ -9065,12 +9333,22 @@ var BITS = {
|
|
|
9065
9333
|
chain: [
|
|
9066
9334
|
{
|
|
9067
9335
|
key: ConfigKey.property_unit,
|
|
9068
|
-
description: "The unit of measurement for the ingredients",
|
|
9336
|
+
description: "The unit of measurement for the ingredients (singular)",
|
|
9337
|
+
format: TagFormat.plainText
|
|
9338
|
+
},
|
|
9339
|
+
{
|
|
9340
|
+
key: ConfigKey.property_unitPlural,
|
|
9341
|
+
description: "The unit of measurement for the ingredients (plural)",
|
|
9069
9342
|
format: TagFormat.plainText
|
|
9070
9343
|
},
|
|
9071
9344
|
{
|
|
9072
9345
|
key: ConfigKey.property_unitAbbr,
|
|
9073
|
-
description: "The abbreviation for the unit of measurement",
|
|
9346
|
+
description: "The abbreviation for the unit of measurement (singular)",
|
|
9347
|
+
format: TagFormat.plainText
|
|
9348
|
+
},
|
|
9349
|
+
{
|
|
9350
|
+
key: ConfigKey.property_unitAbbrPlural,
|
|
9351
|
+
description: "The abbreviation for the unit of measurement (plural)",
|
|
9074
9352
|
format: TagFormat.plainText
|
|
9075
9353
|
},
|
|
9076
9354
|
{
|
|
@@ -9246,7 +9524,8 @@ var BITS = {
|
|
|
9246
9524
|
{
|
|
9247
9525
|
key: ConfigKey.property_reasonableNumOfChars,
|
|
9248
9526
|
description: "The reasonable number of characters for the essay",
|
|
9249
|
-
format: TagFormat.number
|
|
9527
|
+
format: TagFormat.number,
|
|
9528
|
+
nullable: true
|
|
9250
9529
|
},
|
|
9251
9530
|
{
|
|
9252
9531
|
key: ConfigKey.property_sampleSolution,
|
|
@@ -9348,13 +9627,31 @@ var BITS = {
|
|
|
9348
9627
|
},
|
|
9349
9628
|
[BitType.smartStandardExampleNormativeCollapsible]: {
|
|
9350
9629
|
since: "1.28.0",
|
|
9630
|
+
deprecated: "5.37.0",
|
|
9351
9631
|
baseBitType: BitType.smartStandardExampleNormative,
|
|
9352
|
-
description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed"
|
|
9632
|
+
description: "Smart standard normative example collapsible bit, used to provide normative examples in smart standards that can be collapsed",
|
|
9633
|
+
tags: [
|
|
9634
|
+
{
|
|
9635
|
+
key: ConfigKey.property_isCollapsible,
|
|
9636
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
9637
|
+
format: TagFormat.boolean,
|
|
9638
|
+
defaultValue: "true"
|
|
9639
|
+
}
|
|
9640
|
+
]
|
|
9353
9641
|
},
|
|
9354
9642
|
[BitType.smartStandardExampleNonNormativeCollapsible]: {
|
|
9355
9643
|
since: "1.28.0",
|
|
9644
|
+
deprecated: "5.37.0",
|
|
9356
9645
|
baseBitType: BitType.smartStandardExampleNonNormative,
|
|
9357
|
-
description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed"
|
|
9646
|
+
description: "Smart standard non-normative example collapsible bit, used to provide non-normative examples in smart standards that can be collapsed",
|
|
9647
|
+
tags: [
|
|
9648
|
+
{
|
|
9649
|
+
key: ConfigKey.property_isCollapsible,
|
|
9650
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
9651
|
+
format: TagFormat.boolean,
|
|
9652
|
+
defaultValue: "true"
|
|
9653
|
+
}
|
|
9654
|
+
]
|
|
9358
9655
|
},
|
|
9359
9656
|
[BitType.authorContentBitGenerator]: {
|
|
9360
9657
|
since: "4.2.0",
|
|
@@ -9679,12 +9976,28 @@ var BITS = {
|
|
|
9679
9976
|
[BitType.smartStandardList]: {
|
|
9680
9977
|
since: "1.28.0",
|
|
9681
9978
|
baseBitType: BitType.standardList,
|
|
9682
|
-
description: "Smart standard list bit, used to create smart standard lists in articles or books"
|
|
9979
|
+
description: "Smart standard list bit, used to create smart standard lists in articles or books",
|
|
9980
|
+
// PLAN-140 refs family (NISO import): a reference list is a STRUCTURAL
|
|
9981
|
+
// bit (no @children — it takes a path ordinal anchor and its <ref>
|
|
9982
|
+
// children promote to sibling list-item bits); its <title> rides [#]
|
|
9983
|
+
// via the title tag key.
|
|
9984
|
+
mappingKeys: {
|
|
9985
|
+
"xml-niso-iec": { "@el": "ref-list", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" }
|
|
9986
|
+
}
|
|
9683
9987
|
},
|
|
9684
9988
|
[BitType.smartStandardListCollapsible]: {
|
|
9685
9989
|
since: "1.28.0",
|
|
9990
|
+
deprecated: "5.37.0",
|
|
9686
9991
|
baseBitType: BitType.smartStandardList,
|
|
9687
|
-
description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books"
|
|
9992
|
+
description: "Smart standard list collapsible bit, used to create collapsible smart standard lists in articles or books",
|
|
9993
|
+
tags: [
|
|
9994
|
+
{
|
|
9995
|
+
key: ConfigKey.property_isCollapsible,
|
|
9996
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
9997
|
+
format: TagFormat.boolean,
|
|
9998
|
+
defaultValue: "true"
|
|
9999
|
+
}
|
|
10000
|
+
]
|
|
9688
10001
|
},
|
|
9689
10002
|
[BitType.message]: {
|
|
9690
10003
|
since: "1.3.0",
|
|
@@ -9724,17 +10037,45 @@ var BITS = {
|
|
|
9724
10037
|
[BitType.smartStandardNoteNonNormative]: {
|
|
9725
10038
|
since: "1.28.0",
|
|
9726
10039
|
baseBitType: BitType.standardNoteNonNormative,
|
|
9727
|
-
description: "Smart standard non-normative note bit, used to provide non-normative notes in smart standards"
|
|
10040
|
+
description: "Smart standard non-normative note bit, used to provide non-normative notes in smart standards",
|
|
10041
|
+
// PLAN-140 W3 (NISO import, tranche 1). CONTENT key (@children): a
|
|
10042
|
+
// note's inner paragraphs are note body, never separate bits.
|
|
10043
|
+
mappingKeys: {
|
|
10044
|
+
"xml-niso-iec": {
|
|
10045
|
+
"@el": "non-normative-note",
|
|
10046
|
+
"@attr": { id: "$customerId" },
|
|
10047
|
+
"@children": "$",
|
|
10048
|
+
"\u25BC": "$anchor"
|
|
10049
|
+
}
|
|
10050
|
+
}
|
|
9728
10051
|
},
|
|
9729
10052
|
[BitType.smartStandardNoteNormativeCollapsible]: {
|
|
9730
10053
|
since: "1.28.0",
|
|
10054
|
+
deprecated: "5.37.0",
|
|
9731
10055
|
baseBitType: BitType.smartStandardNoteNormative,
|
|
9732
|
-
description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed"
|
|
10056
|
+
description: "Smart standard normative note collapsible bit, used to provide normative notes in smart standards that can be collapsed",
|
|
10057
|
+
tags: [
|
|
10058
|
+
{
|
|
10059
|
+
key: ConfigKey.property_isCollapsible,
|
|
10060
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10061
|
+
format: TagFormat.boolean,
|
|
10062
|
+
defaultValue: "true"
|
|
10063
|
+
}
|
|
10064
|
+
]
|
|
9733
10065
|
},
|
|
9734
10066
|
[BitType.smartStandardNoteNonNormativeCollapsible]: {
|
|
9735
10067
|
since: "1.28.0",
|
|
10068
|
+
deprecated: "5.37.0",
|
|
9736
10069
|
baseBitType: BitType.smartStandardNoteNonNormative,
|
|
9737
|
-
description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed"
|
|
10070
|
+
description: "Smart standard non-normative note collapsible bit, used to provide non-normative notes in smart standards that can be collapsed",
|
|
10071
|
+
tags: [
|
|
10072
|
+
{
|
|
10073
|
+
key: ConfigKey.property_isCollapsible,
|
|
10074
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10075
|
+
format: TagFormat.boolean,
|
|
10076
|
+
defaultValue: "true"
|
|
10077
|
+
}
|
|
10078
|
+
]
|
|
9738
10079
|
},
|
|
9739
10080
|
[BitType.noteAi]: {
|
|
9740
10081
|
since: "1.3.0",
|
|
@@ -9831,17 +10172,47 @@ var BITS = {
|
|
|
9831
10172
|
[BitType.smartStandardRemarkNonNormative]: {
|
|
9832
10173
|
since: "1.28.0",
|
|
9833
10174
|
baseBitType: BitType.standardRemarkNonNormative,
|
|
9834
|
-
description: "Smart standard non-normative remark bit, used to provide non-normative remarks in smart standards"
|
|
10175
|
+
description: "Smart standard non-normative remark bit, used to provide non-normative remarks in smart standards",
|
|
10176
|
+
// PLAN-140 Q4 rider: a warning/caution note routes to the remark bit —
|
|
10177
|
+
// the same element as the note key, distinguished by the content-type
|
|
10178
|
+
// attr literal (alias value: forward emits the first alternative,
|
|
10179
|
+
// reverse accepts any). Most-specific-wins beats the plain note key.
|
|
10180
|
+
mappingKeys: {
|
|
10181
|
+
"xml-niso-iec": {
|
|
10182
|
+
"@el": "non-normative-note",
|
|
10183
|
+
"@attr": { "content-type": "warning|caution", id: "$customerId" },
|
|
10184
|
+
"@children": "$",
|
|
10185
|
+
"\u25BC": "$anchor"
|
|
10186
|
+
}
|
|
10187
|
+
}
|
|
9835
10188
|
},
|
|
9836
10189
|
[BitType.smartStandardRemarkNormativeCollapsible]: {
|
|
9837
10190
|
since: "1.28.0",
|
|
10191
|
+
deprecated: "5.37.0",
|
|
9838
10192
|
baseBitType: BitType.smartStandardRemarkNormative,
|
|
9839
|
-
description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed"
|
|
10193
|
+
description: "Smart standard normative remark collapsible bit, used to provide normative remarks in smart standards that can be collapsed",
|
|
10194
|
+
tags: [
|
|
10195
|
+
{
|
|
10196
|
+
key: ConfigKey.property_isCollapsible,
|
|
10197
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10198
|
+
format: TagFormat.boolean,
|
|
10199
|
+
defaultValue: "true"
|
|
10200
|
+
}
|
|
10201
|
+
]
|
|
9840
10202
|
},
|
|
9841
10203
|
[BitType.smartStandardRemarkNonNormativeCollapsible]: {
|
|
9842
10204
|
since: "1.28.0",
|
|
10205
|
+
deprecated: "5.37.0",
|
|
9843
10206
|
baseBitType: BitType.smartStandardRemarkNonNormative,
|
|
9844
|
-
description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed"
|
|
10207
|
+
description: "Smart standard non-normative remark collapsible bit, used to provide non-normative remarks in smart standards that can be collapsed",
|
|
10208
|
+
tags: [
|
|
10209
|
+
{
|
|
10210
|
+
key: ConfigKey.property_isCollapsible,
|
|
10211
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10212
|
+
format: TagFormat.boolean,
|
|
10213
|
+
defaultValue: "true"
|
|
10214
|
+
}
|
|
10215
|
+
]
|
|
9845
10216
|
},
|
|
9846
10217
|
[BitType.selfAssessment]: {
|
|
9847
10218
|
since: "1.3.0",
|
|
@@ -9912,53 +10283,143 @@ var BITS = {
|
|
|
9912
10283
|
},
|
|
9913
10284
|
[BitType.collapsible]: {
|
|
9914
10285
|
since: "1.21.0",
|
|
10286
|
+
deprecated: "5.37.0",
|
|
9915
10287
|
baseBitType: BitType.article,
|
|
9916
|
-
description: "Collapsible bit, used to create collapsible sections in articles or books"
|
|
10288
|
+
description: "Collapsible bit, used to create collapsible sections in articles or books",
|
|
10289
|
+
tags: [
|
|
10290
|
+
{
|
|
10291
|
+
key: ConfigKey.property_isCollapsible,
|
|
10292
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10293
|
+
format: TagFormat.boolean,
|
|
10294
|
+
defaultValue: "true"
|
|
10295
|
+
}
|
|
10296
|
+
]
|
|
9917
10297
|
},
|
|
9918
10298
|
[BitType.sideNoteCollapsible]: {
|
|
9919
10299
|
since: "1.21.0",
|
|
9920
|
-
|
|
9921
|
-
|
|
10300
|
+
deprecated: "5.37.0",
|
|
10301
|
+
baseBitType: BitType.sideNote,
|
|
10302
|
+
description: "Side note collapsible bit, used to create collapsible side notes in articles or books",
|
|
10303
|
+
tags: [
|
|
10304
|
+
{
|
|
10305
|
+
key: ConfigKey.property_isCollapsible,
|
|
10306
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10307
|
+
format: TagFormat.boolean,
|
|
10308
|
+
defaultValue: "true"
|
|
10309
|
+
}
|
|
10310
|
+
]
|
|
9922
10311
|
},
|
|
9923
10312
|
[BitType.infoCollapsible]: {
|
|
9924
10313
|
since: "1.21.0",
|
|
9925
|
-
|
|
9926
|
-
|
|
10314
|
+
deprecated: "5.37.0",
|
|
10315
|
+
baseBitType: BitType.info,
|
|
10316
|
+
description: "Info collapsible bit, used to create collapsible informational sections in articles or books",
|
|
10317
|
+
tags: [
|
|
10318
|
+
{
|
|
10319
|
+
key: ConfigKey.property_isCollapsible,
|
|
10320
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10321
|
+
format: TagFormat.boolean,
|
|
10322
|
+
defaultValue: "true"
|
|
10323
|
+
}
|
|
10324
|
+
]
|
|
9927
10325
|
},
|
|
9928
10326
|
[BitType.remarkCollapsible]: {
|
|
9929
10327
|
since: "1.21.0",
|
|
9930
|
-
|
|
9931
|
-
|
|
10328
|
+
deprecated: "5.37.0",
|
|
10329
|
+
baseBitType: BitType.remark,
|
|
10330
|
+
description: "Remark collapsible bit, used to create collapsible remarks in articles or books",
|
|
10331
|
+
tags: [
|
|
10332
|
+
{
|
|
10333
|
+
key: ConfigKey.property_isCollapsible,
|
|
10334
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10335
|
+
format: TagFormat.boolean,
|
|
10336
|
+
defaultValue: "true"
|
|
10337
|
+
}
|
|
10338
|
+
]
|
|
9932
10339
|
},
|
|
9933
10340
|
[BitType.warningCollapsible]: {
|
|
9934
10341
|
since: "1.21.0",
|
|
9935
|
-
|
|
9936
|
-
|
|
10342
|
+
deprecated: "5.37.0",
|
|
10343
|
+
baseBitType: BitType.warning,
|
|
10344
|
+
description: "Warning collapsible bit, used to create collapsible warnings in articles or books",
|
|
10345
|
+
tags: [
|
|
10346
|
+
{
|
|
10347
|
+
key: ConfigKey.property_isCollapsible,
|
|
10348
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10349
|
+
format: TagFormat.boolean,
|
|
10350
|
+
defaultValue: "true"
|
|
10351
|
+
}
|
|
10352
|
+
]
|
|
9937
10353
|
},
|
|
9938
10354
|
[BitType.dangerCollapsible]: {
|
|
9939
10355
|
since: "1.21.0",
|
|
9940
|
-
|
|
9941
|
-
|
|
10356
|
+
deprecated: "5.37.0",
|
|
10357
|
+
baseBitType: BitType.danger,
|
|
10358
|
+
description: "Danger collapsible bit, used to create collapsible danger sections in articles or books",
|
|
10359
|
+
tags: [
|
|
10360
|
+
{
|
|
10361
|
+
key: ConfigKey.property_isCollapsible,
|
|
10362
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10363
|
+
format: TagFormat.boolean,
|
|
10364
|
+
defaultValue: "true"
|
|
10365
|
+
}
|
|
10366
|
+
]
|
|
9942
10367
|
},
|
|
9943
10368
|
[BitType.noteCollapsible]: {
|
|
9944
10369
|
since: "1.21.0",
|
|
9945
|
-
|
|
9946
|
-
|
|
10370
|
+
deprecated: "5.37.0",
|
|
10371
|
+
baseBitType: BitType.note,
|
|
10372
|
+
description: "Note collapsible bit, used to create collapsible notes in articles or books",
|
|
10373
|
+
tags: [
|
|
10374
|
+
{
|
|
10375
|
+
key: ConfigKey.property_isCollapsible,
|
|
10376
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10377
|
+
format: TagFormat.boolean,
|
|
10378
|
+
defaultValue: "true"
|
|
10379
|
+
}
|
|
10380
|
+
]
|
|
9947
10381
|
},
|
|
9948
10382
|
[BitType.exampleCollapsible]: {
|
|
9949
10383
|
since: "1.21.0",
|
|
9950
|
-
|
|
9951
|
-
|
|
10384
|
+
deprecated: "5.37.0",
|
|
10385
|
+
baseBitType: BitType.example,
|
|
10386
|
+
description: "Example collapsible bit, used to create collapsible examples in articles or books",
|
|
10387
|
+
tags: [
|
|
10388
|
+
{
|
|
10389
|
+
key: ConfigKey.property_isCollapsible,
|
|
10390
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10391
|
+
format: TagFormat.boolean,
|
|
10392
|
+
defaultValue: "true"
|
|
10393
|
+
}
|
|
10394
|
+
]
|
|
9952
10395
|
},
|
|
9953
10396
|
[BitType.hintCollapsible]: {
|
|
9954
10397
|
since: "1.21.0",
|
|
9955
|
-
|
|
9956
|
-
|
|
10398
|
+
deprecated: "5.37.0",
|
|
10399
|
+
baseBitType: BitType.hint,
|
|
10400
|
+
description: "Hint collapsible bit, used to create collapsible hints in articles or books",
|
|
10401
|
+
tags: [
|
|
10402
|
+
{
|
|
10403
|
+
key: ConfigKey.property_isCollapsible,
|
|
10404
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10405
|
+
format: TagFormat.boolean,
|
|
10406
|
+
defaultValue: "true"
|
|
10407
|
+
}
|
|
10408
|
+
]
|
|
9957
10409
|
},
|
|
9958
10410
|
[BitType.bugCollapsible]: {
|
|
9959
10411
|
since: "1.21.0",
|
|
9960
|
-
|
|
9961
|
-
|
|
10412
|
+
deprecated: "5.37.0",
|
|
10413
|
+
baseBitType: BitType.bug,
|
|
10414
|
+
description: "Bug collapsible bit, used to create collapsible bug reports in articles or books",
|
|
10415
|
+
tags: [
|
|
10416
|
+
{
|
|
10417
|
+
key: ConfigKey.property_isCollapsible,
|
|
10418
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10419
|
+
format: TagFormat.boolean,
|
|
10420
|
+
defaultValue: "true"
|
|
10421
|
+
}
|
|
10422
|
+
]
|
|
9962
10423
|
},
|
|
9963
10424
|
[BitType.platformPath]: {
|
|
9964
10425
|
since: "3.14.1",
|
|
@@ -10180,8 +10641,17 @@ var BITS = {
|
|
|
10180
10641
|
},
|
|
10181
10642
|
[BitType.extractorPageCollapsible]: {
|
|
10182
10643
|
since: "1.30.0",
|
|
10644
|
+
deprecated: "5.37.0",
|
|
10183
10645
|
baseBitType: BitType.extractorPage,
|
|
10184
|
-
description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality"
|
|
10646
|
+
description: "Collapsible extractor page bit, used to extract pages from images with collapsible functionality",
|
|
10647
|
+
tags: [
|
|
10648
|
+
{
|
|
10649
|
+
key: ConfigKey.property_isCollapsible,
|
|
10650
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10651
|
+
format: TagFormat.boolean,
|
|
10652
|
+
defaultValue: "true"
|
|
10653
|
+
}
|
|
10654
|
+
]
|
|
10185
10655
|
},
|
|
10186
10656
|
[BitType.extractorPageWithBlocks]: {
|
|
10187
10657
|
since: "1.5.21",
|
|
@@ -10190,8 +10660,17 @@ var BITS = {
|
|
|
10190
10660
|
},
|
|
10191
10661
|
[BitType.extractorPageWithBlocksCollapsible]: {
|
|
10192
10662
|
since: "1.30.0",
|
|
10663
|
+
deprecated: "5.37.0",
|
|
10193
10664
|
baseBitType: BitType.extractorPageWithBlocks,
|
|
10194
|
-
description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality"
|
|
10665
|
+
description: "Collapsible extractor page with blocks bit, used to extract pages with blocks from images with collapsible functionality",
|
|
10666
|
+
tags: [
|
|
10667
|
+
{
|
|
10668
|
+
key: ConfigKey.property_isCollapsible,
|
|
10669
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10670
|
+
format: TagFormat.boolean,
|
|
10671
|
+
defaultValue: "true"
|
|
10672
|
+
}
|
|
10673
|
+
]
|
|
10195
10674
|
},
|
|
10196
10675
|
[BitType.extractorConfiguration]: {
|
|
10197
10676
|
since: "1.7.1",
|
|
@@ -10231,8 +10710,17 @@ var BITS = {
|
|
|
10231
10710
|
},
|
|
10232
10711
|
[BitType.extractorImageCollapsible]: {
|
|
10233
10712
|
since: "4.3.0",
|
|
10713
|
+
deprecated: "5.37.0",
|
|
10234
10714
|
baseBitType: BitType.extractorImage,
|
|
10235
|
-
description: "Collapsible extractor images bit, used for images extracted from PDFs"
|
|
10715
|
+
description: "Collapsible extractor images bit, used for images extracted from PDFs",
|
|
10716
|
+
tags: [
|
|
10717
|
+
{
|
|
10718
|
+
key: ConfigKey.property_isCollapsible,
|
|
10719
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10720
|
+
format: TagFormat.boolean,
|
|
10721
|
+
defaultValue: "true"
|
|
10722
|
+
}
|
|
10723
|
+
]
|
|
10236
10724
|
},
|
|
10237
10725
|
[BitType.extractorBlueprint]: {
|
|
10238
10726
|
since: "5.12.0",
|
|
@@ -10287,7 +10775,8 @@ var BITS = {
|
|
|
10287
10775
|
{
|
|
10288
10776
|
key: ConfigKey.property_pageNo,
|
|
10289
10777
|
description: "Page number for the block, used to indicate the page on which the block appears",
|
|
10290
|
-
format: TagFormat.number
|
|
10778
|
+
format: TagFormat.number,
|
|
10779
|
+
nullable: true
|
|
10291
10780
|
},
|
|
10292
10781
|
{
|
|
10293
10782
|
key: ConfigKey.property_x,
|
|
@@ -10304,17 +10793,20 @@ var BITS = {
|
|
|
10304
10793
|
{
|
|
10305
10794
|
key: ConfigKey.property_width,
|
|
10306
10795
|
description: "Width of the block, used to define the size of the block on the page",
|
|
10307
|
-
format: TagFormat.number
|
|
10796
|
+
format: TagFormat.number,
|
|
10797
|
+
nullable: true
|
|
10308
10798
|
},
|
|
10309
10799
|
{
|
|
10310
10800
|
key: ConfigKey.property_height,
|
|
10311
10801
|
description: "Height of the block, used to define the size of the block on the page",
|
|
10312
|
-
format: TagFormat.number
|
|
10802
|
+
format: TagFormat.number,
|
|
10803
|
+
nullable: true
|
|
10313
10804
|
},
|
|
10314
10805
|
{
|
|
10315
10806
|
key: ConfigKey.property_index,
|
|
10316
10807
|
description: "Index of the block, used to order blocks within the extractor page",
|
|
10317
|
-
format: TagFormat.number
|
|
10808
|
+
format: TagFormat.number,
|
|
10809
|
+
nullable: true
|
|
10318
10810
|
},
|
|
10319
10811
|
{
|
|
10320
10812
|
key: ConfigKey.property_classification,
|
|
@@ -10365,8 +10857,17 @@ var BITS = {
|
|
|
10365
10857
|
},
|
|
10366
10858
|
[BitType.extractorPageNumberCollapsible]: {
|
|
10367
10859
|
since: "1.30.0",
|
|
10860
|
+
deprecated: "5.37.0",
|
|
10368
10861
|
baseBitType: BitType.extractorPageNumber,
|
|
10369
|
-
description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality"
|
|
10862
|
+
description: "Collapsible extractor page number bit, used to define page numbers in extractor pages with collapsible functionality",
|
|
10863
|
+
tags: [
|
|
10864
|
+
{
|
|
10865
|
+
key: ConfigKey.property_isCollapsible,
|
|
10866
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10867
|
+
format: TagFormat.boolean,
|
|
10868
|
+
defaultValue: "true"
|
|
10869
|
+
}
|
|
10870
|
+
]
|
|
10370
10871
|
},
|
|
10371
10872
|
[BitType.extractorPageHeader]: {
|
|
10372
10873
|
since: "1.5.21",
|
|
@@ -10375,8 +10876,17 @@ var BITS = {
|
|
|
10375
10876
|
},
|
|
10376
10877
|
[BitType.extractorPageHeaderCollapsible]: {
|
|
10377
10878
|
since: "1.30.0",
|
|
10879
|
+
deprecated: "5.37.0",
|
|
10378
10880
|
baseBitType: BitType.extractorPageHeader,
|
|
10379
|
-
description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality"
|
|
10881
|
+
description: "Collapsible extractor page header bit, used to define headers in extractor pages with collapsible functionality",
|
|
10882
|
+
tags: [
|
|
10883
|
+
{
|
|
10884
|
+
key: ConfigKey.property_isCollapsible,
|
|
10885
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10886
|
+
format: TagFormat.boolean,
|
|
10887
|
+
defaultValue: "true"
|
|
10888
|
+
}
|
|
10889
|
+
]
|
|
10380
10890
|
},
|
|
10381
10891
|
[BitType.extractorPageFooter]: {
|
|
10382
10892
|
since: "1.5.21",
|
|
@@ -10385,8 +10895,17 @@ var BITS = {
|
|
|
10385
10895
|
},
|
|
10386
10896
|
[BitType.extractorPageFooterCollapsible]: {
|
|
10387
10897
|
since: "1.30.0",
|
|
10898
|
+
deprecated: "5.37.0",
|
|
10388
10899
|
baseBitType: BitType.extractorPageFooter,
|
|
10389
|
-
description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality"
|
|
10900
|
+
description: "Collapsible extractor page footer bit, used to define footers in extractor pages with collapsible functionality",
|
|
10901
|
+
tags: [
|
|
10902
|
+
{
|
|
10903
|
+
key: ConfigKey.property_isCollapsible,
|
|
10904
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
10905
|
+
format: TagFormat.boolean,
|
|
10906
|
+
defaultValue: "true"
|
|
10907
|
+
}
|
|
10908
|
+
]
|
|
10390
10909
|
},
|
|
10391
10910
|
[BitType.pageOpenBook]: {
|
|
10392
10911
|
since: "1.5.10",
|
|
@@ -10624,7 +11143,20 @@ var BITS = {
|
|
|
10624
11143
|
[BitType.smartStandardLegendNormative]: {
|
|
10625
11144
|
since: "3.12.0",
|
|
10626
11145
|
baseBitType: BitType.legend,
|
|
10627
|
-
description: "Smart standard normative legend bit, used to provide normative smart standard legends in articles or books"
|
|
11146
|
+
description: "Smart standard normative legend bit, used to provide normative smart standard legends in articles or books",
|
|
11147
|
+
// PLAN-141 F2 (NISO import): a free-standing <legend> (a formula's) or
|
|
11148
|
+
// bare <def-list> (a table footer's — no <legend> wrapper there) that is
|
|
11149
|
+
// NOT the claimed card content of its enclosing bit is a legend bit:
|
|
11150
|
+
// STRUCTURAL-shaped, its <title> and <def-item>s build the
|
|
11151
|
+
// definition-list cards via the card set's authored keys. A <legend>
|
|
11152
|
+
// inside a figure/table bit stays that bit's claimed card content and
|
|
11153
|
+
// never reaches this key. Anchor = the source id (D2 revised).
|
|
11154
|
+
mappingKeys: {
|
|
11155
|
+
"xml-niso-iec": [
|
|
11156
|
+
{ "@el": "legend", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" },
|
|
11157
|
+
{ "@el": "def-list", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" }
|
|
11158
|
+
]
|
|
11159
|
+
}
|
|
10628
11160
|
},
|
|
10629
11161
|
[BitType.smartStandardRemarkLegend]: {
|
|
10630
11162
|
since: "3.12.0",
|
|
@@ -10663,8 +11195,17 @@ var BITS = {
|
|
|
10663
11195
|
},
|
|
10664
11196
|
[BitType.definitionListCollapsible]: {
|
|
10665
11197
|
since: "5.25.0",
|
|
11198
|
+
deprecated: "5.37.0",
|
|
10666
11199
|
baseBitType: BitType.definitionList,
|
|
10667
|
-
description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books"
|
|
11200
|
+
description: "Collapsible definition list bit, used to create collapsible lists of definitions in articles or books",
|
|
11201
|
+
tags: [
|
|
11202
|
+
{
|
|
11203
|
+
key: ConfigKey.property_isCollapsible,
|
|
11204
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11205
|
+
format: TagFormat.boolean,
|
|
11206
|
+
defaultValue: "true"
|
|
11207
|
+
}
|
|
11208
|
+
]
|
|
10668
11209
|
},
|
|
10669
11210
|
[BitType.standardDefinitionListNormative]: {
|
|
10670
11211
|
since: "5.24.0",
|
|
@@ -10679,7 +11220,16 @@ var BITS = {
|
|
|
10679
11220
|
[BitType.smartStandardDefinitionListNormative]: {
|
|
10680
11221
|
since: "5.24.0",
|
|
10681
11222
|
baseBitType: BitType.standardDefinitionListNormative,
|
|
10682
|
-
description: "Smart standard normative definition list bit, used to create normative smart standard definition lists in articles or books"
|
|
11223
|
+
description: "Smart standard normative definition list bit, used to create normative smart standard definition lists in articles or books",
|
|
11224
|
+
// PLAN-141 F3 (NISO import): a terms-and-definitions clause. STRUCTURAL-
|
|
11225
|
+
// shaped: <label> → [%], the tbx:termEntry/langSet subtree builds the
|
|
11226
|
+
// definition-list card via the card set's authored keys (all tig terms
|
|
11227
|
+
// stacked on the term side; definition/example/notes/source composed on
|
|
11228
|
+
// the definition side with authored locale affixes), langSet @xml:lang →
|
|
11229
|
+
// [@lang] (nested attr slot on the tag key). Anchor = the source id.
|
|
11230
|
+
mappingKeys: {
|
|
11231
|
+
"xml-niso-iec": { "@el": "term-sec", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" }
|
|
11232
|
+
}
|
|
10683
11233
|
},
|
|
10684
11234
|
[BitType.smartStandardDefinitionListNonNormative]: {
|
|
10685
11235
|
since: "5.24.0",
|
|
@@ -10748,12 +11298,14 @@ var BITS = {
|
|
|
10748
11298
|
{
|
|
10749
11299
|
key: ConfigKey.property_focusX,
|
|
10750
11300
|
description: "X-coordinate for the focus point, used to define the focus area in the image",
|
|
10751
|
-
format: TagFormat.number
|
|
11301
|
+
format: TagFormat.number,
|
|
11302
|
+
nullable: true
|
|
10752
11303
|
},
|
|
10753
11304
|
{
|
|
10754
11305
|
key: ConfigKey.property_focusY,
|
|
10755
11306
|
description: "Y-coordinate for the focus point, used to define the focus area in the image",
|
|
10756
|
-
format: TagFormat.number
|
|
11307
|
+
format: TagFormat.number,
|
|
11308
|
+
nullable: true
|
|
10757
11309
|
}
|
|
10758
11310
|
]
|
|
10759
11311
|
},
|
|
@@ -10860,7 +11412,15 @@ var BITS = {
|
|
|
10860
11412
|
[BitType.smartStandardImageFigureNormative]: {
|
|
10861
11413
|
since: "1.28.0",
|
|
10862
11414
|
baseBitType: BitType.standardImageFigureNormative,
|
|
10863
|
-
description: "Smart standard normative image figure bit, used to create smart standard normative image figures in articles or books"
|
|
11415
|
+
description: "Smart standard normative image figure bit, used to create smart standard normative image figures in articles or books",
|
|
11416
|
+
// PLAN-141 F1 (NISO import): a figure is STRUCTURAL-shaped (no
|
|
11417
|
+
// @children — no body): <label> → [%], <caption>/<graphic> ride the
|
|
11418
|
+
// [&image] resource chain, the <legend> def-list becomes the bit's
|
|
11419
|
+
// definition-list cards, and an inner note PROMOTES as a sibling bit.
|
|
11420
|
+
// Anchor = the source id (D2 revised).
|
|
11421
|
+
mappingKeys: {
|
|
11422
|
+
"xml-niso-iec": { "@el": "fig", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" }
|
|
11423
|
+
}
|
|
10864
11424
|
},
|
|
10865
11425
|
[BitType.smartStandardImageFigureNonNormative]: {
|
|
10866
11426
|
since: "1.28.0",
|
|
@@ -10869,13 +11429,31 @@ var BITS = {
|
|
|
10869
11429
|
},
|
|
10870
11430
|
[BitType.smartStandardImageFigureNormativeCollapsible]: {
|
|
10871
11431
|
since: "1.28.0",
|
|
11432
|
+
deprecated: "5.37.0",
|
|
10872
11433
|
baseBitType: BitType.smartStandardImageFigureNormative,
|
|
10873
|
-
description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books"
|
|
11434
|
+
description: "Collapsible smart standard normative image figure bit, used to create collapsible smart standard normative image figures in articles or books",
|
|
11435
|
+
tags: [
|
|
11436
|
+
{
|
|
11437
|
+
key: ConfigKey.property_isCollapsible,
|
|
11438
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11439
|
+
format: TagFormat.boolean,
|
|
11440
|
+
defaultValue: "true"
|
|
11441
|
+
}
|
|
11442
|
+
]
|
|
10874
11443
|
},
|
|
10875
11444
|
[BitType.smartStandardImageFigureNonNormativeCollapsible]: {
|
|
10876
11445
|
since: "1.28.0",
|
|
11446
|
+
deprecated: "5.37.0",
|
|
10877
11447
|
baseBitType: BitType.smartStandardImageFigureNonNormative,
|
|
10878
|
-
description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books"
|
|
11448
|
+
description: "Collapsible smart standard non-normative image figure bit, used to create collapsible smart standard non-normative image figures in articles or books",
|
|
11449
|
+
tags: [
|
|
11450
|
+
{
|
|
11451
|
+
key: ConfigKey.property_isCollapsible,
|
|
11452
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11453
|
+
format: TagFormat.boolean,
|
|
11454
|
+
defaultValue: "true"
|
|
11455
|
+
}
|
|
11456
|
+
]
|
|
10879
11457
|
},
|
|
10880
11458
|
[BitType.imageLandscape]: {
|
|
10881
11459
|
since: "1.3.0",
|
|
@@ -11087,43 +11665,115 @@ var BITS = {
|
|
|
11087
11665
|
},
|
|
11088
11666
|
[BitType.smartStandardTableImageNormativeCollapsible]: {
|
|
11089
11667
|
since: "1.28.0",
|
|
11668
|
+
deprecated: "5.37.0",
|
|
11090
11669
|
baseBitType: BitType.smartStandardTableImageNormative,
|
|
11091
|
-
description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books"
|
|
11670
|
+
description: "Collapsible smart standard normative table image bit, used to create collapsible smart standard normative images in tables in articles or books",
|
|
11671
|
+
tags: [
|
|
11672
|
+
{
|
|
11673
|
+
key: ConfigKey.property_isCollapsible,
|
|
11674
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11675
|
+
format: TagFormat.boolean,
|
|
11676
|
+
defaultValue: "true"
|
|
11677
|
+
}
|
|
11678
|
+
]
|
|
11092
11679
|
},
|
|
11093
11680
|
[BitType.smartStandardTableImageNonNormativeCollapsible]: {
|
|
11094
11681
|
since: "1.28.0",
|
|
11682
|
+
deprecated: "5.37.0",
|
|
11095
11683
|
baseBitType: BitType.smartStandardTableImageNonNormative,
|
|
11096
|
-
description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books"
|
|
11684
|
+
description: "Collapsible smart standard non-normative table image bit, used to create collapsible smart standard non-normative images in tables in articles or books",
|
|
11685
|
+
tags: [
|
|
11686
|
+
{
|
|
11687
|
+
key: ConfigKey.property_isCollapsible,
|
|
11688
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11689
|
+
format: TagFormat.boolean,
|
|
11690
|
+
defaultValue: "true"
|
|
11691
|
+
}
|
|
11692
|
+
]
|
|
11097
11693
|
},
|
|
11098
11694
|
[BitType.smartStandardRemarkTableImageNormativeCollapsible]: {
|
|
11099
11695
|
since: "1.28.0",
|
|
11696
|
+
deprecated: "5.37.0",
|
|
11100
11697
|
baseBitType: BitType.smartStandardRemarkTableImageNormative,
|
|
11101
|
-
description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books"
|
|
11698
|
+
description: "Collapsible smart standard normative remark table image bit, used to create collapsible smart standard normative remark images in tables in articles or books",
|
|
11699
|
+
tags: [
|
|
11700
|
+
{
|
|
11701
|
+
key: ConfigKey.property_isCollapsible,
|
|
11702
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11703
|
+
format: TagFormat.boolean,
|
|
11704
|
+
defaultValue: "true"
|
|
11705
|
+
}
|
|
11706
|
+
]
|
|
11102
11707
|
},
|
|
11103
11708
|
[BitType.smartStandardRemarkTableImageNonNormativeCollapsible]: {
|
|
11104
11709
|
since: "1.28.0",
|
|
11710
|
+
deprecated: "5.37.0",
|
|
11105
11711
|
baseBitType: BitType.smartStandardRemarkTableImageNonNormative,
|
|
11106
|
-
description: "Collapsible smart standard non-normative remark table image bit, used to create collapsible smart standard non-normative remark images in tables in articles or books"
|
|
11712
|
+
description: "Collapsible smart standard non-normative remark table image bit, used to create collapsible smart standard non-normative remark images in tables in articles or books",
|
|
11713
|
+
tags: [
|
|
11714
|
+
{
|
|
11715
|
+
key: ConfigKey.property_isCollapsible,
|
|
11716
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11717
|
+
format: TagFormat.boolean,
|
|
11718
|
+
defaultValue: "true"
|
|
11719
|
+
}
|
|
11720
|
+
]
|
|
11107
11721
|
},
|
|
11108
11722
|
[BitType.smartStandardTableExtendedImageNormativeCollapsible]: {
|
|
11109
11723
|
since: "1.28.0",
|
|
11724
|
+
deprecated: "5.37.0",
|
|
11110
11725
|
baseBitType: BitType.smartStandardTableExtendedImageNormative,
|
|
11111
|
-
description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books"
|
|
11726
|
+
description: "Collapsible smart standard normative extended table image bit, used to create collapsible smart standard normative extended images in tables in articles or books",
|
|
11727
|
+
tags: [
|
|
11728
|
+
{
|
|
11729
|
+
key: ConfigKey.property_isCollapsible,
|
|
11730
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11731
|
+
format: TagFormat.boolean,
|
|
11732
|
+
defaultValue: "true"
|
|
11733
|
+
}
|
|
11734
|
+
]
|
|
11112
11735
|
},
|
|
11113
11736
|
[BitType.smartStandardTableExtendedImageNonNormativeCollapsible]: {
|
|
11114
11737
|
since: "1.28.0",
|
|
11738
|
+
deprecated: "5.37.0",
|
|
11115
11739
|
baseBitType: BitType.smartStandardTableExtendedImageNonNormative,
|
|
11116
|
-
description: "Collapsible smart standard non-normative extended table image bit, used to create collapsible smart standard non-normative extended images in tables in articles or books"
|
|
11740
|
+
description: "Collapsible smart standard non-normative extended table image bit, used to create collapsible smart standard non-normative extended images in tables in articles or books",
|
|
11741
|
+
tags: [
|
|
11742
|
+
{
|
|
11743
|
+
key: ConfigKey.property_isCollapsible,
|
|
11744
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11745
|
+
format: TagFormat.boolean,
|
|
11746
|
+
defaultValue: "true"
|
|
11747
|
+
}
|
|
11748
|
+
]
|
|
11117
11749
|
},
|
|
11118
11750
|
[BitType.smartStandardRemarkTableExtendedImageNormativeCollapsible]: {
|
|
11119
11751
|
since: "1.28.0",
|
|
11752
|
+
deprecated: "5.37.0",
|
|
11120
11753
|
baseBitType: BitType.smartStandardRemarkTableExtendedImageNormative,
|
|
11121
|
-
description: "Collapsible smart standard normative remark extended table image bit, used to create collapsible smart standard normative remark extended images in tables in articles or books"
|
|
11754
|
+
description: "Collapsible smart standard normative remark extended table image bit, used to create collapsible smart standard normative remark extended images in tables in articles or books",
|
|
11755
|
+
tags: [
|
|
11756
|
+
{
|
|
11757
|
+
key: ConfigKey.property_isCollapsible,
|
|
11758
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11759
|
+
format: TagFormat.boolean,
|
|
11760
|
+
defaultValue: "true"
|
|
11761
|
+
}
|
|
11762
|
+
]
|
|
11122
11763
|
},
|
|
11123
11764
|
[BitType.smartStandardRemarkTableExtendedImageNonNormativeCollapsible]: {
|
|
11124
11765
|
since: "1.28.0",
|
|
11766
|
+
deprecated: "5.37.0",
|
|
11125
11767
|
baseBitType: BitType.smartStandardRemarkTableExtendedImageNonNormative,
|
|
11126
|
-
description: "Collapsible smart standard non-normative remark extended table image bit, used to create collapsible smart standard non-normative remark extended images in tables in articles or books"
|
|
11768
|
+
description: "Collapsible smart standard non-normative remark extended table image bit, used to create collapsible smart standard non-normative remark extended images in tables in articles or books",
|
|
11769
|
+
tags: [
|
|
11770
|
+
{
|
|
11771
|
+
key: ConfigKey.property_isCollapsible,
|
|
11772
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
11773
|
+
format: TagFormat.boolean,
|
|
11774
|
+
defaultValue: "true"
|
|
11775
|
+
}
|
|
11776
|
+
]
|
|
11127
11777
|
},
|
|
11128
11778
|
[BitType.imageLink]: {
|
|
11129
11779
|
since: "1.3.0",
|
|
@@ -11588,12 +12238,33 @@ var BITS = {
|
|
|
11588
12238
|
[BitType.smartStandardListItem]: {
|
|
11589
12239
|
since: "1.28.0",
|
|
11590
12240
|
baseBitType: BitType.standardListItem,
|
|
11591
|
-
description: "Smart standard list item bit, used to create smart standard list items in articles or books"
|
|
12241
|
+
description: "Smart standard list item bit, used to create smart standard list items in articles or books",
|
|
12242
|
+
// PLAN-140 refs family (NISO import): one list-item bit per <ref> —
|
|
12243
|
+
// CONTENT key (its citation subtree is the body), counter anchor scoped
|
|
12244
|
+
// to the containing list, <label> → [%], nested <std-id> → [@externalId]
|
|
12245
|
+
// (the externalId tag key's nested content slot).
|
|
12246
|
+
mappingKeys: {
|
|
12247
|
+
"xml-niso-iec": {
|
|
12248
|
+
"@el": "ref",
|
|
12249
|
+
"@attr": { id: "$customerId" },
|
|
12250
|
+
"@children": "$",
|
|
12251
|
+
"\u25BC": "$anchor"
|
|
12252
|
+
}
|
|
12253
|
+
}
|
|
11592
12254
|
},
|
|
11593
12255
|
[BitType.smartStandardListItemCollapsible]: {
|
|
11594
12256
|
since: "1.28.0",
|
|
12257
|
+
deprecated: "5.37.0",
|
|
11595
12258
|
baseBitType: BitType.smartStandardListItem,
|
|
11596
|
-
description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books"
|
|
12259
|
+
description: "Collapsible smart standard list item bit, used to create collapsible smart standard list items in articles or books",
|
|
12260
|
+
tags: [
|
|
12261
|
+
{
|
|
12262
|
+
key: ConfigKey.property_isCollapsible,
|
|
12263
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
12264
|
+
format: TagFormat.boolean,
|
|
12265
|
+
defaultValue: "true"
|
|
12266
|
+
}
|
|
12267
|
+
]
|
|
11597
12268
|
},
|
|
11598
12269
|
[BitType.mark]: {
|
|
11599
12270
|
since: "1.3.0",
|
|
@@ -11926,8 +12597,17 @@ var BITS = {
|
|
|
11926
12597
|
},
|
|
11927
12598
|
[BitType.pageCollapsible]: {
|
|
11928
12599
|
since: "1.30.0",
|
|
12600
|
+
deprecated: "5.37.0",
|
|
11929
12601
|
baseBitType: BitType.page,
|
|
11930
|
-
description: "Collapsible page bit, used to create collapsible sections in pages"
|
|
12602
|
+
description: "Collapsible page bit, used to create collapsible sections in pages",
|
|
12603
|
+
tags: [
|
|
12604
|
+
{
|
|
12605
|
+
key: ConfigKey.property_isCollapsible,
|
|
12606
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
12607
|
+
format: TagFormat.boolean,
|
|
12608
|
+
defaultValue: "true"
|
|
12609
|
+
}
|
|
12610
|
+
]
|
|
11931
12611
|
},
|
|
11932
12612
|
[BitType.pageCoverImage]: {
|
|
11933
12613
|
since: "1.22.0",
|
|
@@ -12695,7 +13375,13 @@ var BITS = {
|
|
|
12695
13375
|
// `<caption>` — placed inside the idiomatic `<table>` container as
|
|
12696
13376
|
// its first child. Outside a table context it falls back to the
|
|
12697
13377
|
// residual carrier.
|
|
12698
|
-
htmlKey: { "@el": "caption", "@children": "$" }
|
|
13378
|
+
htmlKey: { "@el": "caption", "@children": "$" },
|
|
13379
|
+
// PLAN-141 F2 (NISO import): a table-wrap's <caption><title> — the
|
|
13380
|
+
// nested content slot reads the title text (catalog D5: the caption
|
|
13381
|
+
// is a TOP-LEVEL bit property on table bits).
|
|
13382
|
+
mappingKeys: {
|
|
13383
|
+
"xml-niso-iec": { "@el": "caption", "@children": { "@el": "title", "@text": "$" } }
|
|
13384
|
+
}
|
|
12699
13385
|
},
|
|
12700
13386
|
{
|
|
12701
13387
|
key: ConfigKey.property_tableFixedHeader,
|
|
@@ -12868,7 +13554,16 @@ var BITS = {
|
|
|
12868
13554
|
[BitType.smartStandardTableExtendedNormative]: {
|
|
12869
13555
|
since: "1.28.0",
|
|
12870
13556
|
baseBitType: BitType.standardTableExtendedNormative,
|
|
12871
|
-
description: "Smart standard normative extended table bit, used to create smart standard normative extended tables in articles or books"
|
|
13557
|
+
description: "Smart standard normative extended table bit, used to create smart standard normative extended tables in articles or books",
|
|
13558
|
+
// PLAN-141 F2 (NISO import): a table-wrap is STRUCTURAL-shaped (no
|
|
13559
|
+
// @children — no body): <label> → [%], <caption><title> → the bit-level
|
|
13560
|
+
// [@caption] (D5), the inner <table>/<table-wrap-foot> build the
|
|
13561
|
+
// table-extended card grid via the card set's authored keys, and a
|
|
13562
|
+
// footer <def-list> PROMOTES as a sibling legend bit. Anchor = the
|
|
13563
|
+
// source id (D2 revised).
|
|
13564
|
+
mappingKeys: {
|
|
13565
|
+
"xml-niso-iec": { "@el": "table-wrap", "@attr": { id: "$customerId" }, "\u25BC": "$anchor" }
|
|
13566
|
+
}
|
|
12872
13567
|
},
|
|
12873
13568
|
[BitType.smartStandardTableExtendedNonNormative]: {
|
|
12874
13569
|
since: "1.28.0",
|
|
@@ -12887,43 +13582,115 @@ var BITS = {
|
|
|
12887
13582
|
},
|
|
12888
13583
|
[BitType.smartStandardTableNormativeCollapsible]: {
|
|
12889
13584
|
since: "1.28.0",
|
|
13585
|
+
deprecated: "5.37.0",
|
|
12890
13586
|
baseBitType: BitType.smartStandardTableNormative,
|
|
12891
|
-
description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books"
|
|
13587
|
+
description: "Collapsible smart standard normative table bit, used to create collapsible smart standard normative tables in articles or books",
|
|
13588
|
+
tags: [
|
|
13589
|
+
{
|
|
13590
|
+
key: ConfigKey.property_isCollapsible,
|
|
13591
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13592
|
+
format: TagFormat.boolean,
|
|
13593
|
+
defaultValue: "true"
|
|
13594
|
+
}
|
|
13595
|
+
]
|
|
12892
13596
|
},
|
|
12893
13597
|
[BitType.smartStandardTableNonNormativeCollapsible]: {
|
|
12894
13598
|
since: "1.28.0",
|
|
13599
|
+
deprecated: "5.37.0",
|
|
12895
13600
|
baseBitType: BitType.smartStandardTableNonNormative,
|
|
12896
|
-
description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books"
|
|
13601
|
+
description: "Collapsible smart standard non-normative table bit, used to create collapsible smart standard non-normative tables in articles or books",
|
|
13602
|
+
tags: [
|
|
13603
|
+
{
|
|
13604
|
+
key: ConfigKey.property_isCollapsible,
|
|
13605
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13606
|
+
format: TagFormat.boolean,
|
|
13607
|
+
defaultValue: "true"
|
|
13608
|
+
}
|
|
13609
|
+
]
|
|
12897
13610
|
},
|
|
12898
13611
|
[BitType.smartStandardRemarkTableNormativeCollapsible]: {
|
|
12899
13612
|
since: "1.28.0",
|
|
13613
|
+
deprecated: "5.37.0",
|
|
12900
13614
|
baseBitType: BitType.smartStandardRemarkTableNormative,
|
|
12901
|
-
description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books"
|
|
13615
|
+
description: "Collapsible smart standard normative remark table bit, used to create collapsible smart standard normative remark tables in articles or books",
|
|
13616
|
+
tags: [
|
|
13617
|
+
{
|
|
13618
|
+
key: ConfigKey.property_isCollapsible,
|
|
13619
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13620
|
+
format: TagFormat.boolean,
|
|
13621
|
+
defaultValue: "true"
|
|
13622
|
+
}
|
|
13623
|
+
]
|
|
12902
13624
|
},
|
|
12903
13625
|
[BitType.smartStandardRemarkTableNonNormativeCollapsible]: {
|
|
12904
13626
|
since: "1.28.0",
|
|
13627
|
+
deprecated: "5.37.0",
|
|
12905
13628
|
baseBitType: BitType.smartStandardRemarkTableNonNormative,
|
|
12906
|
-
description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books"
|
|
13629
|
+
description: "Collapsible smart standard non-normative remark table bit, used to create collapsible smart standard non-normative remark tables in articles or books",
|
|
13630
|
+
tags: [
|
|
13631
|
+
{
|
|
13632
|
+
key: ConfigKey.property_isCollapsible,
|
|
13633
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13634
|
+
format: TagFormat.boolean,
|
|
13635
|
+
defaultValue: "true"
|
|
13636
|
+
}
|
|
13637
|
+
]
|
|
12907
13638
|
},
|
|
12908
13639
|
[BitType.smartStandardTableExtendedNormativeCollapsible]: {
|
|
12909
13640
|
since: "1.28.0",
|
|
13641
|
+
deprecated: "5.37.0",
|
|
12910
13642
|
baseBitType: BitType.smartStandardTableExtendedNormative,
|
|
12911
|
-
description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books"
|
|
13643
|
+
description: "Collapsible smart standard normative extended table bit, used to create collapsible smart standard normative extended tables in articles or books",
|
|
13644
|
+
tags: [
|
|
13645
|
+
{
|
|
13646
|
+
key: ConfigKey.property_isCollapsible,
|
|
13647
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13648
|
+
format: TagFormat.boolean,
|
|
13649
|
+
defaultValue: "true"
|
|
13650
|
+
}
|
|
13651
|
+
]
|
|
12912
13652
|
},
|
|
12913
13653
|
[BitType.smartStandardTableExtendedNonNormativeCollapsible]: {
|
|
12914
13654
|
since: "1.28.0",
|
|
13655
|
+
deprecated: "5.37.0",
|
|
12915
13656
|
baseBitType: BitType.smartStandardTableExtendedNonNormative,
|
|
12916
|
-
description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books"
|
|
13657
|
+
description: "Collapsible smart standard non-normative extended table bit, used to create collapsible smart standard non-normative extended tables in articles or books",
|
|
13658
|
+
tags: [
|
|
13659
|
+
{
|
|
13660
|
+
key: ConfigKey.property_isCollapsible,
|
|
13661
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13662
|
+
format: TagFormat.boolean,
|
|
13663
|
+
defaultValue: "true"
|
|
13664
|
+
}
|
|
13665
|
+
]
|
|
12917
13666
|
},
|
|
12918
13667
|
[BitType.smartStandardRemarkTableExtendedNormativeCollapsible]: {
|
|
12919
13668
|
since: "1.28.0",
|
|
13669
|
+
deprecated: "5.37.0",
|
|
12920
13670
|
baseBitType: BitType.smartStandardRemarkTableExtendedNormative,
|
|
12921
|
-
description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books"
|
|
13671
|
+
description: "Collapsible smart standard normative remark extended table bit, used to create collapsible smart standard normative remark extended tables in articles or books",
|
|
13672
|
+
tags: [
|
|
13673
|
+
{
|
|
13674
|
+
key: ConfigKey.property_isCollapsible,
|
|
13675
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13676
|
+
format: TagFormat.boolean,
|
|
13677
|
+
defaultValue: "true"
|
|
13678
|
+
}
|
|
13679
|
+
]
|
|
12922
13680
|
},
|
|
12923
13681
|
[BitType.smartStandardRemarkTableExtendedNonNormativeCollapsible]: {
|
|
12924
13682
|
since: "1.28.0",
|
|
13683
|
+
deprecated: "5.37.0",
|
|
12925
13684
|
baseBitType: BitType.smartStandardRemarkTableExtendedNonNormative,
|
|
12926
|
-
description: "Collapsible smart standard non-normative remark extended table bit, used to create collapsible smart standard non-normative remark extended tables in articles or books"
|
|
13685
|
+
description: "Collapsible smart standard non-normative remark extended table bit, used to create collapsible smart standard non-normative remark extended tables in articles or books",
|
|
13686
|
+
tags: [
|
|
13687
|
+
{
|
|
13688
|
+
key: ConfigKey.property_isCollapsible,
|
|
13689
|
+
description: "If true, the bit is collapsible (defaults true for this deprecated bit type)",
|
|
13690
|
+
format: TagFormat.boolean,
|
|
13691
|
+
defaultValue: "true"
|
|
13692
|
+
}
|
|
13693
|
+
]
|
|
12927
13694
|
},
|
|
12928
13695
|
[BitType.parameters]: {
|
|
12929
13696
|
since: "1.18.0",
|
|
@@ -12943,7 +13710,8 @@ var BITS = {
|
|
|
12943
13710
|
{
|
|
12944
13711
|
key: ConfigKey.property_maxDisplayLevel,
|
|
12945
13712
|
description: "Maximum display level for the chapter in the table of contents",
|
|
12946
|
-
format: TagFormat.number
|
|
13713
|
+
format: TagFormat.number,
|
|
13714
|
+
nullable: true
|
|
12947
13715
|
}
|
|
12948
13716
|
]
|
|
12949
13717
|
},
|
|
@@ -12955,7 +13723,8 @@ var BITS = {
|
|
|
12955
13723
|
{
|
|
12956
13724
|
key: ConfigKey.property_maxTocChapterLevel,
|
|
12957
13725
|
description: "Maximum chapter level for the inline table of contents",
|
|
12958
|
-
format: TagFormat.number
|
|
13726
|
+
format: TagFormat.number,
|
|
13727
|
+
nullable: true
|
|
12959
13728
|
}
|
|
12960
13729
|
]
|
|
12961
13730
|
},
|
|
@@ -13378,13 +14147,15 @@ var BITS = {
|
|
|
13378
14147
|
key: ConfigKey.property_width,
|
|
13379
14148
|
// Same as image
|
|
13380
14149
|
description: "Width for the embedded content, used to define the width in pixels",
|
|
13381
|
-
format: TagFormat.number
|
|
14150
|
+
format: TagFormat.number,
|
|
14151
|
+
nullable: true
|
|
13382
14152
|
},
|
|
13383
14153
|
{
|
|
13384
14154
|
key: ConfigKey.property_height,
|
|
13385
14155
|
// Same as image
|
|
13386
14156
|
description: "Height for the embedded content, used to define the height in pixels",
|
|
13387
|
-
format: TagFormat.number
|
|
14157
|
+
format: TagFormat.number,
|
|
14158
|
+
nullable: true
|
|
13388
14159
|
},
|
|
13389
14160
|
{
|
|
13390
14161
|
key: ConfigKey.property_vendorUrl,
|
|
@@ -13422,7 +14193,8 @@ var BITS = {
|
|
|
13422
14193
|
{
|
|
13423
14194
|
key: ConfigKey.property_jupyterExecutionCount,
|
|
13424
14195
|
description: "Execution count for the Jupyter output, used to define the execution order",
|
|
13425
|
-
format: TagFormat.number
|
|
14196
|
+
format: TagFormat.number,
|
|
14197
|
+
nullable: true
|
|
13426
14198
|
}
|
|
13427
14199
|
],
|
|
13428
14200
|
textFormatDefault: TextFormat.plainText
|
|
@@ -13630,10 +14402,12 @@ var BITS = {
|
|
|
13630
14402
|
};
|
|
13631
14403
|
|
|
13632
14404
|
// src/config/Config.ts
|
|
14405
|
+
var COLLAPSIBLE_BIT_TYPE_SUFFIX = "-collapsible";
|
|
13633
14406
|
var Config = class {
|
|
13634
14407
|
bitLevelMin = 1;
|
|
13635
14408
|
bitLevelMax = 7;
|
|
13636
14409
|
bitCache = /* @__PURE__ */ new Map();
|
|
14410
|
+
migratedBitCache = /* @__PURE__ */ new Map();
|
|
13637
14411
|
allResourcesCache;
|
|
13638
14412
|
comboResourcesCache = /* @__PURE__ */ new Map();
|
|
13639
14413
|
constructor() {
|
|
@@ -13650,6 +14424,29 @@ var Config = class {
|
|
|
13650
14424
|
if (bitType?.startsWith("|")) bitType = bitType.substring(1);
|
|
13651
14425
|
return Enum(BitType).fromValue(bitType) ?? BitType._error;
|
|
13652
14426
|
}
|
|
14427
|
+
/**
|
|
14428
|
+
* PLAN-017: Return the migration target for a deprecated `*-collapsible` bit type.
|
|
14429
|
+
*
|
|
14430
|
+
* Every `*-collapsible` bit type declares its non-collapsible cousin as its `baseBitType`, so the
|
|
14431
|
+
* target is read from the config rather than a hand-maintained table — a new `*-collapsible` bit
|
|
14432
|
+
* type is covered automatically.
|
|
14433
|
+
*
|
|
14434
|
+
* `BitType.collapsible` is the one exclusion: it has no non-collapsible cousin (its `baseBitType`
|
|
14435
|
+
* is `article`, which is not a migration target).
|
|
14436
|
+
*
|
|
14437
|
+
* @param bitType the bit type
|
|
14438
|
+
* @returns the bit type to migrate to, or undefined if the bit type does not migrate
|
|
14439
|
+
*/
|
|
14440
|
+
getMigratedBitType(bitType) {
|
|
14441
|
+
const cached = this.migratedBitCache.get(bitType);
|
|
14442
|
+
if (cached !== void 0 || this.migratedBitCache.has(bitType)) return cached;
|
|
14443
|
+
let target;
|
|
14444
|
+
if (bitType !== BitType.collapsible && bitType.endsWith(COLLAPSIBLE_BIT_TYPE_SUFFIX)) {
|
|
14445
|
+
target = BITS[bitType]?.baseBitType;
|
|
14446
|
+
}
|
|
14447
|
+
this.migratedBitCache.set(bitType, target);
|
|
14448
|
+
return target;
|
|
14449
|
+
}
|
|
13653
14450
|
/**
|
|
13654
14451
|
* Check if a bit type is and instance of the given root bit type.
|
|
13655
14452
|
*
|
|
@@ -13972,7 +14769,7 @@ var instance2 = new Config();
|
|
|
13972
14769
|
// src/generated/package_info.ts
|
|
13973
14770
|
var PACKAGE_INFO = {
|
|
13974
14771
|
"name": "@gmb/bitmark-parser-generator",
|
|
13975
|
-
"version": "5.
|
|
14772
|
+
"version": "5.37.0",
|
|
13976
14773
|
"license": "ISC"};
|
|
13977
14774
|
var Environment = {
|
|
13978
14775
|
unknown: "",
|
|
@@ -14469,6 +15266,8 @@ var NodeType = {
|
|
|
14469
15266
|
definition: "definition",
|
|
14470
15267
|
definitions: "definitions",
|
|
14471
15268
|
definitionsValue: "definitionsValue",
|
|
15269
|
+
displayName: "displayName",
|
|
15270
|
+
displayNameValue: "displayNameValue",
|
|
14472
15271
|
diffContext: "diffContext",
|
|
14473
15272
|
diffContextValue: "diffContextValue",
|
|
14474
15273
|
diffOp: "diffOp",
|
|
@@ -14997,6 +15796,8 @@ var NodeType = {
|
|
|
14997
15796
|
type: "type",
|
|
14998
15797
|
unit: "unit",
|
|
14999
15798
|
unitAbbr: "unitAbbr",
|
|
15799
|
+
unitAbbrPlural: "unitAbbrPlural",
|
|
15800
|
+
unitPlural: "unitPlural",
|
|
15000
15801
|
url: "url",
|
|
15001
15802
|
validationDate: "validationDate",
|
|
15002
15803
|
validationDateValue: "validationDateValue",
|
|
@@ -27987,8 +28788,14 @@ var Builder = class extends BaseBuilder {
|
|
|
27987
28788
|
*/
|
|
27988
28789
|
buildBit(data, options) {
|
|
27989
28790
|
data = structuredClone(data);
|
|
28791
|
+
const migratedBitType = instance2.getMigratedBitType(data.bitType);
|
|
28792
|
+
if (migratedBitType) {
|
|
28793
|
+
data.bitType = migratedBitType;
|
|
28794
|
+
data.isCollapsible = data.isCollapsible ?? true;
|
|
28795
|
+
}
|
|
27990
28796
|
const bitType = data.bitType;
|
|
27991
28797
|
const bitConfig = instance2.getBitConfig(bitType);
|
|
28798
|
+
const isCollapsibleDefaultsTrue = bitConfig.tags[ConfigKey.property_isCollapsible]?.defaultValue === "true";
|
|
27992
28799
|
const deprecatedTextFormat = Enum(DeprecatedTextFormat).fromValue(data.textFormat);
|
|
27993
28800
|
let textFormat = Enum(TextFormat).fromValue(data.textFormat) ?? bitConfig.textFormatDefault;
|
|
27994
28801
|
if (deprecatedTextFormat === DeprecatedTextFormat.bitmarkMinusMinus) {
|
|
@@ -28206,6 +29013,12 @@ var Builder = class extends BaseBuilder {
|
|
|
28206
29013
|
data.publisherName,
|
|
28207
29014
|
options
|
|
28208
29015
|
),
|
|
29016
|
+
displayName: this.toAstProperty(
|
|
29017
|
+
bitType,
|
|
29018
|
+
ConfigKey.property_displayName,
|
|
29019
|
+
data.displayName,
|
|
29020
|
+
options
|
|
29021
|
+
),
|
|
28209
29022
|
theme: this.toAstProperty(bitType, ConfigKey.property_theme, data.theme, options),
|
|
28210
29023
|
rtl: this.toAstProperty(bitType, ConfigKey.property_rtl, data.rtl, options),
|
|
28211
29024
|
computerLanguage: this.toAstProperty(
|
|
@@ -29115,7 +29928,7 @@ var Builder = class extends BaseBuilder {
|
|
|
29115
29928
|
isCollapsible: this.toAstProperty(
|
|
29116
29929
|
bitType,
|
|
29117
29930
|
ConfigKey.property_isCollapsible,
|
|
29118
|
-
data.isCollapsible,
|
|
29931
|
+
data.isCollapsible ?? (isCollapsibleDefaultsTrue ? true : void 0),
|
|
29119
29932
|
options
|
|
29120
29933
|
),
|
|
29121
29934
|
anchor: data.anchor,
|
|
@@ -29884,7 +30697,9 @@ var Builder = class extends BaseBuilder {
|
|
|
29884
30697
|
ingredient: this.handleJsonText(context, TextLocation.tag, data.ingredient),
|
|
29885
30698
|
quantity: data.quantity ?? 0,
|
|
29886
30699
|
unit: data.unit ?? "",
|
|
30700
|
+
unitPlural: data.unitPlural ?? "",
|
|
29887
30701
|
unitAbbr: data.unitAbbr ?? "",
|
|
30702
|
+
unitAbbrPlural: data.unitAbbrPlural ?? "",
|
|
29888
30703
|
decimalPlaces: data.decimalPlaces ?? 1,
|
|
29889
30704
|
disableCalculation: data.disableCalculation ?? false,
|
|
29890
30705
|
item: this.handleJsonText(context, TextLocation.tag, data.item),
|
|
@@ -30479,11 +31294,22 @@ var Builder = class extends BaseBuilder {
|
|
|
30479
31294
|
*/
|
|
30480
31295
|
buildServings(_context, data) {
|
|
30481
31296
|
if (!data) return void 0;
|
|
30482
|
-
const {
|
|
31297
|
+
const {
|
|
31298
|
+
servings,
|
|
31299
|
+
unit,
|
|
31300
|
+
unitPlural,
|
|
31301
|
+
unitAbbr,
|
|
31302
|
+
unitAbbrPlural,
|
|
31303
|
+
decimalPlaces,
|
|
31304
|
+
disableCalculation,
|
|
31305
|
+
hint
|
|
31306
|
+
} = data;
|
|
30483
31307
|
const node = {
|
|
30484
31308
|
servings: servings ?? 0,
|
|
30485
31309
|
unit: unit ?? "",
|
|
31310
|
+
unitPlural: unitPlural ?? "",
|
|
30486
31311
|
unitAbbr: unitAbbr ?? "",
|
|
31312
|
+
unitAbbrPlural: unitAbbrPlural ?? "",
|
|
30487
31313
|
decimalPlaces: decimalPlaces ?? 1,
|
|
30488
31314
|
disableCalculation: disableCalculation ?? false,
|
|
30489
31315
|
hint: hint ?? ""
|
|
@@ -31409,7 +32235,16 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
|
|
|
31409
32235
|
const nodeValue = node.value;
|
|
31410
32236
|
const parent = this.getParentNode(route);
|
|
31411
32237
|
if (parent?.key !== NodeType.bitsValue) return true;
|
|
31412
|
-
const {
|
|
32238
|
+
const {
|
|
32239
|
+
servings,
|
|
32240
|
+
unit,
|
|
32241
|
+
unitPlural,
|
|
32242
|
+
unitAbbr,
|
|
32243
|
+
unitAbbrPlural,
|
|
32244
|
+
decimalPlaces,
|
|
32245
|
+
disableCalculation,
|
|
32246
|
+
hint
|
|
32247
|
+
} = nodeValue;
|
|
31413
32248
|
this.writeProperty("servings", servings, route, {
|
|
31414
32249
|
format: TagFormat.plainText
|
|
31415
32250
|
});
|
|
@@ -31419,12 +32254,24 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
|
|
|
31419
32254
|
forceChain: true
|
|
31420
32255
|
});
|
|
31421
32256
|
}
|
|
32257
|
+
if (unitPlural != null) {
|
|
32258
|
+
this.writeProperty("unitPlural", unitPlural, route, {
|
|
32259
|
+
format: TagFormat.plainText,
|
|
32260
|
+
forceChain: true
|
|
32261
|
+
});
|
|
32262
|
+
}
|
|
31422
32263
|
if (unitAbbr != null) {
|
|
31423
32264
|
this.writeProperty("unitAbbr", unitAbbr, route, {
|
|
31424
32265
|
format: TagFormat.plainText,
|
|
31425
32266
|
forceChain: true
|
|
31426
32267
|
});
|
|
31427
32268
|
}
|
|
32269
|
+
if (unitAbbrPlural != null) {
|
|
32270
|
+
this.writeProperty("unitAbbrPlural", unitAbbrPlural, route, {
|
|
32271
|
+
format: TagFormat.plainText,
|
|
32272
|
+
forceChain: true
|
|
32273
|
+
});
|
|
32274
|
+
}
|
|
31428
32275
|
if (decimalPlaces != null) {
|
|
31429
32276
|
this.writeProperty("decimalPlaces", decimalPlaces, route, {
|
|
31430
32277
|
format: TagFormat.plainText,
|
|
@@ -32268,10 +33115,18 @@ var BitmarkGenerator = class extends AstWalkerGenerator {
|
|
|
32268
33115
|
this.writeProperty("unit", ingredient.unit, route, {
|
|
32269
33116
|
format: TagFormat.plainText
|
|
32270
33117
|
});
|
|
33118
|
+
if (ingredient.unitPlural != null)
|
|
33119
|
+
this.writeProperty("unitPlural", ingredient.unitPlural, route, {
|
|
33120
|
+
format: TagFormat.plainText
|
|
33121
|
+
});
|
|
32271
33122
|
if (ingredient.unitAbbr != null)
|
|
32272
33123
|
this.writeProperty("unitAbbr", ingredient.unitAbbr, route, {
|
|
32273
33124
|
format: TagFormat.plainText
|
|
32274
33125
|
});
|
|
33126
|
+
if (ingredient.unitAbbrPlural != null)
|
|
33127
|
+
this.writeProperty("unitAbbrPlural", ingredient.unitAbbrPlural, route, {
|
|
33128
|
+
format: TagFormat.plainText
|
|
33129
|
+
});
|
|
32275
33130
|
if (ingredient.decimalPlaces != null)
|
|
32276
33131
|
this.writeProperty("decimalPlaces", ingredient.decimalPlaces, route, {
|
|
32277
33132
|
format: TagFormat.plainText
|
|
@@ -34041,6 +34896,25 @@ var JsonGenerator = class extends AstWalkerGenerator {
|
|
|
34041
34896
|
}
|
|
34042
34897
|
return false;
|
|
34043
34898
|
}
|
|
34899
|
+
// bitmarkAst -> bits -> bitsValue -> isCollapsible
|
|
34900
|
+
/**
|
|
34901
|
+
* PLAN-016: `isCollapsible` is emitted only when true. `false` is the implied
|
|
34902
|
+
* default for every bit, so it is never written to the JSON — an absent key
|
|
34903
|
+
* means the bit's configured default (`true` for the deprecated
|
|
34904
|
+
* `*-collapsible` bit types, `false` everywhere else).
|
|
34905
|
+
*
|
|
34906
|
+
* Defining these handlers suppresses the generic property handlers that
|
|
34907
|
+
* `generatePropertyHandlers()` would otherwise install for this tag.
|
|
34908
|
+
*/
|
|
34909
|
+
leaf_isCollapsible(node, route) {
|
|
34910
|
+
const parent = this.getParentNode(route);
|
|
34911
|
+
if (parent?.key !== NodeType.bitsValue) return false;
|
|
34912
|
+
if (node.value === true) this.bitJson.isCollapsible = true;
|
|
34913
|
+
return false;
|
|
34914
|
+
}
|
|
34915
|
+
enter_isCollapsible(node, route) {
|
|
34916
|
+
return this.leaf_isCollapsible(node, route);
|
|
34917
|
+
}
|
|
34044
34918
|
// bitmarkAst -> bits -> bitsValue -> markConfig
|
|
34045
34919
|
enter_markConfig(_node, _route) {
|
|
34046
34920
|
return true;
|
|
@@ -34912,7 +35786,6 @@ var JsonGenerator = class extends AstWalkerGenerator {
|
|
|
34912
35786
|
if (instance2.isOfBitType(bitType, BitType.chapter)) {
|
|
34913
35787
|
if (bitJson.toc == null) bitJson.toc = true;
|
|
34914
35788
|
if (bitJson.progress == null) bitJson.progress = true;
|
|
34915
|
-
if (bitJson.isCollapsible == null) bitJson.isCollapsible = false;
|
|
34916
35789
|
if (bitJson.level == null) bitJson.level = 1;
|
|
34917
35790
|
if (bitJson.body == null) bitJson.body = this.bodyDefault;
|
|
34918
35791
|
}
|
|
@@ -37817,7 +38690,9 @@ function parseIngredients(_context, _bitType, cardSet) {
|
|
|
37817
38690
|
title: titleArray,
|
|
37818
38691
|
__instructionString,
|
|
37819
38692
|
unit,
|
|
38693
|
+
unitPlural,
|
|
37820
38694
|
unitAbbr,
|
|
38695
|
+
unitAbbrPlural,
|
|
37821
38696
|
decimalPlaces,
|
|
37822
38697
|
disableCalculation,
|
|
37823
38698
|
cardBodyStr,
|
|
@@ -37847,7 +38722,9 @@ function parseIngredients(_context, _bitType, cardSet) {
|
|
|
37847
38722
|
ingredient: cardBodyStr,
|
|
37848
38723
|
quantity,
|
|
37849
38724
|
unit: unit ?? instance3.EMPTY_STRING,
|
|
38725
|
+
unitPlural,
|
|
37850
38726
|
unitAbbr: unitAbbr ?? instance3.EMPTY_STRING,
|
|
38727
|
+
unitAbbrPlural,
|
|
37851
38728
|
decimalPlaces: decimalPlaces ?? 1,
|
|
37852
38729
|
disableCalculation,
|
|
37853
38730
|
...tags2
|
|
@@ -38497,12 +39374,22 @@ function servingsChainContentProcessor(context, _contentDepth, tagsConfig, conte
|
|
|
38497
39374
|
if (context.DEBUG_CHAIN_CONTENT) context.debugPrint("servings content", content);
|
|
38498
39375
|
const tags2 = context.bitContentProcessor(ContentDepth.Chain, tagsConfig, content.chain);
|
|
38499
39376
|
if (context.DEBUG_CHAIN_TAGS) context.debugPrint("servings TAGS", tags2);
|
|
38500
|
-
const {
|
|
39377
|
+
const {
|
|
39378
|
+
unit,
|
|
39379
|
+
unitPlural,
|
|
39380
|
+
unitAbbr,
|
|
39381
|
+
unitAbbrPlural,
|
|
39382
|
+
decimalPlaces,
|
|
39383
|
+
disableCalculation,
|
|
39384
|
+
__hintString
|
|
39385
|
+
} = tags2;
|
|
38501
39386
|
const servings = instance6.asNumber(content.value) ?? 1;
|
|
38502
39387
|
const node = {
|
|
38503
39388
|
servings,
|
|
38504
39389
|
unit,
|
|
39390
|
+
unitPlural,
|
|
38505
39391
|
unitAbbr,
|
|
39392
|
+
unitAbbrPlural,
|
|
38506
39393
|
decimalPlaces: decimalPlaces ?? 1,
|
|
38507
39394
|
disableCalculation,
|
|
38508
39395
|
hint: __hintString
|
|
@@ -44171,7 +45058,7 @@ var ConfigBuilder = class {
|
|
|
44171
45058
|
}
|
|
44172
45059
|
const outputFolder = opts.outputDir ?? "assets/config";
|
|
44173
45060
|
const outputFolderBits = path3.join(outputFolder, "bits");
|
|
44174
|
-
const outputFolderGroups = path3.join(outputFolder, "
|
|
45061
|
+
const outputFolderGroups = path3.join(outputFolder, "groups");
|
|
44175
45062
|
const outputFolderCards = path3.join(outputFolder, "cards");
|
|
44176
45063
|
fs4.ensureDirSync(outputFolderBits);
|
|
44177
45064
|
fs4.ensureDirSync(outputFolderGroups);
|
|
@@ -44206,6 +45093,15 @@ var ConfigBuilder = class {
|
|
|
44206
45093
|
}
|
|
44207
45094
|
return [{ key: groupKey }];
|
|
44208
45095
|
};
|
|
45096
|
+
const mappingKeysField = (base, json, html) => {
|
|
45097
|
+
const record = {};
|
|
45098
|
+
for (const [id, value] of Object.entries(base ?? {})) {
|
|
45099
|
+
if (value != null) record[id] = value;
|
|
45100
|
+
}
|
|
45101
|
+
if (json.present && json.value != null) record.json = json.value;
|
|
45102
|
+
if (html.present && html.value != null) record.html = html.value;
|
|
45103
|
+
return Object.keys(record).length > 0 ? { mappingKeys: record } : {};
|
|
45104
|
+
};
|
|
44209
45105
|
const bareKeyForProperty = (key) => {
|
|
44210
45106
|
if (key.startsWith("@") || key.startsWith("&")) return key.substring(1);
|
|
44211
45107
|
return void 0;
|
|
@@ -44226,22 +45122,20 @@ var ConfigBuilder = class {
|
|
|
44226
45122
|
if (tag.format === TagFormat.plainText) {
|
|
44227
45123
|
format = "string";
|
|
44228
45124
|
} else if (tag.format === TagFormat.boolean) {
|
|
44229
|
-
format = "
|
|
44230
|
-
} else if (tag.format === TagFormat.bitmarkText) {
|
|
44231
|
-
format = "bitmark";
|
|
45125
|
+
format = "boolean";
|
|
44232
45126
|
} else if (tag.format === TagFormat.number) {
|
|
44233
45127
|
format = "number";
|
|
44234
45128
|
} else {
|
|
44235
|
-
format = "bitmark
|
|
45129
|
+
format = "bitmark+";
|
|
44236
45130
|
}
|
|
44237
45131
|
} else if (tagType === BitTagConfigKeyType.property) {
|
|
44238
45132
|
tagName = tag.key;
|
|
44239
45133
|
if (tag.format === TagFormat.plainText) {
|
|
44240
45134
|
format = "string";
|
|
44241
45135
|
} else if (tag.format === TagFormat.boolean) {
|
|
44242
|
-
format = "
|
|
45136
|
+
format = "boolean";
|
|
44243
45137
|
} else if (tag.format === TagFormat.bitmarkText) {
|
|
44244
|
-
format = "bitmark";
|
|
45138
|
+
format = "bitmark+";
|
|
44245
45139
|
} else if (tag.format === TagFormat.number) {
|
|
44246
45140
|
format = "number";
|
|
44247
45141
|
} else if (tag.format === TagFormat.coordinates) {
|
|
@@ -44273,8 +45167,11 @@ var ConfigBuilder = class {
|
|
|
44273
45167
|
tags2.push({
|
|
44274
45168
|
type: "group",
|
|
44275
45169
|
key: ref.key,
|
|
44276
|
-
...
|
|
44277
|
-
|
|
45170
|
+
...mappingKeysField(
|
|
45171
|
+
{ ...ref.extraKeys ?? {}, ...tag.mappingKeys ?? {} },
|
|
45172
|
+
{ value: exportJsonKeyChosen, present: hasExportChosen },
|
|
45173
|
+
{ value: htmlKeyChosen, present: hasHtmlChosen }
|
|
45174
|
+
),
|
|
44278
45175
|
...min != null ? { min } : {},
|
|
44279
45176
|
...max != null ? { max } : {},
|
|
44280
45177
|
...description ? { description } : {}
|
|
@@ -44291,53 +45188,48 @@ var ConfigBuilder = class {
|
|
|
44291
45188
|
chain = chainTags;
|
|
44292
45189
|
}
|
|
44293
45190
|
const hasExport = Object.prototype.hasOwnProperty.call(tag, "exportJsonKey");
|
|
44294
|
-
|
|
44295
|
-
if (hasExport) {
|
|
44296
|
-
exportJsonKeyField = { jsonKey: tag.exportJsonKey };
|
|
44297
|
-
} else if (legacyIsTrivialDefault(tag)) {
|
|
44298
|
-
exportJsonKeyField = {};
|
|
44299
|
-
} else {
|
|
45191
|
+
if (!hasExport && !legacyIsTrivialDefault(tag)) {
|
|
44300
45192
|
const headingPath = [...pathStack, `tags.${tag.key}`].join(" / ");
|
|
44301
45193
|
exportJsonKeyErrors.push(
|
|
44302
45194
|
`Missing exportJsonKey for non-default jsonKey at ${headingPath}` + (tag.jsonKey ? ` (legacy: \`${tag.jsonKey}\`)` : ` (symbol-mapped tag \`${tag.key}\`)`)
|
|
44303
45195
|
);
|
|
44304
|
-
exportJsonKeyField = {};
|
|
44305
45196
|
}
|
|
44306
45197
|
const hasHtml = Object.prototype.hasOwnProperty.call(tag, "htmlKey");
|
|
44307
|
-
const htmlKeyField = hasHtml ? { htmlKey: tag.htmlKey } : {};
|
|
44308
45198
|
const t = {
|
|
44309
45199
|
type: "tag",
|
|
44310
45200
|
key: tagName,
|
|
44311
|
-
...
|
|
44312
|
-
|
|
44313
|
-
|
|
44314
|
-
|
|
45201
|
+
...mappingKeysField(
|
|
45202
|
+
tag.mappingKeys,
|
|
45203
|
+
{ value: tag.exportJsonKey, present: hasExport },
|
|
45204
|
+
{ value: tag.htmlKey, present: hasHtml }
|
|
45205
|
+
),
|
|
45206
|
+
...format && format !== "string" ? { format } : {},
|
|
45207
|
+
...tag.defaultValue != null ? { default: tag.defaultValue } : {},
|
|
44315
45208
|
...tag.nullable ? { nullable: true } : {},
|
|
44316
|
-
|
|
44317
|
-
|
|
45209
|
+
...tag.minCount != null && tag.minCount !== 0 ? { min: tag.minCount } : {},
|
|
45210
|
+
...tag.maxCount != null && tag.maxCount !== 1 ? { max: tag.maxCount } : {},
|
|
44318
45211
|
description: tag.description ?? "",
|
|
44319
45212
|
tags: chain
|
|
44320
45213
|
};
|
|
44321
45214
|
tags2.push(t);
|
|
44322
45215
|
return tags2;
|
|
44323
45216
|
};
|
|
44324
|
-
const
|
|
45217
|
+
const cardMappingKeysField = (container, base, legacyKey, exportKey, htmlExportKey, pathHeading) => {
|
|
44325
45218
|
const c = container;
|
|
44326
45219
|
const hasExport = Object.prototype.hasOwnProperty.call(c, exportKey);
|
|
44327
|
-
if (hasExport
|
|
44328
|
-
|
|
44329
|
-
|
|
44330
|
-
|
|
44331
|
-
`Missing exportJsonKey for non-default jsonKey at ${pathHeading} (legacy: \`${legacy}\`)`
|
|
44332
|
-
);
|
|
44333
|
-
return {};
|
|
44334
|
-
};
|
|
44335
|
-
const cardHtmlKeyField = (container, htmlExportKey) => {
|
|
44336
|
-
const c = container;
|
|
44337
|
-
if (Object.prototype.hasOwnProperty.call(c, htmlExportKey)) {
|
|
44338
|
-
return { htmlKey: c[htmlExportKey] };
|
|
45220
|
+
if (!hasExport && c[legacyKey] != null) {
|
|
45221
|
+
exportJsonKeyErrors.push(
|
|
45222
|
+
`Missing exportJsonKey for non-default jsonKey at ${pathHeading} (legacy: \`${c[legacyKey]}\`)`
|
|
45223
|
+
);
|
|
44339
45224
|
}
|
|
44340
|
-
return
|
|
45225
|
+
return mappingKeysField(
|
|
45226
|
+
base,
|
|
45227
|
+
{ value: c[exportKey], present: hasExport },
|
|
45228
|
+
{
|
|
45229
|
+
value: c[htmlExportKey],
|
|
45230
|
+
present: Object.prototype.hasOwnProperty.call(c, htmlExportKey)
|
|
45231
|
+
}
|
|
45232
|
+
);
|
|
44341
45233
|
};
|
|
44342
45234
|
const serializeCardSet = (cardSetKey) => {
|
|
44343
45235
|
const variantBodyFormat = (variant) => variant.format ?? TextFormat.bitmarkText;
|
|
@@ -44368,11 +45260,17 @@ var ConfigBuilder = class {
|
|
|
44368
45260
|
variantTags.push(...processTagEntries(variantTag, [variantPath]));
|
|
44369
45261
|
}
|
|
44370
45262
|
return {
|
|
44371
|
-
...
|
|
44372
|
-
|
|
44373
|
-
|
|
45263
|
+
...cardMappingKeysField(
|
|
45264
|
+
variant,
|
|
45265
|
+
void 0,
|
|
45266
|
+
"jsonKey",
|
|
45267
|
+
"exportJsonKey",
|
|
45268
|
+
"htmlKey",
|
|
45269
|
+
variantPath
|
|
45270
|
+
),
|
|
45271
|
+
bodyFormat: variantBodyFormat(variant),
|
|
44374
45272
|
tags: variantTags,
|
|
44375
|
-
repeatCount: variant.repeatCount
|
|
45273
|
+
...variant.repeatCount != null && variant.repeatCount !== 1 ? { repeatCount: variant.repeatCount } : {},
|
|
44376
45274
|
...variant.bodyRequired ? { bodyRequired: true } : {},
|
|
44377
45275
|
...variant.bodyAllowed === false ? { bodyForbidden: true } : {}
|
|
44378
45276
|
};
|
|
@@ -44380,8 +45278,14 @@ var ConfigBuilder = class {
|
|
|
44380
45278
|
return {
|
|
44381
45279
|
name: side.name,
|
|
44382
45280
|
...side.repeat ? { repeat: side.repeat } : {},
|
|
44383
|
-
...
|
|
44384
|
-
|
|
45281
|
+
...cardMappingKeysField(
|
|
45282
|
+
side,
|
|
45283
|
+
side.mappingKeys,
|
|
45284
|
+
"jsonKey",
|
|
45285
|
+
"exportJsonKey",
|
|
45286
|
+
"htmlKey",
|
|
45287
|
+
sidePath
|
|
45288
|
+
),
|
|
44385
45289
|
variants
|
|
44386
45290
|
};
|
|
44387
45291
|
});
|
|
@@ -44392,20 +45296,40 @@ var ConfigBuilder = class {
|
|
|
44392
45296
|
const hasSideHtml = Object.prototype.hasOwnProperty.call(section, "sideHtmlKey");
|
|
44393
45297
|
let cardSides = sides;
|
|
44394
45298
|
if (hasSideExport || section.sideJsonKey != null || hasSideHtml) {
|
|
44395
|
-
|
|
44396
|
-
|
|
44397
|
-
|
|
44398
|
-
|
|
44399
|
-
|
|
44400
|
-
)
|
|
44401
|
-
|
|
44402
|
-
|
|
45299
|
+
if (!hasSideExport && section.sideJsonKey != null) {
|
|
45300
|
+
exportJsonKeyErrors.push(
|
|
45301
|
+
`Missing exportJsonKey for non-default jsonKey at ${sectionPath} / sides.* (legacy: \`${section.sideJsonKey}\`)`
|
|
45302
|
+
);
|
|
45303
|
+
}
|
|
45304
|
+
cardSides = sides.map((s) => {
|
|
45305
|
+
const record = { ...s.mappingKeys ?? {} };
|
|
45306
|
+
if (hasSideExport) {
|
|
45307
|
+
if (section.sideExportJsonKey != null) record.json = section.sideExportJsonKey;
|
|
45308
|
+
else delete record.json;
|
|
45309
|
+
}
|
|
45310
|
+
if (hasSideHtml) {
|
|
45311
|
+
if (section.sideHtmlKey != null) record.html = section.sideHtmlKey;
|
|
45312
|
+
else delete record.html;
|
|
45313
|
+
}
|
|
45314
|
+
return {
|
|
45315
|
+
name: s.name,
|
|
45316
|
+
...s.repeat ? { repeat: s.repeat } : {},
|
|
45317
|
+
...Object.keys(record).length > 0 ? { mappingKeys: record } : {},
|
|
45318
|
+
variants: s.variants
|
|
45319
|
+
};
|
|
45320
|
+
});
|
|
44403
45321
|
}
|
|
44404
45322
|
return {
|
|
44405
45323
|
name: sectionName,
|
|
44406
45324
|
...section.isDefault ? { isDefault: true } : {},
|
|
44407
|
-
...
|
|
44408
|
-
|
|
45325
|
+
...cardMappingKeysField(
|
|
45326
|
+
section,
|
|
45327
|
+
section.mappingKeys,
|
|
45328
|
+
"jsonKey",
|
|
45329
|
+
"exportJsonKey",
|
|
45330
|
+
"htmlKey",
|
|
45331
|
+
sectionPath
|
|
45332
|
+
),
|
|
44409
45333
|
// PLAN-085: per-section cardinality. Emit only when non-default
|
|
44410
45334
|
// (treat `0` / undefined as "unbounded — omit").
|
|
44411
45335
|
...section.minCount != null && section.minCount !== 0 ? { min: section.minCount } : {},
|
|
@@ -44413,7 +45337,18 @@ var ConfigBuilder = class {
|
|
|
44413
45337
|
sides: cardSides
|
|
44414
45338
|
};
|
|
44415
45339
|
});
|
|
44416
|
-
return {
|
|
45340
|
+
return {
|
|
45341
|
+
name: normalizedKey,
|
|
45342
|
+
...mappingKeysField(
|
|
45343
|
+
void 0,
|
|
45344
|
+
{ present: false },
|
|
45345
|
+
{
|
|
45346
|
+
value: cardSetConfig.htmlKey,
|
|
45347
|
+
present: Object.prototype.hasOwnProperty.call(cardSetConfig, "htmlKey")
|
|
45348
|
+
}
|
|
45349
|
+
),
|
|
45350
|
+
cards
|
|
45351
|
+
};
|
|
44417
45352
|
}
|
|
44418
45353
|
const cardSetPath = `cardSets.${normalizedKey} / cards.default`;
|
|
44419
45354
|
return {
|
|
@@ -44422,8 +45357,14 @@ var ConfigBuilder = class {
|
|
|
44422
45357
|
{
|
|
44423
45358
|
name: "default",
|
|
44424
45359
|
isDefault: true,
|
|
44425
|
-
...
|
|
44426
|
-
|
|
45360
|
+
...cardMappingKeysField(
|
|
45361
|
+
cardSetConfig,
|
|
45362
|
+
cardSetConfig.mappingKeys,
|
|
45363
|
+
"jsonKey",
|
|
45364
|
+
"exportJsonKey",
|
|
45365
|
+
"htmlKey",
|
|
45366
|
+
cardSetPath
|
|
45367
|
+
),
|
|
44427
45368
|
sides
|
|
44428
45369
|
}
|
|
44429
45370
|
]
|
|
@@ -44459,14 +45400,19 @@ var ConfigBuilder = class {
|
|
|
44459
45400
|
...t.max != null ? { max: t.max } : {},
|
|
44460
45401
|
...t.description ? { description: t.description } : {}
|
|
44461
45402
|
};
|
|
44462
|
-
|
|
44463
|
-
|
|
45403
|
+
const record = t.mappingKeys ?? {};
|
|
45404
|
+
if (Object.prototype.hasOwnProperty.call(record, "json")) {
|
|
45405
|
+
ref.exportJsonKey = record.json;
|
|
44464
45406
|
ref.hasExportJsonKey = true;
|
|
44465
45407
|
}
|
|
44466
|
-
if (Object.prototype.hasOwnProperty.call(
|
|
44467
|
-
ref.htmlKey =
|
|
45408
|
+
if (Object.prototype.hasOwnProperty.call(record, "html")) {
|
|
45409
|
+
ref.htmlKey = record.html;
|
|
44468
45410
|
ref.hasHtmlKey = true;
|
|
44469
45411
|
}
|
|
45412
|
+
const extras = Object.fromEntries(
|
|
45413
|
+
Object.entries(record).filter(([id]) => id !== "json" && id !== "html")
|
|
45414
|
+
);
|
|
45415
|
+
if (Object.keys(extras).length > 0) ref.extraKeys = extras;
|
|
44470
45416
|
replacements.push(ref);
|
|
44471
45417
|
}
|
|
44472
45418
|
squashedGroups.set(groupKey, replacements);
|
|
@@ -44500,8 +45446,11 @@ var ConfigBuilder = class {
|
|
|
44500
45446
|
pushOrReplace({
|
|
44501
45447
|
type: "group",
|
|
44502
45448
|
key: ref.key,
|
|
44503
|
-
...
|
|
44504
|
-
|
|
45449
|
+
...mappingKeysField(
|
|
45450
|
+
ref.extraKeys,
|
|
45451
|
+
{ value: ref.exportJsonKey, present: !!ref.hasExportJsonKey },
|
|
45452
|
+
{ value: ref.htmlKey, present: !!ref.hasHtmlKey }
|
|
45453
|
+
),
|
|
44505
45454
|
...ref.min != null ? { min: ref.min } : {},
|
|
44506
45455
|
...ref.max != null ? { max: ref.max } : {},
|
|
44507
45456
|
...ref.description ? { description: ref.description } : {}
|
|
@@ -44514,8 +45463,11 @@ var ConfigBuilder = class {
|
|
|
44514
45463
|
pushOrReplace({
|
|
44515
45464
|
type: "group",
|
|
44516
45465
|
key: ref.key,
|
|
44517
|
-
...
|
|
44518
|
-
|
|
45466
|
+
...mappingKeysField(
|
|
45467
|
+
ref.extraKeys,
|
|
45468
|
+
{ value: ref.exportJsonKey, present: !!ref.hasExportJsonKey },
|
|
45469
|
+
{ value: ref.htmlKey, present: !!ref.hasHtmlKey }
|
|
45470
|
+
),
|
|
44519
45471
|
...ref.min != null ? { min: ref.min } : {},
|
|
44520
45472
|
...ref.max != null ? { max: ref.max } : {},
|
|
44521
45473
|
...ref.description ? { description: ref.description } : {}
|
|
@@ -44542,20 +45494,17 @@ var ConfigBuilder = class {
|
|
|
44542
45494
|
description: b.description ?? "",
|
|
44543
45495
|
since: resolvedBitConfig.since,
|
|
44544
45496
|
deprecated: resolvedBitConfig.deprecated,
|
|
44545
|
-
|
|
44546
|
-
|
|
44547
|
-
|
|
44548
|
-
|
|
44549
|
-
|
|
44550
|
-
|
|
44551
|
-
|
|
44552
|
-
|
|
44553
|
-
|
|
44554
|
-
footerRequired: resolvedBitConfig.footerRequired ?? false,
|
|
44555
|
-
footerForbidden: !(resolvedBitConfig.footerAllowed ?? true),
|
|
44556
|
-
resourceAttachmentAllowed: resolvedBitConfig.resourceAttachmentAllowed ?? true,
|
|
45497
|
+
bodyFormat: resolvedBitConfig.textFormatDefault ?? "bitmark--",
|
|
45498
|
+
...resolvedBitConfig.bodyRequired ? { bodyRequired: true } : {},
|
|
45499
|
+
...resolvedBitConfig.bodyAllowed === false ? { bodyForbidden: true } : {},
|
|
45500
|
+
...resolvedBitConfig.footerRequired ? { footerRequired: true } : {},
|
|
45501
|
+
...resolvedBitConfig.footerAllowed === false ? { footerForbidden: true } : {},
|
|
45502
|
+
...resolvedBitConfig.resourceAttachmentAllowed === false ? { resourceAttachmentAllowed: false } : {},
|
|
45503
|
+
// Bit-level named key mappings (element keys for markup import),
|
|
45504
|
+
// carried verbatim from the raw config.
|
|
45505
|
+
...mappingKeysField(b.mappingKeys, { present: false }, { present: false }),
|
|
44557
45506
|
tags: tags2,
|
|
44558
|
-
...cardRef ? {
|
|
45507
|
+
...cardRef ? { cardSet: cardRef } : {}
|
|
44559
45508
|
};
|
|
44560
45509
|
const output = path3.join(outputFolderBits, `${b.bitType}.jsonc`);
|
|
44561
45510
|
const str = JSON.stringify(bitJson, null, 2);
|
|
@@ -44583,14 +45532,7 @@ var ConfigBuilder = class {
|
|
|
44583
45532
|
const bitJson = {
|
|
44584
45533
|
name: groupKey,
|
|
44585
45534
|
description: g.description ?? "",
|
|
44586
|
-
since: "UNKNOWN",
|
|
44587
45535
|
deprecated: g.deprecated,
|
|
44588
|
-
history: [
|
|
44589
|
-
{
|
|
44590
|
-
version: "UNKNOWN",
|
|
44591
|
-
changes: ["Initial version"]
|
|
44592
|
-
}
|
|
44593
|
-
],
|
|
44594
45536
|
tags: tags2
|
|
44595
45537
|
// cards: [
|
|
44596
45538
|
// {
|
|
@@ -44644,8 +45586,11 @@ var ConfigBuilder = class {
|
|
|
44644
45586
|
tags2.push({
|
|
44645
45587
|
type: "group",
|
|
44646
45588
|
key: ref.key,
|
|
44647
|
-
...
|
|
44648
|
-
|
|
45589
|
+
...mappingKeysField(
|
|
45590
|
+
ref.extraKeys,
|
|
45591
|
+
{ value: ref.exportJsonKey, present: !!ref.hasExportJsonKey },
|
|
45592
|
+
{ value: ref.htmlKey, present: !!ref.hasHtmlKey }
|
|
45593
|
+
),
|
|
44649
45594
|
...ref.min != null ? { min: ref.min } : {},
|
|
44650
45595
|
...ref.max != null ? { max: ref.max } : {},
|
|
44651
45596
|
...ref.description ? { description: ref.description } : {}
|
|
@@ -44666,14 +45611,7 @@ var ConfigBuilder = class {
|
|
|
44666
45611
|
const bitJson = {
|
|
44667
45612
|
name: groupKey,
|
|
44668
45613
|
description: b.description ?? "",
|
|
44669
|
-
since: "UNKNOWN",
|
|
44670
45614
|
deprecated: b.deprecated,
|
|
44671
|
-
history: [
|
|
44672
|
-
{
|
|
44673
|
-
version: "UNKNOWN",
|
|
44674
|
-
changes: ["Initial version"]
|
|
44675
|
-
}
|
|
44676
|
-
],
|
|
44677
45615
|
tags: tags2
|
|
44678
45616
|
};
|
|
44679
45617
|
const output = path3.join(outputFolderGroups, `${groupKey}.jsonc`);
|
|
@@ -44714,7 +45652,7 @@ var ConfigBuilder = class {
|
|
|
44714
45652
|
validateConfigTree(outputFolder) {
|
|
44715
45653
|
const errors = [];
|
|
44716
45654
|
const outputFolderBits = path3.join(outputFolder, "bits");
|
|
44717
|
-
const outputFolderGroups = path3.join(outputFolder, "
|
|
45655
|
+
const outputFolderGroups = path3.join(outputFolder, "groups");
|
|
44718
45656
|
const outputFolderCards = path3.join(outputFolder, "cards");
|
|
44719
45657
|
const availableGroups = /* @__PURE__ */ new Set();
|
|
44720
45658
|
if (fs4.existsSync(outputFolderGroups)) {
|
|
@@ -44788,7 +45726,7 @@ var ConfigBuilder = class {
|
|
|
44788
45726
|
const content = fs4.readFileSync(filePath, "utf-8");
|
|
44789
45727
|
const config = JSON.parse(content);
|
|
44790
45728
|
if (config.tags && Array.isArray(config.tags)) {
|
|
44791
|
-
checkTags(config.tags, `
|
|
45729
|
+
checkTags(config.tags, `groups/${file}`, 15);
|
|
44792
45730
|
}
|
|
44793
45731
|
} catch (err) {
|
|
44794
45732
|
errors.push(`Failed to parse ${file}: ${err}`);
|