@lion/ui 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/README.md +23 -72
  2. package/components/button/src/LionButton.js +1 -1
  3. package/components/core/src/SlotMixin.js +3 -2
  4. package/components/core/test/SlotMixin.test.js +1 -1
  5. package/components/core/types/SlotMixinTypes.ts +4 -1
  6. package/components/dialog/test/lion-dialog.test.js +56 -0
  7. package/components/form-core/src/FocusMixin.js +33 -2
  8. package/components/form-core/src/LionField.js +3 -1
  9. package/components/form-core/src/validate/LionValidationFeedback.js +2 -5
  10. package/components/form-core/src/validate/ResultValidator.js +1 -1
  11. package/components/form-core/test/FocusMixin.test.js +33 -0
  12. package/components/form-core/types/validate/ValidateMixinTypes.ts +2 -2
  13. package/components/form-integrations/test/dialog-integrations.test.js +19 -0
  14. package/components/form-integrations/test/form-group-methods.test.js +11 -37
  15. package/components/form-integrations/test/form-integrations.test.js +4 -0
  16. package/components/form-integrations/test/helpers/umbrella-form.js +21 -18
  17. package/components/input-amount/src/LionInputAmount.js +13 -4
  18. package/components/input-amount/test/lion-input-amount.test.js +19 -20
  19. package/components/input-date/src/LionInputDate.js +2 -11
  20. package/components/input-datepicker/src/LionInputDatepicker.js +5 -2
  21. package/components/input-datepicker/test/lion-input-datepicker.test.js +20 -0
  22. package/components/input-file/src/FileHandle.js +98 -0
  23. package/components/input-file/src/LionInputFile.js +892 -0
  24. package/components/input-file/src/LionSelectedFileList.js +232 -0
  25. package/components/input-file/src/localizeNamespaceLoader.js +75 -0
  26. package/components/input-file/src/validators.js +114 -0
  27. package/components/input-file/test/FileValidators.test.js +170 -0
  28. package/components/input-file/test/lion-input-file.test.js +1168 -0
  29. package/components/input-file/test/lion-selected-file-list.test.js +207 -0
  30. package/components/input-file/translations/bg-BG.js +5 -0
  31. package/components/input-file/translations/bg.js +12 -0
  32. package/components/input-file/translations/cs-CZ.js +5 -0
  33. package/components/input-file/translations/cs.js +13 -0
  34. package/components/input-file/translations/de-DE.js +5 -0
  35. package/components/input-file/translations/de.js +12 -0
  36. package/components/input-file/translations/en-AU.js +5 -0
  37. package/components/input-file/translations/en-GB.js +5 -0
  38. package/components/input-file/translations/en-PH.js +5 -0
  39. package/components/input-file/translations/en-US.js +5 -0
  40. package/components/input-file/translations/en.js +12 -0
  41. package/components/input-file/translations/es-ES.js +5 -0
  42. package/components/input-file/translations/es.js +12 -0
  43. package/components/input-file/translations/fr-BE.js +5 -0
  44. package/components/input-file/translations/fr-FR.js +5 -0
  45. package/components/input-file/translations/fr.js +13 -0
  46. package/components/input-file/translations/hu-HU.js +5 -0
  47. package/components/input-file/translations/hu.js +12 -0
  48. package/components/input-file/translations/it-IT.js +5 -0
  49. package/components/input-file/translations/it.js +12 -0
  50. package/components/input-file/translations/nl-BE.js +5 -0
  51. package/components/input-file/translations/nl-NL.js +5 -0
  52. package/components/input-file/translations/nl.js +12 -0
  53. package/components/input-file/translations/pl-PL.js +5 -0
  54. package/components/input-file/translations/pl.js +12 -0
  55. package/components/input-file/translations/ro-RO.js +5 -0
  56. package/components/input-file/translations/ro.js +12 -0
  57. package/components/input-file/translations/ru-RU.js +5 -0
  58. package/components/input-file/translations/ru.js +12 -0
  59. package/components/input-file/translations/sk-SK.js +5 -0
  60. package/components/input-file/translations/sk.js +12 -0
  61. package/components/input-file/translations/uk-UA.js +5 -0
  62. package/components/input-file/translations/uk.js +12 -0
  63. package/components/input-file/translations/zh-CN.js +5 -0
  64. package/components/input-file/translations/zh.js +12 -0
  65. package/components/input-file/types/input-file.d.ts +32 -0
  66. package/components/input-tel-dropdown/src/LionInputTelDropdown.js +1 -4
  67. package/custom-elements.json +22127 -17708
  68. package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
  69. package/dist-types/components/core/types/SlotMixinTypes.d.ts +4 -0
  70. package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
  71. package/dist-types/components/dialog/test/lion-dialog.test.d.ts.map +1 -1
  72. package/dist-types/components/form-core/src/FocusMixin.d.ts.map +1 -1
  73. package/dist-types/components/form-core/src/LionField.d.ts +2 -1
  74. package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
  75. package/dist-types/components/form-core/src/validate/LionValidationFeedback.d.ts +4 -11
  76. package/dist-types/components/form-core/src/validate/LionValidationFeedback.d.ts.map +1 -1
  77. package/dist-types/components/form-core/src/validate/ResultValidator.d.ts +1 -1
  78. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts +5 -0
  79. package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts.map +1 -1
  80. package/dist-types/components/form-integrations/test/dialog-integrations.test.d.ts.map +1 -1
  81. package/dist-types/components/form-integrations/test/form-group-methods.test.d.ts +1 -0
  82. package/dist-types/components/form-integrations/test/form-group-methods.test.d.ts.map +1 -1
  83. package/dist-types/components/form-integrations/test/helpers/umbrella-form.d.ts.map +1 -1
  84. package/dist-types/components/input-amount/src/LionInputAmount.d.ts +2 -4
  85. package/dist-types/components/input-amount/src/LionInputAmount.d.ts.map +1 -1
  86. package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts +0 -1
  87. package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts.map +1 -1
  88. package/dist-types/components/input-date/src/LionInputDate.d.ts.map +1 -1
  89. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -1
  90. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts.map +1 -1
  91. package/dist-types/components/input-file/src/FileHandle.d.ts +55 -0
  92. package/dist-types/components/input-file/src/FileHandle.d.ts.map +1 -0
  93. package/dist-types/components/input-file/src/LionInputFile.d.ts +230 -0
  94. package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -0
  95. package/dist-types/components/input-file/src/LionSelectedFileList.d.ts +69 -0
  96. package/dist-types/components/input-file/src/LionSelectedFileList.d.ts.map +1 -0
  97. package/dist-types/components/input-file/src/localizeNamespaceLoader.d.ts +2 -0
  98. package/dist-types/components/input-file/src/localizeNamespaceLoader.d.ts.map +1 -0
  99. package/dist-types/components/input-file/src/validators.d.ts +58 -0
  100. package/dist-types/components/input-file/src/validators.d.ts.map +1 -0
  101. package/dist-types/components/input-file/test/FileValidators.test.d.ts +2 -0
  102. package/dist-types/components/input-file/test/FileValidators.test.d.ts.map +1 -0
  103. package/dist-types/components/input-file/test/lion-input-file.test.d.ts +5 -0
  104. package/dist-types/components/input-file/test/lion-input-file.test.d.ts.map +1 -0
  105. package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts +4 -0
  106. package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts.map +1 -0
  107. package/dist-types/components/input-file/translations/bg-BG.d.ts +13 -0
  108. package/dist-types/components/input-file/translations/bg-BG.d.ts.map +1 -0
  109. package/dist-types/components/input-file/translations/bg.d.ts +13 -0
  110. package/dist-types/components/input-file/translations/bg.d.ts.map +1 -0
  111. package/dist-types/components/input-file/translations/cs-CZ.d.ts +13 -0
  112. package/dist-types/components/input-file/translations/cs-CZ.d.ts.map +1 -0
  113. package/dist-types/components/input-file/translations/cs.d.ts +13 -0
  114. package/dist-types/components/input-file/translations/cs.d.ts.map +1 -0
  115. package/dist-types/components/input-file/translations/de-DE.d.ts +13 -0
  116. package/dist-types/components/input-file/translations/de-DE.d.ts.map +1 -0
  117. package/dist-types/components/input-file/translations/de.d.ts +13 -0
  118. package/dist-types/components/input-file/translations/de.d.ts.map +1 -0
  119. package/dist-types/components/input-file/translations/en-AU.d.ts +13 -0
  120. package/dist-types/components/input-file/translations/en-AU.d.ts.map +1 -0
  121. package/dist-types/components/input-file/translations/en-GB.d.ts +13 -0
  122. package/dist-types/components/input-file/translations/en-GB.d.ts.map +1 -0
  123. package/dist-types/components/input-file/translations/en-PH.d.ts +13 -0
  124. package/dist-types/components/input-file/translations/en-PH.d.ts.map +1 -0
  125. package/dist-types/components/input-file/translations/en-US.d.ts +13 -0
  126. package/dist-types/components/input-file/translations/en-US.d.ts.map +1 -0
  127. package/dist-types/components/input-file/translations/en.d.ts +13 -0
  128. package/dist-types/components/input-file/translations/en.d.ts.map +1 -0
  129. package/dist-types/components/input-file/translations/es-ES.d.ts +13 -0
  130. package/dist-types/components/input-file/translations/es-ES.d.ts.map +1 -0
  131. package/dist-types/components/input-file/translations/es.d.ts +13 -0
  132. package/dist-types/components/input-file/translations/es.d.ts.map +1 -0
  133. package/dist-types/components/input-file/translations/fr-BE.d.ts +13 -0
  134. package/dist-types/components/input-file/translations/fr-BE.d.ts.map +1 -0
  135. package/dist-types/components/input-file/translations/fr-FR.d.ts +13 -0
  136. package/dist-types/components/input-file/translations/fr-FR.d.ts.map +1 -0
  137. package/dist-types/components/input-file/translations/fr.d.ts +13 -0
  138. package/dist-types/components/input-file/translations/fr.d.ts.map +1 -0
  139. package/dist-types/components/input-file/translations/hu-HU.d.ts +13 -0
  140. package/dist-types/components/input-file/translations/hu-HU.d.ts.map +1 -0
  141. package/dist-types/components/input-file/translations/hu.d.ts +13 -0
  142. package/dist-types/components/input-file/translations/hu.d.ts.map +1 -0
  143. package/dist-types/components/input-file/translations/it-IT.d.ts +13 -0
  144. package/dist-types/components/input-file/translations/it-IT.d.ts.map +1 -0
  145. package/dist-types/components/input-file/translations/it.d.ts +13 -0
  146. package/dist-types/components/input-file/translations/it.d.ts.map +1 -0
  147. package/dist-types/components/input-file/translations/nl-BE.d.ts +13 -0
  148. package/dist-types/components/input-file/translations/nl-BE.d.ts.map +1 -0
  149. package/dist-types/components/input-file/translations/nl-NL.d.ts +13 -0
  150. package/dist-types/components/input-file/translations/nl-NL.d.ts.map +1 -0
  151. package/dist-types/components/input-file/translations/nl.d.ts +13 -0
  152. package/dist-types/components/input-file/translations/nl.d.ts.map +1 -0
  153. package/dist-types/components/input-file/translations/pl-PL.d.ts +13 -0
  154. package/dist-types/components/input-file/translations/pl-PL.d.ts.map +1 -0
  155. package/dist-types/components/input-file/translations/pl.d.ts +13 -0
  156. package/dist-types/components/input-file/translations/pl.d.ts.map +1 -0
  157. package/dist-types/components/input-file/translations/ro-RO.d.ts +13 -0
  158. package/dist-types/components/input-file/translations/ro-RO.d.ts.map +1 -0
  159. package/dist-types/components/input-file/translations/ro.d.ts +13 -0
  160. package/dist-types/components/input-file/translations/ro.d.ts.map +1 -0
  161. package/dist-types/components/input-file/translations/ru-RU.d.ts +13 -0
  162. package/dist-types/components/input-file/translations/ru-RU.d.ts.map +1 -0
  163. package/dist-types/components/input-file/translations/ru.d.ts +13 -0
  164. package/dist-types/components/input-file/translations/ru.d.ts.map +1 -0
  165. package/dist-types/components/input-file/translations/sk-SK.d.ts +13 -0
  166. package/dist-types/components/input-file/translations/sk-SK.d.ts.map +1 -0
  167. package/dist-types/components/input-file/translations/sk.d.ts +13 -0
  168. package/dist-types/components/input-file/translations/sk.d.ts.map +1 -0
  169. package/dist-types/components/input-file/translations/uk-UA.d.ts +13 -0
  170. package/dist-types/components/input-file/translations/uk-UA.d.ts.map +1 -0
  171. package/dist-types/components/input-file/translations/uk.d.ts +13 -0
  172. package/dist-types/components/input-file/translations/uk.d.ts.map +1 -0
  173. package/dist-types/components/input-file/translations/zh-CN.d.ts +13 -0
  174. package/dist-types/components/input-file/translations/zh-CN.d.ts.map +1 -0
  175. package/dist-types/components/input-file/translations/zh.d.ts +13 -0
  176. package/dist-types/components/input-file/translations/zh.d.ts.map +1 -0
  177. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts +6 -0
  178. package/dist-types/components/input-stepper/src/LionInputStepper.d.ts.map +1 -1
  179. package/dist-types/components/input-tel-dropdown/src/LionInputTelDropdown.d.ts +0 -1
  180. package/dist-types/components/input-tel-dropdown/src/LionInputTelDropdown.d.ts.map +1 -1
  181. package/dist-types/exports/define/lion-input-file.d.ts +2 -0
  182. package/dist-types/exports/define/lion-input-file.d.ts.map +1 -0
  183. package/dist-types/exports/define/lion-selected-file-list.d.ts +2 -0
  184. package/dist-types/exports/define/lion-selected-file-list.d.ts.map +1 -0
  185. package/dist-types/exports/input-file.d.ts +4 -0
  186. package/dist-types/exports/input-file.d.ts.map +1 -0
  187. package/dist-types/tsconfig.tsbuildinfo +1 -1
  188. package/docs/components/button/extensions/bootstrap-button.mjs +240 -0
  189. package/docs/components/button/extensions.md +30 -0
  190. package/docs/components/checkbox-group/overview.md +2 -2
  191. package/docs/components/collapsible/overview.md +1 -1
  192. package/docs/components/combobox/{examples.md → extensions.md} +51 -43
  193. package/docs/components/combobox/overview.md +1 -1
  194. package/docs/components/combobox/src/google-combobox/google-combobox.js +4 -1
  195. package/docs/components/combobox/src/md-combobox/md-combobox.js +40 -38
  196. package/docs/components/combobox/src/wa-combobox/wa-combobox.js +204 -209
  197. package/docs/components/combobox/use-cases.md +1 -1
  198. package/docs/components/dialog/overview.md +1 -1
  199. package/docs/components/fieldset/overview.md +5 -5
  200. package/docs/components/form/overview.md +3 -3
  201. package/docs/components/icon/use-cases.md +1 -1
  202. package/docs/components/input/overview.md +1 -1
  203. package/docs/components/input-amount/overview.md +3 -3
  204. package/docs/components/input-amount/use-cases.md +4 -2
  205. package/docs/components/input-date/overview.md +3 -3
  206. package/docs/components/input-datepicker/overview.md +5 -5
  207. package/docs/components/input-datepicker/use-cases.md +11 -0
  208. package/docs/components/input-email/overview.md +2 -2
  209. package/docs/components/input-file/index.md +3 -0
  210. package/docs/components/input-file/overview.md +32 -0
  211. package/docs/components/input-file/use-cases.md +424 -0
  212. package/docs/components/input-iban/overview.md +2 -2
  213. package/docs/components/input-range/overview.md +2 -2
  214. package/docs/components/input-stepper/overview.md +1 -1
  215. package/docs/components/input-tel/overview.md +1 -1
  216. package/docs/components/input-tel/use-cases.md +6 -6
  217. package/docs/components/input-tel-dropdown/{examples.md → extensions.md} +1 -1
  218. package/docs/components/input-tel-dropdown/overview.md +1 -1
  219. package/docs/components/radio-group/overview.md +3 -3
  220. package/docs/components/select-rich/use-cases.md +1 -1
  221. package/docs/components/tabs/examples.md +1 -1
  222. package/docs/fundamentals/index.md +4 -4
  223. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  224. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  225. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  226. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  227. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  228. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  229. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  230. package/docs/fundamentals/rationales/accessibility.md +28 -0
  231. package/docs/fundamentals/systems/core/SlotMixin.md +148 -0
  232. package/docs/fundamentals/systems/core/overview.md +1 -1
  233. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  234. package/docs/fundamentals/systems/form/model-value.md +1 -1
  235. package/docs/fundamentals/systems/form/overview.md +28 -28
  236. package/docs/fundamentals/systems/form/use-cases.md +2 -0
  237. package/docs/fundamentals/systems/form/validate.md +1 -1
  238. package/docs/fundamentals/systems/localize/overview.md +4 -4
  239. package/docs/fundamentals/systems/overlays/_configuration-positioning.md +116 -0
  240. package/docs/fundamentals/systems/overlays/_edge-cases.md +145 -0
  241. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  242. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  243. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  244. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  245. package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +21 -0
  246. package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +19 -0
  247. package/docs/fundamentals/tools/singleton-manager/example-success/index.md +18 -0
  248. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  249. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  250. package/docs/guides/how-to/create-a-form.md +88 -0
  251. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  252. package/docs/guides/index.md +8 -8
  253. package/docs/guides/principles/index.md +5 -5
  254. package/docs/guides/principles/styling.md +1 -1
  255. package/exports/define/lion-input-file.js +3 -0
  256. package/exports/define/lion-selected-file-list.js +3 -0
  257. package/exports/input-file.js +3 -0
  258. package/package.json +3 -2
  259. package/docs/components/combobox/src/google-combobox/assets/googlelogo_color_272x92dp.png +0 -0
  260. package/docs/components/dialog/src/demo-dialog-style.js +0 -3
  261. package/docs/components/select-rich/src/flags.png +0 -0
  262. package/docs/components/select-rich/src/flags@2x.png +0 -0
  263. package/docs/fundamentals/systems/form/assets/FormatMixinDiagram-1.svg +0 -1
  264. package/docs/fundamentals/systems/form/assets/FormatMixinDiagram-2.svg +0 -1
  265. package/docs/fundamentals/systems/form/assets/FormatMixinDiagram-3.svg +0 -84
  266. package/docs/fundamentals/tools/ajax/assets/naga.json +0 -9
  267. package/docs/fundamentals/tools/ajax/assets/pabu.json +0 -9
  268. package/docs/fundamentals/tools/singleton-manager/.gitignore +0 -1
  269. package/docs/override.js +0 -15
