@nanoporetech-digital/components 2.6.0 → 2.9.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 (249) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/cjs/form-control-d54a847f.js +85 -0
  3. package/dist/cjs/form-control-d54a847f.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
  6. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
  8. package/dist/cjs/nano-components.cjs.js +1 -1
  9. package/dist/cjs/nano-datalist_3.cjs.entry.js +4 -3
  10. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  11. package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
  12. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  13. package/dist/cjs/nano-dropdown.cjs.entry.js +1 -1
  14. package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
  15. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  16. package/dist/cjs/nano-global-nav.cjs.entry.js +50 -47
  17. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  18. package/dist/cjs/nano-input.cjs.entry.js +14 -10
  19. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  20. package/dist/cjs/nano-nav-item_2.cjs.entry.js +16 -14
  21. package/dist/cjs/nano-nav-item_2.cjs.entry.js.map +1 -1
  22. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +6 -4
  23. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  24. package/dist/cjs/nano-tooltip.cjs.entry.js +1 -1
  25. package/dist/cjs/{popover-8c86d338.js → popover-5f152a19.js} +3 -8
  26. package/dist/cjs/{popover-8c86d338.js.map → popover-5f152a19.js.map} +1 -1
  27. package/dist/collection/components/accordion/accordion.js +1 -1
  28. package/dist/collection/components/alert/alert.js +1 -1
  29. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  30. package/dist/collection/components/algolia/algolia-input.js +5 -5
  31. package/dist/collection/components/algolia/algolia-results.js +1 -1
  32. package/dist/collection/components/algolia/algolia.js +6 -6
  33. package/dist/collection/components/checkbox/checkbox-group.css +4 -1
  34. package/dist/collection/components/checkbox/checkbox-group.js +2 -2
  35. package/dist/collection/components/checkbox/checkbox.css +2 -2
  36. package/dist/collection/components/checkbox/checkbox.js +3 -3
  37. package/dist/collection/components/datalist/datalist.js +4 -2
  38. package/dist/collection/components/datalist/datalist.js.map +1 -1
  39. package/dist/collection/components/date-input/date-input.css +1 -0
  40. package/dist/collection/components/date-input/date-input.js +7 -7
  41. package/dist/collection/components/date-picker/date-picker.js +5 -5
  42. package/dist/collection/components/details/details.js +1 -1
  43. package/dist/collection/components/dialog/dialog.js +1 -1
  44. package/dist/collection/components/dropdown/dropdown.js +1 -1
  45. package/dist/collection/components/file-upload/file-upload.css +2 -2
  46. package/dist/collection/components/file-upload/file-upload.js +4 -4
  47. package/dist/collection/components/form-control/form-control.js +37 -32
  48. package/dist/collection/components/form-control/form-control.js.map +1 -1
  49. package/dist/collection/components/global-nav/global-nav.js +78 -50
  50. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  51. package/dist/collection/components/grid/grid-item.js +1 -1
  52. package/dist/collection/components/icon/icon.js +1 -1
  53. package/dist/collection/components/input/input.css +251 -258
  54. package/dist/collection/components/input/input.js +21 -14
  55. package/dist/collection/components/input/input.js.map +1 -1
  56. package/dist/collection/components/menu/menu.js +1 -2
  57. package/dist/collection/components/menu/menu.js.map +1 -1
  58. package/dist/collection/components/nav-item/nav-item.js +4 -4
  59. package/dist/collection/components/range/range.js +4 -4
  60. package/dist/collection/components/resize-observe/resize-observe.js +7 -6
  61. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  62. package/dist/collection/components/select/select.css +277 -274
  63. package/dist/collection/components/select/select.js +25 -21
  64. package/dist/collection/components/select/select.js.map +1 -1
  65. package/dist/collection/components/slides/slides.js +7 -7
  66. package/dist/collection/components/tabs/tab-group.js +2 -2
  67. package/dist/collection/utils/popover.js +2 -7
  68. package/dist/collection/utils/popover.js.map +1 -1
  69. package/dist/components/datalist.js +3 -1
  70. package/dist/components/datalist.js.map +1 -1
  71. package/dist/components/form-control.js +37 -32
  72. package/dist/components/form-control.js.map +1 -1
  73. package/dist/components/input.js +15 -10
  74. package/dist/components/input.js.map +1 -1
  75. package/dist/components/menu.js +1 -2
  76. package/dist/components/menu.js.map +1 -1
  77. package/dist/components/nano-checkbox-group.js +1 -1
  78. package/dist/components/nano-checkbox-group.js.map +1 -1
  79. package/dist/components/nano-checkbox.js +1 -1
  80. package/dist/components/nano-date-input.js +1 -1
  81. package/dist/components/nano-date-input.js.map +1 -1
  82. package/dist/components/nano-file-upload.js +1 -1
  83. package/dist/components/nano-file-upload.js.map +1 -1
  84. package/dist/components/nano-global-nav.js +51 -47
  85. package/dist/components/nano-global-nav.js.map +1 -1
  86. package/dist/components/popover.js +2 -7
  87. package/dist/components/popover.js.map +1 -1
  88. package/dist/components/resize-observe.js +6 -4
  89. package/dist/components/resize-observe.js.map +1 -1
  90. package/dist/components/select.js +16 -13
  91. package/dist/components/select.js.map +1 -1
  92. package/dist/custom-elements/index.js +134 -122
  93. package/dist/custom-elements/index.js.map +1 -1
  94. package/dist/esm/form-control-cf23c6a2.js +82 -0
  95. package/dist/esm/form-control-cf23c6a2.js.map +1 -0
  96. package/dist/esm/loader.js +1 -1
  97. package/dist/esm/nano-checkbox-group.entry.js +1 -1
  98. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  99. package/dist/esm/nano-checkbox.entry.js +1 -1
  100. package/dist/esm/nano-components.js +1 -1
  101. package/dist/esm/nano-datalist_3.entry.js +4 -3
  102. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  103. package/dist/esm/nano-date-input.entry.js +1 -1
  104. package/dist/esm/nano-date-input.entry.js.map +1 -1
  105. package/dist/esm/nano-dropdown.entry.js +1 -1
  106. package/dist/esm/nano-file-upload.entry.js +1 -1
  107. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  108. package/dist/esm/nano-global-nav.entry.js +50 -47
  109. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  110. package/dist/esm/nano-input.entry.js +14 -10
  111. package/dist/esm/nano-input.entry.js.map +1 -1
  112. package/dist/esm/nano-nav-item_2.entry.js +16 -14
  113. package/dist/esm/nano-nav-item_2.entry.js.map +1 -1
  114. package/dist/esm/nano-resize-observe_2.entry.js +6 -4
  115. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  116. package/dist/esm/nano-tooltip.entry.js +1 -1
  117. package/dist/esm/{popover-7639005b.js → popover-a03563f3.js} +3 -8
  118. package/dist/esm/{popover-7639005b.js.map → popover-a03563f3.js.map} +1 -1
  119. package/dist/esm-es5/form-control-cf23c6a2.js +5 -0
  120. package/dist/esm-es5/form-control-cf23c6a2.js.map +1 -0
  121. package/dist/esm-es5/loader.js +1 -1
  122. package/dist/esm-es5/loader.js.map +1 -1
  123. package/dist/esm-es5/nano-checkbox-group.entry.js +1 -1
  124. package/dist/esm-es5/nano-checkbox-group.entry.js.map +1 -1
  125. package/dist/esm-es5/nano-checkbox.entry.js +1 -1
  126. package/dist/esm-es5/nano-components.js +1 -1
  127. package/dist/esm-es5/nano-components.js.map +1 -1
  128. package/dist/esm-es5/nano-datalist_3.entry.js +1 -1
  129. package/dist/esm-es5/nano-datalist_3.entry.js.map +1 -1
  130. package/dist/esm-es5/nano-date-input.entry.js +1 -1
  131. package/dist/esm-es5/nano-date-input.entry.js.map +1 -1
  132. package/dist/esm-es5/nano-dropdown.entry.js +1 -1
  133. package/dist/esm-es5/nano-file-upload.entry.js +1 -1
  134. package/dist/esm-es5/nano-file-upload.entry.js.map +1 -1
  135. package/dist/esm-es5/nano-global-nav.entry.js +1 -1
  136. package/dist/esm-es5/nano-global-nav.entry.js.map +1 -1
  137. package/dist/esm-es5/nano-input.entry.js +2 -2
  138. package/dist/esm-es5/nano-input.entry.js.map +1 -1
  139. package/dist/esm-es5/nano-nav-item_2.entry.js +1 -1
  140. package/dist/esm-es5/nano-nav-item_2.entry.js.map +1 -1
  141. package/dist/esm-es5/nano-resize-observe_2.entry.js +2 -2
  142. package/dist/esm-es5/nano-resize-observe_2.entry.js.map +1 -1
  143. package/dist/esm-es5/nano-tooltip.entry.js +1 -1
  144. package/dist/esm-es5/{popover-7639005b.js → popover-a03563f3.js} +2 -2
  145. package/dist/esm-es5/popover-a03563f3.js.map +1 -0
  146. package/dist/nano-components/nano-components.esm.js +1 -1
  147. package/dist/nano-components/nano-components.esm.js.map +1 -1
  148. package/dist/nano-components/p-096682d9.system.js +1 -1
  149. package/dist/nano-components/p-096682d9.system.js.map +1 -1
  150. package/dist/nano-components/{p-820d9e23.system.entry.js → p-09e38c5f.system.entry.js} +2 -2
  151. package/dist/nano-components/p-09e38c5f.system.entry.js.map +1 -0
  152. package/dist/nano-components/p-10a6216d.system.entry.js +5 -0
  153. package/dist/nano-components/p-10a6216d.system.entry.js.map +1 -0
  154. package/dist/nano-components/p-1ca46443.entry.js +5 -0
  155. package/dist/nano-components/p-1ca46443.entry.js.map +1 -0
  156. package/dist/nano-components/{p-e7fdc62d.entry.js → p-1e8321ea.entry.js} +2 -2
  157. package/dist/nano-components/{p-e7fdc62d.entry.js.map → p-1e8321ea.entry.js.map} +0 -0
  158. package/dist/nano-components/{p-f9e30f31.system.entry.js → p-2057d480.system.entry.js} +2 -2
  159. package/dist/nano-components/p-2057d480.system.entry.js.map +1 -0
  160. package/dist/nano-components/{p-9acc4596.system.entry.js → p-2ae4918d.system.entry.js} +3 -3
  161. package/dist/nano-components/{p-9acc4596.system.entry.js.map → p-2ae4918d.system.entry.js.map} +0 -0
  162. package/dist/nano-components/{p-c9d09839.entry.js → p-313970ff.entry.js} +2 -2
  163. package/dist/nano-components/{p-c9d09839.entry.js.map → p-313970ff.entry.js.map} +0 -0
  164. package/dist/nano-components/p-39a5280e.system.entry.js +5 -0
  165. package/dist/nano-components/p-39a5280e.system.entry.js.map +1 -0
  166. package/dist/nano-components/{p-178c34e3.js → p-3de7735c.js} +2 -2
  167. package/dist/nano-components/p-3de7735c.js.map +1 -0
  168. package/dist/nano-components/{p-93448bcd.system.entry.js → p-4265cf95.system.entry.js} +2 -2
  169. package/dist/nano-components/{p-93448bcd.system.entry.js.map → p-4265cf95.system.entry.js.map} +0 -0
  170. package/dist/nano-components/p-44c08842.system.entry.js +5 -0
  171. package/dist/nano-components/p-44c08842.system.entry.js.map +1 -0
  172. package/dist/nano-components/{p-f3bf942d.entry.js → p-457d4893.entry.js} +2 -2
  173. package/dist/nano-components/p-457d4893.entry.js.map +1 -0
  174. package/dist/nano-components/{p-383fda90.system.entry.js → p-4870e76d.system.entry.js} +2 -2
  175. package/dist/nano-components/{p-383fda90.system.entry.js.map → p-4870e76d.system.entry.js.map} +0 -0
  176. package/dist/nano-components/{p-20db18f3.entry.js → p-5a315696.entry.js} +2 -2
  177. package/dist/nano-components/{p-20db18f3.entry.js.map → p-5a315696.entry.js.map} +0 -0
  178. package/dist/nano-components/p-6eb25600.system.js +5 -0
  179. package/dist/nano-components/p-6eb25600.system.js.map +1 -0
  180. package/dist/nano-components/p-6f94d755.entry.js +5 -0
  181. package/dist/nano-components/p-6f94d755.entry.js.map +1 -0
  182. package/dist/nano-components/p-802e1416.system.entry.js +5 -0
  183. package/dist/nano-components/{p-ef4e0912.system.entry.js.map → p-802e1416.system.entry.js.map} +1 -1
  184. package/dist/nano-components/p-84767e87.entry.js +5 -0
  185. package/dist/nano-components/p-84767e87.entry.js.map +1 -0
  186. package/dist/nano-components/p-933c35a6.system.entry.js +5 -0
  187. package/dist/nano-components/p-933c35a6.system.entry.js.map +1 -0
  188. package/dist/nano-components/p-971b40a4.system.entry.js +5 -0
  189. package/dist/nano-components/p-971b40a4.system.entry.js.map +1 -0
  190. package/dist/nano-components/p-9d35768b.entry.js +5 -0
  191. package/dist/nano-components/p-9d35768b.entry.js.map +1 -0
  192. package/dist/nano-components/p-9ea13fbe.entry.js +5 -0
  193. package/dist/nano-components/p-9ea13fbe.entry.js.map +1 -0
  194. package/dist/nano-components/p-a6c84740.js +5 -0
  195. package/dist/nano-components/p-a6c84740.js.map +1 -0
  196. package/dist/nano-components/{p-8de6e276.entry.js → p-b4f8e541.entry.js} +2 -2
  197. package/dist/nano-components/p-b4f8e541.entry.js.map +1 -0
  198. package/dist/nano-components/{p-9745d44e.system.js → p-e43ec257.system.js} +2 -2
  199. package/dist/nano-components/p-e43ec257.system.js.map +1 -0
  200. package/dist/nano-components/p-e7c69d4f.entry.js +5 -0
  201. package/dist/nano-components/{p-d6569144.entry.js.map → p-e7c69d4f.entry.js.map} +1 -1
  202. package/dist/types/components/form-control/form-control.d.ts +2 -0
  203. package/dist/types/components/global-nav/global-nav.d.ts +10 -3
  204. package/dist/types/components/input/input.d.ts +3 -0
  205. package/dist/types/components/resize-observe/resize-observe.d.ts +0 -1
  206. package/dist/types/components/select/select.d.ts +2 -1
  207. package/dist/types/components.d.ts +11 -3
  208. package/docs-json.json +51 -17
  209. package/docs-vscode.json +6 -2
  210. package/package.json +4 -3
  211. package/dist/cjs/form-control-3bc82e3e.js +0 -80
  212. package/dist/cjs/form-control-3bc82e3e.js.map +0 -1
  213. package/dist/esm/form-control-67eeb108.js +0 -77
  214. package/dist/esm/form-control-67eeb108.js.map +0 -1
  215. package/dist/esm-es5/form-control-67eeb108.js +0 -5
  216. package/dist/esm-es5/form-control-67eeb108.js.map +0 -1
  217. package/dist/esm-es5/popover-7639005b.js.map +0 -1
  218. package/dist/nano-components/p-0618fac6.system.entry.js +0 -5
  219. package/dist/nano-components/p-0618fac6.system.entry.js.map +0 -1
  220. package/dist/nano-components/p-173bae15.system.entry.js +0 -5
  221. package/dist/nano-components/p-173bae15.system.entry.js.map +0 -1
  222. package/dist/nano-components/p-178c34e3.js.map +0 -1
  223. package/dist/nano-components/p-2559e9c1.entry.js +0 -5
  224. package/dist/nano-components/p-2559e9c1.entry.js.map +0 -1
  225. package/dist/nano-components/p-2be7aab0.system.entry.js +0 -5
  226. package/dist/nano-components/p-2be7aab0.system.entry.js.map +0 -1
  227. package/dist/nano-components/p-2e38a927.entry.js +0 -5
  228. package/dist/nano-components/p-2e38a927.entry.js.map +0 -1
  229. package/dist/nano-components/p-3a13948a.system.entry.js +0 -5
  230. package/dist/nano-components/p-3a13948a.system.entry.js.map +0 -1
  231. package/dist/nano-components/p-4ee978ff.entry.js +0 -5
  232. package/dist/nano-components/p-4ee978ff.entry.js.map +0 -1
  233. package/dist/nano-components/p-5e7c7d3d.entry.js +0 -5
  234. package/dist/nano-components/p-5e7c7d3d.entry.js.map +0 -1
  235. package/dist/nano-components/p-672e5547.js +0 -5
  236. package/dist/nano-components/p-672e5547.js.map +0 -1
  237. package/dist/nano-components/p-820d9e23.system.entry.js.map +0 -1
  238. package/dist/nano-components/p-8de6e276.entry.js.map +0 -1
  239. package/dist/nano-components/p-9745d44e.system.js.map +0 -1
  240. package/dist/nano-components/p-99acaa4f.system.entry.js +0 -5
  241. package/dist/nano-components/p-99acaa4f.system.entry.js.map +0 -1
  242. package/dist/nano-components/p-d4dfa4c5.entry.js +0 -5
  243. package/dist/nano-components/p-d4dfa4c5.entry.js.map +0 -1
  244. package/dist/nano-components/p-d6569144.entry.js +0 -5
  245. package/dist/nano-components/p-ea5eb591.system.js +0 -5
  246. package/dist/nano-components/p-ea5eb591.system.js.map +0 -1
  247. package/dist/nano-components/p-ef4e0912.system.entry.js +0 -5
  248. package/dist/nano-components/p-f3bf942d.entry.js.map +0 -1
  249. package/dist/nano-components/p-f9e30f31.system.entry.js.map +0 -1
