@lblod/ember-rdfa-editor-lblod-plugins 0.3.0 → 0.4.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.
Files changed (270) hide show
  1. package/.release-it.json +14 -0
  2. package/.woodpecker/.release.yml +15 -0
  3. package/.woodpecker/.test.yml +23 -0
  4. package/CHANGELOG.md +84 -0
  5. package/README.md +311 -14
  6. package/RELEASE.md +60 -0
  7. package/addon/commands/generate-template-command.js +35 -0
  8. package/addon/commands/insert-and-collapse.js +32 -0
  9. package/addon/commands/modify-date-command.js +42 -0
  10. package/addon/components/besluit-type-plugin/besluit-type-select.hbs +28 -0
  11. package/addon/components/besluit-type-plugin/besluit-type-select.js +21 -0
  12. package/addon/components/besluit-type-plugin/toolbar-dropdown.hbs +83 -0
  13. package/addon/components/besluit-type-plugin/toolbar-dropdown.js +188 -0
  14. package/addon/components/citaten-plugin/citaat-card.hbs +76 -0
  15. package/addon/components/citaten-plugin/citaat-card.js +286 -0
  16. package/addon/components/citaten-plugin/citaat-insert.hbs +20 -0
  17. package/addon/components/citaten-plugin/citaat-insert.js +68 -0
  18. package/addon/components/citaten-plugin/citations/article-list.hbs +13 -0
  19. package/addon/components/citaten-plugin/citations/article-preview.hbs +16 -0
  20. package/addon/components/citaten-plugin/citations/decision-detail.hbs +110 -0
  21. package/addon/components/citaten-plugin/citations/decision-detail.js +94 -0
  22. package/addon/components/citaten-plugin/citations/decision-list.hbs +15 -0
  23. package/addon/components/citaten-plugin/citations/decision-preview.hbs +53 -0
  24. package/addon/components/citaten-plugin/citations/search-modal.hbs +175 -0
  25. package/addon/components/citaten-plugin/citations/search-modal.js +244 -0
  26. package/addon/components/citaten-plugin/helpers/alert-load-error.hbs +21 -0
  27. package/addon/components/citaten-plugin/helpers/alert-no-items.hbs +10 -0
  28. package/addon/components/import-snippet-plugin/card.hbs +17 -0
  29. package/addon/components/import-snippet-plugin/card.js +95 -0
  30. package/addon/components/insert-variable-plugin/insert-variable-card.hbs +33 -0
  31. package/addon/components/insert-variable-plugin/insert-variable-card.js +125 -0
  32. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-card.hbs +22 -0
  33. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-card.js +64 -0
  34. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-insert.hbs +18 -0
  35. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +24 -0
  36. package/addon/components/rdfa-date-plugin/rdfa-date-time-picker.hbs +21 -0
  37. package/addon/components/rdfa-date-plugin/rdfa-date-time-picker.js +73 -0
  38. package/addon/components/roadsign-regulation-plugin/expanded-measure.hbs +44 -0
  39. package/addon/components/roadsign-regulation-plugin/expanded-measure.js +38 -0
  40. package/addon/components/roadsign-regulation-plugin/measure-template.hbs +5 -0
  41. package/addon/components/roadsign-regulation-plugin/measure-template.js +30 -0
  42. package/addon/components/roadsign-regulation-plugin/roadsign-regulation-card.hbs +12 -0
  43. package/addon/components/roadsign-regulation-plugin/roadsign-regulation-card.js +101 -0
  44. package/addon/components/roadsign-regulation-plugin/roadsigns-modal.hbs +92 -0
  45. package/addon/components/roadsign-regulation-plugin/roadsigns-modal.js +268 -0
  46. package/addon/components/roadsign-regulation-plugin/roadsigns-pagination.hbs +25 -0
  47. package/addon/components/roadsign-regulation-plugin/roadsigns-pagination.js +55 -0
  48. package/addon/components/roadsign-regulation-plugin/roadsigns-table.hbs +73 -0
  49. package/addon/components/roadsign-regulation-plugin/roadsigns-table.js +24 -0
  50. package/addon/components/standard-template-plugin/template-card.hbs +16 -0
  51. package/addon/components/standard-template-plugin/template-card.js +7 -0
  52. package/addon/components/standard-template-plugin/template-provider.hbs +6 -0
  53. package/addon/components/standard-template-plugin/template-provider.js +75 -0
  54. package/addon/components/table-of-contents-plugin/card.hbs +5 -0
  55. package/addon/components/table-of-contents-plugin/card.js +53 -0
  56. package/addon/components/table-of-contents-plugin/inline-components/outline.hbs +21 -0
  57. package/addon/components/table-of-contents-plugin/inline-components/table-of-contents.hbs +9 -0
  58. package/addon/components/table-of-contents-plugin/inline-components/table-of-contents.js +100 -0
  59. package/addon/components/template-variable-plugin/template-variable-card.hbs +34 -0
  60. package/addon/components/template-variable-plugin/template-variable-card.js +230 -0
  61. package/addon/constants.js +24 -0
  62. package/{dist → addon}/helpers/limit-text.js +1 -4
  63. package/addon/initializers/plugin-initializer.js +75 -0
  64. package/addon/inline-components/table-of-contents.js +43 -0
  65. package/addon/marks/citaten-mark.js +32 -0
  66. package/addon/models/instruction.js +19 -0
  67. package/addon/models/measure.js +46 -0
  68. package/{dist → addon}/models/sign.js +12 -13
  69. package/addon/models/template.js +9 -0
  70. package/addon/plugins/besluit-type-plugin.js +16 -0
  71. package/addon/plugins/citaten-plugin.js +22 -0
  72. package/addon/plugins/generate-template-plugin.js +16 -0
  73. package/addon/plugins/import-snippet-plugin.js +16 -0
  74. package/addon/plugins/insert-variable-plugin.js +19 -0
  75. package/addon/plugins/rdfa-date-plugin.js +26 -0
  76. package/addon/plugins/roadsign-regulation-plugin.js +24 -0
  77. package/addon/plugins/standard-template-plugin.js +33 -0
  78. package/addon/plugins/table-of-contents-plugin.js +27 -0
  79. package/addon/plugins/template-variable-plugin.js +21 -0
  80. package/addon/serializers/application.js +8 -0
  81. package/{dist → addon}/services/import-rdfa-snippet.js +28 -18
  82. package/{dist → addon}/services/roadsign-registry.js +67 -121
  83. package/addon/services/standard-template-plugin.js +45 -0
  84. package/addon/utils/fetchBesluitTypes.js +90 -0
  85. package/addon/utils/generate-template-plugin/default-resources.js +9 -0
  86. package/addon/utils/instantiate-uuids.js +34 -0
  87. package/addon/utils/legislation-types.js +32 -0
  88. package/addon/utils/memoize.js +8 -0
  89. package/addon/utils/processMatch.js +80 -0
  90. package/addon/utils/roadsign-regulation-plugin/fetchData.js +78 -0
  91. package/addon/utils/roadsign-regulation-plugin/includeInstructions.js +10 -0
  92. package/addon/utils/variable-plugins/default-variable-types.js +56 -0
  93. package/{dist/fetch-data-284bf106.js → addon/utils/variable-plugins/fetch-data.js} +36 -18
  94. package/{dist/vlaamse-codex-187fe526.js → addon/utils/vlaamse-codex.js} +159 -63
  95. package/app/components/besluit-type-plugin/besluit-type-select.js +1 -0
  96. package/app/components/besluit-type-plugin/toolbar-dropdown.js +1 -0
  97. package/app/components/citaten-plugin/citaat-card.js +1 -0
  98. package/app/components/citaten-plugin/citaat-insert.js +1 -0
  99. package/app/components/citaten-plugin/citations/article-list.js +1 -0
  100. package/app/components/citaten-plugin/citations/article-preview.js +1 -0
  101. package/app/components/citaten-plugin/citations/decision-detail.js +1 -0
  102. package/app/components/citaten-plugin/citations/decision-list.js +1 -0
  103. package/app/components/citaten-plugin/citations/decision-preview.js +1 -0
  104. package/app/components/citaten-plugin/citations/modal.js +1 -0
  105. package/app/components/citaten-plugin/citations/search-modal.js +1 -0
  106. package/app/components/citaten-plugin/helpers/alert-load-error.js +1 -0
  107. package/app/components/citaten-plugin/helpers/alert-no-items.js +1 -0
  108. package/app/components/import-snippet-plugin/card.js +1 -0
  109. package/app/components/insert-variable-plugin/insert-variable-card.js +1 -0
  110. package/app/components/rdfa-date-plugin/rdfa-date-plugin-card.js +1 -0
  111. package/app/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +1 -0
  112. package/app/components/rdfa-date-plugin/rdfa-date-time-picker.js +1 -0
  113. package/app/components/roadsign-regulation-plugin/expanded-measure.js +1 -0
  114. package/app/components/roadsign-regulation-plugin/measure-template.js +1 -0
  115. package/app/components/roadsign-regulation-plugin/roadsign-regulation-card.js +1 -0
  116. package/app/components/roadsign-regulation-plugin/roadsigns-modal.js +1 -0
  117. package/app/components/roadsign-regulation-plugin/roadsigns-pagination.js +1 -0
  118. package/app/components/roadsign-regulation-plugin/roadsigns-table.js +1 -0
  119. package/app/components/standard-template-plugin/template-card.js +1 -0
  120. package/app/components/standard-template-plugin/template-provider.js +1 -0
  121. package/app/components/table-of-contents-plugin/card.js +1 -0
  122. package/app/components/table-of-contents-plugin/inline-components/outline.js +1 -0
  123. package/app/components/table-of-contents-plugin/inline-components/table-of-contents.js +1 -0
  124. package/app/components/template-variable-plugin/template-variable-card.js +1 -0
  125. package/app/helpers/limit-text.js +4 -0
  126. package/app/initializers/plugin-initializer.js +4 -0
  127. package/app/models/instruction.js +1 -0
  128. package/app/models/measure.js +1 -0
  129. package/app/models/sign.js +1 -0
  130. package/app/models/template.js +1 -0
  131. package/app/serializers/application.js +1 -0
  132. package/app/services/import-rdfa-snippet.js +1 -0
  133. package/app/services/rdfa-editor-roadsign-regulation-plugin.js +1 -0
  134. package/app/services/roadsign-registry.js +1 -0
  135. package/app/services/standard-template-plugin.js +1 -0
  136. package/{dist → app}/styles/citaten-plugin.scss +0 -0
  137. package/config/environment.js +0 -1
  138. package/index.js +8 -0
  139. package/package.json +112 -107
  140. package/tsconfig.json +42 -0
  141. package/types/dummy/index.d.ts +1 -0
  142. package/types/ember-data/types/registries/model.d.ts +6 -0
  143. package/types/global.d.ts +7 -0
  144. package/addon-main.js +0 -4
  145. package/dist/_app_/components/besluit-type-plugin/besluit-type-select.js +0 -1
  146. package/dist/_app_/components/besluit-type-plugin/toolbar-dropdown.js +0 -1
  147. package/dist/_app_/components/citaten-plugin/citaat-card.js +0 -1
  148. package/dist/_app_/components/citaten-plugin/citaat-insert.js +0 -1
  149. package/dist/_app_/components/citaten-plugin/citations/article-list.js +0 -1
  150. package/dist/_app_/components/citaten-plugin/citations/article-preview.js +0 -1
  151. package/dist/_app_/components/citaten-plugin/citations/decision-detail.js +0 -1
  152. package/dist/_app_/components/citaten-plugin/citations/decision-list.js +0 -1
  153. package/dist/_app_/components/citaten-plugin/citations/decision-preview.js +0 -1
  154. package/dist/_app_/components/citaten-plugin/citations/search-modal.js +0 -1
  155. package/dist/_app_/components/citaten-plugin/helpers/alert-load-error.js +0 -1
  156. package/dist/_app_/components/citaten-plugin/helpers/alert-no-items.js +0 -1
  157. package/dist/_app_/components/import-snippet-plugin/card.js +0 -1
  158. package/dist/_app_/components/insert-variable-plugin/insert-variable-card.js +0 -1
  159. package/dist/_app_/components/rdfa-date-plugin/rdfa-date-plugin-card.js +0 -1
  160. package/dist/_app_/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +0 -1
  161. package/dist/_app_/components/rdfa-date-plugin/rdfa-date-time-picker.js +0 -1
  162. package/dist/_app_/components/roadsign-regulation-plugin/expanded-measure.js +0 -1
  163. package/dist/_app_/components/roadsign-regulation-plugin/measure-template.js +0 -1
  164. package/dist/_app_/components/roadsign-regulation-plugin/roadsign-regulation-card.js +0 -1
  165. package/dist/_app_/components/roadsign-regulation-plugin/roadsigns-modal.js +0 -1
  166. package/dist/_app_/components/roadsign-regulation-plugin/roadsigns-pagination.js +0 -1
  167. package/dist/_app_/components/roadsign-regulation-plugin/roadsigns-table.js +0 -1
  168. package/dist/_app_/components/standard-template-plugin/template-card.js +0 -1
  169. package/dist/_app_/components/standard-template-plugin/template-provider.js +0 -1
  170. package/dist/_app_/components/table-of-contents-plugin/card.js +0 -1
  171. package/dist/_app_/components/table-of-contents-plugin/inline-components/outline.js +0 -1
  172. package/dist/_app_/components/table-of-contents-plugin/inline-components/table-of-contents.js +0 -1
  173. package/dist/_app_/components/template-variable-plugin/template-variable-card.js +0 -1
  174. package/dist/_app_/helpers/limit-text.js +0 -1
  175. package/dist/_app_/initializers/plugin-initializer.js +0 -1
  176. package/dist/_app_/models/instruction.js +0 -1
  177. package/dist/_app_/models/measure.js +0 -1
  178. package/dist/_app_/models/sign.js +0 -1
  179. package/dist/_app_/models/template.js +0 -1
  180. package/dist/_app_/serializers/application.js +0 -1
  181. package/dist/_app_/services/import-rdfa-snippet.js +0 -1
  182. package/dist/_app_/services/roadsign-registry.js +0 -1
  183. package/dist/_app_/services/standard-template-plugin.js +0 -1
  184. package/dist/_rollupPluginBabelHelpers-537ad14b.js +0 -48
  185. package/dist/_rollupPluginBabelHelpers-537ad14b.js.map +0 -1
  186. package/dist/components/besluit-type-plugin/besluit-type-select.js +0 -30
  187. package/dist/components/besluit-type-plugin/besluit-type-select.js.map +0 -1
  188. package/dist/components/besluit-type-plugin/toolbar-dropdown.js +0 -292
  189. package/dist/components/besluit-type-plugin/toolbar-dropdown.js.map +0 -1
  190. package/dist/components/citaten-plugin/citaat-card.js +0 -367
  191. package/dist/components/citaten-plugin/citaat-card.js.map +0 -1
  192. package/dist/components/citaten-plugin/citaat-insert.js +0 -84
  193. package/dist/components/citaten-plugin/citaat-insert.js.map +0 -1
  194. package/dist/components/citaten-plugin/citations/article-list.js +0 -10
  195. package/dist/components/citaten-plugin/citations/article-list.js.map +0 -1
  196. package/dist/components/citaten-plugin/citations/article-preview.js +0 -10
  197. package/dist/components/citaten-plugin/citations/article-preview.js.map +0 -1
  198. package/dist/components/citaten-plugin/citations/decision-detail.js +0 -123
  199. package/dist/components/citaten-plugin/citations/decision-detail.js.map +0 -1
  200. package/dist/components/citaten-plugin/citations/decision-list.js +0 -10
  201. package/dist/components/citaten-plugin/citations/decision-list.js.map +0 -1
  202. package/dist/components/citaten-plugin/citations/decision-preview.js +0 -10
  203. package/dist/components/citaten-plugin/citations/decision-preview.js.map +0 -1
  204. package/dist/components/citaten-plugin/citations/search-modal.js +0 -282
  205. package/dist/components/citaten-plugin/citations/search-modal.js.map +0 -1
  206. package/dist/components/citaten-plugin/helpers/alert-load-error.js +0 -10
  207. package/dist/components/citaten-plugin/helpers/alert-load-error.js.map +0 -1
  208. package/dist/components/citaten-plugin/helpers/alert-no-items.js +0 -10
  209. package/dist/components/citaten-plugin/helpers/alert-no-items.js.map +0 -1
  210. package/dist/components/import-snippet-plugin/card.js +0 -99
  211. package/dist/components/import-snippet-plugin/card.js.map +0 -1
  212. package/dist/components/insert-variable-plugin/insert-variable-card.js +0 -190
  213. package/dist/components/insert-variable-plugin/insert-variable-card.js.map +0 -1
  214. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-card.js +0 -85
  215. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-card.js.map +0 -1
  216. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +0 -23
  217. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-insert.js.map +0 -1
  218. package/dist/components/rdfa-date-plugin/rdfa-date-time-picker.js +0 -91
  219. package/dist/components/rdfa-date-plugin/rdfa-date-time-picker.js.map +0 -1
  220. package/dist/components/roadsign-regulation-plugin/expanded-measure.js +0 -52
  221. package/dist/components/roadsign-regulation-plugin/expanded-measure.js.map +0 -1
  222. package/dist/components/roadsign-regulation-plugin/measure-template.js +0 -42
  223. package/dist/components/roadsign-regulation-plugin/measure-template.js.map +0 -1
  224. package/dist/components/roadsign-regulation-plugin/roadsign-regulation-card.js +0 -82
  225. package/dist/components/roadsign-regulation-plugin/roadsign-regulation-card.js.map +0 -1
  226. package/dist/components/roadsign-regulation-plugin/roadsigns-modal.js +0 -251
  227. package/dist/components/roadsign-regulation-plugin/roadsigns-modal.js.map +0 -1
  228. package/dist/components/roadsign-regulation-plugin/roadsigns-pagination.js +0 -71
  229. package/dist/components/roadsign-regulation-plugin/roadsigns-pagination.js.map +0 -1
  230. package/dist/components/roadsign-regulation-plugin/roadsigns-table.js +0 -36
  231. package/dist/components/roadsign-regulation-plugin/roadsigns-table.js.map +0 -1
  232. package/dist/components/standard-template-plugin/template-card.js +0 -15
  233. package/dist/components/standard-template-plugin/template-card.js.map +0 -1
  234. package/dist/components/standard-template-plugin/template-provider.js +0 -109
  235. package/dist/components/standard-template-plugin/template-provider.js.map +0 -1
  236. package/dist/components/table-of-contents-plugin/card.js +0 -52
  237. package/dist/components/table-of-contents-plugin/card.js.map +0 -1
  238. package/dist/components/table-of-contents-plugin/inline-components/outline.js +0 -10
  239. package/dist/components/table-of-contents-plugin/inline-components/outline.js.map +0 -1
  240. package/dist/components/table-of-contents-plugin/inline-components/table-of-contents.js +0 -92
  241. package/dist/components/table-of-contents-plugin/inline-components/table-of-contents.js.map +0 -1
  242. package/dist/components/template-variable-plugin/template-variable-card.js +0 -178
  243. package/dist/components/template-variable-plugin/template-variable-card.js.map +0 -1
  244. package/dist/constants-c77fd478.js +0 -16
  245. package/dist/constants-c77fd478.js.map +0 -1
  246. package/dist/fetch-data-284bf106.js.map +0 -1
  247. package/dist/helpers/limit-text.js.map +0 -1
  248. package/dist/includeInstructions-a32c24e6.js +0 -10
  249. package/dist/includeInstructions-a32c24e6.js.map +0 -1
  250. package/dist/index.js +0 -2
  251. package/dist/index.js.map +0 -1
  252. package/dist/initializers/plugin-initializer.js +0 -401
  253. package/dist/initializers/plugin-initializer.js.map +0 -1
  254. package/dist/legislation-types-4d487cb9.js +0 -26
  255. package/dist/legislation-types-4d487cb9.js.map +0 -1
  256. package/dist/models/instruction.js +0 -18
  257. package/dist/models/instruction.js.map +0 -1
  258. package/dist/models/measure.js +0 -41
  259. package/dist/models/measure.js.map +0 -1
  260. package/dist/models/sign.js.map +0 -1
  261. package/dist/models/template.js +0 -48
  262. package/dist/models/template.js.map +0 -1
  263. package/dist/serializers/application.js +0 -10
  264. package/dist/serializers/application.js.map +0 -1
  265. package/dist/services/import-rdfa-snippet.js.map +0 -1
  266. package/dist/services/roadsign-registry.js.map +0 -1
  267. package/dist/services/standard-template-plugin.js +0 -53
  268. package/dist/services/standard-template-plugin.js.map +0 -1
  269. package/dist/styles/test.css +0 -0
  270. package/dist/vlaamse-codex-187fe526.js.map +0 -1
