@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.
- package/README.md +23 -72
- package/components/button/src/LionButton.js +1 -1
- package/components/core/src/SlotMixin.js +3 -2
- package/components/core/test/SlotMixin.test.js +1 -1
- package/components/core/types/SlotMixinTypes.ts +4 -1
- package/components/dialog/test/lion-dialog.test.js +56 -0
- package/components/form-core/src/FocusMixin.js +33 -2
- package/components/form-core/src/LionField.js +3 -1
- package/components/form-core/src/validate/LionValidationFeedback.js +2 -5
- package/components/form-core/src/validate/ResultValidator.js +1 -1
- package/components/form-core/test/FocusMixin.test.js +33 -0
- package/components/form-core/types/validate/ValidateMixinTypes.ts +2 -2
- package/components/form-integrations/test/dialog-integrations.test.js +19 -0
- package/components/form-integrations/test/form-group-methods.test.js +11 -37
- package/components/form-integrations/test/form-integrations.test.js +4 -0
- package/components/form-integrations/test/helpers/umbrella-form.js +21 -18
- package/components/input-amount/src/LionInputAmount.js +13 -4
- package/components/input-amount/test/lion-input-amount.test.js +19 -20
- package/components/input-date/src/LionInputDate.js +2 -11
- package/components/input-datepicker/src/LionInputDatepicker.js +5 -2
- package/components/input-datepicker/test/lion-input-datepicker.test.js +20 -0
- package/components/input-file/src/FileHandle.js +98 -0
- package/components/input-file/src/LionInputFile.js +892 -0
- package/components/input-file/src/LionSelectedFileList.js +232 -0
- package/components/input-file/src/localizeNamespaceLoader.js +75 -0
- package/components/input-file/src/validators.js +114 -0
- package/components/input-file/test/FileValidators.test.js +170 -0
- package/components/input-file/test/lion-input-file.test.js +1168 -0
- package/components/input-file/test/lion-selected-file-list.test.js +207 -0
- package/components/input-file/translations/bg-BG.js +5 -0
- package/components/input-file/translations/bg.js +12 -0
- package/components/input-file/translations/cs-CZ.js +5 -0
- package/components/input-file/translations/cs.js +13 -0
- package/components/input-file/translations/de-DE.js +5 -0
- package/components/input-file/translations/de.js +12 -0
- package/components/input-file/translations/en-AU.js +5 -0
- package/components/input-file/translations/en-GB.js +5 -0
- package/components/input-file/translations/en-PH.js +5 -0
- package/components/input-file/translations/en-US.js +5 -0
- package/components/input-file/translations/en.js +12 -0
- package/components/input-file/translations/es-ES.js +5 -0
- package/components/input-file/translations/es.js +12 -0
- package/components/input-file/translations/fr-BE.js +5 -0
- package/components/input-file/translations/fr-FR.js +5 -0
- package/components/input-file/translations/fr.js +13 -0
- package/components/input-file/translations/hu-HU.js +5 -0
- package/components/input-file/translations/hu.js +12 -0
- package/components/input-file/translations/it-IT.js +5 -0
- package/components/input-file/translations/it.js +12 -0
- package/components/input-file/translations/nl-BE.js +5 -0
- package/components/input-file/translations/nl-NL.js +5 -0
- package/components/input-file/translations/nl.js +12 -0
- package/components/input-file/translations/pl-PL.js +5 -0
- package/components/input-file/translations/pl.js +12 -0
- package/components/input-file/translations/ro-RO.js +5 -0
- package/components/input-file/translations/ro.js +12 -0
- package/components/input-file/translations/ru-RU.js +5 -0
- package/components/input-file/translations/ru.js +12 -0
- package/components/input-file/translations/sk-SK.js +5 -0
- package/components/input-file/translations/sk.js +12 -0
- package/components/input-file/translations/uk-UA.js +5 -0
- package/components/input-file/translations/uk.js +12 -0
- package/components/input-file/translations/zh-CN.js +5 -0
- package/components/input-file/translations/zh.js +12 -0
- package/components/input-file/types/input-file.d.ts +32 -0
- package/components/input-tel-dropdown/src/LionInputTelDropdown.js +1 -4
- package/custom-elements.json +22127 -17708
- package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
- package/dist-types/components/core/types/SlotMixinTypes.d.ts +4 -0
- package/dist-types/components/core/types/SlotMixinTypes.d.ts.map +1 -1
- package/dist-types/components/dialog/test/lion-dialog.test.d.ts.map +1 -1
- package/dist-types/components/form-core/src/FocusMixin.d.ts.map +1 -1
- package/dist-types/components/form-core/src/LionField.d.ts +2 -1
- package/dist-types/components/form-core/src/LionField.d.ts.map +1 -1
- package/dist-types/components/form-core/src/validate/LionValidationFeedback.d.ts +4 -11
- package/dist-types/components/form-core/src/validate/LionValidationFeedback.d.ts.map +1 -1
- package/dist-types/components/form-core/src/validate/ResultValidator.d.ts +1 -1
- package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts +5 -0
- package/dist-types/components/form-core/types/validate/ValidateMixinTypes.d.ts.map +1 -1
- package/dist-types/components/form-integrations/test/dialog-integrations.test.d.ts.map +1 -1
- package/dist-types/components/form-integrations/test/form-group-methods.test.d.ts +1 -0
- package/dist-types/components/form-integrations/test/form-group-methods.test.d.ts.map +1 -1
- package/dist-types/components/form-integrations/test/helpers/umbrella-form.d.ts.map +1 -1
- package/dist-types/components/input-amount/src/LionInputAmount.d.ts +2 -4
- package/dist-types/components/input-amount/src/LionInputAmount.d.ts.map +1 -1
- package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts +0 -1
- package/dist-types/components/input-amount/test/lion-input-amount.test.d.ts.map +1 -1
- package/dist-types/components/input-date/src/LionInputDate.d.ts.map +1 -1
- package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -1
- package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts.map +1 -1
- package/dist-types/components/input-file/src/FileHandle.d.ts +55 -0
- package/dist-types/components/input-file/src/FileHandle.d.ts.map +1 -0
- package/dist-types/components/input-file/src/LionInputFile.d.ts +230 -0
- package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -0
- package/dist-types/components/input-file/src/LionSelectedFileList.d.ts +69 -0
- package/dist-types/components/input-file/src/LionSelectedFileList.d.ts.map +1 -0
- package/dist-types/components/input-file/src/localizeNamespaceLoader.d.ts +2 -0
- package/dist-types/components/input-file/src/localizeNamespaceLoader.d.ts.map +1 -0
- package/dist-types/components/input-file/src/validators.d.ts +58 -0
- package/dist-types/components/input-file/src/validators.d.ts.map +1 -0
- package/dist-types/components/input-file/test/FileValidators.test.d.ts +2 -0
- package/dist-types/components/input-file/test/FileValidators.test.d.ts.map +1 -0
- package/dist-types/components/input-file/test/lion-input-file.test.d.ts +5 -0
- package/dist-types/components/input-file/test/lion-input-file.test.d.ts.map +1 -0
- package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts +4 -0
- package/dist-types/components/input-file/test/lion-selected-file-list.test.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/bg-BG.d.ts +13 -0
- package/dist-types/components/input-file/translations/bg-BG.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/bg.d.ts +13 -0
- package/dist-types/components/input-file/translations/bg.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/cs-CZ.d.ts +13 -0
- package/dist-types/components/input-file/translations/cs-CZ.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/cs.d.ts +13 -0
- package/dist-types/components/input-file/translations/cs.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/de-DE.d.ts +13 -0
- package/dist-types/components/input-file/translations/de-DE.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/de.d.ts +13 -0
- package/dist-types/components/input-file/translations/de.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/en-AU.d.ts +13 -0
- package/dist-types/components/input-file/translations/en-AU.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/en-GB.d.ts +13 -0
- package/dist-types/components/input-file/translations/en-GB.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/en-PH.d.ts +13 -0
- package/dist-types/components/input-file/translations/en-PH.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/en-US.d.ts +13 -0
- package/dist-types/components/input-file/translations/en-US.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/en.d.ts +13 -0
- package/dist-types/components/input-file/translations/en.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/es-ES.d.ts +13 -0
- package/dist-types/components/input-file/translations/es-ES.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/es.d.ts +13 -0
- package/dist-types/components/input-file/translations/es.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/fr-BE.d.ts +13 -0
- package/dist-types/components/input-file/translations/fr-BE.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/fr-FR.d.ts +13 -0
- package/dist-types/components/input-file/translations/fr-FR.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/fr.d.ts +13 -0
- package/dist-types/components/input-file/translations/fr.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/hu-HU.d.ts +13 -0
- package/dist-types/components/input-file/translations/hu-HU.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/hu.d.ts +13 -0
- package/dist-types/components/input-file/translations/hu.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/it-IT.d.ts +13 -0
- package/dist-types/components/input-file/translations/it-IT.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/it.d.ts +13 -0
- package/dist-types/components/input-file/translations/it.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/nl-BE.d.ts +13 -0
- package/dist-types/components/input-file/translations/nl-BE.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/nl-NL.d.ts +13 -0
- package/dist-types/components/input-file/translations/nl-NL.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/nl.d.ts +13 -0
- package/dist-types/components/input-file/translations/nl.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/pl-PL.d.ts +13 -0
- package/dist-types/components/input-file/translations/pl-PL.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/pl.d.ts +13 -0
- package/dist-types/components/input-file/translations/pl.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/ro-RO.d.ts +13 -0
- package/dist-types/components/input-file/translations/ro-RO.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/ro.d.ts +13 -0
- package/dist-types/components/input-file/translations/ro.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/ru-RU.d.ts +13 -0
- package/dist-types/components/input-file/translations/ru-RU.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/ru.d.ts +13 -0
- package/dist-types/components/input-file/translations/ru.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/sk-SK.d.ts +13 -0
- package/dist-types/components/input-file/translations/sk-SK.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/sk.d.ts +13 -0
- package/dist-types/components/input-file/translations/sk.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/uk-UA.d.ts +13 -0
- package/dist-types/components/input-file/translations/uk-UA.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/uk.d.ts +13 -0
- package/dist-types/components/input-file/translations/uk.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/zh-CN.d.ts +13 -0
- package/dist-types/components/input-file/translations/zh-CN.d.ts.map +1 -0
- package/dist-types/components/input-file/translations/zh.d.ts +13 -0
- package/dist-types/components/input-file/translations/zh.d.ts.map +1 -0
- package/dist-types/components/input-stepper/src/LionInputStepper.d.ts +6 -0
- package/dist-types/components/input-stepper/src/LionInputStepper.d.ts.map +1 -1
- package/dist-types/components/input-tel-dropdown/src/LionInputTelDropdown.d.ts +0 -1
- package/dist-types/components/input-tel-dropdown/src/LionInputTelDropdown.d.ts.map +1 -1
- package/dist-types/exports/define/lion-input-file.d.ts +2 -0
- package/dist-types/exports/define/lion-input-file.d.ts.map +1 -0
- package/dist-types/exports/define/lion-selected-file-list.d.ts +2 -0
- package/dist-types/exports/define/lion-selected-file-list.d.ts.map +1 -0
- package/dist-types/exports/input-file.d.ts +4 -0
- package/dist-types/exports/input-file.d.ts.map +1 -0
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/button/extensions/bootstrap-button.mjs +240 -0
- package/docs/components/button/extensions.md +30 -0
- package/docs/components/checkbox-group/overview.md +2 -2
- package/docs/components/collapsible/overview.md +1 -1
- package/docs/components/combobox/{examples.md → extensions.md} +51 -43
- package/docs/components/combobox/overview.md +1 -1
- package/docs/components/combobox/src/google-combobox/google-combobox.js +4 -1
- package/docs/components/combobox/src/md-combobox/md-combobox.js +40 -38
- package/docs/components/combobox/src/wa-combobox/wa-combobox.js +204 -209
- package/docs/components/combobox/use-cases.md +1 -1
- package/docs/components/dialog/overview.md +1 -1
- package/docs/components/fieldset/overview.md +5 -5
- package/docs/components/form/overview.md +3 -3
- package/docs/components/icon/use-cases.md +1 -1
- package/docs/components/input/overview.md +1 -1
- package/docs/components/input-amount/overview.md +3 -3
- package/docs/components/input-amount/use-cases.md +4 -2
- package/docs/components/input-date/overview.md +3 -3
- package/docs/components/input-datepicker/overview.md +5 -5
- package/docs/components/input-datepicker/use-cases.md +11 -0
- package/docs/components/input-email/overview.md +2 -2
- package/docs/components/input-file/index.md +3 -0
- package/docs/components/input-file/overview.md +32 -0
- package/docs/components/input-file/use-cases.md +424 -0
- package/docs/components/input-iban/overview.md +2 -2
- package/docs/components/input-range/overview.md +2 -2
- package/docs/components/input-stepper/overview.md +1 -1
- package/docs/components/input-tel/overview.md +1 -1
- package/docs/components/input-tel/use-cases.md +6 -6
- package/docs/components/input-tel-dropdown/{examples.md → extensions.md} +1 -1
- package/docs/components/input-tel-dropdown/overview.md +1 -1
- package/docs/components/radio-group/overview.md +3 -3
- package/docs/components/select-rich/use-cases.md +1 -1
- package/docs/components/tabs/examples.md +1 -1
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
- package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
- package/docs/fundamentals/rationales/accessibility.md +28 -0
- package/docs/fundamentals/systems/core/SlotMixin.md +148 -0
- package/docs/fundamentals/systems/core/overview.md +1 -1
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
- package/docs/fundamentals/systems/form/model-value.md +1 -1
- package/docs/fundamentals/systems/form/overview.md +28 -28
- package/docs/fundamentals/systems/form/use-cases.md +2 -0
- package/docs/fundamentals/systems/form/validate.md +1 -1
- package/docs/fundamentals/systems/localize/overview.md +4 -4
- package/docs/fundamentals/systems/overlays/_configuration-positioning.md +116 -0
- package/docs/fundamentals/systems/overlays/_edge-cases.md +145 -0
- package/docs/fundamentals/systems/overlays/configuration.md +2 -2
- package/docs/fundamentals/systems/overlays/overview.md +5 -5
- package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
- package/docs/fundamentals/tools/helpers/overview.md +1 -1
- package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +21 -0
- package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +19 -0
- package/docs/fundamentals/tools/singleton-manager/example-success/index.md +18 -0
- package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
- package/docs/guides/how-to/create-a-custom-field.md +5 -5
- package/docs/guides/how-to/create-a-form.md +88 -0
- package/docs/guides/how-to/extend-a-native-input.md +2 -2
- package/docs/guides/index.md +8 -8
- package/docs/guides/principles/index.md +5 -5
- package/docs/guides/principles/styling.md +1 -1
- package/exports/define/lion-input-file.js +3 -0
- package/exports/define/lion-selected-file-list.js +3 -0
- package/exports/input-file.js +3 -0
- package/package.json +3 -2
- package/docs/components/combobox/src/google-combobox/assets/googlelogo_color_272x92dp.png +0 -0
- package/docs/components/dialog/src/demo-dialog-style.js +0 -3
- package/docs/components/select-rich/src/flags.png +0 -0
- package/docs/components/select-rich/src/flags@2x.png +0 -0
- package/docs/fundamentals/systems/form/assets/FormatMixinDiagram-1.svg +0 -1
- package/docs/fundamentals/systems/form/assets/FormatMixinDiagram-2.svg +0 -1
- package/docs/fundamentals/systems/form/assets/FormatMixinDiagram-3.svg +0 -84
- package/docs/fundamentals/tools/ajax/assets/naga.json +0 -9
- package/docs/fundamentals/tools/ajax/assets/pabu.json +0 -9
- package/docs/fundamentals/tools/singleton-manager/.gitignore +0 -1
- 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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
41
|
-
[.allowedRegions has only one entry](https://github.com/ing-bank/lion/blob/
|
|
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/
|
|
44
|
-
- active locale (and the derived locale is inside [allowed regions](https://github.com/ing-bank/lion/blob/
|
|
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/
|
|
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
|
|
@@ -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/
|
|
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/
|
|
24
|
-
- If you have many options for a user to pick from, consider using our [select](https://github.com/ing-bank/lion/blob/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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
|
|