@tonguetoquill/collection 0.2.13 → 0.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonguetoquill/collection",
3
- "version": "0.2.13",
3
+ "version": "0.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nibsbin/tonguetoquill-collection.git"
@@ -24,21 +24,26 @@
24
24
  #if "commanders_auth" in data { vals.insert("commonforms_text_p1_116", data.commanders_auth) }
25
25
 
26
26
  // --- Experience table rows from cards ---
27
+ // The form supports 16 rows on page 1 and 21 rows on page 2 (37 total).
28
+ // Overflow rows are silently ignored.
29
+ #let max-rows = 37
27
30
  #{
28
31
  let row = 0
29
32
  for card in data.CARDS {
30
33
  if card.CARD == "experience" {
31
- for (col, key) in col-keys.enumerate() {
32
- let value = card.at(key, default: "")
33
- if value != "" {
34
- let field-name = if row < 16 {
35
- // Page 1: fields start at index 4, stride 7
36
- "commonforms_text_p1_" + str(4 + row * 7 + col)
37
- } else {
38
- // Page 2: fields start at index 1, stride 7
39
- "commonforms_text_p2_" + str(1 + (row - 16) * 7 + col)
34
+ if row < max-rows {
35
+ for (col, key) in col-keys.enumerate() {
36
+ let value = card.at(key, default: "")
37
+ if value != "" {
38
+ let field-name = if row < 16 {
39
+ // Page 1: fields start at index 4, stride 7
40
+ "commonforms_text_p1_" + str(4 + row * 7 + col)
41
+ } else {
42
+ // Page 2: fields start at index 1, stride 7
43
+ "commonforms_text_p2_" + str(1 + (row - 16) * 7 + col)
44
+ }
45
+ vals.insert(field-name, value)
40
46
  }
41
- vals.insert(field-name, value)
42
47
  }
43
48
  }
44
49
  row = row + 1
@@ -1,53 +1,62 @@
1
1
  [
2
2
  {
3
+ "id": "usaf-memo",
3
4
  "name": "USAF Memo",
4
5
  "description": "Official U.S. Air Force memorandum template",
5
6
  "file": "usaf_template.md",
6
7
  "production": true
7
8
  },
8
9
  {
10
+ "id": "ussf-memo",
9
11
  "name": "USSF Memo",
10
12
  "description": "Official U.S. Space Force memorandum template",
11
13
  "file": "ussf_template.md",
12
14
  "production": true
13
15
  },
14
16
  {
17
+ "id": "letter-of-counseling",
15
18
  "name": "Letter of Counseling",
16
19
  "description": "Letter of Counseling template",
17
20
  "file": "loc.md",
18
21
  "production": false
19
22
  },
20
23
  {
24
+ "id": "rebuttal",
21
25
  "name": "Rebuttal",
22
26
  "description": "Rebuttal template for LOC",
23
27
  "file": "rebuttal.md",
24
28
  "production": true
25
29
  },
26
30
  {
31
+ "id": "taro-template",
27
32
  "name": "Taro Template",
28
33
  "description": "Official Taro ice cream template",
29
34
  "file": "taro.md",
30
35
  "production": false
31
36
  },
32
37
  {
38
+ "id": "cmu-letter",
33
39
  "name": "CMU Letter",
34
40
  "description": "Carnegie Mellon University academic letter template",
35
41
  "file": "cmu_letter_template.md",
36
42
  "production": true
37
43
  },
38
44
  {
45
+ "id": "pass-request",
39
46
  "name": "Pass Request",
40
47
  "description": "USAF special pass request memorandum template",
41
48
  "file": "pass_request.md",
42
49
  "production": true
43
50
  },
44
51
  {
52
+ "id": "af-form-4141",
45
53
  "name": "AF Form 4141",
46
54
  "description": "Individual's Record of Duties and Experience, Ground Environment Personnel",
47
55
  "file": "af4141.md",
48
56
  "production": true
49
57
  },
50
58
  {
59
+ "id": "daf-form-4392",
51
60
  "name": "DAF Form 4392",
52
61
  "description": "Pre-Departure Safety Briefing (Page 2)",
53
62
  "file": "daf4392.md",