@@ -0,0 +1,230 @@
1
+ import Component from '@glimmer/component';
2
+ import { tracked } from '@glimmer/tracking';
3
+ import { action } from '@ember/object';
4
+ import { getOwner } from '@ember/application';
5
+ import { task } from 'ember-concurrency';
6
+
7
+ import { fetchCodeListOptions } from '../../utils/variable-plugins/fetch-data';
8
+ import { MULTI_SELECT_CODELIST_TYPE, ZONAL_URI } from '../../constants';
9
+
10
+ export default class EditorPluginsTemplateVariableCardComponent extends Component {
11
+ @tracked variableOptions = [];
12
+ @tracked selectedVariable;
13
+ @tracked showCard = false;
14
+ @tracked multiSelect = false;
15
+ mappingUri;
16
+
17
+ constructor() {
18
+ super(...arguments);
19
+ const config = getOwner(this).resolveRegistration('config:environment');
20
+ this.zonalLocationCodelistUri =
21
+ config.templateVariablePlugin.zonalLocationCodelistUri;
22
+ this.endpoint = config.templateVariablePlugin.endpoint;
23
+ this.nonZonalLocationCodelistUri =
24
+ config.templateVariablePlugin.nonZonalLocationCodelistUri;
25
+ this.args.controller.onEvent('selectionChanged', this.selectionChanged);
26
+ this.liveHighlights = this.args.controller.createLiveMarkSet({
27
+ datastoreQuery: (datastore) => {
28
+ const limitedDataset = datastore.transformDataset(
29
+ (dataset, termconverter) => {
30
+ const mappings = dataset.match(
31
+ null,
32
+ termconverter('a'),
33
+ termconverter('ext:Mapping')
34
+ );
35
+ const locations = dataset.match(
36
+ null,
37
+ termconverter('>http://purl.org/dc/terms/type'),
38
+ termconverter('@en-US"location')
39
+ );
40
+ const codelists = dataset.match(
41
+ null,
42
+ termconverter('>http://purl.org/dc/terms/type'),
43
+ termconverter('@en-US"codelist')
44
+ );
45
+ const supportedMappings = locations.union(codelists);
46
+ return mappings.filter(
47
+ (quad) => supportedMappings.match(quad.subject).size !== 0
48
+ );
49
+ }
50
+ );
51
+ const matches = limitedDataset.searchTextIn(
52
+ 'subject',
53
+ new RegExp('.*')
54
+ );
55
+ return matches;
56
+ },
57
+
58
+ liveMarkSpecs: ['highlighted'],
59
+ });
60
+ }
61
+
62
+ @action
63
+ insert() {
64
+ const selectedRange = this.args.controller.selection.lastRange;
65
+ if (!selectedRange) {
66
+ return;
67
+ }
68
+ const limitedDatastore = this.args.controller.datastore.limitToRange(
69
+ selectedRange,
70
+ 'rangeIsInside'
71
+ );
72
+ const mapping = limitedDatastore
73
+ .match(`>${this.mappingUri}`, 'ext:content', null)
74
+ .asSubjectNodes()
75
+ .next().value;
76
+ const mappingNode = [...mapping.nodes][0];
77
+ let mappingContentNode;
78
+ for (let child of mappingNode.children) {
79
+ if (child.attributeMap.get('property') === 'ext:content') {
80
+ mappingContentNode = child;
81
+ break;
82
+ }
83
+ }
84
+ let textToInsert = '';
85
+ if (this.selectedVariable.length) {
86
+ textToInsert = this.selectedVariable
87
+ .map((variable) => variable.value)
88
+ .join(', ');
89
+ } else {
90
+ textToInsert = this.selectedVariable.value;
91
+ }
92
+ textToInsert = this.wrapVariableInHighlight(textToInsert);
93
+ this.args.controller.executeCommand(
94
+ 'insert-and-collapse',
95
+ this.args.controller,
96
+ textToInsert,
97
+ mappingContentNode
98
+ );
99
+ }
100
+
101
+ wrapVariableInHighlight(text) {
102
+ return text.replace(
103
+ /\$\{(.+?)\}/g,
104
+ '<span class="mark-highlight-manual">${$1}</span>'
105
+ );
106
+ }
107
+
108
+ @action
109
+ selectionChanged() {
110
+ this.showCard = false;
111
+ this.selectedVariable = undefined;
112
+ const selectedRange = this.args.controller.selection.lastRange;
113
+ if (!selectedRange) {
114
+ return;
115
+ }
116
+ const fullDatastore = this.args.controller.datastore;
117
+ const limitedDatastore = this.args.controller.datastore.limitToRange(
118
+ selectedRange,
119
+ 'rangeIsInside'
120
+ );
121
+ const mapping = limitedDatastore
122
+ .match(null, 'a', 'ext:Mapping')
123
+ .asQuads()
124
+ .next().value;
125
+ console.log('MAPPING: ', mapping);
126
+ if (mapping) {
127
+ const mappingUri = mapping.subject.value;
128
+ this.mappingUri = mappingUri;
129
+ const mappingTypeTriple = fullDatastore
130
+ .match(`>${mappingUri}`, 'dct:type', null)
131
+ .asQuads()
132
+ .next().value;
133
+ console.log('TRIPLE: ', mappingTypeTriple);
134
+ if (mappingTypeTriple) {
135
+ const mappingType = mappingTypeTriple.object.value;
136
+ if (mappingType === 'codelist') {
137
+ const codelistTriple = fullDatastore
138
+ .match(`>${mappingUri}`, 'ext:codelist', null)
139
+ .asQuads()
140
+ .next().value;
141
+ const codelistSource = this.getCodelistSource(
142
+ fullDatastore,
143
+ mappingUri
144
+ );
145
+ this.showCard = true;
146
+ const codelistUri = codelistTriple.object.value;
147
+ this.fetchCodeListOptions.perform(codelistSource, codelistUri);
148
+ } else if (mappingType === 'location') {
149
+ const codelistSource = this.getCodelistSource(
150
+ fullDatastore,
151
+ mappingUri
152
+ );
153
+ const measureTriple = limitedDatastore
154
+ .match(
155
+ null,
156
+ 'a',
157
+ '>https://data.vlaanderen.be/ns/mobiliteit#Mobiliteitsmaatregel'
158
+ )
159
+ .asQuads()
160
+ .next().value;
161
+ const measureUri = measureTriple.subject.value;
162
+ const zonalityTriple = fullDatastore
163
+ .match(`>${measureUri}`, 'ext:zonality', null)
164
+ .asQuads()
165
+ .next().value;
166
+ const zonalityUri = zonalityTriple.object.value;
167
+ if (zonalityUri === ZONAL_URI) {
168
+ this.fetchCodeListOptions.perform(
169
+ codelistSource,
170
+ this.zonalLocationCodelistUri,
171
+ true
172
+ );
173
+ } else {
174
+ this.fetchCodeListOptions.perform(
175
+ codelistSource,
176
+ this.nonZonalLocationCodelistUri,
177
+ true
178
+ );
179
+ }
180
+ this.showCard = true;
181
+ }
182
+ }
183
+ }
184
+ }
185
+
186
+ getCodelistSource(fullDatastore, mappingUri) {
187
+ const codelistSourceTriple = fullDatastore
188
+ .match(`>${mappingUri}`, 'dct:source', null)
189
+ .asQuads()
190
+ .next();
191
+
192
+ if (codelistSourceTriple && codelistSourceTriple.value) {
193
+ const codelistSourceTripleValue = codelistSourceTriple.value;
194
+ return codelistSourceTripleValue.object.value;
195
+ } else {
196
+ return this.endpoint;
197
+ }
198
+ }
199
+
200
+ @action
201
+ updateVariable(variable) {
202
+ this.selectedVariable = variable;
203
+ }
204
+
205
+ @task
206
+ *fetchCodeListOptions(endpoint, codelistUri, isLocation) {
207
+ const { type, options } = yield fetchCodeListOptions(endpoint, codelistUri);
208
+ if (isLocation) {
209
+ this.variableOptions = options.map((option) => ({
210
+ label: option.label,
211
+ value: this.wrapInLocation(option.value),
212
+ }));
213
+ } else {
214
+ this.variableOptions = options;
215
+ }
216
+ if (type === MULTI_SELECT_CODELIST_TYPE) {
217
+ this.multiSelect = true;
218
+ } else {
219
+ this.multiSelect = false;
220
+ }
221
+ }
222
+
223
+ wrapInLocation(value) {
224
+ return `
225
+ <span property="https://data.vlaanderen.be/ns/mobiliteit#plaatsbepaling">
226
+ ${value}
227
+ </span>
228
+ `;
229
+ }
230
+ }
@@ -0,0 +1,24 @@
1
+ export const TABLE_OF_CONTENTS_DEFAULT_CONFIG = [
2
+ {
3
+ sectionPredicate: 'https://say.data.gift/ns/hasPart',
4
+ value: {
5
+ predicate: 'https://say.data.gift/ns/heading',
6
+ },
7
+ },
8
+ {
9
+ sectionPredicate: 'https://say.data.gift/ns/hasParagraph',
10
+ value: '§',
11
+ },
12
+ ];
13
+
14
+ export const ZONAL_URI =
15
+ 'http://lblod.data.gift/concepts/c81c6b96-736a-48cf-b003-6f5cc3dbc55d';
16
+
17
+ export const POTENTIALLY_ZONAL_URI =
18
+ 'http://lblod.data.gift/concepts/8f9367b2-c717-4be7-8833-4c75bbb4ae1f';
19
+
20
+ export const NON_ZONAL_URI =
21
+ 'http://lblod.data.gift/concepts/b651931b-923c-477c-8da9-fc7dd841fdcc';
22
+
23
+ export const MULTI_SELECT_CODELIST_TYPE =
24
+ 'http://lblod.data.gift/concepts/57C93E12-A02C-4D4B-8B95-666B6701286C';
@@ -1,12 +1,9 @@
1
1
  import { helper } from '@ember/component/helper';
