@lblod/ember-rdfa-editor-lblod-plugins 16.3.0 → 17.0.0-dev.f473cdfb5868261b49cdae52ea2558970c082d01

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 (418) hide show
  1. package/.changeset/afraid-tips-visit.md +5 -0
  2. package/.changeset/chilly-ravens-think.md +6 -0
  3. package/.changeset/hot-owls-laugh.md +5 -0
  4. package/.changeset/olive-pets-cheer.md +5 -0
  5. package/.changeset/smooth-fireants-doubt.md +5 -0
  6. package/.changeset/tall-carrots-ring.md +5 -0
  7. package/.changeset/wet-baboons-serve.md +5 -0
  8. package/.changeset/witty-suns-speak.md +5 -0
  9. package/.woodpecker/.release-commit.yml +18 -0
  10. package/.woodpecker/.release.yml +21 -0
  11. package/.woodpecker/.verify-pr.yml +30 -0
  12. package/CHANGELOG.md +20 -0
  13. package/Dockerfile +6 -4
  14. package/addon/commands/index.ts +1 -0
  15. package/addon/commands/replace-selection-and-select-node.ts +24 -0
  16. package/addon/components/article-structure-plugin/article-structure-card.hbs +2 -1
  17. package/addon/components/article-structure-plugin/article-structure-card.ts +2 -0
  18. package/addon/components/article-structure-plugin/structure-card.hbs +7 -6
  19. package/addon/components/article-structure-plugin/structure-card.ts +49 -35
  20. package/addon/components/au-native-input.hbs +1 -0
  21. package/addon/components/au-native-input.ts +2 -1
  22. package/addon/components/besluit-type-plugin/besluit-type-select.hbs +3 -2
  23. package/addon/components/besluit-type-plugin/besluit-type-select.ts +4 -0
  24. package/addon/components/besluit-type-plugin/toolbar-dropdown.hbs +5 -4
  25. package/addon/components/besluit-type-plugin/toolbar-dropdown.ts +48 -20
  26. package/addon/components/citation-plugin/citation-card.hbs +4 -3
  27. package/addon/components/citation-plugin/citation-card.ts +9 -2
  28. package/addon/components/citation-plugin/citation-insert.hbs +2 -1
  29. package/addon/components/citation-plugin/citation-insert.ts +3 -0
  30. package/addon/components/citation-plugin/citations/article-list.hbs +2 -2
  31. package/addon/components/citation-plugin/citations/article-preview.hbs +3 -2
  32. package/addon/components/citation-plugin/citations/article-preview.ts +2 -0
  33. package/addon/components/citation-plugin/citations/legal-document-detail.hbs +19 -11
  34. package/addon/components/citation-plugin/citations/legal-document-detail.ts +18 -1
  35. package/addon/components/citation-plugin/citations/legal-document-list.hbs +2 -2
  36. package/addon/components/citation-plugin/citations/legal-document-preview.hbs +10 -9
  37. package/addon/components/citation-plugin/citations/legal-document-preview.ts +9 -0
  38. package/addon/components/citation-plugin/citations/search-modal.hbs +7 -8
  39. package/addon/components/citation-plugin/citations/search-modal.ts +3 -0
  40. package/addon/components/common/search/alert-load-error.gts +34 -0
  41. package/addon/components/common/search/alert-no-items.gts +18 -0
  42. package/addon/components/common/search/loading.hbs +4 -0
  43. package/addon/components/confidentiality-plugin/redact.gts +13 -0
  44. package/addon/components/decision-plugin/decision-plugin-card.hbs +4 -3
  45. package/addon/components/decision-plugin/decision-plugin-card.ts +3 -0
  46. package/addon/components/document-title-plugin/insert-title-card.hbs +8 -1
  47. package/addon/components/document-title-plugin/insert-title-card.ts +3 -0
  48. package/addon/components/generic-rdfa-variable/insert-menu.hbs +2 -1
  49. package/addon/components/generic-rdfa-variable/insert-menu.ts +3 -1
  50. package/addon/components/hover-tooltip.hbs +1 -0
  51. package/addon/components/import-snippet-plugin/card.hbs +1 -0
  52. package/addon/components/import-snippet-plugin/card.ts +7 -2
  53. package/addon/components/loading-alert.hbs +2 -1
  54. package/addon/components/loading-alert.ts +5 -2
  55. package/addon/components/pagination/pagination-view.gts +55 -0
  56. package/addon/components/roadsign-regulation-plugin/expanded-measure.hbs +28 -37
  57. package/addon/components/roadsign-regulation-plugin/expanded-measure.ts +4 -13
  58. package/addon/components/roadsign-regulation-plugin/measure-template.hbs +1 -0
  59. package/addon/components/roadsign-regulation-plugin/roadsign-regulation-card.hbs +2 -1
  60. package/addon/components/roadsign-regulation-plugin/roadsign-regulation-card.ts +3 -0
  61. package/addon/components/roadsign-regulation-plugin/roadsigns-modal.hbs +1 -0
  62. package/addon/components/roadsign-regulation-plugin/roadsigns-pagination.hbs +9 -4
  63. package/addon/components/roadsign-regulation-plugin/roadsigns-pagination.ts +5 -0
  64. package/addon/components/roadsign-regulation-plugin/roadsigns-table.hbs +7 -6
  65. package/addon/components/roadsign-regulation-plugin/roadsigns-table.ts +5 -0
  66. package/addon/components/snippet-plugin/search-modal.hbs +5 -6
  67. package/addon/components/snippet-plugin/snippet-insert-rdfa.hbs +7 -0
  68. package/addon/components/snippet-plugin/snippet-insert-rdfa.ts +78 -0
  69. package/addon/components/snippet-plugin/snippet-insert.hbs +3 -1
  70. package/addon/components/snippet-plugin/snippet-insert.ts +25 -4
  71. package/addon/components/snippet-plugin/snippet-list/snippet-list-modal.hbs +4 -6
  72. package/addon/components/snippet-plugin/snippet-list/snippet-list-modal.ts +3 -3
  73. package/addon/components/snippet-plugin/snippet-list/snippet-list-view.hbs +3 -2
  74. package/addon/components/snippet-plugin/snippet-list-select-rdfa.hbs +8 -0
  75. package/addon/components/snippet-plugin/snippet-list-select-rdfa.ts +69 -0
  76. package/addon/components/snippet-plugin/snippet-list-select.hbs +2 -1
  77. package/addon/components/snippet-plugin/snippet-list-select.ts +2 -1
  78. package/addon/components/snippet-plugin/snippets/snippet-preview.hbs +1 -0
  79. package/addon/components/standard-template-plugin/card.hbs +2 -1
  80. package/addon/components/standard-template-plugin/card.ts +2 -0
  81. package/addon/components/standard-template-plugin/template-provider.hbs +1 -0
  82. package/addon/components/standard-template-plugin/template-provider.ts +10 -4
  83. package/addon/components/table-of-contents-plugin/ember-nodes/table-of-contents.hbs +1 -0
  84. package/addon/components/table-of-contents-plugin/toolbar-button.hbs +1 -0
  85. package/addon/components/template-comments-plugin/edit-card.hbs +4 -3
  86. package/addon/components/template-comments-plugin/edit-card.ts +7 -0
  87. package/addon/components/template-comments-plugin/insert.hbs +2 -1
  88. package/addon/components/template-comments-plugin/insert.ts +3 -0
  89. package/addon/components/template-comments-plugin/template-comment.hbs +2 -1
  90. package/addon/components/template-comments-plugin/template-comment.ts +3 -0
  91. package/addon/components/validation-plugin/validation-card.hbs +1 -0
  92. package/addon/components/validation-plugin/validation-item.hbs +1 -0
  93. package/addon/components/validation-plugin/validation-item.ts +7 -4
  94. package/addon/components/variable-plugin/address/edit.hbs +1 -0
  95. package/addon/components/variable-plugin/address/edit.ts +5 -3
  96. package/addon/components/variable-plugin/address/insert-variable.hbs +1 -0
  97. package/addon/components/variable-plugin/address/insert.hbs +3 -2
  98. package/addon/components/variable-plugin/address/insert.ts +3 -0
  99. package/addon/components/variable-plugin/address/nodeview.hbs +4 -3
  100. package/addon/components/variable-plugin/address/nodeview.ts +9 -0
  101. package/addon/components/variable-plugin/address/utils.ts +28 -3
  102. package/addon/components/variable-plugin/codelist/edit.hbs +1 -0
  103. package/addon/components/variable-plugin/codelist/edit.ts +24 -7
  104. package/addon/components/variable-plugin/codelist/insert.hbs +1 -0
  105. package/addon/components/variable-plugin/codelist/insert.ts +52 -17
  106. package/addon/components/variable-plugin/date/date-time-picker.hbs +1 -0
  107. package/addon/components/variable-plugin/date/edit.hbs +27 -31
  108. package/addon/components/variable-plugin/date/edit.ts +47 -8
  109. package/addon/components/variable-plugin/date/help-modal.hbs +1 -0
  110. package/addon/components/variable-plugin/date/insert-variable.hbs +1 -0
  111. package/addon/components/variable-plugin/date/insert-variable.ts +36 -10
  112. package/addon/components/variable-plugin/date/insert.hbs +2 -1
  113. package/addon/components/variable-plugin/date/insert.ts +38 -10
  114. package/addon/components/variable-plugin/date/nodeview.hbs +4 -3
  115. package/addon/components/variable-plugin/date/nodeview.ts +11 -1
  116. package/addon/components/variable-plugin/insert-variable-card.hbs +1 -0
  117. package/addon/components/variable-plugin/insert-variable-card.ts +9 -1
  118. package/addon/components/variable-plugin/location/edit.hbs +1 -0
  119. package/addon/components/variable-plugin/location/edit.ts +1 -9
  120. package/addon/components/variable-plugin/location/insert.hbs +1 -0
  121. package/addon/components/variable-plugin/location/insert.ts +4 -7
  122. package/addon/components/variable-plugin/location/nodeview.hbs +19 -8
  123. package/addon/components/variable-plugin/location/nodeview.ts +37 -9
  124. package/addon/components/variable-plugin/number/insert.hbs +1 -0
  125. package/addon/components/variable-plugin/number/insert.ts +34 -10
  126. package/addon/components/variable-plugin/number/nodeview.hbs +7 -5
  127. package/addon/components/variable-plugin/number/nodeview.ts +32 -5
  128. package/addon/components/variable-plugin/text/insert.hbs +1 -0
  129. package/addon/components/variable-plugin/text/insert.ts +40 -12
  130. package/addon/components/variable-plugin/variable/nodeview.hbs +12 -8
  131. package/addon/components/variable-plugin/variable/nodeview.ts +16 -9
  132. package/addon/components/worship-plugin/administrative-unit-picker.hbs +16 -0
  133. package/addon/components/worship-plugin/administrative-unit-picker.ts +38 -0
  134. package/addon/components/worship-plugin/insert.hbs +18 -0
  135. package/addon/components/worship-plugin/insert.ts +41 -0
  136. package/addon/components/worship-plugin/list.hbs +46 -0
  137. package/addon/components/worship-plugin/search-modal.hbs +79 -0
  138. package/addon/components/worship-plugin/search-modal.ts +131 -0
  139. package/addon/components/worship-plugin/sortable-table-header.hbs +36 -0
  140. package/addon/components/worship-plugin/sortable-table-header.ts +45 -0
  141. package/addon/plugins/article-structure-plugin/commands/insert-structure.ts +82 -15
  142. package/addon/plugins/article-structure-plugin/commands/move-selected-structure.ts +2 -1
  143. package/addon/plugins/article-structure-plugin/commands/recalculate-structure-numbers.ts +70 -2
  144. package/addon/plugins/article-structure-plugin/commands/remove-structure.ts +1 -1
  145. package/addon/plugins/article-structure-plugin/commands/set-structure-start-number.ts +5 -14
  146. package/addon/plugins/article-structure-plugin/commands/unwrap-structure.ts +1 -1
  147. package/addon/plugins/article-structure-plugin/commands/wrap-structure-content.ts +197 -105
  148. package/addon/plugins/article-structure-plugin/index.ts +16 -7
  149. package/addon/plugins/article-structure-plugin/structures/article-paragraph.ts +181 -71
  150. package/addon/plugins/article-structure-plugin/structures/article.ts +91 -98
  151. package/addon/plugins/article-structure-plugin/structures/chapter.ts +89 -39
  152. package/addon/plugins/article-structure-plugin/structures/index.ts +12 -1
  153. package/addon/plugins/article-structure-plugin/structures/section.ts +88 -39
  154. package/addon/plugins/article-structure-plugin/structures/structure-header-number.ts +56 -0
  155. package/addon/plugins/article-structure-plugin/structures/structure-header-title.ts +38 -0
  156. package/addon/plugins/article-structure-plugin/structures/structure-header.ts +87 -73
  157. package/addon/plugins/article-structure-plugin/structures/subsection.ts +81 -39
  158. package/addon/plugins/article-structure-plugin/structures/title.ts +91 -39
  159. package/addon/plugins/article-structure-plugin/utils/structure.ts +223 -127
  160. package/addon/plugins/citation-plugin/utils/cited-text.ts +38 -8
  161. package/addon/plugins/confidentiality-plugin/marks/redacted.ts +1 -1
  162. package/addon/plugins/document-title-plugin/nodes/document-title.ts +4 -3
  163. package/addon/plugins/roadsign-regulation-plugin/nodes.ts +4 -3
  164. package/addon/plugins/snippet-plugin/commands/index.ts +1 -0
  165. package/addon/plugins/snippet-plugin/commands/update-snippet-ids.ts +55 -0
  166. package/addon/plugins/snippet-plugin/index.ts +6 -1
  167. package/addon/plugins/snippet-plugin/utils/fetch-data.ts +1 -3
  168. package/addon/plugins/snippet-plugin/utils/rdfa-predicate.ts +33 -0
  169. package/addon/plugins/standard-template-plugin/utils/nodes.ts +293 -81
  170. package/addon/plugins/table-of-contents-plugin/nodes/table-of-contents.ts +3 -2
  171. package/addon/plugins/variable-plugin/utils/attribute-parsers.ts +19 -1
  172. package/addon/plugins/variable-plugin/utils/dom-constructors.ts +3 -3
  173. package/addon/plugins/variable-plugin/variables/address.ts +93 -26
  174. package/addon/plugins/variable-plugin/variables/codelist.ts +99 -50
  175. package/addon/plugins/variable-plugin/variables/date.ts +143 -53
  176. package/addon/plugins/variable-plugin/variables/location.ts +1 -0
  177. package/addon/plugins/variable-plugin/variables/number.ts +99 -52
  178. package/addon/plugins/variable-plugin/variables/text.ts +80 -28
  179. package/addon/plugins/worship-plugin/index.ts +9 -0
  180. package/addon/plugins/worship-plugin/utils/fetchAdministrativeUnits.ts +52 -0
  181. package/addon/plugins/worship-plugin/utils/fetchWorshipServices.ts +109 -0
  182. package/addon/plugins/worship-plugin/utils/insertWorshipService.ts +16 -0
  183. package/addon/utils/_private/find-insertion-range.ts +18 -5
  184. package/addon/utils/dom-utils.ts +4 -0
  185. package/addon/utils/namespace.ts +63 -13
  186. package/addon/utils/sparql-helpers.ts +8 -0
  187. package/app/components/{citation-plugin/helpers/alert-no-items.js → common/search/alert-load-error.js} +1 -1
  188. package/app/components/{snippet-plugin/helpers → common/search}/alert-no-items.js +1 -1
  189. package/app/components/{snippet-plugin/helpers/alert-load-error.js → common/search/loading.js} +1 -1
  190. package/app/components/{citation-plugin/helpers/alert-load-error.js → snippet-plugin/snippet-list-insert-rdfa.js} +1 -1
  191. package/app/components/snippet-plugin/snippet-list-select-rdfa.js +1 -0
  192. package/app/components/worship-plugin/administrative-unit-picker.js +1 -0
  193. package/app/components/worship-plugin/insert.js +1 -0
  194. package/app/components/worship-plugin/list.js +1 -0
  195. package/app/components/worship-plugin/search-modal.js +1 -0
  196. package/app/components/worship-plugin/sortable-table-header.js +1 -0
  197. package/app/styles/article-structure-plugin.scss +106 -3
  198. package/app/styles/citaten-plugin.scss +1 -1
  199. package/app/styles/snippet-plugin.scss +1 -1
  200. package/app/styles/worship-plugin.scss +19 -0
  201. package/declarations/addon/commands/index.d.ts +1 -0
  202. package/declarations/addon/commands/replace-selection-and-select-node.d.ts +3 -0
  203. package/{components → declarations/addon/components}/article-structure-plugin/article-structure-card.d.ts +1 -0
  204. package/{components → declarations/addon/components}/article-structure-plugin/structure-card.d.ts +5 -2
  205. package/{components → declarations/addon/components}/au-native-input.d.ts +2 -1
  206. package/{components → declarations/addon/components}/besluit-type-plugin/besluit-type-select.d.ts +1 -0
  207. package/{components → declarations/addon/components}/besluit-type-plugin/toolbar-dropdown.d.ts +4 -5
  208. package/{components → declarations/addon/components}/citation-plugin/citation-card.d.ts +3 -2
  209. package/{components → declarations/addon/components}/citation-plugin/citation-insert.d.ts +1 -0
  210. package/declarations/addon/components/citation-plugin/citations/article-list.d.ts +1 -0
  211. package/{components → declarations/addon/components}/citation-plugin/citations/article-preview.d.ts +2 -1
  212. package/{components → declarations/addon/components}/citation-plugin/citations/legal-document-detail.d.ts +8 -1
  213. package/declarations/addon/components/citation-plugin/citations/legal-document-list.d.ts +1 -0
  214. package/declarations/addon/components/citation-plugin/citations/legal-document-preview.d.ts +14 -0
  215. package/{components → declarations/addon/components}/citation-plugin/citations/search-modal.d.ts +1 -0
  216. package/declarations/addon/components/common/search/alert-load-error.d.ts +4 -0
  217. package/declarations/addon/components/common/search/alert-no-items.d.ts +4 -0
  218. package/declarations/addon/components/common/search/loading.d.ts +1 -0
  219. package/declarations/addon/components/confidentiality-plugin/redact.d.ts +4 -0
  220. package/declarations/addon/components/confidentiality-plugin/toolbar.d.ts +1 -0
  221. package/{components → declarations/addon/components}/decision-plugin/decision-plugin-card.d.ts +1 -0
  222. package/{components → declarations/addon/components}/document-title-plugin/insert-title-card.d.ts +1 -0
  223. package/{components → declarations/addon/components}/generic-rdfa-variable/insert-menu.d.ts +1 -0
  224. package/{components → declarations/addon/components}/import-snippet-plugin/card.d.ts +6 -5
  225. package/{components → declarations/addon/components}/loading-alert.d.ts +1 -0
  226. package/declarations/addon/components/pagination/pagination-view.d.ts +4 -0
  227. package/{components → declarations/addon/components}/roadsign-regulation-plugin/expanded-measure.d.ts +2 -2
  228. package/{components → declarations/addon/components}/roadsign-regulation-plugin/roadsign-regulation-card.d.ts +1 -0
  229. package/{components → declarations/addon/components}/roadsign-regulation-plugin/roadsigns-pagination.d.ts +2 -0
  230. package/{components → declarations/addon/components}/roadsign-regulation-plugin/roadsigns-table.d.ts +2 -0
  231. package/declarations/addon/components/snippet-plugin/snippet-insert-rdfa.d.ts +19 -0
  232. package/{components → declarations/addon/components}/snippet-plugin/snippet-insert.d.ts +3 -0
  233. package/declarations/addon/components/snippet-plugin/snippet-list-select-rdfa.d.ts +21 -0
  234. package/{components → declarations/addon/components}/snippet-plugin/snippet-list-select.d.ts +1 -0
  235. package/declarations/addon/components/snippet-plugin/snippets/snippet-list.d.ts +1 -0
  236. package/{components → declarations/addon/components}/standard-template-plugin/card.d.ts +1 -0
  237. package/declarations/addon/components/table-of-contents-plugin/ember-nodes/outline.d.ts +1 -0
  238. package/{components → declarations/addon/components}/template-comments-plugin/edit-card.d.ts +3 -0
  239. package/{components → declarations/addon/components}/template-comments-plugin/insert.d.ts +1 -0
  240. package/{components → declarations/addon/components}/template-comments-plugin/template-comment.d.ts +1 -0
  241. package/{components → declarations/addon/components}/validation-plugin/validation-item.d.ts +2 -2
  242. package/{components → declarations/addon/components}/variable-plugin/address/edit.d.ts +2 -2
  243. package/{components → declarations/addon/components}/variable-plugin/address/insert.d.ts +1 -0
  244. package/{components → declarations/addon/components}/variable-plugin/address/nodeview.d.ts +2 -0
  245. package/{components → declarations/addon/components}/variable-plugin/date/edit.d.ts +4 -2
  246. package/{components → declarations/addon/components}/variable-plugin/date/insert.d.ts +1 -0
  247. package/{components → declarations/addon/components}/variable-plugin/date/nodeview.d.ts +2 -0
  248. package/{components → declarations/addon/components}/variable-plugin/insert-variable-card.d.ts +9 -1
  249. package/{components → declarations/addon/components}/variable-plugin/location/edit.d.ts +0 -1
  250. package/declarations/addon/components/variable-plugin/location/nodeview.d.ts +11 -0
  251. package/{components → declarations/addon/components}/variable-plugin/number/nodeview.d.ts +4 -1
  252. package/{components → declarations/addon/components}/variable-plugin/text/insert.d.ts +1 -1
  253. package/declarations/addon/components/variable-plugin/utils/label-input.d.ts +1 -0
  254. package/declarations/addon/components/variable-plugin/variable/nodeview.d.ts +11 -0
  255. package/declarations/addon/components/worship-plugin/administrative-unit-picker.d.ts +12 -0
  256. package/declarations/addon/components/worship-plugin/insert.d.ts +17 -0
  257. package/declarations/addon/components/worship-plugin/list.d.ts +1 -0
  258. package/declarations/addon/components/worship-plugin/search-modal.d.ts +30 -0
  259. package/declarations/addon/components/worship-plugin/sortable-table-header.d.ts +16 -0
  260. package/declarations/addon/plugins/article-structure-plugin/commands/recalculate-structure-numbers.d.ts +3 -0
  261. package/declarations/addon/plugins/article-structure-plugin/commands/set-structure-start-number.d.ts +7 -0
  262. package/{plugins → declarations/addon/plugins}/article-structure-plugin/index.d.ts +15 -7
  263. package/{plugins → declarations/addon/plugins}/article-structure-plugin/structures/article-paragraph.d.ts +2 -0
  264. package/declarations/addon/plugins/article-structure-plugin/structures/article.d.ts +5 -0
  265. package/{plugins → declarations/addon/plugins}/article-structure-plugin/structures/index.d.ts +4 -0
  266. package/declarations/addon/plugins/article-structure-plugin/structures/structure-header-number.d.ts +2 -0
  267. package/declarations/addon/plugins/article-structure-plugin/structures/structure-header-title.d.ts +2 -0
  268. package/declarations/addon/plugins/article-structure-plugin/structures/structure-header.d.ts +17 -0
  269. package/declarations/addon/plugins/article-structure-plugin/utils/structure.d.ts +42 -0
  270. package/declarations/addon/plugins/confidentiality-plugin/marks/redacted.d.ts +2 -0
  271. package/declarations/addon/plugins/snippet-plugin/commands/index.d.ts +1 -0
  272. package/declarations/addon/plugins/snippet-plugin/commands/update-snippet-ids.d.ts +8 -0
  273. package/{plugins → declarations/addon/plugins}/snippet-plugin/index.d.ts +2 -0
  274. package/declarations/addon/plugins/snippet-plugin/utils/rdfa-predicate.d.ts +5 -0
  275. package/{plugins → declarations/addon/plugins}/table-of-contents-plugin/nodes/table-of-contents.d.ts +1 -1
  276. package/{plugins → declarations/addon/plugins}/template-comments-plugin/node.d.ts +1 -1
  277. package/{plugins → declarations/addon/plugins}/variable-plugin/utils/attribute-parsers.d.ts +3 -0
  278. package/{plugins → declarations/addon/plugins}/variable-plugin/variables/address.d.ts +1 -1
  279. package/{plugins → declarations/addon/plugins}/variable-plugin/variables/codelist.d.ts +1 -1
  280. package/{plugins → declarations/addon/plugins}/variable-plugin/variables/date.d.ts +1 -1
  281. package/{plugins → declarations/addon/plugins}/variable-plugin/variables/location.d.ts +1 -1
  282. package/{plugins → declarations/addon/plugins}/variable-plugin/variables/number.d.ts +1 -1
  283. package/{plugins → declarations/addon/plugins}/variable-plugin/variables/text.d.ts +1 -1
  284. package/declarations/addon/plugins/worship-plugin/index.d.ts +8 -0
  285. package/declarations/addon/plugins/worship-plugin/utils/fetchAdministrativeUnits.d.ts +7 -0
  286. package/declarations/addon/plugins/worship-plugin/utils/fetchWorshipServices.d.ts +23 -0
  287. package/declarations/addon/plugins/worship-plugin/utils/insertWorshipService.d.ts +3 -0
  288. package/declarations/addon/serializers/application.d.ts +3 -0
  289. package/{services → declarations/addon/services}/import-rdfa-snippet.d.ts +2 -0
  290. package/{utils → declarations/addon/utils}/_private/find-insertion-range.d.ts +7 -4
  291. package/declarations/addon/utils/dom-utils.d.ts +2 -0
  292. package/declarations/addon/utils/namespace.d.ts +21 -0
  293. package/{utils → declarations/addon/utils}/sparql-helpers.d.ts +4 -0
  294. package/package.json +54 -19
  295. package/pnpm-lock.yaml +17788 -0
  296. package/scripts/generate-type-declarations.sh +16 -0
  297. package/translations/en-US.yaml +27 -12
  298. package/translations/nl-BE.yaml +27 -12
  299. package/tsconfig.declarations.json +15 -0
  300. package/tsconfig.json +7 -57
  301. package/tsconfig.main.json +62 -0
  302. package/types/ember-intl.d.ts +15 -0
  303. package/types/graphy/memory.dataset.fast.d.ts +74 -0
  304. package/.woodpecker/.test.yml +0 -49
  305. package/addon/components/citation-plugin/helpers/alert-load-error.hbs +0 -21
  306. package/addon/components/citation-plugin/helpers/alert-no-items.hbs +0 -10
  307. package/addon/components/confidentiality-plugin/redact.hbs +0 -6
  308. package/addon/components/pagination/pagination-view.hbs +0 -39
  309. package/addon/components/snippet-plugin/helpers/alert-load-error.hbs +0 -22
  310. package/addon/components/snippet-plugin/helpers/alert-no-items.hbs +0 -8
  311. package/components/citation-plugin/citations/legal-document-preview.d.ts +0 -10
  312. package/components/variable-plugin/location/nodeview.d.ts +0 -12
  313. package/components/variable-plugin/variable/nodeview.d.ts +0 -11
  314. package/plugins/article-structure-plugin/commands/recalculate-structure-numbers.d.ts +0 -3
  315. package/plugins/article-structure-plugin/commands/set-structure-start-number.d.ts +0 -4
  316. package/plugins/article-structure-plugin/structures/article.d.ts +0 -6
  317. package/plugins/article-structure-plugin/structures/structure-header.d.ts +0 -2
  318. package/plugins/article-structure-plugin/utils/structure.d.ts +0 -36
  319. package/plugins/confidentiality-plugin/marks/redacted.d.ts +0 -2
  320. package/utils/namespace.d.ts +0 -12
  321. package/{components → declarations/addon/components}/hover-tooltip.d.ts +0 -0
  322. package/{components → declarations/addon/components}/roadsign-regulation-plugin/measure-template.d.ts +0 -0
  323. package/{components → declarations/addon/components}/roadsign-regulation-plugin/roadsigns-modal.d.ts +0 -0
  324. package/{components → declarations/addon/components}/snippet-plugin/search-modal.d.ts +0 -0
  325. package/{components → declarations/addon/components}/snippet-plugin/snippet-list/snippet-list-modal.d.ts +0 -0
  326. package/{components → declarations/addon/components}/snippet-plugin/snippet-list/snippet-list-view.d.ts +0 -0
  327. package/{components → declarations/addon/components}/snippet-plugin/snippets/snippet-preview.d.ts +0 -0
  328. package/{components → declarations/addon/components}/standard-template-plugin/template-provider.d.ts +0 -0
  329. package/{components → declarations/addon/components}/table-of-contents-plugin/ember-nodes/table-of-contents.d.ts +0 -0
  330. package/{components → declarations/addon/components}/table-of-contents-plugin/toolbar-button.d.ts +0 -0
  331. package/{components → declarations/addon/components}/validation-plugin/validation-card.d.ts +0 -0
  332. package/{components → declarations/addon/components}/variable-plugin/address/insert-variable.d.ts +0 -0
  333. package/{components → declarations/addon/components}/variable-plugin/address/utils.d.ts +0 -0
  334. package/{components → declarations/addon/components}/variable-plugin/codelist/edit.d.ts +0 -0
  335. package/{components → declarations/addon/components}/variable-plugin/codelist/insert.d.ts +0 -0
  336. package/{components → declarations/addon/components}/variable-plugin/date/date-time-picker.d.ts +0 -0
  337. package/{components → declarations/addon/components}/variable-plugin/date/help-modal.d.ts +0 -0
  338. package/{components → declarations/addon/components}/variable-plugin/date/insert-variable.d.ts +0 -0
  339. package/{components → declarations/addon/components}/variable-plugin/location/insert.d.ts +0 -0
  340. package/{components → declarations/addon/components}/variable-plugin/number/insert.d.ts +0 -0
  341. package/{helpers → declarations/addon/helpers}/capitalize.d.ts +0 -0
  342. package/{helpers → declarations/addon/helpers}/in-array.d.ts +0 -0
  343. package/{helpers → declarations/addon/helpers}/limit-text.d.ts +0 -0
  344. package/{helpers → declarations/addon/helpers}/pagination.d.ts +0 -0
  345. package/{models → declarations/addon/models}/instruction.d.ts +0 -0
  346. package/{models → declarations/addon/models}/measure.d.ts +0 -0
  347. package/{models → declarations/addon/models}/sign.d.ts +0 -0
  348. package/{models → declarations/addon/models}/template.d.ts +0 -0
  349. package/{plugins → declarations/addon/plugins}/article-structure-plugin/commands/index.d.ts +0 -0
  350. package/{plugins → declarations/addon/plugins}/article-structure-plugin/commands/insert-structure.d.ts +0 -0
  351. package/{plugins → declarations/addon/plugins}/article-structure-plugin/commands/move-selected-structure.d.ts +0 -0
  352. package/{plugins → declarations/addon/plugins}/article-structure-plugin/commands/remove-structure.d.ts +0 -0
  353. package/{plugins → declarations/addon/plugins}/article-structure-plugin/commands/unwrap-structure.d.ts +0 -0
  354. package/{plugins → declarations/addon/plugins}/article-structure-plugin/commands/wrap-structure-content.d.ts +1 -1
  355. /package/{plugins → declarations/addon/plugins}/article-structure-plugin/structures/chapter.d.ts +0 -0
  356. /package/{plugins → declarations/addon/plugins}/article-structure-plugin/structures/section.d.ts +0 -0
  357. /package/{plugins → declarations/addon/plugins}/article-structure-plugin/structures/subsection.d.ts +0 -0
  358. /package/{plugins → declarations/addon/plugins}/article-structure-plugin/structures/title.d.ts +0 -0
  359. /package/{plugins → declarations/addon/plugins}/article-structure-plugin/utils/romanize.d.ts +0 -0
  360. /package/{plugins → declarations/addon/plugins}/besluit-type-plugin/index.d.ts +0 -0
  361. /package/{plugins → declarations/addon/plugins}/besluit-type-plugin/utils/fetchBesluitTypes.d.ts +0 -0
  362. /package/{plugins → declarations/addon/plugins}/citation-plugin/index.d.ts +0 -0
  363. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/article.d.ts +0 -0
  364. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/cache.d.ts +0 -0
  365. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/cited-text.d.ts +0 -0
  366. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/legal-documents.d.ts +0 -0
  367. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/process-match.d.ts +0 -0
  368. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/public-decisions.d.ts +0 -0
  369. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/types.d.ts +0 -0
  370. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/utils.d.ts +0 -0
  371. /package/{plugins → declarations/addon/plugins}/citation-plugin/utils/vlaamse-codex.d.ts +0 -0
  372. /package/{plugins → declarations/addon/plugins}/confidentiality-plugin/index.d.ts +0 -0
  373. /package/{plugins → declarations/addon/plugins}/decision-plugin/commands/index.d.ts +0 -0
  374. /package/{plugins → declarations/addon/plugins}/decision-plugin/commands/insert-article-container.d.ts +0 -0
  375. /package/{plugins → declarations/addon/plugins}/decision-plugin/commands/insert-description.d.ts +0 -0
  376. /package/{plugins → declarations/addon/plugins}/decision-plugin/commands/insert-motivation.d.ts +0 -0
  377. /package/{plugins → declarations/addon/plugins}/decision-plugin/commands/insert-title.d.ts +0 -0
  378. /package/{plugins → declarations/addon/plugins}/decision-plugin/utils/get-title-for-decision.d.ts +0 -0
  379. /package/{plugins → declarations/addon/plugins}/decision-plugin/utils/validation-rules.d.ts +0 -0
  380. /package/{plugins → declarations/addon/plugins}/document-title-plugin/commands/insert-document-title.d.ts +0 -0
  381. /package/{plugins → declarations/addon/plugins}/document-title-plugin/nodes/document-title.d.ts +0 -0
  382. /package/{plugins → declarations/addon/plugins}/document-title-plugin/nodes/index.d.ts +0 -0
  383. /package/{plugins → declarations/addon/plugins}/generic-rdfa-variable/commands/index.d.ts +0 -0
  384. /package/{plugins → declarations/addon/plugins}/generic-rdfa-variable/commands/insert-generic-rdfa.d.ts +0 -0
  385. /package/{plugins → declarations/addon/plugins}/roadsign-regulation-plugin/index.d.ts +0 -0
  386. /package/{plugins → declarations/addon/plugins}/roadsign-regulation-plugin/nodes.d.ts +0 -0
  387. /package/{plugins → declarations/addon/plugins}/roadsign-regulation-plugin/utils/constants.d.ts +0 -0
  388. /package/{plugins → declarations/addon/plugins}/roadsign-regulation-plugin/utils/fetchData.d.ts +0 -0
  389. /package/{plugins → declarations/addon/plugins}/roadsign-regulation-plugin/utils/includeInstructions.d.ts +0 -0
  390. /package/{plugins → declarations/addon/plugins}/snippet-plugin/utils/fetch-data.d.ts +0 -0
  391. /package/{plugins → declarations/addon/plugins}/standard-template-plugin/index.d.ts +0 -0
  392. /package/{plugins → declarations/addon/plugins}/standard-template-plugin/utils/instantiate-uuids.d.ts +0 -0
  393. /package/{plugins → declarations/addon/plugins}/standard-template-plugin/utils/nodes.d.ts +0 -0
  394. /package/{plugins → declarations/addon/plugins}/table-of-contents-plugin/index.d.ts +0 -0
  395. /package/{plugins → declarations/addon/plugins}/table-of-contents-plugin/nodes/index.d.ts +0 -0
  396. /package/{plugins → declarations/addon/plugins}/table-of-contents-plugin/utils/index.d.ts +0 -0
  397. /package/{plugins → declarations/addon/plugins}/template-comments-plugin/index.d.ts +0 -0
  398. /package/{plugins → declarations/addon/plugins}/validation/index.d.ts +0 -0
  399. /package/{plugins → declarations/addon/plugins}/validation/utils/transaction-complies-with-shapes.d.ts +0 -0
  400. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/address-helpers.d.ts +0 -0
  401. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/codelist-utils.d.ts +0 -0
  402. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/constants.d.ts +0 -0
  403. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/date-helpers.d.ts +0 -0
  404. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/dom-constructors.d.ts +0 -0
  405. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/fetch-data.d.ts +0 -0
  406. /package/{plugins → declarations/addon/plugins}/variable-plugin/utils/number-to-words.d.ts +0 -0
  407. /package/{plugins → declarations/addon/plugins}/variable-plugin/variables/index.d.ts +0 -0
  408. /package/{services → declarations/addon/services}/roadsign-registry.d.ts +0 -0
  409. /package/{utils → declarations/addon/utils}/changed-descendants.d.ts +0 -0
  410. /package/{utils → declarations/addon/utils}/constants.d.ts +0 -0
  411. /package/{utils → declarations/addon/utils}/dom-output-spec-helpers.d.ts +0 -0
  412. /package/{utils → declarations/addon/utils}/find-insertion-contentmatch.d.ts +0 -0
  413. /package/{utils → declarations/addon/utils}/find-insertion-pos-in-ancestor-of-type.d.ts +0 -0
  414. /package/{utils → declarations/addon/utils}/memoize.d.ts +0 -0
  415. /package/{utils → declarations/addon/utils}/option.d.ts +0 -0
  416. /package/{utils → declarations/addon/utils}/strings.d.ts +0 -0
  417. /package/{utils → declarations/addon/utils}/translation.d.ts +0 -0
  418. /package/{utils → declarations/addon/utils}/types.d.ts +0 -0