@@ -0,0 +1,32 @@
1
+ # Input File >> Overview ||10
2
+
3
+ A web component based on the file input field.
4
+
5
+ ```js script
6
+ import { html } from '@mdjs/mdjs-preview';
7
+ import '@lion/ui/define/lion-input-file.js';
8
+ ```
9
+
10
+ ```js preview-story
11
+ export const main = () => {
12
+ return html` <lion-input-file label="Upload" name="upload"></lion-input-file> `;
13
+ };
14
+ ```
15
+
16
+ ## Features
17
+
18
+ - Based on our [input](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input/overview.md)
19
+ - Default labels and validation messages in different languages
20
+ - Options for multi file upload and drop-zone.
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ npm i --save @lion/ui
26
+ ```
27
+
28
+ ```js
29
+ import { LionInputFile } from '@lion/ui/input-file.js';
30
+ // or
31
+ import '@lion/ui/define/lion-input-file.js';
32
+ ```
@@ -0,0 +1,424 @@
1
+ # Input File >> Use Cases ||20
2
+
3
+ ```js script
4
+ import { Required, Validator } from '@lion/ui/form-core.js';
5
+ import { loadDefaultFeedbackMessages } from '@lion/ui/validate-messages.js';
6
+ import { html } from '@mdjs/mdjs-preview';
7
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
8
+ import { LitElement } from 'lit';
9
+ import '@lion/ui/define/lion-input-file.js';
10
+ loadDefaultFeedbackMessages();
11
+ ```
12
+
13
+ ## Features
14
+
15
+ API calls to upload the selected files can be done in below two ways which is driven by `uploadOnSelect` property
16
+
17
+ - On `form` submit
18
+ - On file selection
19
+
20
+ ## Parameters
21
+
22
+ ```html
23
+ <lion-input-file
24
+ multiple
25
+ label="Attachments"
26
+ help-text="Signature scan file"
27
+ max-file-size="1024000"
28
+ accept="application/PDF"
29
+ upload-on-select
30
+ >
31
+ </lion-input-file>
32
+ ```
33
+
34
+ ### modelValue
35
+
36
+ Array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File); Contains all the uploaded files
37
+
38
+ ### multiple
39
+
40
+ Boolean; setting to `true` allows selecting multiple files.
41
+
42
+ ### EnableDragAndDrop
43
+
44
+ Boolean; setting to `true` allows file upload through drag and drop.
45
+
46
+ ### uploadOnSelect
47
+
48
+ Boolean;
49
+
50
+ - Set to `true` when API calls for file upload needs to be done on file selection
51
+ - Set to `false` when API calls for file upload needs to be done on form submit.
52
+ - Default is `false`.
53
+
54
+ ### uploadResponse
55
+
56
+ An array of the file-specific data to display the feedback of fileUpload
57
+
58
+ Data structure for uploadResponse array:
59
+
60
+ ```js
61
+ [
62
+ {
63
+ name: 'file1.txt', // name of uploaded file
64
+ status: '', // SUCCESS | FAIL | LOADING
65
+ errorMessage: '', // custom error message to be displayed
66
+ id: '', // unique id for future execution reference
67
+ },
68
+ {
69
+ name: 'file2.txt', // name of uploaded file
70
+ status: '', // SUCCESS | FAIL | LOADING
71
+ errorMessage: '', // custom error message to be displayed
72
+ id: '', // unique id for future execution reference
73
+ },
74
+ ];
75
+ ```
76
+
77
+ ## Events
78
+
79
+ ### model-value-changed
80
+
81
+ Fired when modelValue property changes.
82
+
83
+ ### file-list-changed
84
+
85
+ Fired when files are uploaded. Event `detail` gives list of newly added files in `newFiles` key
86
+
87
+ ```js
88
+ ev.detail.newFiles;
89
+ ```
90
+
91
+ ### file-removed
92
+
93
+ Fired when a file is removed. Event `detail` gives
94
+
95
+ - File objected for removed file in `ev.detail.removedFile`
96
+ - Status of this file can be used as `ev.detail.status`
97
+ - uploadResponse for this file as set using `uploadResponse` property. Can use used as `ev.detail.uploadResponse`
98
+
99
+ ## Usage
100
+
101
+ ### Basic File upload
102
+
103
+ When file has to be uploaded as soon as it is selected by the user. Use `file-list-changed` event to get the newly added file, upload it to your server and set the response back to component via `uploadResponse` property.
104
+
105
+ ```js preview-story
106
+ export const basicFileUpload = () => {
107
+ return html`
108
+ <lion-input-file
109
+ label="Label"
110
+ max-file-size="1024000"
111
+ accept=".jpg,.svg,.xml,image/svg+xml"
112
+ @file-list-changed="${ev => {
113
+ console.log('fileList', ev.detail.newFiles);
114
+ }}"
115
+ >
116
+ </lion-input-file>
117
+ `;
118
+ };
119
+ ```
120
+
121
+ ### Validation
122
+
123
+ #### Accept
124
+
125
+ The `accept` attribute value is a string that defines the file types the file input should accept. This string is a comma-separated list of unique file type specifiers.
126
+
127
+ For more info please consult the [MDN documentation for "accept"](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept).
128
+
129
+ ```js preview-story
130
+ export const acceptValidator = () => {
131
+ return html`
132
+ <lion-input-file
133
+ accept=".jpg,.svg,.xml,image/svg+xml"
134
+ label="Upload"
135
+ enable-drop-zone
136
+ @file-list-changed="${ev => {
137
+ console.log(ev.detail.newFiles);
138
+ }}"
139
+ >
140
+ </lion-input-file>
141
+ `;
142
+ };
143
+ ```
144
+
145
+ #### Maximum File Size
146
+
147
+ The `max-file-size` attribute sets the maximum file size in bytes.
148
+
149
+ ```js preview-story
150
+ export const sizeValidator = () => {
151
+ return html`
152
+ <lion-input-file
153
+ max-file-size="2048"
154
+ label="Upload"
155
+ @file-list-changed="${ev => {
156
+ console.log(ev.detail.newFiles);
157
+ }}"
158
+ >
159
+ </lion-input-file>
160
+ `;
161
+ };
162
+ ```
163
+
164
+ ### Multiple file upload
165
+
166
+ When file has to be uploaded as soon as it is selected by the user. Use `file-list-changed` event to get the newly added files, upload it to your server and set the response back to component via `uploadResponse` property for each file.
167
+
168
+ ```js preview-story
169
+ export const multipleFileUpload = () => {
170
+ return html`
171
+ <lion-input-file
172
+ label="Upload"
173
+ name="upload"
174
+ multiple
175
+ max-file-size="1024000"
176
+ @file-removed="${ev => {
177
+ console.log('removed file details', ev.detail);
178
+ }}"
179
+ @file-list-changed="${ev => {
180
+ console.log('file-list-changed', ev.detail.newFiles);
181
+ }}"
182
+ @model-value-changed="${ev => {
183
+ console.log('model-value-changed', ev);
184
+ }}"
185
+ >
186
+ </lion-input-file>
187
+ `;
188
+ };
189
+ ```
190
+
191
+ ### Pre-filled state
192
+
193
+ The pre-filled state of the file upload component shows the files that were being assigned by the user initially.
194
+
195
+ On every reload of page, the file upload component reverts to the initial state and using the `uploadResponse` property, shows the names(not links) of previously assigned files.
196
+
197
+ **Note:**
198
+
199
+ - the list of prefilled files will not be available in `modelValue` or `serializedValue`. This is because value cannot be assigned to native `input` with type `file`
200
+ - Only `Required` validation (if set on `lion-file-input`) is triggered for files which are prefilled.
201
+
202
+ ```js preview-story
203
+ export const prefilledState = () => {
204
+ return html`
205
+ <lion-input-file
206
+ label="Upload"
207
+ name="myFiles"
208
+ multiple
209
+ .validators="${[new Required()]}"
210
+ .uploadResponse="${[
211
+ {
212
+ name: 'file1.txt',
213
+ status: 'SUCCESS',
214
+ errorMessage: '',
215
+ id: '132',
216
+ },
217
+ {
218
+ name: 'file2.txt',
219
+ status: 'SUCCESS',
220
+ errorMessage: '',
221
+ id: 'abcd',
222
+ },
223
+ ]}"
224
+ >
225
+ </lion-input-file>
226
+ `;
227
+ };
228
+ ```
229
+
230
+ ### With form submit
231
+
232
+ **Note:** When `lion-input-file` is prefilled, the list of prefilled files will not be available in `modelValue` or `serializedValue`. This is because value cannot be assigned to native `input` with type `file`.
233
+
234
+ ```js preview-story
235
+ const myFormReset = ev => {
236
+ const input = ev.target.querySelector('lion-input-file');
237
+ input.reset();
238
+ console.log(input.modelValue);
239
+ };
240
+
241
+ const myFormSubmit = ev => {
242
+ ev.preventDefault();
243
+ const input = ev.target.querySelector('lion-input-file');
244
+ console.log(input.hasFeedbackFor);
245
+ console.log(input.serializedValue);
246
+ return false;
247
+ };
248
+
249
+ export const withIngForm = () => {
250
+ class FilenameLengthValidator extends Validator {
251
+ static get validatorName() {
252
+ return 'FilenameLengthValidator';
253
+ }
254
+
255
+ static getMessage(data) {
256
+ return `Filename length should not exceed ${data.params.maxFilenameLength} characters`;
257
+ }
258
+
259
+ // eslint-disable-next-line class-methods-use-this
260
+ checkFilenameLength(val, allowedFileNameLength) {
261
+ return val <= allowedFileNameLength;
262
+ }
263
+
264
+ execute(modelVal, { maxFilenameLength }) {
265
+ const invalidFileIndex = modelVal.findIndex(
266
+ file => !this.checkFilenameLength(file.name.length, maxFilenameLength),
267
+ );
268
+ return invalidFileIndex > -1;
269
+ }
270
+ }
271
+
272
+ return html`
273
+ <form @submit="${myFormSubmit}" @reset="${myFormReset}">
274
+ <lion-input-file
275
+ label="Upload"
276
+ name="upload"
277
+ multiple
278
+ .validators="${[new Required(), new FilenameLengthValidator({ maxFilenameLength: 20 })]}"
279
+ .uploadResponse="${[
280
+ {
281
+ name: 'file1.zip',
282
+ status: 'SUCCESS',
283
+ id: '132',
284
+ },
285
+ {
286
+ name: 'file2.zip',
287
+ status: 'SUCCESS',
288
+ id: 'abcd',
289
+ },
290
+ ]}"
291
+ >
292
+ </lion-input-file>
293
+ <button type="reset">Reset</button>
294
+ <button>Upload</button>
295
+ </form>
296
+ `;
297
+ };
298
+ ```
299
+
300
+ ### Without form submit
301
+
302
+ Set `uploadOnSelect` property to `true`. This option can be used when Server API calls are needed as soon as it is selected by the user.
303
+
304
+ For this scenario, the list of files is displayed based on the `uploadResponse` property which needs to maintained by the consumers of this component
305
+
306
+ Below is the flow:
307
+
308
+ #### When user uploads new file(s)
309
+
310
+ 1. `file-list-changed` event is fired from component with the newly added files
311
+ 2. Initiate the request to your backend API and set the status of the relevant files to `LOADING` in `uploadResponse` property
312
+ 3. Once the API request in completed, set the status of relevant files to `SUCCESS` or `FAIL` in `uploadResponse` property
313
+
314
+ #### When user deletes a file
315
+
316
+ 1. `file-removed` event is fired from component with the deleted file
317
+ 2. Initiate the delete request to your backend API and set the status of the relevant files as `LOADING` in `uploadResponse` property
318
+ 3. Once the API request is completed, delete the file object from `uploadResponse` property
319
+
320
+ ```js preview-story
321
+ export const uploadWithoutFormSubmit = () => {
322
+ return html`
323
+ <lion-input-file
324
+ label="Upload"
325
+ name="upload"
326
+ multiple
327
+ upload-on-select
328
+ @file-removed="${ev => {
329
+ ev.target.uploadResponse[
330
+ ev.target.uploadResponse.findIndex(file => file.name === ev.detail.uploadResponse.name)
331
+ ].status = 'LOADING';
332
+ ev.target.uploadResponse = [...ev.target.uploadResponse]; // update uploadResponse after API calls are completed
333
+ setTimeout(() => {
334
+ ev.target.uploadResponse[
335
+ ev.target.uploadResponse.findIndex(file => file.name === ev.detail.uploadResponse.name)
336
+ ] = {};
337
+ ev.target.uploadResponse = [...ev.target.uploadResponse]; // update uploadResponse after API calls are completed
338
+ }, 1000);
339
+ }}"
340
+ @file-list-changed="${ev => {
341
+ if (!ev.detail.newFiles[0]) {
342
+ return;
343
+ }
344
+ ev.target.uploadResponse[
345
+ ev.target.uploadResponse.findIndex(file => file.name === ev.detail.newFiles[0].name)
346
+ ].status = 'LOADING';
347
+ ev.target.uploadResponse = [...ev.target.uploadResponse]; // update uploadResponse after API calls are completed
348
+
349
+ if (ev.detail.newFiles[1]) {
350
+ ev.target.uploadResponse[
351
+ ev.target.uploadResponse.findIndex(file => file.name === ev.detail.newFiles[1].name)
352
+ ].status = 'LOADING';
353
+ ev.target.uploadResponse = [...ev.target.uploadResponse]; // update uploadResponse after API calls are completed
354
+ }
355
+ setTimeout(() => {
356
+ ev.target.uploadResponse[
357
+ ev.target.uploadResponse.findIndex(file => file.name === ev.detail.newFiles[0].name)
358
+ ].status = 'SUCCESS';
359
+ ev.target.uploadResponse = [...ev.target.uploadResponse]; // update uploadResponse after API calls are completed
360
+ }, 3000);
361
+
362
+ setTimeout(() => {
363
+ if (ev.detail.newFiles[1]) {
364
+ const file1Status = {
365
+ name: ev.detail.newFiles[1].name,
366
+ status: 'FAIL',
367
+ errorMessage: 'error from server',
368
+ };
369
+ ev.target.uploadResponse[
370
+ ev.target.uploadResponse.findIndex(file => file.name === ev.detail.newFiles[1].name)
371
+ ] = {
372
+ name: ev.detail.newFiles[1].name,
373
+ status: 'FAIL',
374
+ errorMessage: 'error from server',
375
+ };
376
+ ev.target.uploadResponse = [...ev.target.uploadResponse];
377
+ }
378
+ }, 3000);
379
+ }}"
380
+ >
381
+ </lion-input-file>
382
+ `;
383
+ };
384
+ ```
385
+
386
+ ### Drag and Drop
387
+
388
+ Set the `enableDropZone` parameter to `true` to use the drag and drop functionality in the component.
389
+
390
+ Drag and drop the files to be uploaded to the server.
391
+
392
+ ```js preview-story
393
+ export const dragAndDrop = () => {
394
+ return html`
395
+ <lion-input-file
396
+ label="Upload"
397
+ name="myFiles"
398
+ accept=".png"
399
+ max-file-size="1024000"
400
+ enable-drop-zone
401
+ multiple
402
+ .validators="${[new Required()]}"
403
+ >
404
+ </lion-input-file>
405
+ `;
406
+ };
407
+ ```
408
+
409
+ ### Posting file to API using axios
410
+
411
+ You can retrieve the uploaded files in `file-list-changed` event or from `modelValue` property of this component
412
+
413
+ To submit files you can refer to the following code snippet:
414
+
415
+ ```js
416
+ const formData = new FormData();
417
+ const inputFile = document.querySelector('lion-input-file').modelValue;
418
+ formData.append('file', inputFile.querySelector('input').files);
419
+ axios.post('upload_file', formData, {
420
+ headers: {
421
+ 'Content-Type': 'multipart/form-data',
422
+ },
423
+ });
424
+ ```
@@ -16,9 +16,9 @@ export const main = () => {
16
16
 
17
17
  ## Features
18
18
 
19
- - Based on our [input](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input/overview.md)
19
+ - Based on our [input](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input/overview.md)
20
20
  - Default label in different languages
21
- - Makes use of IBAN specific [validate](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/systems/form/validate.md) with corresponding error messages in different languages
21
+ - Makes use of IBAN specific [validate](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/systems/form/validate.md) with corresponding error messages in different languages
22
22
  - IsIBAN (default)
23
23
  - IsCountryIBAN
24
24
  - Parses IBANs automatically
@@ -15,11 +15,11 @@ export const main = () => html`
15
15
 
