@lion/ui 0.15.0 → 0.15.2
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 +38 -12
- package/components/combobox/test/lion-combobox.test.js +50 -2
- package/components/core/src/SlotMixin.js +52 -0
- package/components/core/test/SlotMixin.test.js +85 -0
- package/components/dialog/test/lion-dialog.integration.test.js +170 -0
- package/components/input-amount-dropdown/src/localizeNamespaceLoader.js +53 -0
- package/components/input-amount-dropdown/translations/bg.js +5 -0
- package/components/input-amount-dropdown/translations/cs.js +5 -0
- package/components/input-amount-dropdown/translations/de.js +5 -0
- package/components/input-amount-dropdown/translations/es.js +5 -0
- package/components/input-amount-dropdown/translations/fr.js +5 -0
- package/components/input-amount-dropdown/translations/hu.js +5 -0
- package/components/input-amount-dropdown/translations/id.js +5 -0
- package/components/input-amount-dropdown/translations/it.js +5 -0
- package/components/input-amount-dropdown/translations/nl.js +5 -0
- package/components/input-amount-dropdown/translations/pl.js +5 -0
- package/components/input-amount-dropdown/translations/ro.js +5 -0
- package/components/input-amount-dropdown/translations/ru.js +5 -0
- package/components/input-amount-dropdown/translations/sk.js +5 -0
- package/components/input-amount-dropdown/translations/uk.js +5 -0
- package/components/input-amount-dropdown/translations/zh.js +5 -0
- package/components/listbox/src/ListboxMixin.js +3 -35
- package/components/overlays/src/ArrowMixin.js +10 -4
- package/components/overlays/src/OverlayController.js +34 -7
- package/components/overlays/test/OverlayController.test.js +4 -1
- package/components/overlays/test/OverlayMixin.test.js +2 -2
- package/components/overlays/test-suites/OverlayMixin.suite.js +57 -0
- package/custom-elements.json +2969 -207
- package/dist-types/components/core/src/ScopedElementsMixin.d.ts.map +1 -1
- package/dist-types/components/core/src/SlotMixin.d.ts +35 -0
- package/dist-types/components/core/src/SlotMixin.d.ts.map +1 -1
- package/dist-types/components/core/test/SlotMixin.test.d.ts.map +1 -1
- package/dist-types/components/dialog/test/lion-dialog.integration.test.d.ts +3 -0
- package/dist-types/components/dialog/test/lion-dialog.integration.test.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/src/localizeNamespaceLoader.d.ts +1 -1
- package/dist-types/components/input-amount-dropdown/src/localizeNamespaceLoader.d.ts.map +1 -1
- package/dist-types/components/input-amount-dropdown/translations/bg.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/bg.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/cs.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/cs.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/de.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/de.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/es.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/es.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/fr.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/fr.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/hu.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/hu.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/id.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/id.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/it.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/it.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/nl.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/nl.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/pl.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/pl.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/ro.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/ro.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/ru.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/ru.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/sk.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/sk.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/uk.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/uk.d.ts.map +1 -0
- package/dist-types/components/input-amount-dropdown/translations/zh.d.ts +7 -0
- package/dist-types/components/input-amount-dropdown/translations/zh.d.ts.map +1 -0
- package/dist-types/components/listbox/src/ListboxMixin.d.ts.map +1 -1
- package/dist-types/components/overlays/src/ArrowMixin.d.ts.map +1 -1
- package/dist-types/components/overlays/src/OverlayController.d.ts +13 -4
- package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
- package/dist-types/components/overlays/test-suites/OverlayMixin.suite.d.ts.map +1 -1
- package/dist-types/tsconfig.tsbuildinfo +1 -1
- package/docs/components/accordion/index.md +1 -1
- package/docs/components/accordion/overview.md +1 -1
- package/docs/components/accordion/reference.md +1 -1
- package/docs/components/accordion/use-cases.md +1 -1
- package/docs/components/button/{extensions/bootstrap-button.mjs → assets/bootstrap-button.js} +10 -5
- package/docs/components/button/examples.md +1 -1
- package/docs/components/button/extensions.md +2 -2
- package/docs/components/button/index.md +2 -2
- package/docs/components/button/overview.md +4 -4
- package/docs/components/button/use-cases.md +6 -6
- package/docs/components/calendar/index.md +1 -1
- package/docs/components/calendar/overview.md +1 -1
- package/docs/components/calendar/use-cases.md +2 -2
- package/docs/components/checkbox-group/index.md +1 -1
- package/docs/components/checkbox-group/overview.md +3 -3
- package/docs/components/checkbox-group/use-cases.md +1 -1
- package/docs/components/collapsible/examples.md +1 -1
- package/docs/components/collapsible/index.md +1 -1
- package/docs/components/collapsible/overview.md +2 -2
- package/docs/components/collapsible/use-cases.md +1 -1
- package/docs/components/combobox/extensions.md +2 -1
- package/docs/components/combobox/index.md +1 -1
- package/docs/components/combobox/overview.md +2 -2
- package/docs/components/combobox/use-cases.md +2 -2
- package/docs/components/dialog/index.md +1 -1
- package/docs/components/dialog/overview.md +2 -2
- package/docs/components/dialog/use-cases.md +3 -3
- package/docs/components/drawer/index.md +1 -1
- package/docs/components/drawer/overview.md +1 -1
- package/docs/components/drawer/use-cases.md +1 -1
- package/docs/components/fieldset/index.md +1 -1
- package/docs/components/fieldset/overview.md +6 -6
- package/docs/components/fieldset/use-cases.md +1 -1
- package/docs/components/form/index.md +1 -1
- package/docs/components/form/overview.md +4 -4
- package/docs/components/form/use-cases.md +3 -3
- package/docs/components/icon/index.md +1 -1
- package/docs/components/icon/overview.md +1 -1
- package/docs/components/icon/use-cases.md +2 -15
- package/docs/components/index.md +1 -1
- package/docs/components/input/index.md +1 -1
- package/docs/components/input/overview.md +2 -2
- package/docs/components/input/use-cases.md +1 -1
- package/docs/components/input-amount/index.md +1 -1
- package/docs/components/input-amount/overview.md +4 -4
- package/docs/components/input-amount/use-cases.md +1 -1
- package/docs/components/input-amount-dropdown/index.md +1 -1
- package/docs/components/input-amount-dropdown/use-cases.md +1 -1
- package/docs/components/input-date/index.md +1 -1
- package/docs/components/input-date/overview.md +4 -4
- package/docs/components/input-date/use-cases.md +1 -1
- package/docs/components/input-datepicker/index.md +1 -1
- package/docs/components/input-datepicker/overview.md +6 -6
- package/docs/components/input-datepicker/use-cases.md +1 -1
- package/docs/components/input-email/index.md +1 -1
- package/docs/components/input-email/overview.md +3 -3
- package/docs/components/input-email/use-cases.md +1 -1
- package/docs/components/input-file/index.md +1 -1
- package/docs/components/input-file/overview.md +2 -2
- package/docs/components/input-file/use-cases.md +1 -1
- package/docs/components/input-iban/index.md +1 -1
- package/docs/components/input-iban/overview.md +3 -3
- package/docs/components/input-iban/use-cases.md +1 -1
- package/docs/components/input-range/index.md +1 -1
- package/docs/components/input-range/overview.md +3 -3
- package/docs/components/input-range/use-cases.md +1 -1
- package/docs/components/input-stepper/index.md +1 -1
- package/docs/components/input-stepper/overview.md +2 -2
- package/docs/components/input-stepper/use-cases.md +1 -1
- package/docs/components/input-tel/index.md +1 -1
- package/docs/components/input-tel/overview.md +2 -2
- package/docs/components/input-tel/use-cases.md +7 -7
- package/docs/components/input-tel-dropdown/extensions.md +1 -1
- package/docs/components/input-tel-dropdown/index.md +1 -1
- package/docs/components/input-tel-dropdown/overview.md +2 -2
- package/docs/components/input-tel-dropdown/use-cases.md +1 -1
- package/docs/components/listbox/index.md +1 -1
- package/docs/components/listbox/overview.md +1 -1
- package/docs/components/listbox/use-cases.md +2 -2
- package/docs/components/pagination/index.md +1 -1
- package/docs/components/pagination/overview.md +1 -1
- package/docs/components/pagination/use-cases.md +1 -1
- package/docs/components/progress-indicator/examples.md +1 -1
- package/docs/components/progress-indicator/index.md +1 -1
- package/docs/components/progress-indicator/overview.md +1 -1
- package/docs/components/radio-group/index.md +1 -1
- package/docs/components/radio-group/overview.md +4 -4
- package/docs/components/radio-group/use-cases.md +1 -1
- package/docs/components/select/index.md +1 -1
- package/docs/components/select/overview.md +1 -1
- package/docs/components/select/use-cases.md +2 -2
- package/docs/components/select-rich/examples.md +1 -1
- package/docs/components/select-rich/index.md +1 -1
- package/docs/components/select-rich/overview.md +1 -1
- package/docs/components/select-rich/use-cases.md +3 -3
- package/docs/components/steps/index.md +1 -1
- package/docs/components/steps/overview.md +1 -1
- package/docs/components/steps/use-cases.md +1 -1
- package/docs/components/switch/index.md +1 -1
- package/docs/components/switch/overview.md +1 -1
- package/docs/components/switch/reference.md +1 -1
- package/docs/components/switch/use-cases.md +1 -1
- package/docs/components/tabs/examples.md +2 -2
- package/docs/components/tabs/index.md +1 -1
- package/docs/components/tabs/overview.md +1 -1
- package/docs/components/tabs/use-cases.md +1 -1
- package/docs/components/textarea/index.md +1 -1
- package/docs/components/textarea/overview.md +1 -1
- package/docs/components/textarea/use-cases.md +1 -1
- package/docs/components/tooltip/examples.md +1 -1
- package/docs/components/tooltip/index.md +1 -1
- package/docs/components/tooltip/overview.md +1 -1
- package/docs/components/tooltip/use-cases.md +1 -1
- package/docs/fundamentals/index.md +4 -4
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/index.md +1 -1
- package/docs/fundamentals/node-tools/babel-plugin-extend-docs/overview.md +1 -1
- package/docs/fundamentals/node-tools/index.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/index.md +1 -1
- package/docs/fundamentals/node-tools/providence-analytics/overview.md +1 -1
- package/docs/fundamentals/node-tools/publish-docs/index.md +1 -1
- package/docs/fundamentals/node-tools/publish-docs/overview.md +4 -4
- package/docs/fundamentals/node-tools/remark-extend/index.md +1 -1
- package/docs/fundamentals/node-tools/remark-extend/overview.md +1 -1
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/index.md +1 -1
- package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +3 -3
- package/docs/fundamentals/rationales/TypeScript.md +1 -1
- package/docs/fundamentals/rationales/accessibility.md +2 -2
- package/docs/fundamentals/rationales/index.md +1 -1
- package/docs/fundamentals/rationales/side-effects.md +1 -1
- package/docs/fundamentals/rationales/versioning.md +1 -1
- package/docs/fundamentals/systems/core/SlotMixin.md +2 -2
- package/docs/fundamentals/systems/core/index.md +1 -1
- package/docs/fundamentals/systems/core/overview.md +2 -2
- package/docs/fundamentals/systems/form/formatting-and-parsing.md +5 -5
- package/docs/fundamentals/systems/form/index.md +1 -1
- package/docs/fundamentals/systems/form/interaction-states.md +1 -1
- package/docs/fundamentals/systems/form/model-value.md +2 -2
- package/docs/fundamentals/systems/form/overview.md +29 -29
- package/docs/fundamentals/systems/form/styling.md +1 -1
- package/docs/fundamentals/systems/form/use-cases.md +1 -1
- package/docs/fundamentals/systems/form/validate.md +3 -3
- package/docs/fundamentals/systems/icon/index.md +1 -1
- package/docs/fundamentals/systems/icon/overview.md +1 -1
- package/docs/fundamentals/systems/index.md +1 -1
- package/docs/fundamentals/systems/localize/api-table.md +3 -0
- package/docs/fundamentals/systems/localize/dates.md +1 -1
- package/docs/fundamentals/systems/localize/index.md +1 -1
- package/docs/fundamentals/systems/localize/numbers.md +1 -1
- package/docs/fundamentals/systems/localize/overview.md +5 -5
- package/docs/fundamentals/systems/localize/rationale.md +1 -1
- package/docs/fundamentals/systems/localize/text.md +5 -4
- package/docs/fundamentals/systems/localize/use-cases.md +1 -1
- package/docs/fundamentals/systems/overlays/_configuration-positioning.md +3 -3
- package/docs/fundamentals/systems/overlays/_edge-cases.md +3 -3
- package/docs/fundamentals/systems/overlays/api-table.md +3 -0
- package/docs/fundamentals/systems/overlays/assets/demo-overlay-positioning.mjs +1 -1
- package/docs/fundamentals/systems/overlays/configuration.md +5 -5
- package/docs/fundamentals/systems/overlays/index.md +1 -1
- package/docs/fundamentals/systems/overlays/overview.md +6 -6
- package/docs/fundamentals/systems/overlays/rationale.md +1 -1
- package/docs/fundamentals/systems/overlays/use-cases.md +6 -6
- package/docs/fundamentals/tools/ajax/index.md +1 -1
- package/docs/fundamentals/tools/ajax/overview.md +2 -2
- package/docs/fundamentals/tools/ajax/use-cases.md +3 -3
- package/docs/fundamentals/tools/helpers/action-logger.md +1 -1
- package/docs/fundamentals/tools/helpers/index.md +2 -2
- package/docs/fundamentals/tools/helpers/overview.md +2 -2
- package/docs/fundamentals/tools/index.md +1 -1
- package/docs/fundamentals/tools/singleton-manager/example-complex/index.md +1 -1
- package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +4 -4
- package/docs/fundamentals/tools/singleton-manager/example-fail/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-a/page-a.js → page-c/page-c.js} +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-b/page-b.js → page-d/page-d.js} +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +4 -4
- package/docs/fundamentals/tools/singleton-manager/example-success/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-a/page-a.js → page-e/page-e.js} +2 -3
- package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-b/page-b.js → page-f/page-f.js} +2 -2
- package/docs/fundamentals/tools/singleton-manager/index.md +2 -2
- package/docs/fundamentals/tools/singleton-manager/overview.md +5 -5
- package/docs/guides/how-to/create-a-custom-field.md +5 -5
- package/docs/guides/how-to/create-a-form.md +4 -4
- 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/package.json +1 -1
- /package/docs/fundamentals/systems/overlays/assets/{applyDemoOverlayStyles.mjs → applyDemoOverlayStyles.js} +0 -0
- /package/docs/fundamentals/systems/overlays/assets/{demo-el-using-overlaymixin.mjs → demo-el-using-overlaymixin.js} +0 -0
- /package/docs/fundamentals/systems/overlays/assets/{demo-overlay-backdrop.mjs → demo-overlay-backdrop.js} +0 -0
- /package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-b → page-d}/node_modules/overlays/index.js +0 -0
- /package/docs/fundamentals/tools/singleton-manager/example-fail/node_modules/{page-b → page-d}/node_modules/overlays/instance.js +0 -0
- /package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-b → page-f}/node_modules/overlays/index.js +0 -0
- /package/docs/fundamentals/tools/singleton-manager/example-success/node_modules/{page-b → page-f}/node_modules/overlays/instance.js +0 -0
package/README.md
CHANGED
|
@@ -26,33 +26,59 @@
|
|
|
26
26
|
</p>
|
|
27
27
|
|
|
28
28
|
<p align="center">
|
|
29
|
-
<a href="https://lion.
|
|
29
|
+
<a href="https://lion-web.netlify.app">Website</a>
|
|
30
30
|
·
|
|
31
|
-
<a href="https://lion.
|
|
31
|
+
<a href="https://lion-web.netlify.app/fundamentals/">Fundamentals</a>
|
|
32
32
|
·
|
|
33
|
-
<a href="https://lion.
|
|
33
|
+
<a href="https://lion-web.netlify.app/guides/">Guides</a>
|
|
34
34
|
·
|
|
35
|
-
<a href="https://lion.
|
|
35
|
+
<a href="https://lion-web.netlify.app/components/">Components</a>
|
|
36
36
|
·
|
|
37
|
-
<a href="https://lion.
|
|
37
|
+
<a href="https://lion-web.netlify.app/blog/">Blog</a>
|
|
38
38
|
</p>
|
|
39
39
|
|
|
40
|
-
**Lion is a set of highly performant, accessible
|
|
40
|
+
**Lion is a set of highly performant, accessible and flexible Web Components.!**
|
|
41
41
|
|
|
42
42
|
They provide an unopinionated, white-label layer that can be extended to your own layer of components.
|
|
43
43
|
|
|
44
44
|
- **High Performance:** Focused on great performance in all relevant browsers with a minimal number of dependencies.
|
|
45
45
|
- **Accessibility:** Aimed at compliance with the WCAG 2.2 AA standard to create components that are accessible for everybody.
|
|
46
46
|
- **Flexibility:** Provides solutions through Web Components and JavaScript classes which can be used, adopted and extended to fit all needs.
|
|
47
|
-
- **Modern Code:** Lion is
|
|
48
|
-
- **Exposes functions/classes and Web Components:** Ships a functionality in
|
|
47
|
+
- **Modern Code:** Lion is distributes as pure es modules.
|
|
48
|
+
- **Exposes functions/classes and Web Components:** Ships a functionality in it's most appropriate form.
|
|
49
49
|
|
|
50
|
-
> Note: Our
|
|
50
|
+
> Note: Our demos may look a little bland but that is on purpose. They only come with functional stylings.
|
|
51
|
+
> This makes sense as the main use case is to extend those components and if you do you do not want to override existing stylings.
|
|
51
52
|
|
|
52
53
|
<p align="center">
|
|
53
|
-
<a href="https://lion.
|
|
54
|
+
<a href="https://lion-web.netlify.app/guides/"><strong>Explore the Lion Guides ▶</strong></a>
|
|
54
55
|
</p>
|
|
55
56
|
|
|
57
|
+
## Astro migration
|
|
58
|
+
|
|
59
|
+
- Keep using `/docs` on the root level as we used it in the `master` branch. The documentation is copied into Astro related directories on `npm run start` and when when anything in `/docs` is updated.
|
|
60
|
+
- Replace manually all references to assets in all `md` files so that we imply that the path is produced from the directory where the md file is located. F.e. `new URL('../src/wa-combobox/assets/obama.jpeg', import.meta.url).href;` should `new URL('./src/wa-combobox/assets/obama.jpeg', import.meta.url).href;`. Note double dot is replaced with one dot. See [this PR](https://github.com/ing-bank/lion/pull/2125/files#diff-403b1e0ab54d51dcfe54248e847498e492da00383d8b33a4087994ab9035a22c) for the reference.
|
|
61
|
+
- Rename all `*.mjs` files to `*.js` ones if they are used by `mdjs` examples
|
|
62
|
+
|
|
63
|
+
### Astro how to
|
|
64
|
+
|
|
65
|
+
- To start in dev mode run `nmm run start`
|
|
66
|
+
- To start in production mode:
|
|
67
|
+
- Run `npm run build`
|
|
68
|
+
- Run `npm run preview`
|
|
69
|
+
|
|
70
|
+
### Issues which are not caused by the migration (not to be fixed now)
|
|
71
|
+
|
|
72
|
+
- There is a browser console error on [collapsible page](http://localhost:4321/components/collapsible):
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
__mdjs-stories--use-cases.js:40 Uncaught TypeError: shadowRoot.getElementById is not a function
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Note. There is the same error on master. This issue is not caused by the migration
|
|
79
|
+
|
|
80
|
+
### TODO
|
|
81
|
+
|
|
56
82
|
## How to install
|
|
57
83
|
|
|
58
84
|
```bash
|
|
@@ -113,7 +139,7 @@ You can also use the lion elements directly, although this is likely not a commo
|
|
|
113
139
|
|
|
114
140
|
## Issues
|
|
115
141
|
|
|
116
|
-
If you encounter an issue with any of the packages we are offering please open a [new bug issue](https://github.com/ing-bank/lion/issues/new?assignees=&labels=&template=bug_report.md&title=). Be sure to include a description of the expected and the current behavior -
|
|
142
|
+
If you encounter an issue with any of the packages we are offering please open a [new bug issue](https://github.com/ing-bank/lion/issues/new?assignees=&labels=&template=bug_report.md&title=). Be sure to include a description of the expected and the current behavior - additional adding a [reproduction](https://webcomponents.dev/edit/kpZmz1CJN580OaXsk56f?pm=1) always helps.
|
|
117
143
|
|
|
118
144
|
## Feature requests
|
|
119
145
|
|
|
@@ -158,7 +184,7 @@ This means you only have to apply your own Design System: by delivering styles,
|
|
|
158
184
|
|
|
159
185
|
## Coding guidelines
|
|
160
186
|
|
|
161
|
-
Check out our [coding guidelines](https://lion.
|
|
187
|
+
Check out our [coding guidelines](https://lion-web.netlify.app/guides/principles/definitions-and-terms/) for more detailed information.
|
|
162
188
|
|
|
163
189
|
## How to contribute
|
|
164
190
|
|
|
@@ -2,11 +2,11 @@ import { defineCE, expect, fixture, html, unsafeStatic, waitUntil } from '@open-
|
|
|
2
2
|
import { Required, Unparseable } from '@lion/ui/form-core.js';
|
|
3
3
|
import { sendKeys } from '@web/test-runner-commands';
|
|
4
4
|
import { LionCombobox } from '@lion/ui/combobox.js';
|
|
5
|
-
import { browserDetection } from '@lion/ui/core.js';
|
|
5
|
+
import { browserDetection, SlotMixin } from '@lion/ui/core.js';
|
|
6
6
|
import '@lion/ui/define/lion-combobox.js';
|
|
7
7
|
import '@lion/ui/define/lion-listbox.js';
|
|
8
8
|
import '@lion/ui/define/lion-option.js';
|
|
9
|
-
import { LitElement } from 'lit';
|
|
9
|
+
import { LitElement, nothing } from 'lit';
|
|
10
10
|
import sinon from 'sinon';
|
|
11
11
|
import {
|
|
12
12
|
getFilteredOptionValues,
|
|
@@ -413,6 +413,54 @@ describe('lion-combobox', () => {
|
|
|
413
413
|
expect(el.validationStates).to.have.property('error');
|
|
414
414
|
expect(el.validationStates.error).to.have.property('MatchesOption');
|
|
415
415
|
});
|
|
416
|
+
|
|
417
|
+
it('keeps slottable provided in `slots` getter as direct host child', async () => {
|
|
418
|
+
class MyEl extends SlotMixin(LionCombobox) {
|
|
419
|
+
// @ts-ignore
|
|
420
|
+
get slots() {
|
|
421
|
+
return {
|
|
422
|
+
...super.slots,
|
|
423
|
+
_lazyRenderedSlot: () => ({
|
|
424
|
+
template: this.renderSlot
|
|
425
|
+
? html`<span id="lazyRenderedSlotId">(Optional)</span>`
|
|
426
|
+
: html`${nothing}`,
|
|
427
|
+
renderAsDirectHostChild: true,
|
|
428
|
+
}),
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
_labelTemplate() {
|
|
433
|
+
return html`
|
|
434
|
+
<div class="form-field__label">
|
|
435
|
+
<slot name="label"></slot>
|
|
436
|
+
<slot name="_lazyRenderedSlot"></slot>
|
|
437
|
+
<slot></slot>
|
|
438
|
+
</div>
|
|
439
|
+
`;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
constructor() {
|
|
443
|
+
super();
|
|
444
|
+
this.renderSlot = false;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
const tagName = defineCE(MyEl);
|
|
448
|
+
const wrappingTag = unsafeStatic(tagName);
|
|
449
|
+
|
|
450
|
+
const el = /** @type {MyEl} */ (
|
|
451
|
+
await fixture(html`
|
|
452
|
+
<${wrappingTag} label="my label">
|
|
453
|
+
<lion-option .choiceValue="${'1'}">${'one'}</lion-option>
|
|
454
|
+
</${wrappingTag}>
|
|
455
|
+
`)
|
|
456
|
+
);
|
|
457
|
+
await el.registrationComplete;
|
|
458
|
+
|
|
459
|
+
el.renderSlot = true;
|
|
460
|
+
await el.updateComplete;
|
|
461
|
+
const lazyRenderedSlot = el.querySelector('#lazyRenderedSlotId');
|
|
462
|
+
expect(lazyRenderedSlot?.parentElement === el).to.be.true;
|
|
463
|
+
});
|
|
416
464
|
});
|
|
417
465
|
|
|
418
466
|
describe('Values', () => {
|
|
@@ -12,6 +12,58 @@ import { render } from 'lit';
|
|
|
12
12
|
* @typedef {import('lit').LitElement} LitElement
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Sometimes, we want to provide best DX (direct slottables) and be accessible
|
|
17
|
+
* at the same time.
|
|
18
|
+
* In the first example below, we need to wrap our options in light dom in an element with
|
|
19
|
+
* [role=listbox]. We could achieve this via the second example, but it would affect our
|
|
20
|
+
* public api negatively. not allowing us to be forward compatible with the AOM spec:
|
|
21
|
+
* https://wicg.github.io/aom/explainer.html
|
|
22
|
+
* With this method, it's possible to watch elements in the default slot and move them
|
|
23
|
+
* to the desired target (the element with [role=listbox]) in light dom.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* # desired api
|
|
27
|
+
* <sel-ect>
|
|
28
|
+
* <opt-ion></opt-ion>
|
|
29
|
+
* </sel-ect>
|
|
30
|
+
* # desired end state
|
|
31
|
+
* <sel-ect>
|
|
32
|
+
* <div role="listbox" slot="lisbox">
|
|
33
|
+
* <opt-ion></opt-ion>
|
|
34
|
+
* </div>
|
|
35
|
+
* </sel-ect>
|
|
36
|
+
*
|
|
37
|
+
* Note, the function does not move the nodes specified by a subclasser in the `slots` getter
|
|
38
|
+
* @param {HTMLElement} source host of ShadowRoot with default <slot>
|
|
39
|
+
* @param {HTMLElement} target the desired target in light dom
|
|
40
|
+
*/
|
|
41
|
+
export function moveUserProvidedDefaultSlottablesToTarget(source, target) {
|
|
42
|
+
/**
|
|
43
|
+
* Nodes injected via `slots` getter are going to be added as host's children
|
|
44
|
+
* starting by a comment node like <!--_start_slot_*-->
|
|
45
|
+
* and ending by a comment node like <!--_end_slot_*-->
|
|
46
|
+
* So we ignore everything that comes between those `start_slot` and `end_slot` comments
|
|
47
|
+
*/
|
|
48
|
+
let isInsideSlotSection = false;
|
|
49
|
+
Array.from(source.childNodes).forEach((/** @type {* & Element} */ c) => {
|
|
50
|
+
const isNamedSlottable = c.hasAttribute && c.hasAttribute('slot');
|
|
51
|
+
const isComment = c.nodeType === Node.COMMENT_NODE;
|
|
52
|
+
if (isComment && !isInsideSlotSection) {
|
|
53
|
+
isInsideSlotSection = c.textContent.includes('_start_slot_');
|
|
54
|
+
}
|
|
55
|
+
if (isInsideSlotSection) {
|
|
56
|
+
if (c.textContent.includes('_end_slot_')) {
|
|
57
|
+
isInsideSlotSection = false;
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (!isNamedSlottable) {
|
|
62
|
+
target.appendChild(c);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
15
67
|
/**
|
|
16
68
|
* @param {SlotFunctionResult} slotFunctionResult
|
|
17
69
|
* @returns {'template-result'|'node'|'slot-rerender-object'|null}
|
|
@@ -2,6 +2,7 @@ import { defineCE, expect, fixture, fixtureSync, unsafeStatic, html } from '@ope
|
|
|
2
2
|
import { SlotMixin } from '@lion/ui/core.js';
|
|
3
3
|
import { LitElement } from 'lit';
|
|
4
4
|
import sinon from 'sinon';
|
|
5
|
+
import { moveUserProvidedDefaultSlottablesToTarget } from '../src/SlotMixin.js';
|
|
5
6
|
|
|
6
7
|
import { ScopedElementsMixin, supportsScopedRegistry } from '../src/ScopedElementsMixin.js';
|
|
7
8
|
import { isActiveElement } from '../test-helpers/isActiveElement.js';
|
|
@@ -134,6 +135,90 @@ describe('SlotMixin', () => {
|
|
|
134
135
|
expect(elNoSlot.didCreateConditionalSlot()).to.be.false;
|
|
135
136
|
});
|
|
136
137
|
|
|
138
|
+
it('should move default slots to target', async () => {
|
|
139
|
+
const target = document.createElement('div');
|
|
140
|
+
const source = document.createElement('div');
|
|
141
|
+
/**
|
|
142
|
+
* Exmple of usage:
|
|
143
|
+
* get slots() {
|
|
144
|
+
* return {
|
|
145
|
+
* _nothing: () => ({
|
|
146
|
+
* template: html`${nothing}`,
|
|
147
|
+
* renderAsDirectHostChild: true,
|
|
148
|
+
* }),
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
*/
|
|
152
|
+
const variableNothing = `
|
|
153
|
+
<!--_start_slot_lit-el-->
|
|
154
|
+
<!-- {lit-el} -->
|
|
155
|
+
<!--_end_slot_lit-el-->`;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Exmple of usage:
|
|
159
|
+
* get slots() {
|
|
160
|
+
* return {
|
|
161
|
+
* '': () => ({
|
|
162
|
+
* template: html`<div>text<div>`,
|
|
163
|
+
* renderAsDirectHostChild: true,
|
|
164
|
+
* }),
|
|
165
|
+
* }
|
|
166
|
+
* }
|
|
167
|
+
*/
|
|
168
|
+
const defaultSlottableProvidedViaSlotsGetter = `
|
|
169
|
+
<!--_start_slot_-->
|
|
170
|
+
<div>text</div>
|
|
171
|
+
<!--_end_slot_-->
|
|
172
|
+
`;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Exmple of usage:
|
|
176
|
+
* get slots() {
|
|
177
|
+
* return {
|
|
178
|
+
* label: () => ({
|
|
179
|
+
* template: html`<div>text<div>`,
|
|
180
|
+
* renderAsDirectHostChild: true,
|
|
181
|
+
* }),
|
|
182
|
+
* }
|
|
183
|
+
* }
|
|
184
|
+
*/
|
|
185
|
+
const namedSlottable = `
|
|
186
|
+
<!--_start_slot_label-->
|
|
187
|
+
<div slot="label">text</div>
|
|
188
|
+
<!--_end_slot_label-->
|
|
189
|
+
`;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Here we assume .test1, .test2 and .test3 are the ones provided as content projection f.e.:
|
|
193
|
+
* <my-comp>
|
|
194
|
+
* <div class="test1"><div>
|
|
195
|
+
* <div class="test2"><div>
|
|
196
|
+
* <div class="test3"><div>
|
|
197
|
+
* </my-comp>
|
|
198
|
+
*
|
|
199
|
+
* And the rest of content is added via `slots` getter by SlotMixin
|
|
200
|
+
* The function should move only content projection and ignore the rest
|
|
201
|
+
* */
|
|
202
|
+
|
|
203
|
+
source.innerHTML = `
|
|
204
|
+
<div class="test1"></div>
|
|
205
|
+
${variableNothing}
|
|
206
|
+
<div class="test2"></div>
|
|
207
|
+
${defaultSlottableProvidedViaSlotsGetter}
|
|
208
|
+
<div class="test3"></div>
|
|
209
|
+
${namedSlottable}
|
|
210
|
+
`;
|
|
211
|
+
|
|
212
|
+
moveUserProvidedDefaultSlottablesToTarget(source, target);
|
|
213
|
+
expect(target.children.length).to.equal(3);
|
|
214
|
+
const test1Element = target.querySelector('.test1');
|
|
215
|
+
const test2Element = target.querySelector('.test2');
|
|
216
|
+
const test3Element = target.querySelector('.test3');
|
|
217
|
+
expect(test1Element?.parentElement === target).to.equal(true);
|
|
218
|
+
expect(test2Element?.parentElement === target).to.equal(true);
|
|
219
|
+
expect(test3Element?.parentElement === target).to.equal(true);
|
|
220
|
+
});
|
|
221
|
+
|
|
137
222
|
describe('Rerender', () => {
|
|
138
223
|
it('supports rerender when SlotRerenderObject provided', async () => {
|
|
139
224
|
const tag = defineCE(
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/* eslint-disable lit-a11y/no-autofocus */
|
|
2
|
+
import { expect, fixture as _fixture, html, waitUntil } from '@open-wc/testing';
|
|
3
|
+
import { sendKeys } from '@web/test-runner-commands';
|
|
4
|
+
|
|
5
|
+
import '@lion/ui/define/lion-button.js';
|
|
6
|
+
import '@lion/ui/define/lion-combobox.js';
|
|
7
|
+
import '@lion/ui/define/lion-select-rich.js';
|
|
8
|
+
import '@lion/ui/define/lion-option.js';
|
|
9
|
+
import '@lion/ui/define/lion-dialog.js';
|
|
10
|
+
import '@lion/ui/define/lion-tooltip.js';
|
|
11
|
+
|
|
12
|
+
import { mimicUserTyping } from '@lion/ui/combobox-test-helpers.js';
|
|
13
|
+
import sinon from 'sinon';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {import('../src/LionDialog.js').LionDialog} LionDialog
|
|
17
|
+
* @typedef {import('lit').TemplateResult} TemplateResult
|
|
18
|
+
*/
|
|
19
|
+
const fixture = /** @type {(arg: TemplateResult) => Promise<LionDialog>} */ (_fixture);
|
|
20
|
+
|
|
21
|
+
const dropDownEntries = ['Apple', 'Banana'];
|
|
22
|
+
|
|
23
|
+
describe('lion-dialog', () => {
|
|
24
|
+
describe('lion-combobox integration', () => {
|
|
25
|
+
it('should close lion-combobox dropdown on Escape and should not close the parent lion-dialog', async () => {
|
|
26
|
+
const el = await fixture(html`
|
|
27
|
+
<lion-dialog has-close-button>
|
|
28
|
+
<lion-button slot="invoker">Open Dialog</lion-button>
|
|
29
|
+
<div slot="header">Combobox example</div>
|
|
30
|
+
<div slot="content">
|
|
31
|
+
<lion-combobox name="combo" label="Select a fruit">
|
|
32
|
+
${dropDownEntries.map(
|
|
33
|
+
(/** @type { string } */ entry) =>
|
|
34
|
+
html` <lion-option .choiceValue="${entry}">${entry}</lion-option>`,
|
|
35
|
+
)}
|
|
36
|
+
</lion-combobox>
|
|
37
|
+
</div>
|
|
38
|
+
</lion-dialog>
|
|
39
|
+
`);
|
|
40
|
+
const dialogInvoker = /** @type {HTMLElement} */ (el.querySelector('[slot="invoker"]'));
|
|
41
|
+
dialogInvoker.click();
|
|
42
|
+
const combobox = /** @type {HTMLElement} */ el.querySelector('lion-combobox');
|
|
43
|
+
const isComboboxRendered = () => !!combobox?.shadowRoot?.childNodes.length;
|
|
44
|
+
await waitUntil(isComboboxRendered);
|
|
45
|
+
// @ts-ignore
|
|
46
|
+
await mimicUserTyping(combobox, 'a');
|
|
47
|
+
const firstOption = /** @type { HTMLElement | undefined } */ (
|
|
48
|
+
el.querySelectorAll('lion-option')?.[0]
|
|
49
|
+
);
|
|
50
|
+
// @ts-ignore
|
|
51
|
+
const isComboboxFirstOptionInDropdownVisible = () => firstOption?.checkVisibility();
|
|
52
|
+
await waitUntil(isComboboxFirstOptionInDropdownVisible);
|
|
53
|
+
const comboboxDialog = combobox?.shadowRoot?.querySelector('dialog');
|
|
54
|
+
// Note, do not remove `console.log` down below. There is a bug in test engine.
|
|
55
|
+
// Referring dialog.close from the test environement fixes the bug
|
|
56
|
+
console.log(sinon.spy(comboboxDialog?.close));
|
|
57
|
+
const comboboxInput = combobox?.querySelector('input');
|
|
58
|
+
comboboxInput?.focus();
|
|
59
|
+
const dropdownDialog = combobox?.shadowRoot?.querySelector('dialog');
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
const dropdownDialogCloseSpy = sinon.spy(dropdownDialog, 'close');
|
|
62
|
+
await sendKeys({
|
|
63
|
+
press: 'Escape',
|
|
64
|
+
});
|
|
65
|
+
// @ts-ignore
|
|
66
|
+
const isDialogVisible = () => el?.shadowRoot?.querySelector('dialog')?.checkVisibility();
|
|
67
|
+
await waitUntil(() => dropdownDialogCloseSpy.called);
|
|
68
|
+
expect(isDialogVisible()).to.equal(true);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe('lion-select-rich integration', () => {
|
|
73
|
+
it('should close lion-select-rich dropdown on Escape and should not close the parent lion-dialog', async () => {
|
|
74
|
+
const el = await fixture(html`
|
|
75
|
+
<lion-dialog has-close-button>
|
|
76
|
+
<lion-button slot="invoker">Open Dialog</lion-button>
|
|
77
|
+
<div slot="header">Select rich example</div>
|
|
78
|
+
<div slot="content">
|
|
79
|
+
<lion-select-rich label="Select a fruit">
|
|
80
|
+
${dropDownEntries.map(
|
|
81
|
+
(/** @type { string } */ entry) =>
|
|
82
|
+
html` <lion-option .choiceValue="${entry}">${entry}</lion-option>`,
|
|
83
|
+
)}
|
|
84
|
+
</lion-select-rich>
|
|
85
|
+
</div>
|
|
86
|
+
</lion-dialog>
|
|
87
|
+
`);
|
|
88
|
+
const dialogInvoker = /** @type {HTMLElement} */ (el.querySelector('[slot="invoker"]'));
|
|
89
|
+
dialogInvoker.click();
|
|
90
|
+
const selectRichInvoker = /** @type {HTMLElement} */ (
|
|
91
|
+
el.querySelector('lion-select-invoker')
|
|
92
|
+
);
|
|
93
|
+
const isSelectRichInvokerRendered = () => !!selectRichInvoker?.shadowRoot?.childNodes.length;
|
|
94
|
+
await waitUntil(isSelectRichInvokerRendered);
|
|
95
|
+
const selectRich = el?.querySelector('lion-select-rich');
|
|
96
|
+
const selectRichDialog = selectRich?.shadowRoot?.querySelector('dialog');
|
|
97
|
+
// Note, do not remove `console.log` down below. There is a bug in test engine.
|
|
98
|
+
// Referring dialog.close from the test environement fixes the bug
|
|
99
|
+
console.log(selectRichDialog?.close);
|
|
100
|
+
|
|
101
|
+
selectRichInvoker?.click();
|
|
102
|
+
const dropdownDialog = el
|
|
103
|
+
?.querySelector('lion-select-rich')
|
|
104
|
+
?.shadowRoot?.querySelector('dialog');
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
const dropdownDialogCloseSpy = sinon.spy(dropdownDialog, 'close');
|
|
107
|
+
const isDropdownVisible = () =>
|
|
108
|
+
el
|
|
109
|
+
?.querySelector('lion-select-rich')
|
|
110
|
+
?.shadowRoot?.querySelector('dialog')
|
|
111
|
+
// @ts-ignore
|
|
112
|
+
?.checkVisibility();
|
|
113
|
+
await waitUntil(isDropdownVisible);
|
|
114
|
+
const lionOptions = /** @type {HTMLElement} */ (el.querySelector('lion-options'));
|
|
115
|
+
lionOptions?.focus();
|
|
116
|
+
await sendKeys({
|
|
117
|
+
press: 'Escape',
|
|
118
|
+
});
|
|
119
|
+
// @ts-ignore
|
|
120
|
+
const isDialogVisible = () => el?.shadowRoot?.querySelector('dialog')?.checkVisibility();
|
|
121
|
+
await waitUntil(() => dropdownDialogCloseSpy.called);
|
|
122
|
+
expect(isDialogVisible()).to.equal(true);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
describe('lion-tooltip integration', () => {
|
|
127
|
+
it('should close lion-tooltip on first Escape and should close the parent lion-dialog on the second Escape', async () => {
|
|
128
|
+
const el = await fixture(html`
|
|
129
|
+
<lion-dialog has-close-button>
|
|
130
|
+
<lion-button slot="invoker" class="dialog-invoker">Open Dialog</lion-button>
|
|
131
|
+
<div slot="header">Tooltip example</div>
|
|
132
|
+
<div slot="content">
|
|
133
|
+
<lion-tooltip has-arrow>
|
|
134
|
+
<button slot="invoker" class="demo-tooltip-invoker">Focus on me</button>
|
|
135
|
+
<div slot="content">This is a tooltip</div>
|
|
136
|
+
</lion-tooltip>
|
|
137
|
+
</div>
|
|
138
|
+
</lion-dialog>
|
|
139
|
+
`);
|
|
140
|
+
|
|
141
|
+
await el.updateComplete;
|
|
142
|
+
const dialogInvoker = /** @type {HTMLElement} */ (el.querySelector('.dialog-invoker'));
|
|
143
|
+
dialogInvoker.click();
|
|
144
|
+
const tooltip = /** @type {HTMLElement} */ el.querySelector('lion-tooltip');
|
|
145
|
+
const isTooltipRendered = () => !!tooltip?.shadowRoot?.childNodes.length;
|
|
146
|
+
await waitUntil(isTooltipRendered);
|
|
147
|
+
const tooltipButton = /** @type {HTMLElement} */ (el.querySelector('.demo-tooltip-invoker'));
|
|
148
|
+
tooltipButton?.focus();
|
|
149
|
+
const getTooltipContent = () =>
|
|
150
|
+
el
|
|
151
|
+
.querySelector('lion-tooltip')
|
|
152
|
+
?.shadowRoot?.querySelector('#overlay-content-node-wrapper');
|
|
153
|
+
// @ts-ignore
|
|
154
|
+
const isTooltipContentVisible = () => getTooltipContent()?.checkVisibility();
|
|
155
|
+
await waitUntil(isTooltipContentVisible);
|
|
156
|
+
await sendKeys({
|
|
157
|
+
press: 'Escape',
|
|
158
|
+
});
|
|
159
|
+
// @ts-ignore
|
|
160
|
+
const isDialogVisible = () => el?.shadowRoot?.querySelector('dialog')?.checkVisibility();
|
|
161
|
+
expect(isTooltipContentVisible()).to.equal(false);
|
|
162
|
+
expect(isDialogVisible()).to.equal(true);
|
|
163
|
+
await sendKeys({
|
|
164
|
+
press: 'Escape',
|
|
165
|
+
});
|
|
166
|
+
expect(isTooltipContentVisible()).to.equal(false);
|
|
167
|
+
expect(isDialogVisible()).to.equal(false);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
});
|
|
@@ -1,6 +1,59 @@
|
|
|
1
1
|
/* eslint-disable import/no-extraneous-dependencies */
|
|
2
2
|
export const localizeNamespaceLoader = /** @param {string} locale */ locale => {
|
|
3
3
|
switch (locale) {
|
|
4
|
+
case 'bg-BG':
|
|
5
|
+
case 'bg':
|
|
6
|
+
return import('@lion/ui/input-amount-dropdown-translations/bg.js');
|
|
7
|
+
case 'cs-CZ':
|
|
8
|
+
case 'cs':
|
|
9
|
+
return import('@lion/ui/input-amount-dropdown-translations/cs.js');
|
|
10
|
+
case 'de-DE':
|
|
11
|
+
case 'de':
|
|
12
|
+
return import('@lion/ui/input-amount-dropdown-translations/de.js');
|
|
13
|
+
case 'en-AU':
|
|
14
|
+
case 'en-GB':
|
|
15
|
+
case 'en-US':
|
|
16
|
+
case 'en-PH':
|
|
17
|
+
case 'en':
|
|
18
|
+
return import('@lion/ui/input-amount-dropdown-translations/en.js');
|
|
19
|
+
case 'es-ES':
|
|
20
|
+
case 'es':
|
|
21
|
+
return import('@lion/ui/input-amount-dropdown-translations/es.js');
|
|
22
|
+
case 'fr-FR':
|
|
23
|
+
case 'fr-BE':
|
|
24
|
+
case 'fr':
|
|
25
|
+
return import('@lion/ui/input-amount-dropdown-translations/fr.js');
|
|
26
|
+
case 'hu-HU':
|
|
27
|
+
case 'hu':
|
|
28
|
+
return import('@lion/ui/input-amount-dropdown-translations/hu.js');
|
|
29
|
+
case 'id-ID':
|
|
30
|
+
case 'id':
|
|
31
|
+
return import('@lion/ui/input-amount-dropdown-translations/id.js');
|
|
32
|
+
case 'it-IT':
|
|
33
|
+
case 'it':
|
|
34
|
+
return import('@lion/ui/input-amount-dropdown-translations/it.js');
|
|
35
|
+
case 'nl-BE':
|
|
36
|
+
case 'nl-NL':
|
|
37
|
+
case 'nl':
|
|
38
|
+
return import('@lion/ui/input-amount-dropdown-translations/nl.js');
|
|
39
|
+
case 'pl-PL':
|
|
40
|
+
case 'pl':
|
|
41
|
+
return import('@lion/ui/input-amount-dropdown-translations/pl.js');
|
|
42
|
+
case 'ro-RO':
|
|
43
|
+
case 'ro':
|
|
44
|
+
return import('@lion/ui/input-amount-dropdown-translations/ro.js');
|
|
45
|
+
case 'ru-RU':
|
|
46
|
+
case 'ru':
|
|
47
|
+
return import('@lion/ui/input-amount-dropdown-translations/ru.js');
|
|
48
|
+
case 'sk-SK':
|
|
49
|
+
case 'sk':
|
|
50
|
+
return import('@lion/ui/input-amount-dropdown-translations/sk.js');
|
|
51
|
+
case 'uk-UA':
|
|
52
|
+
case 'uk':
|
|
53
|
+
return import('@lion/ui/input-amount-dropdown-translations/uk.js');
|
|
54
|
+
case 'zh-CN':
|
|
55
|
+
case 'zh':
|
|
56
|
+
return import('@lion/ui/input-amount-dropdown-translations/zh.js');
|
|
4
57
|
default:
|
|
5
58
|
return import('@lion/ui/input-amount-dropdown-translations/en.js');
|
|
6
59
|
}
|