2
2
 
3
- var limitText = helper(function limitText([string]) {
3
+ export default helper(function limitText([string]) {
4
4
  if (string.length > 140) {
5
5
  return string.slice(0, 140) + '...';
6
6
  } else {
7
7
  return string;
8
8
  }
9
9
  });
10
-
11
- export { limitText as default };
12
- //# sourceMappingURL=limit-text.js.map
@@ -0,0 +1,75 @@
1
+ import BesluitTypePlugin from '../plugins/besluit-type-plugin';
2
+ import CitatenPlugin from '../plugins/citaten-plugin';
3
+ import StandardTemplatePlugin from '../plugins/standard-template-plugin';
4
+ import GenerateTemplatePlugin from '../plugins/generate-template-plugin';
5
+ import RoadSignRegulationPlugin from '../plugins/roadsign-regulation-plugin';
6
+ import TableOfContentsPlugin from '../plugins/table-of-contents-plugin';
7
+ import RdfaDatePlugin from '../plugins/rdfa-date-plugin';
8
+ import ImportSnippetPlugin from '../plugins/import-snippet-plugin';
9
+ import TemplateVariablePlugin from '../plugins/template-variable-plugin';
10
+ import InsertVariablePlugin from '../plugins/insert-variable-plugin';
11
+
12
+ function pluginFactory(plugin) {
13
+ return {
14
+ create: (initializers) => {
15
+ const pluginInstance = new plugin();
16
+ Object.assign(pluginInstance, initializers);
17
+ return pluginInstance;
18
+ },
19
+ };
20
+ }
21
+
22
+ export function initialize(application) {
23
+ application.register('plugin:citaten', pluginFactory(CitatenPlugin), {
24
+ singleton: false,
25
+ });
26
+ application.register(
27
+ 'plugin:standard-template',
28
+ pluginFactory(StandardTemplatePlugin),
29
+ { singleton: false }
30
+ );
31
+ application.register(
32
+ 'plugin:besluit-type',
33
+ pluginFactory(BesluitTypePlugin),
34
+ { singleton: false }
35
+ );
36
+ application.register(
37
+ 'plugin:table-of-contents',
38
+ pluginFactory(TableOfContentsPlugin),
39
+ { singleton: false }
40
+ );
41
+ application.register(
42
+ 'plugin:generate-template',
43
+ pluginFactory(GenerateTemplatePlugin),
44
+ { singleton: false }
45
+ );
46
+ application.register(
47
+ 'plugin:roadsign-regulation',
48
+ pluginFactory(RoadSignRegulationPlugin),
49
+ { singleton: false }
50
+ );
51
+ application.register('plugin:rdfa-date', pluginFactory(RdfaDatePlugin), {
52
+ singleton: false,
53
+ });
54
+ application.register(
55
+ 'plugin:import-snippet',
56
+ pluginFactory(ImportSnippetPlugin),
57
+ {
58
+ singleton: false,
59
+ }
60
+ );
61
+ application.register(
62
+ 'plugin:template-variable',
63
+ pluginFactory(TemplateVariablePlugin),
64
+ { singleton: false }
65
+ );
66
+ application.register(
67
+ 'plugin:insert-variable',
68
+ pluginFactory(InsertVariablePlugin),
69
+ { singleton: false }
70
+ );
71
+ }
72
+
73
+ export default {
74
+ initialize,
75
+ };
@@ -0,0 +1,43 @@
1
+ import { InlineComponentSpec } from '@lblod/ember-rdfa-editor/model/inline-components/model-inline-component';
2
+ import { isElement } from '@lblod/ember-rdfa-editor/utils/dom-helpers';
3
+ import { TABLE_OF_CONTENTS_DEFAULT_CONFIG } from '../constants';
4
+ export default class TableOfContentsSpec extends InlineComponentSpec {
5
+ matcher = {
6
+ tag: this.tag,
7
+ attributeBuilder: (node) => {
8
+ if (isElement(node)) {
9
+ if (
10
+ (node.classList.contains('inline-component') &&
11
+ (node.classList.contains(this.name) ||
12
+ node.classList.contains(
13
+ 'inline-components/table-of-contents'
14
+ ))) ||
15
+ node.dataset.inlineComponent === this.name ||
16
+ node.dataset.inlineComponent === 'inline-components/table-of-contents'
17
+ ) {
18
+ return {};
19
+ }
20
+ }
21
+ return null;
22
+ },
23
+ };
24
+
25
+ properties = {
26
+ config: {
27
+ serializable: true,
28
+ defaultValue: TABLE_OF_CONTENTS_DEFAULT_CONFIG,
29
+ },
30
+ };
31
+
32
+ _renderStatic() {
33
+ // TODO: should be implemented when static version of inline components work correctly
34
+ return '';
35
+ }
36
+ constructor(controller) {
37
+ super(
38
+ 'table-of-contents-plugin/inline-components/table-of-contents',
39
+ 'div',
40
+ controller
41
+ );
42
+ }
43
+ }
@@ -0,0 +1,32 @@
1
+ const citatenMarkSpec = {
2
+ matchers: [
3
+ {
4
+ tag: 'span',
5
+ attributeBuilder: (node) => {
6
+ if (
7
+ node.dataset &&
8
+ Object.prototype.hasOwnProperty.call(node.dataset, 'citatenText')
9
+ ) {
10
+ return {
11
+ text: node.dataset.citatenText,
12
+ legislationTypeUri: node.dataset.legislationTypeUri,
13
+ };
14
+ }
15
+ },
16
+ },
17
+ ],
18
+ name: 'citaten',
19
+ priority: 100,
20
+ renderSpec(mark) {
21
+ return {
22
+ tag: 'span',
23
+ attributes: {
24
+ 'data-citaten-text': mark.attributes.text,
25
+ 'data-legislation-type-uri': mark.attributes.legislationTypeUri,
26
+ },
27
+ children: [0],
28
+ };
29
+ },
30
+ };
31
+
32
+ export default citatenMarkSpec;
@@ -0,0 +1,19 @@
1
+ export default class Instruction {
2
+ name;
3
+ template;
4
+ annotatedTemplate;
5
+
6
+ static fromBinding(binding) {
7
+ return new Instruction(
8
+ binding.name.value,
9
+ binding.template.value,
10
+ binding.annotatedTemplate.value
11
+ );
12
+ }
13
+
14
+ constructor(name, template, annotatedTemplate) {
15
+ this.name = name;
16
+ this.template = template;
17
+ this.annotatedTemplate = annotatedTemplate;
18
+ }
19
+ }
@@ -0,0 +1,46 @@
1
+ import { tracked } from '@glimmer/tracking';
2
+
3
+ export default class Measure {
4
+ label;
5
+ @tracked signs = [];
6
+ template;
7
+ classifications = new Set();
8
+ annotatedTemplate;
9
+ zonality;
10
+ temporal;
11
+
12
+ static fromBinding(binding) {
13
+ const uri = binding.uri.value;
14
+ const label = binding.label.value;
15
+ const template = binding.basicTemplate.value;
16
+ const temporal = binding.temporal ? binding.temporal.value : false;
17
+ const annotatedTemplate = binding.annotatedTemplate.value;
18
+ const zonality = binding.zonality.value;
19
+ return new Measure(
20
+ uri,
21
+ label,
22
+ template,
23
+ annotatedTemplate,
24
+ zonality,
25
+ temporal
26
+ );
27
+ }
28
+
29
+ constructor(
30
+ uri,
31
+ label,
32
+ template,
33
+ annotatedTemplate,
34
+ zonality,
35
+ temporal,
36
+ signs = null
37
+ ) {
38
+ this.label = label;
39
+ this.uri = uri;
40
+ this.template = template;
41
+ this.zonality = zonality;
42
+ this.annotatedTemplate = annotatedTemplate;
43
+ this.signs = signs;
44
+ this.temporal = temporal;
45
+ }
46
+ }
@@ -1,22 +1,24 @@
1
- import { b as _defineProperty } from '../_rollupPluginBabelHelpers-537ad14b.js';
2
-
3
- class Sign {
1
+ export default class Sign {
2
+ code;
3
+ image;
4
+ classifications = [];
5
+ uri;
6
+ order;
7
+ zonality;
4
8
  static fromBinding(binding) {
5
9
  const code = binding.code.value;
6
10
  const image = Sign.processImage(binding.image.value, binding.imageBaseUrl);
11
+
7
12
  const uri = binding.uri.value;
8
13
  const order = binding.order.value;
9
- const classifications = binding.classifications ? binding.classifications.value.split('|') : [];
14
+ const classifications = binding.classifications
15
+ ? binding.classifications.value.split('|')
16
+ : [];
10
17
  const zonality = binding.zonality.value;
11
18
  return new Sign(code, image, classifications, uri, order, zonality);
12
19
  }
20
+
13
21
  constructor(code, image, classifications, uri, order, zonality) {
14
- _defineProperty(this, "code", void 0);
15
- _defineProperty(this, "image", void 0);
16
- _defineProperty(this, "classifications", []);
17
- _defineProperty(this, "uri", void 0);
18
- _defineProperty(this, "order", void 0);
19
- _defineProperty(this, "zonality", void 0);
20
22
  this.code = code;
21
23
  this.image = image;
22
24
  this.classifications = classifications;
@@ -33,6 +35,3 @@ class Sign {
33
35
  }
34
36
  }
35
37
  }
36
-
37
- export { Sign as default };
38
- //# sourceMappingURL=sign.js.map
@@ -0,0 +1,9 @@
1
+ import Model, { attr } from '@ember-data/model';
2
+
3
+ export default class TemplateModel extends Model {
4
+ @attr title;
5
+ @attr('string-set', { defaultValue: () => [] }) matches;
6
+ @attr body;
7
+ @attr('string-set', { defaultValue: () => [] }) contexts;
8
+ @attr('string-set', { defaultValue: () => [] }) disabledInContexts;
9
+ }
@@ -0,0 +1,16 @@
1
+ export default class BesluitTypePlugin {
2
+ controller;
3
+
4
+ get name() {
5
+ return 'besluit-type-plugin';
6
+ }
7
+
8
+ initialize(controller) {
9
+ this.controller = controller;
10
+ controller.registerWidget({
11
+ componentName: 'besluit-type-plugin/toolbar-dropdown',
12
+ identifier: 'besluit-type-plugin/dropdown',
13
+ desiredLocation: 'toolbar',
14
+ });
15
+ }
16
+ }
@@ -0,0 +1,22 @@
1
+ import CitatenMark from '../marks/citaten-mark';
2
+ export default class CitatenPlugin {
3
+ controller;
4
+
5
+ get name() {
6
+ return 'citaten-plugin';
7
+ }
8
+ async initialize(controller) {
9
+ this.controller = controller;
10
+ controller.registerWidget({
11
+ desiredLocation: 'sidebar',
12
+ componentName: 'citaten-plugin/citaat-card',
13
+ identifier: 'citaten-plugin/citaat-card',
14
+ });
15
+ controller.registerWidget({
16
+ desiredLocation: 'insertSidebar',
17
+ componentName: 'citaten-plugin/citaat-insert',
18
+ identifier: 'citaten-plugin/citaat-insert',
19
+ });
20
+ controller.registerMark(CitatenMark);
21
+ }
22
+ }
@@ -0,0 +1,16 @@
1
+ import GenerateTemplateCommand from '../commands/generate-template-command';
2
+
3
+ export default class GenerateTemplatePlugin {
4
+ controller;
5
+
6
+ get name() {
7
+ return 'generate-template-plugin';
8
+ }
9
+
10
+ initialize(controller) {
11
+ this.controller = controller;
12
+ controller.registerCommand(
13
+ new GenerateTemplateCommand(controller._rawEditor._model)
14
+ );
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ export default class ImportSnippetPlugin {
2
+ controller;
3
+
4
+ get name() {
5
+ return 'import-snippet-plugin';
6
+ }
7
+
8
+ initialize(controller) {
9
+ this.controller = controller;
10
+ controller.registerWidget({
11
+ componentName: 'import-snippet-plugin/card',
12
+ identifier: 'import-snippet-plugin/card',
13
+ desiredLocation: 'sidebar',
14
+ });
15
+ }
16
+ }
@@ -0,0 +1,19 @@
1
+ export default class InsertVariablePlugin {
2
+ controller;
3
+
4
+ get name() {
5
+ return 'insert-variable-plugin';
6
+ }
7
+
8
+ initialize(controller, options) {
9
+ this.controller = controller;
10
+ controller.registerWidget({
11
+ componentName: 'insert-variable-plugin/insert-variable-card',
12
+ identifier: 'insert-variable-plugin/card',
13
+ desiredLocation: 'sidebar',
14
+ widgetArgs: {
15
+ options: options,
16
+ },
17
+ });
18
+ }
19
+ }
@@ -0,0 +1,26 @@
1
+ import ModifyDateCommand from '../commands/modify-date-command';
2
+
3
+ export default class RdfaDatePlugin {
4
+ controller;
5
+
6
+ get name() {
7
+ return 'rdfa-date-plugin';
8
+ }
9
+
10
+ initialize(controller) {
11
+ this.controller = controller;
12
+ controller.registerWidget({
13
+ componentName: 'rdfa-date-plugin/rdfa-date-plugin-card',
14
+ identifier: 'rdfa-date-plugin/card',
15
+ desiredLocation: 'sidebar',
16
+ });
17
+ controller.registerWidget({
18
+ componentName: 'rdfa-date-plugin/rdfa-date-plugin-insert',
19
+ identifier: 'rdfa-date-plugin/insert',
20
+ desiredLocation: 'insertSidebar',
21
+ });
22
+ controller.registerCommand(
23
+ new ModifyDateCommand(controller._rawEditor._model)
24
+ );
25
+ }
26
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Entrypoint for the roadsign regulation plugin.
3
+ */
4
+ export default class RoadSignRegulationPlugin {
5
+ controller;
6
+
7
+ get name() {
8
+ return 'roadsign-regulation-plugin';
9
+ }
10
+
11
+ /**
12
+ * Gets called when the editor loads.
13
+ * Can optionally be async if needed.
14
+ * @param controller
15
+ */
16
+ initialize(controller) {
17
+ this.controller = controller;
18
+ controller.registerWidget({
19
+ componentName: 'roadsign-regulation-plugin/roadsign-regulation-card',
20
+ identifier: 'roadsign-regulation-plugin/roadsign-regulation-card',
21
+ desiredLocation: 'insertSidebar',
22
+ });
23
+ }
24
+ }