16
16
  ## Features
17
17
 
18
- - Based on our [input](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input/overview.md).
18
+ - Based on our [input](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input/overview.md).
19
19
  - Shows `modelValue` and `unit` above the range input.
20
20
  - Shows `min` and `max` value after the range input.
21
21
  - Can hide the `min` and `max` value via `no-min-max-labels`.
22
- - Makes use of [formatNumber](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/systems/localize/numbers.md) for formatting and parsing.
22
+ - Makes use of [formatNumber](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/systems/localize/numbers.md) for formatting and parsing.
23
23
 
24
24
  ## Installation
25
25
 
@@ -18,7 +18,7 @@ export const main = () => html`
18
18
 
19
19
  ## Features
20
20
 
21
- - Based on our [input](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input/overview.md).
21
+ - Based on our [input](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input/overview.md).
22
22
  - Set `min` and `max` value to define the range.
23
23
  - Set `step` value in integer or decimal to increase and decrease the value.
24
24
  - Use `ArrowUp` or `ArrowDown` to update the value.
@@ -39,7 +39,7 @@ export const main = () => {
39
39
 
40
40
  ## Features
41
41
 
42
- - Extends our [input](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input/overview.md)
42
+ - Extends our [input](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input/overview.md)
43
43
  - Shows a mobile telephone keypad on mobile (by having a native `<input inputmode="tel">` inside)
44
44
  - Can be configured with a list of allowed region codes
45
45
  - Will be preconfigured with region derived from locale
@@ -22,7 +22,7 @@ Say we have the following telephone number from Madrid, Spain: `+34919930432`.
22
22
  It contains a [country code](https://en.wikipedia.org/wiki/Country_code) (34), an [area code](https://en.wikipedia.org/wiki/Telephone_numbering_plan#Area_code) (91) and a [dial code](https://en.wikipedia.org/wiki/Mobile_dial_code) (+34 91).
23
23
  Input Tel interprets phone numbers based on their [region code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2): a two character long region representation('ES' in the telephone number above).
24
24
 
25
- The table below lists all possible regions worldwide. When [allowed regions](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel/#allowed-regions) are not configured,
25
+ The table below lists all possible regions worldwide. When [allowed regions](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel/#allowed-regions) are not configured,
26
26
  all of them will be supported as values of Input Tel.
27
27
 
28
28
  ```js story
