@lblod/ember-rdfa-editor-lblod-plugins 0.3.1 → 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 (269) 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/RELEASE.md +60 -0
  6. package/addon/commands/generate-template-command.js +35 -0
  7. package/addon/commands/insert-and-collapse.js +32 -0
  8. package/addon/commands/modify-date-command.js +42 -0
  9. package/addon/components/besluit-type-plugin/besluit-type-select.hbs +28 -0
  10. package/addon/components/besluit-type-plugin/besluit-type-select.js +21 -0
  11. package/addon/components/besluit-type-plugin/toolbar-dropdown.hbs +83 -0
  12. package/addon/components/besluit-type-plugin/toolbar-dropdown.js +188 -0
  13. package/addon/components/citaten-plugin/citaat-card.hbs +76 -0
  14. package/addon/components/citaten-plugin/citaat-card.js +286 -0
  15. package/addon/components/citaten-plugin/citaat-insert.hbs +20 -0
  16. package/addon/components/citaten-plugin/citaat-insert.js +68 -0
  17. package/addon/components/citaten-plugin/citations/article-list.hbs +13 -0
  18. package/addon/components/citaten-plugin/citations/article-preview.hbs +16 -0
  19. package/addon/components/citaten-plugin/citations/decision-detail.hbs +110 -0
  20. package/addon/components/citaten-plugin/citations/decision-detail.js +94 -0
  21. package/addon/components/citaten-plugin/citations/decision-list.hbs +15 -0
  22. package/addon/components/citaten-plugin/citations/decision-preview.hbs +53 -0
  23. package/addon/components/citaten-plugin/citations/search-modal.hbs +175 -0
  24. package/addon/components/citaten-plugin/citations/search-modal.js +244 -0
  25. package/addon/components/citaten-plugin/helpers/alert-load-error.hbs +21 -0
  26. package/addon/components/citaten-plugin/helpers/alert-no-items.hbs +10 -0
  27. package/addon/components/import-snippet-plugin/card.hbs +17 -0
  28. package/addon/components/import-snippet-plugin/card.js +95 -0
  29. package/addon/components/insert-variable-plugin/insert-variable-card.hbs +33 -0
  30. package/addon/components/insert-variable-plugin/insert-variable-card.js +125 -0
  31. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-card.hbs +22 -0
  32. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-card.js +64 -0
  33. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-insert.hbs +18 -0
  34. package/addon/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +24 -0
  35. package/addon/components/rdfa-date-plugin/rdfa-date-time-picker.hbs +21 -0
  36. package/addon/components/rdfa-date-plugin/rdfa-date-time-picker.js +73 -0
  37. package/addon/components/roadsign-regulation-plugin/expanded-measure.hbs +44 -0
  38. package/addon/components/roadsign-regulation-plugin/expanded-measure.js +38 -0
  39. package/addon/components/roadsign-regulation-plugin/measure-template.hbs +5 -0
  40. package/addon/components/roadsign-regulation-plugin/measure-template.js +30 -0
  41. package/addon/components/roadsign-regulation-plugin/roadsign-regulation-card.hbs +12 -0
  42. package/addon/components/roadsign-regulation-plugin/roadsign-regulation-card.js +101 -0
  43. package/addon/components/roadsign-regulation-plugin/roadsigns-modal.hbs +92 -0
  44. package/addon/components/roadsign-regulation-plugin/roadsigns-modal.js +268 -0
  45. package/addon/components/roadsign-regulation-plugin/roadsigns-pagination.hbs +25 -0
  46. package/addon/components/roadsign-regulation-plugin/roadsigns-pagination.js +55 -0
  47. package/addon/components/roadsign-regulation-plugin/roadsigns-table.hbs +73 -0
  48. package/addon/components/roadsign-regulation-plugin/roadsigns-table.js +24 -0
  49. package/addon/components/standard-template-plugin/template-card.hbs +16 -0
  50. package/addon/components/standard-template-plugin/template-card.js +7 -0
  51. package/addon/components/standard-template-plugin/template-provider.hbs +6 -0
  52. package/addon/components/standard-template-plugin/template-provider.js +75 -0
  53. package/addon/components/table-of-contents-plugin/card.hbs +5 -0
  54. package/addon/components/table-of-contents-plugin/card.js +53 -0
  55. package/addon/components/table-of-contents-plugin/inline-components/outline.hbs +21 -0
  56. package/addon/components/table-of-contents-plugin/inline-components/table-of-contents.hbs +9 -0
  57. package/addon/components/table-of-contents-plugin/inline-components/table-of-contents.js +100 -0
  58. package/addon/components/template-variable-plugin/template-variable-card.hbs +34 -0
  59. package/addon/components/template-variable-plugin/template-variable-card.js +230 -0
  60. package/addon/constants.js +24 -0
  61. package/{dist → addon}/helpers/limit-text.js +1 -4
  62. package/addon/initializers/plugin-initializer.js +75 -0
  63. package/addon/inline-components/table-of-contents.js +43 -0
  64. package/addon/marks/citaten-mark.js +32 -0
  65. package/addon/models/instruction.js +19 -0
  66. package/addon/models/measure.js +46 -0
  67. package/{dist → addon}/models/sign.js +12 -13
  68. package/addon/models/template.js +9 -0
  69. package/addon/plugins/besluit-type-plugin.js +16 -0
  70. package/addon/plugins/citaten-plugin.js +22 -0
  71. package/addon/plugins/generate-template-plugin.js +16 -0
  72. package/addon/plugins/import-snippet-plugin.js +16 -0
  73. package/addon/plugins/insert-variable-plugin.js +19 -0
  74. package/addon/plugins/rdfa-date-plugin.js +26 -0
  75. package/addon/plugins/roadsign-regulation-plugin.js +24 -0
  76. package/addon/plugins/standard-template-plugin.js +33 -0
  77. package/addon/plugins/table-of-contents-plugin.js +27 -0
  78. package/addon/plugins/template-variable-plugin.js +21 -0
  79. package/addon/serializers/application.js +8 -0
  80. package/{dist → addon}/services/import-rdfa-snippet.js +28 -18
  81. package/{dist → addon}/services/roadsign-registry.js +67 -121
  82. package/addon/services/standard-template-plugin.js +45 -0
  83. package/addon/utils/fetchBesluitTypes.js +90 -0
  84. package/addon/utils/generate-template-plugin/default-resources.js +9 -0
  85. package/addon/utils/instantiate-uuids.js +34 -0
  86. package/addon/utils/legislation-types.js +32 -0
  87. package/addon/utils/memoize.js +8 -0
  88. package/addon/utils/processMatch.js +80 -0
  89. package/addon/utils/roadsign-regulation-plugin/fetchData.js +78 -0
  90. package/addon/utils/roadsign-regulation-plugin/includeInstructions.js +10 -0
  91. package/addon/utils/variable-plugins/default-variable-types.js +56 -0
  92. package/{dist/fetch-data-284bf106.js → addon/utils/variable-plugins/fetch-data.js} +36 -18
  93. package/{dist/vlaamse-codex-187fe526.js → addon/utils/vlaamse-codex.js} +159 -63
  94. package/app/components/besluit-type-plugin/besluit-type-select.js +1 -0
  95. package/app/components/besluit-type-plugin/toolbar-dropdown.js +1 -0
  96. package/app/components/citaten-plugin/citaat-card.js +1 -0
  97. package/app/components/citaten-plugin/citaat-insert.js +1 -0
  98. package/app/components/citaten-plugin/citations/article-list.js +1 -0
  99. package/app/components/citaten-plugin/citations/article-preview.js +1 -0
  100. package/app/components/citaten-plugin/citations/decision-detail.js +1 -0
  101. package/app/components/citaten-plugin/citations/decision-list.js +1 -0
  102. package/app/components/citaten-plugin/citations/decision-preview.js +1 -0
  103. package/app/components/citaten-plugin/citations/modal.js +1 -0
  104. package/app/components/citaten-plugin/citations/search-modal.js +1 -0
  105. package/app/components/citaten-plugin/helpers/alert-load-error.js +1 -0
  106. package/app/components/citaten-plugin/helpers/alert-no-items.js +1 -0
  107. package/app/components/import-snippet-plugin/card.js +1 -0
  108. package/app/components/insert-variable-plugin/insert-variable-card.js +1 -0
  109. package/app/components/rdfa-date-plugin/rdfa-date-plugin-card.js +1 -0
  110. package/app/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +1 -0
  111. package/app/components/rdfa-date-plugin/rdfa-date-time-picker.js +1 -0
  112. package/app/components/roadsign-regulation-plugin/expanded-measure.js +1 -0
  113. package/app/components/roadsign-regulation-plugin/measure-template.js +1 -0
  114. package/app/components/roadsign-regulation-plugin/roadsign-regulation-card.js +1 -0
  115. package/app/components/roadsign-regulation-plugin/roadsigns-modal.js +1 -0
  116. package/app/components/roadsign-regulation-plugin/roadsigns-pagination.js +1 -0
  117. package/app/components/roadsign-regulation-plugin/roadsigns-table.js +1 -0
  118. package/app/components/standard-template-plugin/template-card.js +1 -0
  119. package/app/components/standard-template-plugin/template-provider.js +1 -0
  120. package/app/components/table-of-contents-plugin/card.js +1 -0
  121. package/app/components/table-of-contents-plugin/inline-components/outline.js +1 -0
  122. package/app/components/table-of-contents-plugin/inline-components/table-of-contents.js +1 -0
  123. package/app/components/template-variable-plugin/template-variable-card.js +1 -0
  124. package/app/helpers/limit-text.js +4 -0
  125. package/app/initializers/plugin-initializer.js +4 -0
  126. package/app/models/instruction.js +1 -0
  127. package/app/models/measure.js +1 -0
  128. package/app/models/sign.js +1 -0
  129. package/app/models/template.js +1 -0
  130. package/app/serializers/application.js +1 -0
  131. package/app/services/import-rdfa-snippet.js +1 -0
  132. package/app/services/rdfa-editor-roadsign-regulation-plugin.js +1 -0
  133. package/app/services/roadsign-registry.js +1 -0
  134. package/app/services/standard-template-plugin.js +1 -0
  135. package/{dist → app}/styles/citaten-plugin.scss +0 -0
  136. package/config/environment.js +0 -1
  137. package/index.js +8 -0
  138. package/package.json +110 -106
  139. package/tsconfig.json +42 -0
  140. package/types/dummy/index.d.ts +1 -0
  141. package/types/ember-data/types/registries/model.d.ts +6 -0
  142. package/types/global.d.ts +7 -0
  143. package/addon-main.js +0 -4
  144. package/dist/_app_/components/besluit-type-plugin/besluit-type-select.js +0 -1
  145. package/dist/_app_/components/besluit-type-plugin/toolbar-dropdown.js +0 -1
  146. package/dist/_app_/components/citaten-plugin/citaat-card.js +0 -1
  147. package/dist/_app_/components/citaten-plugin/citaat-insert.js +0 -1
  148. package/dist/_app_/components/citaten-plugin/citations/article-list.js +0 -1
  149. package/dist/_app_/components/citaten-plugin/citations/article-preview.js +0 -1
  150. package/dist/_app_/components/citaten-plugin/citations/decision-detail.js +0 -1
  151. package/dist/_app_/components/citaten-plugin/citations/decision-list.js +0 -1
  152. package/dist/_app_/components/citaten-plugin/citations/decision-preview.js +0 -1
  153. package/dist/_app_/components/citaten-plugin/citations/search-modal.js +0 -1
  154. package/dist/_app_/components/citaten-plugin/helpers/alert-load-error.js +0 -1
  155. package/dist/_app_/components/citaten-plugin/helpers/alert-no-items.js +0 -1
  156. package/dist/_app_/components/import-snippet-plugin/card.js +0 -1
  157. package/dist/_app_/components/insert-variable-plugin/insert-variable-card.js +0 -1
  158. package/dist/_app_/components/rdfa-date-plugin/rdfa-date-plugin-card.js +0 -1
  159. package/dist/_app_/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +0 -1
  160. package/dist/_app_/components/rdfa-date-plugin/rdfa-date-time-picker.js +0 -1
  161. package/dist/_app_/components/roadsign-regulation-plugin/expanded-measure.js +0 -1
  162. package/dist/_app_/components/roadsign-regulation-plugin/measure-template.js +0 -1
  163. package/dist/_app_/components/roadsign-regulation-plugin/roadsign-regulation-card.js +0 -1
  164. package/dist/_app_/components/roadsign-regulation-plugin/roadsigns-modal.js +0 -1
  165. package/dist/_app_/components/roadsign-regulation-plugin/roadsigns-pagination.js +0 -1
  166. package/dist/_app_/components/roadsign-regulation-plugin/roadsigns-table.js +0 -1
  167. package/dist/_app_/components/standard-template-plugin/template-card.js +0 -1
  168. package/dist/_app_/components/standard-template-plugin/template-provider.js +0 -1
  169. package/dist/_app_/components/table-of-contents-plugin/card.js +0 -1
  170. package/dist/_app_/components/table-of-contents-plugin/inline-components/outline.js +0 -1
  171. package/dist/_app_/components/table-of-contents-plugin/inline-components/table-of-contents.js +0 -1
  172. package/dist/_app_/components/template-variable-plugin/template-variable-card.js +0 -1
  173. package/dist/_app_/helpers/limit-text.js +0 -1
  174. package/dist/_app_/initializers/plugin-initializer.js +0 -1
  175. package/dist/_app_/models/instruction.js +0 -1
  176. package/dist/_app_/models/measure.js +0 -1
  177. package/dist/_app_/models/sign.js +0 -1
  178. package/dist/_app_/models/template.js +0 -1
  179. package/dist/_app_/serializers/application.js +0 -1
  180. package/dist/_app_/services/import-rdfa-snippet.js +0 -1
  181. package/dist/_app_/services/roadsign-registry.js +0 -1
  182. package/dist/_app_/services/standard-template-plugin.js +0 -1
  183. package/dist/_rollupPluginBabelHelpers-537ad14b.js +0 -48
  184. package/dist/_rollupPluginBabelHelpers-537ad14b.js.map +0 -1
  185. package/dist/components/besluit-type-plugin/besluit-type-select.js +0 -30
  186. package/dist/components/besluit-type-plugin/besluit-type-select.js.map +0 -1
  187. package/dist/components/besluit-type-plugin/toolbar-dropdown.js +0 -292
  188. package/dist/components/besluit-type-plugin/toolbar-dropdown.js.map +0 -1
  189. package/dist/components/citaten-plugin/citaat-card.js +0 -367
  190. package/dist/components/citaten-plugin/citaat-card.js.map +0 -1
  191. package/dist/components/citaten-plugin/citaat-insert.js +0 -84
  192. package/dist/components/citaten-plugin/citaat-insert.js.map +0 -1
  193. package/dist/components/citaten-plugin/citations/article-list.js +0 -10
  194. package/dist/components/citaten-plugin/citations/article-list.js.map +0 -1
  195. package/dist/components/citaten-plugin/citations/article-preview.js +0 -10
  196. package/dist/components/citaten-plugin/citations/article-preview.js.map +0 -1
  197. package/dist/components/citaten-plugin/citations/decision-detail.js +0 -123
  198. package/dist/components/citaten-plugin/citations/decision-detail.js.map +0 -1
  199. package/dist/components/citaten-plugin/citations/decision-list.js +0 -10
  200. package/dist/components/citaten-plugin/citations/decision-list.js.map +0 -1
  201. package/dist/components/citaten-plugin/citations/decision-preview.js +0 -10
  202. package/dist/components/citaten-plugin/citations/decision-preview.js.map +0 -1
  203. package/dist/components/citaten-plugin/citations/search-modal.js +0 -282
  204. package/dist/components/citaten-plugin/citations/search-modal.js.map +0 -1
  205. package/dist/components/citaten-plugin/helpers/alert-load-error.js +0 -10
  206. package/dist/components/citaten-plugin/helpers/alert-load-error.js.map +0 -1
  207. package/dist/components/citaten-plugin/helpers/alert-no-items.js +0 -10
  208. package/dist/components/citaten-plugin/helpers/alert-no-items.js.map +0 -1
  209. package/dist/components/import-snippet-plugin/card.js +0 -99
  210. package/dist/components/import-snippet-plugin/card.js.map +0 -1
  211. package/dist/components/insert-variable-plugin/insert-variable-card.js +0 -190
  212. package/dist/components/insert-variable-plugin/insert-variable-card.js.map +0 -1
  213. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-card.js +0 -85
  214. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-card.js.map +0 -1
  215. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-insert.js +0 -23
  216. package/dist/components/rdfa-date-plugin/rdfa-date-plugin-insert.js.map +0 -1
  217. package/dist/components/rdfa-date-plugin/rdfa-date-time-picker.js +0 -91
  218. package/dist/components/rdfa-date-plugin/rdfa-date-time-picker.js.map +0 -1
  219. package/dist/components/roadsign-regulation-plugin/expanded-measure.js +0 -52
  220. package/dist/components/roadsign-regulation-plugin/expanded-measure.js.map +0 -1
  221. package/dist/components/roadsign-regulation-plugin/measure-template.js +0 -42
  222. package/dist/components/roadsign-regulation-plugin/measure-template.js.map +0 -1
  223. package/dist/components/roadsign-regulation-plugin/roadsign-regulation-card.js +0 -82
  224. package/dist/components/roadsign-regulation-plugin/roadsign-regulation-card.js.map +0 -1
  225. package/dist/components/roadsign-regulation-plugin/roadsigns-modal.js +0 -251
  226. package/dist/components/roadsign-regulation-plugin/roadsigns-modal.js.map +0 -1
  227. package/dist/components/roadsign-regulation-plugin/roadsigns-pagination.js +0 -71
  228. package/dist/components/roadsign-regulation-plugin/roadsigns-pagination.js.map +0 -1
  229. package/dist/components/roadsign-regulation-plugin/roadsigns-table.js +0 -36
  230. package/dist/components/roadsign-regulation-plugin/roadsigns-table.js.map +0 -1
  231. package/dist/components/standard-template-plugin/template-card.js +0 -15
  232. package/dist/components/standard-template-plugin/template-card.js.map +0 -1
  233. package/dist/components/standard-template-plugin/template-provider.js +0 -109
  234. package/dist/components/standard-template-plugin/template-provider.js.map +0 -1
  235. package/dist/components/table-of-contents-plugin/card.js +0 -52
  236. package/dist/components/table-of-contents-plugin/card.js.map +0 -1
  237. package/dist/components/table-of-contents-plugin/inline-components/outline.js +0 -10
  238. package/dist/components/table-of-contents-plugin/inline-components/outline.js.map +0 -1
  239. package/dist/components/table-of-contents-plugin/inline-components/table-of-contents.js +0 -92
  240. package/dist/components/table-of-contents-plugin/inline-components/table-of-contents.js.map +0 -1
  241. package/dist/components/template-variable-plugin/template-variable-card.js +0 -178
  242. package/dist/components/template-variable-plugin/template-variable-card.js.map +0 -1
  243. package/dist/constants-c77fd478.js +0 -16
  244. package/dist/constants-c77fd478.js.map +0 -1
  245. package/dist/fetch-data-284bf106.js.map +0 -1
  246. package/dist/helpers/limit-text.js.map +0 -1
  247. package/dist/includeInstructions-a32c24e6.js +0 -10
  248. package/dist/includeInstructions-a32c24e6.js.map +0 -1
  249. package/dist/index.js +0 -2
  250. package/dist/index.js.map +0 -1
  251. package/dist/initializers/plugin-initializer.js +0 -401
  252. package/dist/initializers/plugin-initializer.js.map +0 -1
  253. package/dist/legislation-types-4d487cb9.js +0 -26
  254. package/dist/legislation-types-4d487cb9.js.map +0 -1
  255. package/dist/models/instruction.js +0 -18
  256. package/dist/models/instruction.js.map +0 -1
  257. package/dist/models/measure.js +0 -41
  258. package/dist/models/measure.js.map +0 -1
  259. package/dist/models/sign.js.map +0 -1
  260. package/dist/models/template.js +0 -48
  261. package/dist/models/template.js.map +0 -1
  262. package/dist/serializers/application.js +0 -10
  263. package/dist/serializers/application.js.map +0 -1
  264. package/dist/services/import-rdfa-snippet.js.map +0 -1
  265. package/dist/services/roadsign-registry.js.map +0 -1
  266. package/dist/services/standard-template-plugin.js +0 -53
  267. package/dist/services/standard-template-plugin.js.map +0 -1
  268. package/dist/styles/test.css +0 -0
  269. package/dist/vlaamse-codex-187fe526.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ {{#if @decisions.length}}
2
+ <AuList @direction="vertical" @divider={{true}}>
3
+ {{#each @decisions as |decision|}}
4
+ <AuList::Item class="au-u-padding-left-small au-u-padding-right-small">
5
+ <CitatenPlugin::Citations::DecisionPreview
6
+ @decision={{decision}}
7
+ @onCitationInsert={{fn @onCitationInsert decision}}
8
+ @onCitationDetails={{fn @onCitationDetails decision}}
9
+ @fullSize={{@fullSize}} />
10
+ </AuList::Item>
11
+ {{/each}}
12
+ </AuList>
13
+ {{else}}
14
+ <CitatenPlugin::Helpers::AlertNoItems @fullSize={{@fullSize}} class={{if @fullSize "au-u-margin"}}/>
15
+ {{/if}}
@@ -0,0 +1,53 @@
1
+ <div class="citaten--decision-list-item {{if @fullSize "au-u-padding-small"}}" ...attributes>
2
+ <p class="citaten--decision-title {{if @fullSize "au-u-h6 au-u-medium" "au-u-h-functional"}}">
3
+ {{if @fullSize (capitalize @decision.fullTitle) @decision.title}}
4
+ </p>
5
+ {{#if (and @fullSize @decision.publicationDate)}}
6
+ <AuPill
7
+ class="au-u-margin-top-small au-u-margin-bottom-small"
8
+ @skin="border"
9
+ @icon="calendar"
10
+ @iconAlignment="left">
11
+ {{@decision.publicationDate}}
12
+ </AuPill>
13
+ {{/if}}
14
+ {{#if @fullSize}}
15
+ <div>
16
+ <AuButtonGroup @inline={{false}}>
17
+ <AuButton
18
+ @skin="primary"
19
+ @icon="plus-text"
20
+ @iconAlignment="left"
21
+ {{on "click" @onCitationInsert}}>
22
+ {{t "citaten-plugin.references.insert"}}
23
+ </AuButton>
24
+ <AuButton
25
+ @skin="secondary"
26
+ @icon="manual"
27
+ @iconAlignment="left"
28
+ {{on "click" @onCitationDetails}}>
29
+ {{t "citaten-plugin.references.details"}}
30
+ </AuButton>
31
+ </AuButtonGroup>
32
+ </div>
33
+ {{else}}
34
+ <div class="au-u-flex au-u-flex--row au-u-flex--no-wrap au-u-flex--between au-u-margin-top-tiny">
35
+ <AuButton
36
+ @skin="link-secondary"
37
+ @icon="plus-text"
38
+ @iconAlignment="left"
39
+ class="au-u-h-functional"
40
+ {{on "click" @onCitationInsert}}>
41
+ {{t "citaten-plugin.references.insert"}}
42
+ </AuButton>
43
+ <AuButton
44
+ @skin="link"
45
+ @icon="manual"
46
+ @iconAlignment="left"
47
+ class="au-u-h-functional"
48
+ {{on "click" @onCitationDetails}}>
49
+ {{t "citaten-plugin.references.details"}}
50
+ </AuButton>
51
+ </div>
52
+ {{/if}}
53
+ </div>
@@ -0,0 +1,175 @@
1
+ <AuModal
2
+ @modalOpen={{true}}
3
+ @closeModal={{fn this.closeModal this.legislationTypeUri this.text}}
4
+ @title={{t "citaten-plugin.card.title"}}
5
+ @size="large"
6
+ @padding="none" as |modal|>
7
+ {{#if this.selectedDecision}}
8
+ <modal.Body>
9
+ <CitatenPlugin::Citations::DecisionDetail
10
+ @insertDecisionCitation={{this.insertDecisionCitation}}
11
+ @insertArticleCitation={{this.insertArticleCitation}}
12
+ @close={{this.closeDecisionDetail}}
13
+ @decision={{this.selectedDecision}} />
14
+ </modal.Body>
15
+ {{else}}
16
+ <modal.Body>
17
+ <AuMainContainer class="citaten--main-container" as |mc|>
18
+ <mc.sidebar class="citaten--sidebar" @scroll={{true}}>
19
+ <div class="au-c-sidebar">
20
+ <div class="au-c-sidebar__content au-u-padding">
21
+ <AuLabel class="au-margin-bottom-small" for="typeofdocumentexpanded" @inline={{false}} @required={{false}} @error={{false}} @warning={{false}}>{{t "citaten-plugin.search.type"}}</AuLabel>
22
+ <PowerSelect
23
+ id="typeofdocumentexpanded"
24
+ @renderInPlace={{true}}
25
+ @allowClear={{false}}
26
+ @disabled={{false}}
27
+ @searchEnabled={{true}}
28
+ @loadingMessage={{t "citaten-plugin.alert.loading"}}
29
+ @noMatchesMessage={{t "citaten-plugin.alert.no-results"}}
30
+ @searchMessage={{t "citaten-plugin.search.placeholder"}}
31
+ @options={{this.legislationTypes}}
32
+ @selected={{this.legislationSelected}}
33
+ @onChange={{this.selectLegislationType}}
34
+ as |type|>
35
+ {{type}}
36
+ </PowerSelect>
37
+ <AuLabel class="au-u-margin-top au-margin-bottom-small" for="searchtermexpanded" @inline={{false}} @required={{false}} @error={{false}} @warning={{false}}>{{t "citaten-plugin.search.term"}}</AuLabel>
38
+ <AuInput
39
+ id="searchtermexpanded"
40
+ @type="text"
41
+ @width="block"
42
+ @icon="search"
43
+ @iconAlignment="right"
44
+ @value={{this.text}}
45
+ placeholder={{t "citaten-plugin.search.placeholder"}}
46
+ {{on "input" (perform this.updateSearch)}}/>
47
+ <AuHr @size="large" />
48
+ {{! Date of document }}
49
+ <AuLabel class="au-u-margin-top au-u-margin-bottom-small" for="search-codex-datum-document-van" @inline={{false}}>{{t "citaten-plugin.search.date-document"}}</AuLabel>
50
+ {{! From }}
51
+ <AuFormRow @alignment="pre" class="au-u-margin-bottom-tiny">
52
+ <AuLabel for="search-codex-datum-document-van" class="au-u-hidden-visually">{{t "citaten-plugin.search.date-document-from"}}</AuLabel>
53
+ <AuLabel for="search-codex-datum-document-van" aria-hidden="true" class="au-u-1-4" @inline={{true}}>{{t "citaten-plugin.search.from"}}</AuLabel>
54
+ <AuDatePicker
55
+ @id="search-codex-datum-document-van"
56
+ @alignment="top"
57
+ @onChange={{this.updateDocumentDateFrom}}
58
+ @value={{this.documentDateFrom}}
59
+ @min={{this.minDate}}
60
+ @max={{this.maxDate}}
61
+ @localization={{this.datePickerLocalization}} />
62
+ </AuFormRow>
63
+ {{! To }}
64
+ <AuFormRow @alignment="pre">
65
+ <AuLabel for="search-codex-datum-document-tot" class="au-u-hidden-visually">{{t "citaten-plugin.search.date-document-to"}}</AuLabel>
66
+ <AuLabel for="search-codex-datum-document-tot" aria-hidden="true" class="au-u-1-4" @inline={{true}}>{{t "citaten-plugin.search.to"}}</AuLabel>
67
+ <AuDatePicker
68
+ @id="search-codex-datum-document-tot"
69
+ @alignment="top"
70
+ @onChange={{this.updateDocumentDateTo}}
71
+ @value={{this.documentDateTo}}
72
+ @min={{this.minDate}}
73
+ @max={{this.maxDate}}
74
+ @localization={{this.datePickerLocalization}} />
75
+ </AuFormRow>
76
+
77
+ {{! Date of staatsblad }}
78
+ <AuLabel class="au-u-margin-top au-u-margin-bottom-small" for="search-codex-datum-staatsblad-van" @inline={{false}}>{{t "citaten-plugin.search.date-publication"}}</AuLabel>
79
+ {{! From }}
80
+ <AuFormRow @alignment="pre" class="au-u-margin-bottom-tiny">
81
+ <AuLabel for="search-codex-datum-staatsblad-van" class="au-u-hidden-visually">{{t "citaten-plugin.search.date-publication-from"}}</AuLabel>
82
+ <AuLabel for="search-codex-datum-staatsblad-van" aria-hidden="true" class="au-u-1-4" @inline={{true}}>{{t "citaten-plugin.search.from"}}</AuLabel>
83
+ <AuDatePicker
84
+ @id="search-codex-datum-staatsblad-van"
85
+ @alignment="top"
86
+ @onChange={{this.updatePublicationDateFrom}}
87
+ @value={{this.publicationDateFrom}}
88
+ @min={{this.minDate}}
89
+ @max={{this.maxDate}}
90
+ @localization={{this.datePickerLocalization}} />
91
+ </AuFormRow>
92
+ {{! To }}
93
+ <AuFormRow @alignment="pre">
94
+ <AuLabel for="search-codex-datum-staatsblad-tot" class="au-u-hidden-visually">{{t "citaten-plugin.search.date-publication-to"}}</AuLabel>
95
+ <AuLabel for="search-codex-datum-staatsblad-tot" aria-hidden="true" class="au-u-1-4" @inline={{true}}>{{t "citaten-plugin.search.to"}}</AuLabel>
96
+ <AuDatePicker
97
+ @id="search-codex-datum-staatsblad-tot"
98
+ @alignment="top"
99
+ @onChange={{this.updatePublicationDateTo}}
100
+ @value={{this.publicationDateTo}}
101
+ @min={{this.minDate}}
102
+ @max={{this.maxDate}}
103
+ @localization={{this.datePickerLocalization}} />
104
+ </AuFormRow>
105
+ </div>
106
+ </div>
107
+ </mc.sidebar>
108
+ <mc.content>
109
+ {{#if this.decisionResource.isRunning}}
110
+ <div class="au-u-margin">
111
+ <AuLoader @padding="large" />
112
+ <span class="au-u-hidden-visually">{{t "citaten-plugin.alert.loading"}}</span>
113
+ </div>
114
+ {{else}}
115
+ {{#if this.error}}
116
+ <CitatenPlugin::Helpers::AlertLoadError @fullSize={{true}} @error={{this.error}} class="au-u-margin"/>
117
+ {{else}}
118
+ {{#if this.decisionResource.value.length}}
119
+ <div class="citaten--container-content au-u-padding-top-small au-u-padding-bottom-small">
120
+ <CitatenPlugin::Citations::DecisionList
121
+ @decisions={{this.decisionResource.value}}
122
+ @onCitationInsert={{this.insertDecisionCitation}}
123
+ @onCitationDetails={{this.openDecisionDetail}}
124
+ @fullSize={{true}} />
125
+ </div>
126
+ {{else}}
127
+ <CitatenPlugin::Helpers::AlertNoItems @fullSize={{true}} class="au-u-margin" />
128
+ {{/if}}
129
+ {{/if}}
130
+ {{/if}}
131
+ {{#if this.decisionResource.value.length}}
132
+ {{! Pagination in the footer of the dialog }}
133
+ <div class="citaten--container-footer au-u-background-gray-100">
134
+ <AuToolbar
135
+ @border="top"
136
+ @size="large"
137
+ @nowrap={{true}}>
138
+ <div class="au-c-pagination">
139
+ <p>
140
+ <span class="au-u-hidden-visually">{{t "citaten-plugin.search.results"}}</span>
141
+ <strong>
142
+ {{this.rangeStart}} - {{this.rangeEnd}}
143
+ </strong>
144
+ {{t "citaten-plugin.pagination.of"}}
145
+ {{this.totalCount}}
146
+ </p>
147
+ <div class="au-c-pagination__list-item">
148
+ {{#unless this.isFirstPage}}
149
+ <AuButton
150
+ @skin="link"
151
+ @icon="nav-left"
152
+ @iconAlignment="left"
153
+ {{on "click" this.previousPage}}>
154
+ {{t "citaten-plugin.pagination.previous"}}
155
+ </AuButton>
156
+ {{/unless}}
157
+ {{#unless this.isLastPage}}
158
+ <AuButton
159
+ @skin="link"
160
+ @icon="nav-right"
161
+ @iconAlignment="right"
162
+ {{on "click" this.nextPage}}>
163
+ {{t "citaten-plugin.pagination.next"}}
164
+ </AuButton>
165
+ {{/unless}}
166
+ </div>
167
+ </div>
168
+ </AuToolbar>
169
+ </div>
170
+ {{/if}}
171
+ </mc.content>
172
+ </AuMainContainer>
173
+ </modal.Body>
174
+ {{/if}}
175
+ </AuModal>
@@ -0,0 +1,244 @@
1
+ import Component from '@glimmer/component';
2
+ import { tracked } from '@glimmer/tracking';
3
+ import { action } from '@ember/object';
4
+ import { task, timeout } from 'ember-concurrency';
5
+ import { inject as service } from '@ember/service';
6
+ import { capitalize } from '@ember/string';
7
+ import { task as trackedTask } from 'ember-resources/util/ember-concurrency';
8
+ import {
9
+ LEGISLATION_TYPES,
10
+ LEGISLATION_TYPE_CONCEPTS,
11
+ } from '../../../utils/legislation-types';
12
+ import { fetchDecisions } from '../../../utils/vlaamse-codex';
13
+
14
+ function getISODate(date) {
15
+ if (date) {
16
+ // Flatpickr captures the date in local time. Hence date.toISOString() may return the day before the selected date
17
+ // E.g. selected date 2020-04-15 00:00:00 GMT+0200 will become 2020-04-14 22:00:00 UTC
18
+ // We will pretend the selected date is UTC because that's what's meant as date for filtering
19
+ const day = date.getDate().toString().padStart(2, '0');
20
+ const month = (date.getMonth() + 1).toString().padStart(2, '0');
21
+ return `${date.getFullYear()}-${month}-${day}`;
22
+ } else {
23
+ return null;
24
+ }
25
+ }
26
+
27
+ export default class EditorPluginsCitationsSearchModalComponent extends Component {
28
+ @service intl;
29
+ @tracked text;
30
+ @tracked textAfterTimeout;
31
+ // Vlaamse Codex currently doesn't contain captions and content of decisions
32
+ // @tracked isEnabledSearchCaption = false
33
+ // @tracked isEnabledSearchContent = false
34
+ @tracked legislationTypeUri;
35
+ @tracked pageNumber = 0;
36
+ @tracked pageSize = 5;
37
+ @tracked totalCount;
38
+ @tracked decisions = [];
39
+ @tracked error;
40
+ @tracked selectedDecision;
41
+ @tracked documentDateFrom = null;
42
+ @tracked documentDateTo = null;
43
+ @tracked publicationDateFrom = null;
44
+ @tracked publicationDateTo = null;
45
+ minDate = new Date('1930-01-01T12:00:00');
46
+ maxDate = new Date(`${new Date().getFullYear() + 10}-01-01T12:00:00`);
47
+
48
+ get datePickerLocalization() {
49
+ return {
50
+ buttonLabel: this.intl.t('auDatePicker.buttonLabel'),
51
+ selectedDateMessage: this.intl.t('auDatePicker.selectedDateMessage'),
52
+ prevMonthLabel: this.intl.t('auDatePicker.prevMonthLabel'),
53
+ nextMonthLabel: this.intl.t('auDatePicker.nextMonthLabel'),
54
+ monthSelectLabel: this.intl.t('auDatePicker.monthSelectLabel'),
55
+ yearSelectLabel: this.intl.t('auDatePicker.yearSelectLabel'),
56
+ closeLabel: this.intl.t('auDatePicker.closeLabel'),
57
+ keyboardInstruction: this.intl.t('auDatePicker.keyboardInstruction'),
58
+ calendarHeading: this.intl.t('auDatePicker.calendarHeading'),
59
+ dayNames: getLocalizedDays(this.intl),
60
+ monthNames: getLocalizedMonths(this.intl),
61
+ monthNamesShort: getLocalizedMonths(this.intl, 'short'),
62
+ };
63
+ }
64
+
65
+ constructor() {
66
+ super(...arguments);
67
+ this.selectedDecision = this.args.selectedDecision;
68
+ this.legislationTypeUri =
69
+ this.args.legislationTypeUri || LEGISLATION_TYPES['decreet'];
70
+ this.text = this.args.text;
71
+ }
72
+
73
+ get legislationTypes() {
74
+ return Object.keys(LEGISLATION_TYPES).map(capitalize);
75
+ }
76
+
77
+ get legislationSelected() {
78
+ const found = LEGISLATION_TYPE_CONCEPTS.find(
79
+ (c) => c.value === this.legislationTypeUri
80
+ );
81
+ return capitalize(found ? found.label : LEGISLATION_TYPE_CONCEPTS[0].label);
82
+ }
83
+
84
+ decisionResource = trackedTask(this, this.resourceSearch, () => [
85
+ this.textAfterTimeout,
86
+ this.legislationTypeUri,
87
+ this.pageSize,
88
+ this.pageNumber,
89
+ this.documentDateFrom,
90
+ this.documentDateTo,
91
+ this.publicationDateFrom,
92
+ this.publicationDateTo,
93
+ ]);
94
+
95
+ @task({ restartable: true })
96
+ *resourceSearch() {
97
+ this.error = null;
98
+ yield undefined; //To prevent retriggering because of the use of this.text later.
99
+ const abortController = new AbortController();
100
+ const signal = abortController.signal;
101
+ try {
102
+ // Split search string by grouping on non-whitespace characters
103
+ // This probably needs to be more complex to search on group of words
104
+ const words =
105
+ (this.textAfterTimeout || this.text || '').match(/\S+/g) || [];
106
+ const filter = {
107
+ type: this.legislationTypeUri,
108
+ documentDateFrom: getISODate(this.documentDateFrom),
109
+ documentDateTo: getISODate(this.documentDateTo),
110
+ publicationDateFrom: getISODate(this.publicationDateFrom),
111
+ publicationDateTo: getISODate(this.publicationDateTo),
112
+ };
113
+ const results = yield fetchDecisions(
114
+ words,
115
+ filter,
116
+ this.pageNumber,
117
+ this.pageSize,
118
+ signal
119
+ );
120
+ this.totalCount = results.totalCount;
121
+ return results.decisions;
122
+ } catch (e) {
123
+ console.warn(e); // eslint-ignore-line no-console
124
+ this.totalCount = 0;
125
+ this.error = e;
126
+ return [];
127
+ } finally {
128
+ //Abort all requests now that this task has either successfully finished or has been cancelled
129
+ abortController.abort();
130
+ }
131
+ }
132
+
133
+ @task({ restartable: true })
134
+ *updateSearch() {
135
+ yield timeout(500);
136
+ this.textAfterTimeout = this.text;
137
+ this.pageNumber = 0;
138
+ }
139
+
140
+ @action
141
+ selectLegislationType(type) {
142
+ type = type.toLowerCase();
143
+ const found = LEGISLATION_TYPE_CONCEPTS.find(
144
+ (c) => c.label.toLowerCase() === type
145
+ );
146
+ this.legislationTypeUri = found
147
+ ? found.value
148
+ : LEGISLATION_TYPE_CONCEPTS[0].value;
149
+ }
150
+
151
+ @action
152
+ updateDocumentDateFrom(isoDate, date) {
153
+ this.documentDateFrom = date;
154
+ }
155
+
156
+ @action
157
+ updateDocumentDateTo(isoDate, date) {
158
+ this.documentDateTo = date;
159
+ }
160
+
161
+ @action
162
+ updatePublicationDateFrom(isoDate, date) {
163
+ this.publicationDateFrom = date;
164
+ }
165
+
166
+ @action
167
+ updatePublicationDateTo(isoDate, date) {
168
+ this.publicationDateTo = date;
169
+ }
170
+
171
+ @action
172
+ insertDecisionCitation(decision) {
173
+ this.args.insertDecisionCitation(decision);
174
+ this.closeModal();
175
+ }
176
+
177
+ @action
178
+ insertArticleCitation(decision, article) {
179
+ this.args.insertArticleCitation(decision, article);
180
+ this.closeModal();
181
+ }
182
+
183
+ @action
184
+ closeModal(legislationTypeUri, text) {
185
+ this.decisionResource.cancel();
186
+ this.args.closeModal(legislationTypeUri, text);
187
+ }
188
+
189
+ @action
190
+ closeDecisionDetail() {
191
+ this.selectedDecision = null;
192
+ }
193
+
194
+ @action
195
+ openDecisionDetail(decision) {
196
+ this.selectedDecision = decision;
197
+ }
198
+
199
+ // Pagination
200
+
201
+ @action
202
+ previousPage() {
203
+ --this.pageNumber;
204
+ }
205
+
206
+ @action
207
+ nextPage() {
208
+ ++this.pageNumber;
209
+ }
210
+
211
+ get rangeStart() {
212
+ return this.pageNumber * this.pageSize + 1;
213
+ }
214
+
215
+ get rangeEnd() {
216
+ const end = this.rangeStart + this.pageSize - 1;
217
+ return end > this.totalCount ? this.totalCount : end;
218
+ }
219
+
220
+ get isFirstPage() {
221
+ return this.pageNumber == 0;
222
+ }
223
+
224
+ get isLastPage() {
225
+ return this.rangeEnd == this.totalCount;
226
+ }
227
+ }
228
+
229
+ function getLocalizedMonths(intl, monthFormat = 'long') {
230
+ let someYear = 2021;
231
+ return [...Array(12).keys()].map((monthIndex) => {
232
+ let date = new Date(someYear, monthIndex);
233
+ return intl.formatDate(date, { month: monthFormat });
234
+ });
235
+ }
236
+
237
+ function getLocalizedDays(intl, weekdayFormat = 'long') {
238
+ let someSunday = new Date('2021-01-03');
239
+ return [...Array(7).keys()].map((index) => {
240
+ let weekday = new Date(someSunday.getTime());
241
+ weekday.setDate(someSunday.getDate() + index);
242
+ return intl.formatDate(weekday, { weekday: weekdayFormat });
243
+ });
244
+ }
@@ -0,0 +1,21 @@
1
+ <AuAlert
2
+ @alertTitle="{{t "citaten-plugin.citaten-plugin.alert.error-title"}}"
3
+ @alertSkin="error"
4
+ @alertIcon="alert-triangle"
5
+ @alertSize="{{if @fullSize "default" "small"}}"
6
+ @closable={{false}}
7
+ ...attributes>
8
+ <p>{{t "citaten-plugin.alert.error-intro"}}</p>
9
+ <code class="au-u-error citaten--error-code">{{@error}}</code>
10
+ <p>
11
+ {{t "citaten-plugin.alert.error-outro"}}
12
+ <AuLinkExternal
13
+ href="mailto:Gelinkt-Notuleren@vlaanderen.be"
14
+ @icon="mail"
15
+ @iconAlignment="left">
16
+ {{!-- template-lint-disable no-bare-strings --}}
17
+ Gelinkt-Notuleren@vlaanderen.be
18
+ </AuLinkExternal>.
19
+ </p>
20
+ </AuAlert>
21
+
@@ -0,0 +1,10 @@
1
+ <AuAlert
2
+ @alertTitle="{{t "citaten-plugin.citaten-plugin.alert.no-results"}}"
3
+ @alertSkin="warning"
4
+ @alertIcon="cross"
5
+ @alertSize="{{if @fullSize "default" "small"}}"
6
+ @closable={{false}}
7
+ class="{{unless @fullSize "au-u-margin-small"}}"
8
+ ...attributes>
9
+ </AuAlert>
10
+
@@ -0,0 +1,17 @@
1
+ {{#each this.snippets as |snippet|}}
2
+ <AuCard @flex={{true}} @divided={{true}} @expandable={{true}} @shadow={{true}} @isOpenInitially={{true}} @size="small" as |c|>
3
+ <c.header>
4
+ <AuHeading @level="3" @skin="6">
5
+ Document importeren
6
+ </AuHeading>
7
+ </c.header>
8
+ <c.content>
9
+ <p class="u-spacer--tiny">Er is een <a href="{{snippet.source}}" target="_blank" rel="noopener noreferrer">document</a> beschikbaar</p>
10
+ <p><strong>Wenst u dit document in te voegen?</strong></p>
11
+ {{#if this.besluitNode}}
12
+ <AuButton {{on "click" (fn this.insert snippet 'attachment')}} >Bijlage invoegen</AuButton>
13
+ {{/if}}
14
+ <AuButton {{on "click" (fn this.insert snippet)}} >Document invoegen</AuButton>
15
+ </c.content>
16
+ </AuCard>
17
+ {{/each}}
@@ -0,0 +1,95 @@
1
+ import Component from '@glimmer/component';
2
+ import { inject as service } from '@ember/service';
3
+ import { action } from '@ember/object';
4
+ import { tracked } from '@glimmer/tracking';
5
+
6
+ export default class ImportSnippetPluginCard extends Component {
7
+ @service importRdfaSnippet;
8
+ @tracked snippets = [];
9
+ @tracked besluitNode;
10
+
11
+ constructor() {
12
+ super(...arguments);
13
+ this.args.controller.onEvent(
14
+ 'selectionChanged',
15
+ this.selectionChangedHandler
16
+ );
17
+ }
18
+
19
+ @action
20
+ selectionChangedHandler() {
21
+ const { controller } = this.args;
22
+ const selectedRange = controller.selection.lastRange;
23
+ if (!selectedRange) {
24
+ console.info(
25
+ 'Selection did not have a range, skipping handling of the selectionChanged event'
26
+ );
27
+ return;
28
+ }
29
+ this.snippets = this.importRdfaSnippet.snippetsForType('roadsign');
30
+ const limitedDatastore = controller.datastore.limitToRange(
31
+ selectedRange,
32
+ 'rangeIsInside'
33
+ );
34
+ const besluit = limitedDatastore
35
+ .match(null, 'a', '>http://data.vlaanderen.be/ns/besluit#Besluit')
36
+ .asSubjectNodes()
37
+ .next().value;
38
+ if (besluit) {
39
+ this.besluitNode = [...besluit.nodes][0];
40
+ } else {
41
+ this.besluitNode = undefined;
42
+ }
43
+ }
44
+
45
+ @action
46
+ insert(snippet, type) {
47
+ const html = this.generateSnippetHtml(snippet, type);
48
+ let rangeToInsert;
49
+ if (this.besluitNode) {
50
+ rangeToInsert = this.args.controller.rangeFactory.fromInNode(
51
+ this.besluitNode,
52
+ this.besluitNode.getMaxOffset(),
53
+ this.besluitNode.getMaxOffset()
54
+ );
55
+ } else {
56
+ rangeToInsert = this.args.controller.selection.lastRange;
57
+ }
58
+ if (rangeToInsert) {
59
+ this.args.controller.executeCommand('insert-html', html, rangeToInsert);
60
+ this.importRdfaSnippet.removeSnippet(snippet);
61
+ } else {
62
+ console.warn('Could not find a range to insert, so we skipped inserting');
63
+ }
64
+ }
65
+
66
+ generateSnippetHtml(snippet, type) {
67
+ if (type === 'attachment') {
68
+ return `
69
+ <div property="http://lblod.data.gift/vocabularies/editor/isLumpNode">
70
+ <div
71
+ resource="${snippet.source}"
72
+ property="http://data.europa.eu/eli/ontology#related_to"
73
+ typeof="http://xmlns.com/foaf/0.1/Document http://lblod.data.gift/vocabularies/editor/SnippetAttachment"
74
+ >
75
+ Bijlage uit externe bron <a href="${snippet.source}">${
76
+ new URL(snippet.source).hostname
77
+ }</a>
78
+ <div property="http://www.w3.org/ns/prov#value">${
79
+ snippet.content
80
+ }</div>
81
+ </div>
82
+ </div>
83
+ `;
84
+ } else {
85
+ return `
86
+ <div property="http://lblod.data.gift/vocabularies/editor/isLumpNode">
87
+ Bijlage uit externe bron
88
+ <div property="http://data.europa.eu/eli/ontology#related_to" resource="${snippet.source}">
89
+ <div property="http://www.w3.org/ns/prov#value">${snippet.content}</div>
90
+ </div>
91
+ </div>
92
+ `;
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,33 @@
1
+ {{#if this.showCard}}
2
+ <AuCard @flex={{true}} @divided={{true}} @isOpenInitially={{true}} @expandable={{true}} @shadow={{true}} @size="small" as |c|>
3
+ <c.header>
4
+ <AuHeading @level="3" @skin="6">
5
+ {{t "insert-variable-plugin.variable"}}
6
+ </AuHeading>
7
+ </c.header>
8
+ <c.content>
9
+ <PowerSelect
10
+ @allowClear={{false}}
11
+ @searchEnabled={{false}}
12
+ @options={{this.variablesArray}}
13
+ @selected={{this.selectedVariable}}
14
+ @onChange={{this.updateSelectedVariable}} as |variable|
15
+ >
16
+ {{variable.label}}
17
+ </PowerSelect>
18
+ {{#if this.hasSubtype}}
19
+ <PowerSelect
20
+ @allowClear={{false}}
21
+ @searchEnabled={{false}}
22
+ @options={{this.subtypes}}
23
+ @selected={{this.selectedSubtype}}
24
+ @onChange={{this.updateSubtype}} as |subtype|
25
+ >
26
+ {{subtype.label}}
27
+ </PowerSelect>
28
+ {{/if}}
29
+ <AuButton {{on 'click' this.insert}} @disabled={{or (not this.selectedVariable) (and this.hasSubtype (not this.selectedSubtype))}}>{{t "insert-variable-plugin.button"}}</AuButton>
30
+ </c.content>
31
+ </AuCard>
32
+ {{/if}}
33
+