@@ -1,15 +1,43 @@
1
1
  import Component from '@glimmer/component';
2
- import { SayController, SayView } from '@lblod/ember-rdfa-editor';
2
+ import { NodeSelection, ProsePlugin, SayView } from '@lblod/ember-rdfa-editor';
3
+ import { editableNodePlugin } from '@lblod/ember-rdfa-editor/plugins/editable-node';
3
4
  import { tracked } from '@glimmer/tracking';
4
- import { addressView } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/variable-plugin/variables';
5
+ import { action } from '@ember/object';
6
+ import { PencilIcon } from '@appuniversum/ember-appuniversum/components/icons/pencil';
7
+ import { EmberNodeArgs } from '@lblod/ember-rdfa-editor/utils/ember-node';
5
8
 
6
- type Args = {
7
- controller: SayController;
8
- };
9
+ export default class LocationNodeViewComponent extends Component<EmberNodeArgs> {
10
+ PencilIcon = PencilIcon;
9
11
 
10
- export default class LocationNodeViewComponent extends Component<Args> {
11
- @tracked nodeViews = {
12
- address: addressView(this.args.controller),
13
- };
14
12
  @tracked innerView?: SayView;
13
+
14
+ get plugins(): ProsePlugin[] {
15
+ return [editableNodePlugin(this.args.getPos)];
16
+ }
17
+ @action
18
+ onClick() {
19
+ if (this.innerView) {
20
+ if (this.innerView.state.doc.firstChild?.type.name === 'placeholder') {
21
+ this.innerView.focus();
22
+ // Use request animation frame to only change the selection when the focus has been established
23
+ window.requestAnimationFrame(() => {
24
+ if (this.innerView) {
25
+ const tr = this.innerView.state.tr;
26
+ tr.setSelection(NodeSelection.create(this.innerView?.state.doc, 0));
27
+ this.innerView?.dispatch(tr);
28
+ }
29
+ });
30
+ } else {
31
+ this.innerView.focus();
32
+ }
33
+ }
34
+ }
35
+ @action
36
+ initEditor(view: SayView) {
37
+ this.innerView = view;
38
+ }
39
+
40
+ get label() {
41
+ return this.args.node.attrs.label as string;
42
+ }
15
43
  }
@@ -1,4 +1,5 @@
1
1
 
2
+ {{! @glint-nocheck: not typesafe yet }}
2
3
  <AuFormRow>
3
4
  <VariablePlugin::Utils::LabelInput @label={{this.label}} @updateLabel={{this.updateLabel}}/>
4
5
  </AuFormRow>
@@ -7,6 +7,13 @@ import { isNumber } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/strings';
7
7
  import { service } from '@ember/service';
8
8
  import IntlService from 'ember-intl/services/intl';
9
9
  import { modifier } from 'ember-modifier';
10
+ import { sayDataFactory } from '@lblod/ember-rdfa-editor/core/say-data-factory';
11
+ import {
12
+ DCT,
13
+ EXT,
14
+ RDF,
15
+ } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/constants';
16
+ import { replaceSelectionWithAndSelectNode } from '@lblod/ember-rdfa-editor-lblod-plugins/commands';
10
17
 
11
18
  type Args = {
12
19
  controller: SayController;
@@ -85,17 +92,37 @@ export default class NumberInsertComponent extends Component<Args> {
85
92
  if (this.numberVariableError !== '') return;
86
93
 
87
94
  const mappingResource = `http://data.lblod.info/mappings/${uuidv4()}`;
95
+ const subject = mappingResource;
88
96
  const variableInstance = `http://data.lblod.info/variables/${uuidv4()}`;
89
97
 
90
98
  const defaultLabel = this.intl.t('variable.number.label', {
91
99
  locale: this.documentLanguage,
92
100
  });
101
+ const label = this.label ?? defaultLabel;
102
+ const variableId = uuidv4();
93
103
 
94
104
  const node = this.schema.nodes.number.create({
95
- label: this.label ?? defaultLabel,
96
- value: null,
97
- mappingResource,
98
- variableInstance,
105
+ subject,
106
+ rdfaNodeType: 'resource',
107
+ __rdfaId: variableId,
108
+ properties: [
109
+ {
110
+ predicate: RDF('type').full,
111
+ object: sayDataFactory.namedNode(EXT('Mapping').full),
112
+ },
113
+ {
114
+ predicate: EXT('instance').full,
115
+ object: sayDataFactory.namedNode(variableInstance),
116
+ },
117
+ {
118
+ predicate: EXT('label').full,
119
+ object: sayDataFactory.literal(label),
120
+ },
121
+ {
122
+ predicate: DCT('type').full,
123
+ object: sayDataFactory.literal('number'),
124
+ },
125
+ ],
99
126
  ...(isNumber(this.minimumValue) && {
100
127
  minimumValue: Number(this.minimumValue),
101
128
  }),
@@ -108,11 +135,8 @@ export default class NumberInsertComponent extends Component<Args> {
108
135
  this.minimumValue = '';
109
136
  this.maximumValue = '';
110
137
 
111
- this.controller.withTransaction(
112
- (tr) => {
113
- return tr.replaceSelectionWith(node);
114
- },
115
- { view: this.controller.mainEditorView },
116
- );
138
+ this.controller.doCommand(replaceSelectionWithAndSelectNode(node), {
139
+ view: this.controller.mainEditorView,
140
+ });
117
141
  }
118
142
  }
@@ -1,9 +1,10 @@
1
+ {{! @glint-nocheck: not typesafe yet }}
1
2
  <this.Velcro
2
3
  @placement='bottom-start'
3
4
  @offsetOptions={{hash mainAxis=3}} as |velcro|
4
5
  >
5
6
  <AuPill
6
- @icon='pencil'
7
+ @icon={{this.PencilIcon}}
7
8
  @iconAlignment='right'
8
9
  class='variable atomic'
9
10
  {{velcro.hook}}
@@ -16,9 +17,9 @@
16
17
  {{this.translations.placeholder}}
17
18
  </span>
18
19
  {{/if}}
19
- {{#if @node.attrs.label}}
20
+ {{#if this.label}}
20
21
  <span class='label'>
21
- ({{@node.attrs.label}})
22
+ ({{this.label}})
22
23
  </span>
23
24
  {{/if}}
24
25
  </AuPill>
@@ -45,8 +46,9 @@
45
46
  @name='writtenNumber'
46
47
  @checked={{this.writtenNumber}}
47
48
  @onChange={{this.changeWrittenNumber}}
48
- @label={{t 'variable.number.written-number-label'}}
49
- />
49
+ >
50
+ {{t 'variable.number.written-number-label'}}
51
+ </AuToggleSwitch>
50
52
  {{#if this.errorMessage}}
51
53
  <AuHelpText @small={{true}} @error={{true}}>
52
54
  {{this.errorMessage}}
@@ -10,9 +10,14 @@ import { service } from '@ember/service';
10
10
  import intlService from 'ember-intl/services/intl';
11
11
  import { localCopy } from 'tracked-toolbox';
12
12
  import { isBlank } from '@ember/utils';
13
+ import { Velcro } from 'ember-velcro';
14
+ import { isRdfaAttrs } from '@lblod/ember-rdfa-editor/core/schema';
15
+ import { sayDataFactory } from '@lblod/ember-rdfa-editor/core/say-data-factory';
13
16
  import { isNumber } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/strings';
14
17
  import { numberToWords } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/variable-plugin/utils/number-to-words';
15
- import { Velcro } from 'ember-velcro';
18
+ import { EXT } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/constants';
19
+ import { getOutgoingTriple } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/namespace';
20
+ import { PencilIcon } from '@appuniversum/ember-appuniversum/components/icons/pencil';
16
21
 
17
22
  type Args = {
18
23
  getPos: () => number | undefined;
@@ -25,9 +30,10 @@ type Args = {
25
30
  };
26
31
 
27
32
  export default class NumberNodeviewComponent extends Component<Args> {
33
+ PencilIcon = PencilIcon;
28
34
  Velcro = Velcro;
29
35
 
30
- @localCopy('args.node.attrs.value', '') declare inputNumber: string;
36
+ @localCopy('number', '') declare inputNumber: string;
31
37
  @localCopy('args.node.attrs.writtenNumber', false)
32
38
  declare writtenNumber: boolean;
33
39
  @service declare intl: intlService;
@@ -57,9 +63,12 @@ export default class NumberNodeviewComponent extends Component<Args> {
57
63
  return this.args.node;
58
64
  }
59
65
 
60
- get formattedNumber() {
61
- const value = this.node.attrs.value as string;
66
+ get number(): string | null | undefined {
67
+ return getOutgoingTriple(this.node.attrs, EXT('content'))?.object.value;
68
+ }
62
69
 
70
+ get formattedNumber() {
71
+ const value = this.number;
63
72
  if (!isNumber(value)) {
64
73
  return value;
65
74
  }
@@ -82,6 +91,10 @@ export default class NumberNodeviewComponent extends Component<Args> {
82
91
  return this.node.attrs.maximumValue as number;
83
92
  }
84
93
 
94
+ get label(): string | undefined {
95
+ return getOutgoingTriple(this.args.node.attrs, EXT('label'))?.object.value;
96
+ }
97
+
85
98
  @action onInputNumberChange(event: InputEvent) {
86
99
  this.inputNumber = (event.target as HTMLInputElement).value;
87
100
  this.validateAndSave();
@@ -125,7 +138,21 @@ export default class NumberNodeviewComponent extends Component<Args> {
125
138
  @action
126
139
  validateAndSave() {
127
140
  if (!this.errorMessage) {
128
- this.args.updateAttribute('value', this.inputNumber);
141
+ const attrs = this.node.attrs;
142
+ const properties =
143
+ isRdfaAttrs(attrs) && attrs.rdfaNodeType === 'resource'
144
+ ? attrs.properties
145
+ : [];
146
+ const newProperties = properties.filter((prop) => {
147
+ return !EXT('content').matches(prop.predicate);
148
+ });
149
+ if (this.inputNumber) {
150
+ newProperties.push({
151
+ predicate: EXT('content').full,
152
+ object: sayDataFactory.literal(this.inputNumber),
153
+ });
154
+ }
155
+ this.args.updateAttribute('properties', newProperties);
129
156
  }
130
157
  }
131
158
  }
@@ -1,3 +1,4 @@
1
+ {{! @glint-nocheck: not typesafe yet }}
1
2
  <AuFormRow>
2
3
  <VariablePlugin::Utils::LabelInput
3
4
  @label={{this.label}}
@@ -2,9 +2,16 @@ import Component from '@glimmer/component';
2
2
  import { tracked } from '@glimmer/tracking';
3
3
  import { action } from '@ember/object';
4
4
  import { service } from '@ember/service';
5
- import { SayController } from '@lblod/ember-rdfa-editor';
5
+ import { type SayController } from '@lblod/ember-rdfa-editor';
6
+ import { sayDataFactory } from '@lblod/ember-rdfa-editor/core/say-data-factory';
6
7
  import { v4 as uuidv4 } from 'uuid';
7
8
  import IntlService from 'ember-intl/services/intl';
9
+ import {
10
+ DCT,
11
+ EXT,
12
+ RDF,
13
+ } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/constants';
14
+ import { replaceSelectionWithAndSelectNode } from '@lblod/ember-rdfa-editor-lblod-plugins/commands';
8
15
 
9
16
  type Args = {
10
17
  controller: SayController;
@@ -33,29 +40,50 @@ export default class TextVariableInsertComponent extends Component<Args> {
33
40
 
34
41
  @action
35
42
  insert() {
36
- const mappingResource = `http://data.lblod.info/mappings/${uuidv4()}`;
43
+ const mappingSubject = `http://data.lblod.info/mappings/${uuidv4()}`;
37
44
  const variableInstance = `http://data.lblod.info/variables/${uuidv4()}`;
45
+ const variableId = uuidv4();
38
46
 
39
47
  const placeholder = this.intl.t('variable.text.label', {
40
48
  locale: this.documentLanguage,
41
49
  });
42
50
 
51
+ const label = this.label ?? placeholder;
43
52
  const node = this.schema.nodes.text_variable.create(
44
53
  {
45
- label: this.label ?? placeholder,
46
- mappingResource,
47
- variableInstance,
54
+ subject: mappingSubject,
55
+ rdfaNodeType: 'resource',
56
+ __rdfaId: variableId,
57
+ properties: [
58
+ {
59
+ predicate: RDF('type').full,
60
+ object: sayDataFactory.namedNode(EXT('Mapping').full),
61
+ },
62
+ {
63
+ predicate: EXT('instance').full,
64
+ object: sayDataFactory.namedNode(variableInstance),
65
+ },
66
+ {
67
+ predicate: EXT('label').full,
68
+ object: sayDataFactory.literal(label),
69
+ },
70
+ {
71
+ predicate: DCT('type').full,
72
+ object: sayDataFactory.literal('text'),
73
+ },
74
+ {
75
+ predicate: EXT('content').full,
76
+ object: sayDataFactory.contentLiteral(),
77
+ },
78
+ ],
48
79
  },
49
- this.schema.node('placeholder', { placeholderText: placeholder }),
80
+ this.schema.text('text'),
50
81
  );
51
82
 
52
83
  this.label = undefined;
53
84
 
54
- this.controller.withTransaction(
55
- (tr) => {
56
- return tr.replaceSelectionWith(node);
57
- },
58
- { view: this.controller.mainEditorView },
59
- );
85
+ this.controller.doCommand(replaceSelectionWithAndSelectNode(node), {
86
+ view: this.controller.mainEditorView,
87
+ });
60
88
  }
61
89
  }
@@ -1,16 +1,20 @@
1
- <AuPill @icon="pencil" @iconAlignment="right" class="variable" {{on 'click' this.onClick}}>
2
- <EmberNode::EmbeddedEditor
3
- @controller={{@controller}}
4
- @node={{@node}}
5
- @view={{@view}}
6
- @getPos={{@getPos}}
1
+ {{! @glint-nocheck: not typesafe yet }}
2
+ <AuPill @icon={{this.PencilIcon}} @iconAlignment="right" class="variable" {{on 'click' this.onClick}}>
3
+ <EmberNode::EmbeddedEditor
4
+ @controller={{@controller}}
5
+ @node={{@node}}
6
+ @view={{@view}}
7
+ @getPos={{@getPos}}
7
8
  @selected={{@selected}}
8
9
  @initEditor={{this.initEditor}}
9
10
  @nodeViews={{@nodeViews}}
11
+ @plugins={{this.plugins}}
12
+ @decorations={{@decorations}}
13
+ @contentDecorations={{@contentDecorations}}
10
14
  />
11
- {{#if @node.attrs.label}}
15
+ {{#if this.label}}
12
16
  <span class="label">
13
- ({{@node.attrs.label}})
17
+ ({{this.label}})
14
18
  </span>
15
19
  {{/if}}
16
20
  </AuPill>
@@ -1,19 +1,22 @@
1
1
  import Component from '@glimmer/component';
2
- import {
3
- NodeSelection,
4
- SayController,
5
- SayView,
6
- } from '@lblod/ember-rdfa-editor';
2
+ import { NodeSelection, ProsePlugin, SayView } from '@lblod/ember-rdfa-editor';
3
+ import { editableNodePlugin } from '@lblod/ember-rdfa-editor/plugins/editable-node';
7
4
  import { tracked } from '@glimmer/tracking';
8
5
  import { action } from '@ember/object';
6
+ import { PencilIcon } from '@appuniversum/ember-appuniversum/components/icons/pencil';
9
7
 
10
- type Args = {
11
- controller: SayController;
12
- };
8
+ import { EmberNodeArgs } from '@lblod/ember-rdfa-editor/utils/ember-node';
9
+ import { getOutgoingTriple } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/namespace';
10
+ import { EXT } from '@lblod/ember-rdfa-editor-lblod-plugins/utils/constants';
11
+
12
+ export default class VariableNodeViewComponent extends Component<EmberNodeArgs> {
13
+ PencilIcon = PencilIcon;
13
14
 
14
- export default class VariableNodeViewComponent extends Component<Args> {
15
15
  @tracked innerView?: SayView;
16
16
 
17
+ get plugins(): ProsePlugin[] {
18
+ return [editableNodePlugin(this.args.getPos)];
19
+ }
17
20
  @action
18
21
  onClick() {
19
22
  if (this.innerView) {
@@ -36,4 +39,8 @@ export default class VariableNodeViewComponent extends Component<Args> {
36
39
  initEditor(view: SayView) {
37
40
  this.innerView = view;
38
41
  }
42
+
43
+ get label() {
44
+ return getOutgoingTriple(this.args.node.attrs, EXT('label'))?.object.value;
45
+ }
39
46
  }
@@ -0,0 +1,16 @@
1
+ {{! @glint-nocheck: not typesafe yet }}
2
+ <PowerSelect
3
+ @loadingMessage={{t 'common.search.loading'}}
4
+ @searchMessage={{t 'worship-plugin.modal.search.search'}}
5
+ @noMatchesMessage={{t 'worship-plugin.modal.search.no-results'}}
6
+ @placeholderMessage={{t 'worship-plugin.modal.fields.admin-unit'}}
7
+ @allowClear={{true}}
8
+ @renderInPlace={{true}}
9
+ @searchEnabled={{true}}
10
+ @search={{perform this.searchUnits}}
11
+ @selected={{@selectedUnit}}
12
+ @onChange={{@onSelectUnit}}
13
+ ...attributes
14
+ as |unit|>
15
+ {{unit.label}}
16
+ </PowerSelect>
@@ -0,0 +1,38 @@
1
+ import Component from '@glimmer/component';
2
+ import { restartableTask, timeout } from 'ember-concurrency';
3
+ import { AdministrativeUnit } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/worship-plugin';
4
+ import { fetchAdministrativeUnits } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/worship-plugin/utils/fetchAdministrativeUnits';
5
+ import { WorshipPluginConfig } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/worship-plugin';
6
+
7
+ interface Args {
8
+ config: WorshipPluginConfig;
9
+ selectedUnit?: AdministrativeUnit;
10
+ onSelectUnit: (unit: AdministrativeUnit) => void;
11
+ }
12
+
13
+ export default class AdministrativeUnitPickerComponent extends Component<Args> {
14
+ searchUnits = restartableTask(async (search: string) => {
15
+ await timeout(200);
16
+
17
+ const abortController = new AbortController();
18
+ try {
19
+ const units = await fetchAdministrativeUnits({
20
+ search,
21
+ config: this.args.config,
22
+ abortSignal: abortController.signal,
23
+ });
24
+
25
+ return units;
26
+ } catch (err) {
27
+ // ember-power-select doesn't seem to have a way to display errors.
28
+ console.error(
29
+ 'Error occured when searching for administrative units',
30
+ err,
31
+ );
32
+ // We just re-throw to keep TS happy, ember-concurrency just swallows it.
33
+ throw err;
34
+ } finally {
35
+ abortController.abort();
36
+ }
37
+ });
38
+ }
@@ -0,0 +1,18 @@
1
+ {{! @glint-nocheck: not typesafe yet }}
2
+ <li class='au-c-list__item'>
3
+ <AuButton
4
+ @icon={{this.AddIcon}}
5
+ @iconAlignment='left'
6
+ @skin='link'
7
+ {{on 'click' this.openModal}}
8
+ >
9
+ {{t 'worship-plugin.insert.title'}}
10
+ </AuButton>
11
+ </li>
12
+
13
+ <WorshipPlugin::SearchModal
14
+ @open={{this.showModal}}
15
+ @closeModal={{this.closeModal}}
16
+ @config={{@config}}
17
+ @onInsert={{this.onInsert}}
18
+ />
@@ -0,0 +1,41 @@
1
+ import { action } from '@ember/object';
2
+ import Component from '@glimmer/component';
3
+ import { tracked } from '@glimmer/tracking';
4
+ import { AddIcon } from '@appuniversum/ember-appuniversum/components/icons/add';
5
+
6
+ import { SayController } from '@lblod/ember-rdfa-editor';
7
+ import { WorshipPluginConfig } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/worship-plugin';
8
+ import { WorshipService } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/worship-plugin/utils/fetchWorshipServices';
9
+ import { insertWorshipService } from '@lblod/ember-rdfa-editor-lblod-plugins/plugins/worship-plugin/utils/insertWorshipService';
10
+
11
+ interface Args {
12
+ controller: SayController;
13
+ config: WorshipPluginConfig;
14
+ }
15
+
16
+ export default class WorshipPluginInsertComponent extends Component<Args> {
17
+ AddIcon = AddIcon;
18
+
19
+ @tracked showModal = false;
20
+
21
+ get controller() {
22
+ return this.args.controller;
23
+ }
24
+
25
+ @action
26
+ openModal() {
27
+ this.controller.focus();
28
+ this.showModal = true;
29
+ }
30
+
31
+ @action
32
+ closeModal() {
33
+ this.showModal = false;
34
+ }
35
+
36
+ @action
37
+ onInsert(service: WorshipService) {
38
+ insertWorshipService(this.controller, service);
39
+ this.closeModal();
40
+ }
41
+ }
@@ -0,0 +1,46 @@
1
+ <AuTable>
2
+ <:header>
3
+ <tr class='au-c-data-table__header-title'>
4
+ <th>
5
+ <WorshipPlugin::SortableTableHeader
6
+ @field='label'
7
+ @label={{t 'worship-plugin.modal.fields.name'}}
8
+ @sort={{@sort}}
9
+ @setSort={{@setSort}}
10
+ />
11
+ </th>
12
+ <th />
13
+ </tr>
14
+ </:header>
15
+ <:body>
16
+ {{#unless (or @services.isRunning @error)}}
17
+ {{#if @services.value.totalCount}}
18
+ {{#each @services.value.results as |row|}}
19
+ <tr>
20
+ <td>{{row.label}}</td>
21
+ <td class='au-u-text-center'>
22
+ <AuButton
23
+ {{on 'click' (fn @insert row)}}
24
+ >
25
+ {{t 'worship-plugin.modal.insert'}}
26
+ </AuButton>
27
+ </td>
28
+ </tr>
29
+ {{/each}}
30
+ {{/if}}
31
+ {{/unless}}
32
+ </:body>
33
+ </AuTable>
34
+ {{#if @services.isRunning}}
35
+ <div class='au-u-margin'>
36
+ <Common::Search::Loading />
37
+ </div>
38
+ {{else}}
39
+ {{#if @error}}
40
+ <Common::Search::AlertLoadError @error={{@error}} />
41
+ {{else}}
42
+ {{#unless @services.value.totalCount}}
43
+ <Common::Search::AlertNoItems />
44
+ {{/unless}}
45
+ {{/if}}
46
+ {{/if}}
@@ -0,0 +1,79 @@
1
+ {{! @glint-nocheck: not typesafe yet }}
2
+ <AuModal
3
+ class='worship-modal'
4
+ @modalOpen={{@open}}
5
+ @closeModal={{this.closeModal}}
6
+ @title={{t 'worship-plugin.modal.title'}}
7
+ @size='large'
8
+ @padding='none'
9
+ as |modal|
10
+ >
11
+ <modal.Body>
12
+ <AuMainContainer @scroll={{true}} class='worship-modal--main-container' as |mc|>
13
+ <mc.sidebar>
14
+ <div class='au-c-sidebar'>
15
+ <div class='au-c-sidebar__content au-u-padding'>
16
+ <AuHeading @level='3' @skin='4' class='au-u-padding-bottom-small'>
17
+ {{t 'worship-plugin.modal.search.title'}}
18
+ </AuHeading>
19
+ <AuLabel
20
+ class='au-margin-bottom-small'
21
+ for='searchTerm'
22
+ >
23
+ {{t 'worship-plugin.modal.fields.name'}}
24
+ </AuLabel>
25
+ <AuNativeInput
26
+ @type='text'
27
+ @width='block'
28
+ id='searchTerm'
29
+ value={{this.searchText}}
30
+ placeholder={{t 'worship-plugin.modal.search.placeholder'}}
31
+ {{on 'input' this.setInputSearchText}}
32
+ />
33
+ <AuLabel
34
+ class='au-margin-bottom-small'
35
+ for='admin-unit-select'
36
+ >
37
+ {{t 'worship-plugin.modal.fields.admin-unit'}}
38
+ </AuLabel>
39
+ <WorshipPlugin::AdministrativeUnitPicker
40
+ id='admin-unit-select'
41
+ @config={{@config}}
42
+ @selectedUnit={{this.administrativeUnit}}
43
+ @onSelectUnit={{this.setAdministrativeUnit}}
44
+ />
45
+ </div>
46
+ </div>
47
+ </mc.sidebar>
48
+ <mc.content @scroll={{true}}>
49
+ <div class='worship-modal--list-container'>
50
+ <WorshipPlugin::List
51
+ @error={{this.error}}
52
+ @services={{this.servicesResource}}
53
+ @sort={{this.sort}}
54
+ @setSort={{this.setSort}}
55
+ @insert={{@onInsert}}
56
+ />
57
+ </div>
58
+ {{#if this.servicesResource.value.totalCount}}
59
+ {{#let
60
+ (pagination
61
+ page=this.pageNumber pageSize=this.pageSize count=this.servicesResource.value.totalCount
62
+ )
63
+ as |pg|
64
+ }}
65
+ <Pagination::PaginationView
66
+ @totalCount={{pg.count}}
67
+ @rangeStart={{pg.pageStart}}
68
+ @rangeEnd={{pg.pageEnd}}
69
+ @onNextPage={{this.nextPage}}
70
+ @onPreviousPage={{this.previousPage}}
71
+ @isFirstPage={{not pg.hasPreviousPage}}
72
+ @isLastPage={{not pg.hasNextPage}}
73
+ />
74
+ {{/let}}
75
+ {{/if}}
76
+ </mc.content>
77
+ </AuMainContainer>
78
+ </modal.Body>
79
+ </AuModal>