@@ -37,11 +37,11 @@ export const regionCodesTable = () => {
37
37
  The active region (accessible via readonly accessor `.activeRegion`) determines how validation and formatting
38
38
  should be applied. It is dependent on the following factors:
39
39
 
40
- - [allowed regions](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel/#allowed-regions): a list that determines what is allowed to become .activeRegion. If
41
- [.allowedRegions has only one entry](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel/#restrict-to-one-region), .activeRegion will always be this value.
40
+ - [allowed regions](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel/#allowed-regions): a list that determines what is allowed to become .activeRegion. If
41
+ [.allowedRegions has only one entry](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel/#restrict-to-one-region), .activeRegion will always be this value.
42
42
  - the modelValue or viewValue: once it contains sufficient info to derive its region code (and
43
- the derived code is inside [allowed regions](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel/#allowed-regions) if configured)
44
- - active locale (and the derived locale is inside [allowed regions](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel/#allowed-regions) if configured)
43
+ the derived code is inside [allowed regions](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel/#allowed-regions) if configured)
44
+ - active locale (and the derived locale is inside [allowed regions](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel/#allowed-regions) if configured)
45
45
 
46
46
  What follows from the list above is that .activeRegion can change dynamically, after a value
47
47
  change in the text box by the user (or when locales or allowed regions would be changed by the
@@ -130,7 +130,7 @@ export const heuristic = () => {
130
130
  Once it is configured, validation and formatting will be restricted to those
131
131
  values that are present in this list.
132
132
 
133
- > Note that for [InputTelDropdown](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel-dropdown/index.md), only allowed regions will
133
+ > Note that for [InputTelDropdown](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel-dropdown/index.md), only allowed regions will
134
134
  > be shown in the dropdown list.
135
135
 
136
136
  ```js preview-story
@@ -1,4 +1,4 @@
1
- # Input Tel Dropdown >> Examples ||30
1
+ # Input Tel Dropdown >> Extensions ||30
2
2
 
3
3
  ```js script
4
4
  import { html } from '@mdjs/mdjs-preview';
@@ -19,7 +19,7 @@ export const main = () => {
19
19
 
20
20
  ## Features
21
21
 
22
- - Extends our [input-tel](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/input-tel/overview.md)
22
+ - Extends our [input-tel](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/input-tel/overview.md)
23
23
  - Shows dropdown list with all possible regions
24
24
  - Shows only allowed regions in dropdown list when .allowedRegions is configured
25
25
  - Highlights regions on top of dropdown list when .preferredRegions is configured
@@ -20,12 +20,12 @@ export const main = () => html`
20
20
  `;
21
21
  ```
22
22
 
23
- - Make sure that to use a name attribute as it is necessary for our [form](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/form/overview.md)'s serialization result.
24
- - If you have many options for a user to pick from, consider using our [select](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/select/overview.md) instead.
23
+ - Make sure that to use a name attribute as it is necessary for our [form](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/form/overview.md)'s serialization result.
24
+ - If you have many options for a user to pick from, consider using our [select](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/select/overview.md) instead.
25
25
 
26
26
  ## Features
27
27
 
28
- Since it extends from our [fieldset](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/fieldset/overview.md), it has all the features a fieldset has.
28
+ Since it extends from our [fieldset](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/fieldset/overview.md), it has all the features a fieldset has.
29
29
 
30
30
  - Get or set the checked value of the group:
31
31
  - modelValue (default) - `checkedValue()`
@@ -302,7 +302,7 @@ LionSelectRich will give it acces to:
302
302
  - LionSelectRich itself, via `.hostElement`
303
303
 
304
304
  Code of an advanced custom invoker is shown below (this is the code for the
305
- invoker used in [IntlSelectRich](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/components/select-rich/examples.md)).
305
+ invoker used in [IntlSelectRich](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/components/select-rich/examples.md)).
306
306
  The invoker is usually added in the invoker slot of the LionSelectRich subclass.
307
307
  However, it would also be possible for an application developer to provide the invoker
308
308
  by putting it in light dom:
@@ -9,7 +9,7 @@ import './src/lea-tab-panel.js';
9
9
 
10
10
  ## Lea Tabs
11
11
 
12
- Learn how to create the `lea tabs` in our ["introducing lion" blogpost](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/blog/ing-open-sources-lion.md).
12
+ Learn how to create the `lea tabs` in our ["introducing lion" blogpost](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/blog/ing-open-sources-lion.md).
13
13
 
14
14
  ```js preview-story
15
15
  export const main = () => html`
@@ -9,11 +9,11 @@ Here you find more details about what we offer.
9
9
 
10
10
  Let's see what each section describes.
11
11
 
12
- 1. [Systems](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/systems/core/overview.md) <br>
12
+ 1. [Systems](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/systems/core/overview.md) <br>
13
13
  These are the fundamental systems that power all of our components.
14
- 2. [Tools](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/tools/helpers/overview.md) <br>
14
+ 2. [Tools](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/tools/helpers/overview.md) <br>
15
15
  Frontend Tools useful for web development but are not visual and therefore are not components.
16
- 3. [Node Tools](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md) <br>
16
+ 3. [Node Tools](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md) <br>
17
17
  Node tools to analyse the code and for extending the documentation.
18
- 4. [Rationales](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/rationales/side-effects.md) <br>
18
+ 4. [Rationales](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/rationales/side-effects.md) <br>
19
19
  The reasoning behind some of our decisions.
@@ -45,7 +45,7 @@ export default {
45
45
  ### referenceCollections
46
46
 
47
47
  A list of file system paths. They can be defined relative from the current project root or they can be full paths.
48
- When a [MatchAnalyzer](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/node-tools/providence-analytics/analyzer.md) like `match-imports` or `match-subclasses` is used, the default reference(s) can be configured here. For instance: ['/path/to/@lion/ui/form.js']
48
+ When a [MatchAnalyzer](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/node-tools/providence-analytics/analyzer.md) like `match-imports` or `match-subclasses` is used, the default reference(s) can be configured here. For instance: ['/path/to/@lion/ui/form.js']
49
49
 
50
50
  An example:
51
51
 
@@ -108,4 +108,4 @@ QueryOutput structure could be simplified in the future.
108
108
 
109
109
  The output files stored in the file system always need to be machine independent:
110
110
  this means that all machine specific information, like a complete filepath, needs to be removed from a QueryOutput (paths relative from project root are still allowed).
111
- In that way, the caching mechanism (based on hash comparisons) as described in [Analyzer](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/node-tools/providence-analytics/analyzer.md) is guaranteed to work across different machines.
111
+ In that way, the caching mechanism (based on hash comparisons) as described in [Analyzer](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/node-tools/providence-analytics/analyzer.md) is guaranteed to work across different machines.
@@ -7,7 +7,7 @@ A few examples are:
7
7
  - find-exports
8
8
  - match-imports
9
9
 
10
- An analyzer will give back a [QueryResult](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/node-tools/providence-analytics/QueryResult.md) that will be written to the file system by Providence.
10
+ An analyzer will give back a [QueryResult](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/node-tools/providence-analytics/QueryResult.md) that will be written to the file system by Providence.
11
11
  All analyzers need to extend from the `Analyzer` base class, found in `src/program/analyzers/helpers`.
12
12
 
13
13
  ## Public api
@@ -1,6 +1,6 @@
1
1
  # Node Tools >> Providence Analytics >> Dashboard ||30
2
2
 
3
- An interactive overview of all aggregated [QueryResults](https://github.com/ing-bank/lion/blob/ede8412cbca3f6dd025797336745330f31706ad3/docs/fundamentals/node-tools/providence-analytics/QueryResult.md) can be found in the dashboard.
3
+ An interactive overview of all aggregated [QueryResults](https://github.com/ing-bank/lion/blob/951de3e9b282ce8b8797f9aae890f125f96ee5ce/docs/fundamentals/node-tools/providence-analytics/QueryResult.md) can be found in the dashboard.
4
4
  The dashboard is a small nodejs server (based on es-dev-server + middleware) and a frontend
5
5
  application.
6
6