@abi-software/map-side-bar 2.14.1-acupoint.0 → 2.14.1-beta.1

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": "@abi-software/map-side-bar",
3
- "version": "2.14.1-acupoint.0",
3
+ "version": "2.14.1-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,15 +26,18 @@
26
26
  </div>
27
27
  </template>
28
28
  <template v-for="field in displayFields" :key="field['name']">
29
- <div class="details" >
29
+ <div class="details">
30
30
  <strong>{{ field['name'] }}: </strong>
31
- <template v-if="field['name'] === 'Link'">
32
- <a :href="entry['Link']" target="_blank">
31
+ <template v-if="field['name'] === 'Acupoint Curie'">
32
+ <a :href="entry['Acupoint IRI']" target="_blank">
33
33
  <span>
34
- Click here for more information
34
+ {{ entry['Acupoint Curie'] }}
35
35
  </span>
36
36
  </a>
37
37
  </template>
38
+ <template v-else-if="field['name'] === 'Reference'">
39
+ <div v-html="formatReference(entry[field['name']])"></div>
40
+ </template>
38
41
  <template v-else>
39
42
  <span
40
43
  v-if="!field['isEditing']"
@@ -81,16 +84,24 @@ export default {
81
84
  expanded: [],
82
85
  tags: [],
83
86
  displayFields: [
87
+ {name: "Acupoint Curie", isEditing: false},
88
+ {name: "Acupoint", isEditing: false},
89
+ {name: "Acupoint Category", isEditing: false},
84
90
  {name: "Synonym", isEditing: false},
91
+ {name: "Pinyin Name", isEditing: false},
85
92
  {name: "Chinese Name", isEditing: false},
86
- {name: "English Name", isEditing: false},
87
93
  {name: "Meridian", isEditing: false},
88
- {name: "Reference", isEditing: false},
89
- {name: "Indications", isEditing: false},
94
+ {name: "Special Point Role", isEditing: false},
95
+ {name: "Location", isEditing: false},
96
+ {name: "Location Anatomy", isEditing: false},
90
97
  {name: "Acupuncture Method", isEditing: false},
91
- {name: "Vasculature", isEditing: false},
98
+ {name: "Indications", isEditing: false},
92
99
  {name: "Innervation", isEditing: false},
93
- {name: "Link", isEditing: false},
100
+ {name: "Nearby Nerve", isEditing: false},
101
+ {name: "Vasculature", isEditing: false},
102
+ {name: "Nearby Artery", isEditing: false},
103
+ {name: "Nearby Vein", isEditing: false},
104
+ {name: "Reference", isEditing: false},
94
105
  //{name: "Notes", isEditing: false},
95
106
  ]
96
107
  }
@@ -139,6 +150,25 @@ export default {
139
150
  inputMounted: function(event) {
140
151
  event.el?.querySelector('textarea')?.focus();
141
152
  },
153
+ formatReference: function(text) {
154
+ if (!text) {
155
+ return 'Not Available';
156
+ }
157
+ // Escape HTML first so only the markup added below is rendered
158
+ const escaped = String(text)
159
+ .replace(/&/g, '&amp;')
160
+ .replace(/</g, '&lt;')
161
+ .replace(/>/g, '&gt;')
162
+ .replace(/"/g, '&quot;')
163
+ .replace(/'/g, '&#39;');
164
+ return escaped
165
+ // Bold and italicise square-bracketed labels, e.g. [Acupoint Location, Pinyin Label]
166
+ .replace(/\[([^\]\n]+)\]/g, '<strong><em>[$1]</em></strong>')
167
+ // Turn http(s) URLs into links, leaving trailing punctuation outside
168
+ .replace(/https?:\/\/[^\s<]+?(?=[.,;:!?)]*(?:\s|<|$))/g,
169
+ (url) => `<a href="${url}" target="_blank" rel="noopener noreferrer">${url}</a>`)
170
+ .replace(/\n/g, '<br>');
171
+ },
142
172
  setFieldToEditing: function(field) {
143
173
  if (this.allowEditing) {
144
174
  field['isEditing'] = true;