@@ -655,7 +655,7 @@ export class FileUpload {
655
655
  "references": {
656
656
  "FileWithUrl": {
657
657
  "location": "import",
658
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
658
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
659
659
  }
660
660
  }
661
661
  },
@@ -713,7 +713,7 @@ export class FileUpload {
713
713
  "references": {
714
714
  "FileInputChangeEventDetail": {
715
715
  "location": "import",
716
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
716
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
717
717
  }
718
718
  }
719
719
  }
@@ -766,7 +766,7 @@ export class FileUpload {
766
766
  "references": {
767
767
  "ControlValidityEventDetail": {
768
768
  "location": "import",
769
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
769
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
770
770
  }
771
771
  }
772
772
  }
@@ -788,7 +788,7 @@ export class FileUpload {
788
788
  },
789
789
  "ControlValidity": {
790
790
  "location": "import",
791
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
791
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
792
792
  }
793
793
  },
794
794
  "return": "Promise<ControlValidity>"
@@ -6,67 +6,72 @@ const renderLabel = ({ label, hasLabelSlot, controlId, labelId, floatLabel, plac
6
6
  if (!label && !hasLabelSlot)
7
7
  return;
8
8
  if (floatLabel) {
9
- return (h("label", { class: "placeholder-as-label", htmlFor: controlId, id: labelId },
9
+ return (h("label", { class: "form-ctrl__float-label", htmlFor: controlId, id: labelId },
10
10
  label && label,
11
- !label && hasLabelSlot && h("slot", { name: "label" })));
11
+ !label && hasLabelSlot && h("slot", { name: "label" }),
12
+ showCharCount && (h("span", { class: "form-ctrl__label-charcount" }, maxlength ? ` ${charCount}/${maxlength}` : ` ${charCount}`))));
12
13
  }
13
14
  else {
14
- return (h("label", { class: { label: true, 'visually-hide': hideLabel }, htmlFor: controlId, id: labelId },
15
- h("div", { class: "label-placeholder" },
16
- placeholder && hasValue && rtl && (h("span", { class: "placeholder" },
15
+ return (h("label", { class: { 'form-ctrl__label': true, 'visually-hide': hideLabel }, htmlFor: controlId, id: labelId },
16
+ h("div", { class: "form-ctrl__label-wrap" },
17
+ placeholder && hasValue && rtl && (h("span", { class: "form-ctrl__label-placeholder" },
17
18
  placeholder,
18
19
  " / ")),
19
- h("span", { class: "labeltext" },
20
+ h("span", { class: "form-ctrl__labeltext" },
20
21
  label && label,
21
22
  !label && hasLabelSlot && h("slot", { name: "label" })),
22
- placeholder && hasValue && !rtl && (h("span", { class: "placeholder" },
23
+ placeholder && hasValue && !rtl && (h("span", { class: "form-ctrl__label-placeholder" },
23
24
  " / ",
24
25
  placeholder))),
25
- showCharCount && (h("span", { class: "charcount" }, maxlength
26
+ showCharCount && (h("span", { class: "form-ctrl__label-charcount" }, maxlength
26
27
  ? maxlength - charCount + ' left'
27
28
  : charCount + ' characters'))));
28
29
  }
29
30
  };
30
31
  export const FormControlWrap = (props, children) => {
31
- const { rtl, floatLabel, label, moreId, type, hasHelperSlot, showInlineError, errorMessage, } = props;
32
- const isLegacy = !document.head.attachShadow;
33
- return [
34
- !floatLabel ? renderLabel(Object.assign({}, props)) : '',
35
- h("div", { class: {
36
- 'has-label': label !== null && !floatLabel,
37
- 'has-float-label': label !== null && floatLabel,
38
- rtl,
39
- legacy: isLegacy,
40
- input: true,
41
- textarea: type === 'textarea',
42
- } },
43
- floatLabel && renderLabel(Object.assign(Object.assign({}, props), { rtl })),
44
- children),
45
- showInlineError || hasHelperSlot ? (h("div", { class: "more", id: moreId },
46
- !!showInlineError ? h("div", { class: "error" }, errorMessage) : '',
47
- h("div", { class: "helper" },
48
- h("slot", { name: "helper" })))) : (''),
49
- ];
32
+ const { rtl, floatLabel, label, moreId, helperEndId, type, hasHelperSlot, showInlineError, errorMessage, hasHelperEndSlot, } = props;
33
+ const MainTag = hasHelperEndSlot ? 'nano-resize-observe' : 'div';
34
+ return (h(MainTag, { states: "350w has-enough-width", class: {
35
+ 'has-label': label !== null && !floatLabel,
36
+ 'has-float-label': label !== null && floatLabel,
37
+ 'has-helper-end': hasHelperEndSlot,
38
+ rtl,
39
+ 'form-ctrl': true,
40
+ } },
41
+ h("div", { class: "form-ctrl__wrapper" },
42
+ !floatLabel ? renderLabel(Object.assign({}, props)) : '',
43
+ h("div", { class: {
44
+ 'form-ctrl__input': true,
45
+ 'form-ctrl__textarea': type === 'textarea',
46
+ } },
47
+ floatLabel && renderLabel(Object.assign(Object.assign({}, props), { rtl })),
48
+ children),
49
+ showInlineError || hasHelperSlot ? (h("div", { class: "form-ctrl__more", id: moreId },
50
+ !!showInlineError ? (h("div", { class: "form-ctrl__error", "aria-live": "polite" }, errorMessage)) : (''),
51
+ h("div", { class: "form-ctrl__helper" },
52
+ h("slot", { name: "helper" })))) : ('')),
53
+ hasHelperEndSlot ? (h("div", { class: "form-ctrl__helper-end", id: helperEndId },
54
+ h("slot", { name: "helper-end" }))) : ('')));
50
55
  };
51
56
  export const FormControl = (props, children) => {
52
57
  const { clearControl, onClearText, readonly, disabled, control, ref, endSlot, endValueSlot, startSlot, } = props;
53
58
  const clickThrough = () => {
54
59
  control.setFocus();
55
60
  };
56
- return (h("div", { class: "native-input-wrap", ref: (el) => {
61
+ return (h("div", { class: "form-ctrl__input-wrap", ref: (el) => {
57
62
  if (ref)
58
63
  ref(el);
59
64
  } },
60
- h("span", { class: "start" },
65
+ h("span", { class: "form-ctrl__slot-start" },
61
66
  h("slot", { name: "start" }),
62
67
  startSlot),
63
68
  children,
64
- clearControl && !readonly && !disabled && (h("button", { type: "button", class: "icon input-clear-icon", tabindex: "-1", onTouchStart: onClearText, onMouseDown: onClearText },
69
+ clearControl && !readonly && !disabled && (h("button", { type: "button", class: "icon form-ctrl__clear-btn", tabindex: "-1", onTouchStart: onClearText, onMouseDown: onClearText },
65
70
  h("nano-icon", { name: "light/times" }))),
66
- h("span", { class: "value-end", onClick: clickThrough },
71
+ h("span", { class: "form-ctrl__slot-value-end", onClick: clickThrough },
67
72
  h("slot", { name: "value-end" }),
68
73
  endValueSlot),
69
- h("span", { class: "end" },
74
+ h("span", { class: "form-ctrl__slot-end" },
70
75
  h("slot", { name: "end" }),
71
76
  endSlot)));
72
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../../src/components/form-control/form-control.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport { TextFieldTypes } from '../../interface';\n\ninterface FormControlWrapProps {\n rtl: boolean;\n floatLabel: boolean;\n labelId: string;\n label: string;\n moreId: string;\n type?: TextFieldTypes;\n showInlineError: boolean;\n hasHelperSlot: boolean;\n errorMessage: string;\n controlId: string;\n hasLabelSlot: boolean;\n hideLabel: boolean;\n placeholder: string;\n hasValue: boolean;\n showCharCount?: boolean;\n maxlength?: number;\n charCount?: number;\n}\n\ninterface FormControlProps {\n clearControl: boolean;\n onClearText?: () => void;\n readonly: boolean;\n disabled: boolean;\n control: HTMLNanoInputElement | HTMLNanoSelectElement;\n ref?: (elm?: HTMLElement) => void;\n endSlot?: VNode;\n endValueSlot?: VNode;\n startSlot?: VNode;\n}\n\ninterface LabelProps extends FormControlWrapProps {\n rtl: boolean;\n}\n\nconst renderLabel = ({\n label,\n hasLabelSlot,\n controlId,\n labelId,\n floatLabel,\n placeholder,\n hideLabel,\n hasValue,\n rtl,\n showCharCount,\n maxlength,\n charCount,\n}: LabelProps) => {\n if (!label && !hasLabelSlot) return;\n if (floatLabel) {\n return (\n <label class=\"placeholder-as-label\" htmlFor={controlId} id={labelId}>\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </label>\n );\n } else {\n return (\n <label\n class={{ label: true, 'visually-hide': hideLabel }}\n htmlFor={controlId}\n id={labelId}\n >\n <div class=\"label-placeholder\">\n {placeholder && hasValue && rtl && (\n <span class=\"placeholder\">{placeholder} / </span>\n )}\n <span class=\"labeltext\">\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </span>\n {placeholder && hasValue && !rtl && (\n <span class=\"placeholder\"> / {placeholder}</span>\n )}\n </div>\n {showCharCount && (\n <span class=\"charcount\">\n {maxlength\n ? maxlength - charCount + ' left'\n : charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n};\n\nexport const FormControlWrap: FunctionalComponent<FormControlWrapProps> = (\n props: FormControlWrapProps,\n children\n) => {\n const {\n rtl,\n floatLabel,\n label,\n moreId,\n type,\n hasHelperSlot,\n showInlineError,\n errorMessage,\n } = props;\n const isLegacy = !document.head.attachShadow;\n\n return [\n !floatLabel ? renderLabel({ ...props }) : '',\n <div\n class={{\n 'has-label': label !== null && !floatLabel,\n 'has-float-label': label !== null && floatLabel,\n rtl,\n legacy: isLegacy,\n input: true,\n textarea: type === 'textarea',\n }}\n >\n {floatLabel && renderLabel({ ...props, rtl })}\n {children}\n </div>,\n showInlineError || hasHelperSlot ? (\n <div class=\"more\" id={moreId}>\n {!!showInlineError ? <div class=\"error\">{errorMessage}</div> : ''}\n <div class=\"helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n ),\n ];\n};\n\nexport const FormControl: FunctionalComponent<FormControlProps> = (\n props: FormControlProps,\n children\n) => {\n const {\n clearControl,\n onClearText,\n readonly,\n disabled,\n control,\n ref,\n endSlot,\n endValueSlot,\n startSlot,\n } = props;\n const clickThrough = () => {\n control.setFocus();\n };\n\n return (\n <div\n class=\"native-input-wrap\"\n ref={(el) => {\n if (ref) ref(el);\n }}\n >\n <span class=\"start\">\n <slot name=\"start\" />\n {startSlot}\n </span>\n {children}\n {clearControl && !readonly && !disabled && (\n <button\n type=\"button\"\n class=\"icon input-clear-icon\"\n tabindex=\"-1\"\n onTouchStart={onClearText}\n onMouseDown={onClearText}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <span class=\"value-end\" onClick={clickThrough}>\n <slot name=\"value-end\" />\n {endValueSlot}\n </span>\n <span class=\"end\">\n <slot name=\"end\" />\n {endSlot}\n </span>\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"form-control.js","sourceRoot":"","sources":["../../../src/components/form-control/form-control.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport { TextFieldTypes } from '../../interface';\n\ninterface FormControlWrapProps {\n rtl: boolean;\n floatLabel: boolean;\n labelId: string;\n label: string;\n moreId: string;\n helperEndId: string;\n type?: TextFieldTypes;\n showInlineError: boolean;\n hasHelperSlot: boolean;\n errorMessage: string;\n controlId: string;\n hasLabelSlot: boolean;\n hideLabel: boolean;\n placeholder: string;\n hasValue: boolean;\n showCharCount?: boolean;\n maxlength?: number;\n charCount?: number;\n hasHelperEndSlot?: boolean;\n}\n\ninterface FormControlProps {\n clearControl: boolean;\n onClearText?: () => void;\n readonly: boolean;\n disabled: boolean;\n control: HTMLNanoInputElement | HTMLNanoSelectElement;\n ref?: (elm?: HTMLElement) => void;\n endSlot?: VNode;\n endValueSlot?: VNode;\n startSlot?: VNode;\n}\n\ninterface LabelProps extends FormControlWrapProps {\n rtl: boolean;\n}\n\nconst renderLabel = ({\n label,\n hasLabelSlot,\n controlId,\n labelId,\n floatLabel,\n placeholder,\n hideLabel,\n hasValue,\n rtl,\n showCharCount,\n maxlength,\n charCount,\n}: LabelProps) => {\n if (!label && !hasLabelSlot) return;\n if (floatLabel) {\n return (\n <label class=\"form-ctrl__float-label\" htmlFor={controlId} id={labelId}>\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength ? ` ${charCount}/${maxlength}` : ` ${charCount}`}\n </span>\n )}\n </label>\n );\n } else {\n return (\n <label\n class={{ 'form-ctrl__label': true, 'visually-hide': hideLabel }}\n htmlFor={controlId}\n id={labelId}\n >\n <div class=\"form-ctrl__label-wrap\">\n {placeholder && hasValue && rtl && (\n <span class=\"form-ctrl__label-placeholder\">{placeholder} / </span>\n )}\n <span class=\"form-ctrl__labeltext\">\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </span>\n {placeholder && hasValue && !rtl && (\n <span class=\"form-ctrl__label-placeholder\"> / {placeholder}</span>\n )}\n </div>\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength\n ? maxlength - charCount + ' left'\n : charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n};\n\nexport const FormControlWrap: FunctionalComponent<FormControlWrapProps> = (\n props: FormControlWrapProps,\n children\n) => {\n const {\n rtl,\n floatLabel,\n label,\n moreId,\n helperEndId,\n type,\n hasHelperSlot,\n showInlineError,\n errorMessage,\n hasHelperEndSlot,\n } = props;\n\n const MainTag = hasHelperEndSlot ? 'nano-resize-observe' : 'div';\n\n return (\n <MainTag\n states=\"350w has-enough-width\"\n class={{\n 'has-label': label !== null && !floatLabel,\n 'has-float-label': label !== null && floatLabel,\n 'has-helper-end': hasHelperEndSlot,\n rtl,\n 'form-ctrl': true,\n }}\n >\n <div class=\"form-ctrl__wrapper\">\n {!floatLabel ? renderLabel({ ...props }) : ''}\n <div\n class={{\n 'form-ctrl__input': true,\n 'form-ctrl__textarea': type === 'textarea',\n }}\n >\n {floatLabel && renderLabel({ ...props, rtl })}\n {children}\n </div>\n {showInlineError || hasHelperSlot ? (\n <div class=\"form-ctrl__more\" id={moreId}>\n {!!showInlineError ? (\n <div class=\"form-ctrl__error\" aria-live=\"polite\">\n {errorMessage}\n </div>\n ) : (\n ''\n )}\n <div class=\"form-ctrl__helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n {hasHelperEndSlot ? (\n <div class=\"form-ctrl__helper-end\" id={helperEndId}>\n <slot name=\"helper-end\" />\n </div>\n ) : (\n ''\n )}\n </MainTag>\n );\n};\n\nexport const FormControl: FunctionalComponent<FormControlProps> = (\n props: FormControlProps,\n children\n) => {\n const {\n clearControl,\n onClearText,\n readonly,\n disabled,\n control,\n ref,\n endSlot,\n endValueSlot,\n startSlot,\n } = props;\n const clickThrough = () => {\n control.setFocus();\n };\n\n return (\n <div\n class=\"form-ctrl__input-wrap\"\n ref={(el) => {\n if (ref) ref(el);\n }}\n >\n <span class=\"form-ctrl__slot-start\">\n <slot name=\"start\" />\n {startSlot}\n </span>\n {children}\n {clearControl && !readonly && !disabled && (\n <button\n type=\"button\"\n class=\"icon form-ctrl__clear-btn\"\n tabindex=\"-1\"\n onTouchStart={onClearText}\n onMouseDown={onClearText}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <span class=\"form-ctrl__slot-value-end\" onClick={clickThrough}>\n <slot name=\"value-end\" />\n {endValueSlot}\n </span>\n <span class=\"form-ctrl__slot-end\">\n <slot name=\"end\" />\n {endSlot}\n </span>\n </div>\n );\n};\n"]}
@@ -71,7 +71,8 @@ export class GlobalNav {
71
71
  this.searchValInternal = '';
72
72
  /**
73
73
  * Connect to local, dev, test or prod MyAccount
74
- * environments to retrieve global nav / sso data
74
+ * environments to retrieve global nav / sso data.
75
+ * Alternatively, you can use the `ssoDataUrl` prop.
75
76
  */
76
77
  this.env = 'prod';
77
78
  /**
@@ -467,6 +468,46 @@ export class GlobalNav {
467
468
  this.showAutocomplete = false;
468
469
  return;
469
470
  }
471
+ async getMyAccData() {
472
+ if (!this.getMyAccountData || this.myAccData) {
473
+ this.remoteDataReady = true;
474
+ return;
475
+ }
476
+ let url = this.ssoDataUrl;
477
+ if (!url) {
478
+ switch (this.env) {
479
+ case 'dev':
480
+ url = 'https://myaccount-dev.nanoporetech.com/';
481
+ break;
482
+ case 'test':
483
+ url = 'https://myaccount-test.nanoporetech.com/';
484
+ break;
485
+ default:
486
+ url = 'https://myaccount.nanoporetech.com/';
487
+ break;
488
+ }
489
+ }
490
+ var config = { timeout: 5000 };
491
+ try {
492
+ if (this.env === 'local') {
493
+ this.myAccData = (await import(`./assets/local-my-account.json`));
494
+ }
495
+ else {
496
+ this.myAccData = await clientFetch(url + 'nav_bar_data.json', config);
497
+ }
498
+ if (this.myAccData.user.id) {
499
+ this.isLoggedIn = true;
500
+ this.myAccountUser = this.myAccData.user;
501
+ }
502
+ this.processMyAccLinks();
503
+ this.processMyAccData();
504
+ setTimeout(() => (this.remoteDataReady = true), 300);
505
+ }
506
+ catch (e) {
507
+ console.error(e);
508
+ this.remoteDataReady = true;
509
+ }
510
+ }
470
511
  currentSelectedIndex() {
471
512
  if (!this.internalSearchIndeces.length) {
472
513
  return;
@@ -1034,16 +1075,14 @@ export class GlobalNav {
1034
1075
  (!this.showSearch || !this.myAccData) &&
1035
1076
  !!this.searchSlotLen && h("slot", { name: "search" }),
1036
1077
  ],
1037
- this.threshold >=
1038
- this.THRESHOLDLIMIT - THRESHOLDBREAKS.about && (h("nav", { class: "nav-links nav-links--sub", "aria-label": "About the company links" }, (!!this.aboutSlotLen || !!this.aboutNavItms.length) &&
1078
+ (!!this.aboutSlotLen || !!this.aboutNavItms.length) &&
1039
1079
  this.threshold >=
1040
- this.THRESHOLDLIMIT - THRESHOLDBREAKS.about && [
1080
+ this.THRESHOLDLIMIT - THRESHOLDBREAKS.about && (h("nav", { class: "nav-links nav-links--sub", "aria-label": "About the company. Links" },
1041
1081
  h("slot", { name: "about" }),
1042
1082
  this.aboutNavItms.map((link) => {
1043
1083
  return (h("nano-nav-item", { class: "nano-global-nav nano-global-nav-bar" },
1044
1084
  h("a", { href: link.address, target: link.target }, link.title)));
1045
- }),
1046
- ])),
1085
+ }))),
1047
1086
  this.threshold <
1048
1087
  this.THRESHOLDLIMIT - THRESHOLDBREAKS.search &&
1049
1088
  ((this.showSearch && !!this.internalSearchIndeces.length) ||
@@ -1064,6 +1103,8 @@ export class GlobalNav {
1064
1103
  ],
1065
1104
  ],
1066
1105
  this.myAccData &&
1106
+ (!this.activeMyAccountSections ||
1107
+ this.activeMyAccountSections.includes('loggedin')) &&
1067
1108
  this.threshold >=
1068
1109
  this.THRESHOLDLIMIT - THRESHOLDBREAKS.login && [
1069
1110
  this.myAccData.urls.login && (h("a", { href: this.myAccData.urls.login + this.ssoRedirect, class: "login-btn" }, "Login / Register")),
@@ -1128,44 +1169,6 @@ export class GlobalNav {
1128
1169
  return singleResult;
1129
1170
  }
1130
1171
  }
1131
- async getMyAccData() {
1132
- if (!this.getMyAccountData || this.myAccData) {
1133
- this.remoteDataReady = true;
1134
- return;
1135
- }
1136
- let url;
1137
- switch (this.env) {
1138
- case 'dev':
1139
- url = 'https://myaccount-dev.nanoporetech.com/';
1140
- break;
1141
- case 'test':
1142
- url = 'https://myaccount-test.nanoporetech.com/';
1143
- break;
1144
- default:
1145
- url = 'https://myaccount.nanoporetech.com/';
1146
- break;
1147
- }
1148
- var config = { timeout: 5000 };
1149
- try {
1150
- if (this.env === 'local') {
1151
- this.myAccData = (await import(`./assets/local-my-account.json`));
1152
- }
1153
- else {
1154
- this.myAccData = await clientFetch(url + 'nav_bar_data.json', config);
1155
- }
1156
- if (this.myAccData.user.id) {
1157
- this.isLoggedIn = true;
1158
- this.myAccountUser = this.myAccData.user;
1159
- }
1160
- this.processMyAccLinks();
1161
- this.processMyAccData();
1162
- setTimeout(() => (this.remoteDataReady = true), 300);
1163
- }
1164
- catch (e) {
1165
- console.error(e);
1166
- this.remoteDataReady = true;
1167
- }
1168
- }
1169
1172
  processMyAccData() {
1170
1173
  if (!this.myAccData || !this.myAccData.search.indeces.length)
1171
1174
  return;
@@ -1241,10 +1244,10 @@ export class GlobalNav {
1241
1244
  "references": {}
1242
1245
  },
1243
1246
  "required": false,
1244
- "optional": false,
1247
+ "optional": true,
1245
1248
  "docs": {
1246
1249
  "tags": [],
1247
- "text": "Connect to local, dev, test or prod MyAccount\nenvironments to retrieve global nav / sso data"
1250
+ "text": "Connect to local, dev, test or prod MyAccount\nenvironments to retrieve global nav / sso data.\nAlternatively, you can use the `ssoDataUrl` prop."
1248
1251
  },
1249
1252
  "getter": false,
1250
1253
  "setter": false,
@@ -1252,6 +1255,25 @@ export class GlobalNav {
1252
1255
  "reflect": false,
1253
1256
  "defaultValue": "'prod'"
1254
1257
  },
1258
+ "ssoDataUrl": {
1259
+ "type": "string",
1260
+ "mutable": false,
1261
+ "complexType": {
1262
+ "original": "string",
1263
+ "resolved": "string",
1264
+ "references": {}
1265
+ },
1266
+ "required": false,
1267
+ "optional": true,
1268
+ "docs": {
1269
+ "tags": [],
1270
+ "text": "A base url to retrieve global nav / sso data.\n`nav_bar_data.json` will be appended to this url.\nAn alternative to the pre-defined `env` urls"
1271
+ },
1272
+ "getter": false,
1273
+ "setter": false,
1274
+ "attribute": "sso-data-url",
1275
+ "reflect": false
1276
+ },
1255
1277
  "ssoRedirect": {
1256
1278
  "type": "string",
1257
1279
  "mutable": false,
@@ -1382,7 +1404,7 @@ export class GlobalNav {
1382
1404
  },
1383
1405
  "SearchIndex": {
1384
1406
  "location": "import",
1385
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
1407
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
1386
1408
  }
1387
1409
  }
1388
1410
  },
@@ -1631,7 +1653,7 @@ export class GlobalNav {
1631
1653
  "references": {
1632
1654
  "AloliaSearchResultDetail": {
1633
1655
  "location": "import",
1634
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
1656
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
1635
1657
  }
1636
1658
  }
1637
1659
  }
@@ -1651,7 +1673,7 @@ export class GlobalNav {
1651
1673
  "references": {
1652
1674
  "AlgoliaNetworkError": {
1653
1675
  "location": "import",
1654
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
1676
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
1655
1677
  }
1656
1678
  }
1657
1679
  }
@@ -1671,7 +1693,7 @@ export class GlobalNav {
1671
1693
  "references": {
1672
1694
  "AloliaSearchResultDetail": {
1673
1695
  "location": "import",
1674
- "path": "/builds/zfg2rJd-/0/Digital/nano-components/packages/components/src/interface.d.ts"
1696
+ "path": "/builds/99mRzSBj/0/Digital/nano-components/packages/components/src/interface.d.ts"
1675
1697
  }
1676
1698
  }
1677
1699
  }
@@ -1696,6 +1718,12 @@ export class GlobalNav {
1696
1718
  }; }
1697
1719
  static get elementRef() { return "el"; }
1698
1720
  static get watchers() { return [{
1721
+ "propName": "env",
1722
+ "methodName": "getMyAccData"
1723
+ }, {
1724
+ "propName": "ssoDataUrl",
1725
+ "methodName": "getMyAccData"
1726
+ }, {
1699
1727
  "propName": "searchIndex",
1700
1728
  "methodName": "currentSelectedIndex"
1701
1729
  }, {