@bodynarf/react.components 1.7.1 → 1.7.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.
Files changed (260) hide show
  1. package/{dist/components → components}/accordion/component/index.d.ts +7 -4
  2. package/components/accordion/component/index.d.ts.map +1 -0
  3. package/components/accordion/component/index.js +35 -0
  4. package/components/accordion/index.d.ts +3 -0
  5. package/components/accordion/index.d.ts.map +1 -0
  6. package/{dist/components/anchor/index.d.ts → components/accordion/index.js} +2 -2
  7. package/{dist/components → components}/accordion/types.d.ts +18 -16
  8. package/components/accordion/types.d.ts.map +1 -0
  9. package/components/accordion/types.js +1 -0
  10. package/components/anchor/component/index.d.ts +6 -0
  11. package/components/anchor/component/index.d.ts.map +1 -0
  12. package/components/anchor/component/index.js +20 -0
  13. package/{dist/components → components}/anchor/components/anchorWithIcon/index.d.ts +5 -3
  14. package/components/anchor/components/anchorWithIcon/index.d.ts.map +1 -0
  15. package/components/anchor/components/anchorWithIcon/index.js +16 -0
  16. package/{dist/components → components}/anchor/components/simpleAnchor/index.d.ts +5 -3
  17. package/components/anchor/components/simpleAnchor/index.d.ts.map +1 -0
  18. package/components/anchor/components/simpleAnchor/index.js +5 -0
  19. package/components/anchor/index.d.ts +3 -0
  20. package/components/anchor/index.d.ts.map +1 -0
  21. package/{dist/components/button/index.d.ts → components/anchor/index.js} +2 -2
  22. package/{dist/components → components}/anchor/types.d.ts +39 -38
  23. package/components/anchor/types.d.ts.map +1 -0
  24. package/components/anchor/types.js +1 -0
  25. package/{dist/components → components}/button/component/index.d.ts +9 -6
  26. package/components/button/component/index.d.ts.map +1 -0
  27. package/components/button/component/index.js +36 -0
  28. package/{dist/components → components}/button/components/buttonWithIcon/index.d.ts +5 -3
  29. package/components/button/components/buttonWithIcon/index.d.ts.map +1 -0
  30. package/components/button/components/buttonWithIcon/index.js +19 -0
  31. package/{dist/components → components}/button/components/simpleButton/index.d.ts +5 -3
  32. package/components/button/components/simpleButton/index.d.ts.map +1 -0
  33. package/components/button/components/simpleButton/index.js +5 -0
  34. package/components/button/index.d.ts +3 -0
  35. package/components/button/index.d.ts.map +1 -0
  36. package/{dist/components/dropdown/index.d.ts → components/button/index.js} +2 -2
  37. package/{dist/components → components}/button/types.d.ts +37 -36
  38. package/components/button/types.d.ts.map +1 -0
  39. package/components/button/types.js +4 -0
  40. package/components/dropdown/component/index.d.ts +7 -0
  41. package/components/dropdown/component/index.d.ts.map +1 -0
  42. package/components/dropdown/component/index.js +15 -0
  43. package/{dist/components → components}/dropdown/components/compact/index.d.ts +5 -3
  44. package/components/dropdown/components/compact/index.d.ts.map +1 -0
  45. package/components/dropdown/components/compact/index.js +62 -0
  46. package/{dist/components → components}/dropdown/components/item/index.d.ts +15 -13
  47. package/components/dropdown/components/item/index.d.ts.map +1 -0
  48. package/components/dropdown/components/item/index.js +6 -0
  49. package/{dist/components → components}/dropdown/components/label/index.d.ts +18 -17
  50. package/components/dropdown/components/label/index.d.ts.map +1 -0
  51. package/components/dropdown/components/label/index.js +22 -0
  52. package/{dist/components → components}/dropdown/components/withLabel/index.d.ts +5 -3
  53. package/components/dropdown/components/withLabel/index.d.ts.map +1 -0
  54. package/components/dropdown/components/withLabel/index.js +83 -0
  55. package/components/dropdown/index.d.ts +3 -0
  56. package/components/dropdown/index.d.ts.map +1 -0
  57. package/{dist/components/accordion/index.d.ts → components/dropdown/index.js} +2 -2
  58. package/{dist/components → components}/dropdown/types.d.ts +46 -45
  59. package/components/dropdown/types.d.ts.map +1 -0
  60. package/components/dropdown/types.js +1 -0
  61. package/components/icon/component/index.d.ts +8 -0
  62. package/components/icon/component/index.d.ts.map +1 -0
  63. package/components/icon/component/index.js +23 -0
  64. package/components/icon/index.d.ts +3 -0
  65. package/components/icon/index.d.ts.map +1 -0
  66. package/components/icon/index.js +2 -0
  67. package/{dist/components → components}/icon/types.d.ts +16 -15
  68. package/components/icon/types.d.ts.map +1 -0
  69. package/components/icon/types.js +1 -0
  70. package/components/index.d.ts +12 -0
  71. package/components/index.d.ts.map +1 -0
  72. package/{dist/components/index.d.ts → components/index.js} +11 -11
  73. package/{dist/components → components}/paginator/component/index.d.ts +8 -6
  74. package/components/paginator/component/index.d.ts.map +1 -0
  75. package/components/paginator/component/index.js +47 -0
  76. package/components/paginator/index.d.ts +4 -0
  77. package/components/paginator/index.d.ts.map +1 -0
  78. package/{dist/components/paginator/index.d.ts → components/paginator/index.js} +3 -3
  79. package/{dist/components → components}/paginator/types.d.ts +28 -27
  80. package/components/paginator/types.d.ts.map +1 -0
  81. package/components/paginator/types.js +1 -0
  82. package/{dist/components → components}/paginator/utils.d.ts +10 -9
  83. package/components/paginator/utils.d.ts.map +1 -0
  84. package/components/paginator/utils.js +18 -0
  85. package/{dist/components → components}/primitives/checkbox/component/index.d.ts +7 -4
  86. package/components/primitives/checkbox/component/index.d.ts.map +1 -0
  87. package/components/primitives/checkbox/component/index.js +37 -0
  88. package/components/primitives/checkbox/index.d.ts +3 -0
  89. package/components/primitives/checkbox/index.d.ts.map +1 -0
  90. package/components/primitives/checkbox/index.js +2 -0
  91. package/{dist/components → components}/primitives/checkbox/types.d.ts +25 -24
  92. package/components/primitives/checkbox/types.d.ts.map +1 -0
  93. package/components/primitives/checkbox/types.js +1 -0
  94. package/{dist/components → components}/primitives/date/component/index.d.ts +7 -4
  95. package/components/primitives/date/component/index.d.ts.map +1 -0
  96. package/components/primitives/date/component/index.js +48 -0
  97. package/components/primitives/date/index.d.ts +3 -0
  98. package/components/primitives/date/index.d.ts.map +1 -0
  99. package/components/primitives/date/index.js +2 -0
  100. package/{dist/components → components}/primitives/date/types.d.ts +9 -8
  101. package/components/primitives/date/types.d.ts.map +1 -0
  102. package/components/primitives/date/types.js +1 -0
  103. package/components/primitives/index.d.ts +8 -0
  104. package/components/primitives/index.d.ts.map +1 -0
  105. package/{dist/components/primitives/index.d.ts → components/primitives/index.js} +7 -7
  106. package/components/primitives/multiline/component/index.d.ts +7 -0
  107. package/components/primitives/multiline/component/index.d.ts.map +1 -0
  108. package/components/primitives/multiline/component/index.js +15 -0
  109. package/{dist/components → components}/primitives/multiline/components/multilineWithLabel/index.d.ts +6 -4
  110. package/components/primitives/multiline/components/multilineWithLabel/index.d.ts.map +1 -0
  111. package/components/primitives/multiline/components/multilineWithLabel/index.js +45 -0
  112. package/{dist/components → components}/primitives/multiline/components/multilineWithoutLabel/index.d.ts +6 -4
  113. package/components/primitives/multiline/components/multilineWithoutLabel/index.d.ts.map +1 -0
  114. package/components/primitives/multiline/components/multilineWithoutLabel/index.js +27 -0
  115. package/components/primitives/multiline/index.d.ts +3 -0
  116. package/components/primitives/multiline/index.d.ts.map +1 -0
  117. package/components/primitives/multiline/index.js +2 -0
  118. package/{dist/components → components}/primitives/multiline/types.d.ts +11 -10
  119. package/components/primitives/multiline/types.d.ts.map +1 -0
  120. package/components/primitives/multiline/types.js +1 -0
  121. package/components/primitives/number/component/index.d.ts +6 -0
  122. package/components/primitives/number/component/index.d.ts.map +1 -0
  123. package/components/primitives/number/component/index.js +14 -0
  124. package/{dist/components → components}/primitives/number/components/withLabel/index.d.ts +6 -4
  125. package/components/primitives/number/components/withLabel/index.d.ts.map +1 -0
  126. package/components/primitives/number/components/withLabel/index.js +44 -0
  127. package/{dist/components → components}/primitives/number/components/withoutLabel/index.d.ts +6 -4
  128. package/components/primitives/number/components/withoutLabel/index.d.ts.map +1 -0
  129. package/components/primitives/number/components/withoutLabel/index.js +26 -0
  130. package/components/primitives/number/index.d.ts +3 -0
  131. package/components/primitives/number/index.d.ts.map +1 -0
  132. package/components/primitives/number/index.js +2 -0
  133. package/{dist/components → components}/primitives/number/types.d.ts +13 -12
  134. package/components/primitives/number/types.d.ts.map +1 -0
  135. package/components/primitives/number/types.js +1 -0
  136. package/components/primitives/password/component/index.d.ts +7 -0
  137. package/components/primitives/password/component/index.d.ts.map +1 -0
  138. package/components/primitives/password/component/index.js +13 -0
  139. package/{dist/components → components}/primitives/password/components/withLabel/index.d.ts +5 -3
  140. package/components/primitives/password/components/withLabel/index.d.ts.map +1 -0
  141. package/components/primitives/password/components/withLabel/index.js +51 -0
  142. package/{dist/components → components}/primitives/password/components/withoutLabel/index.d.ts +5 -3
  143. package/components/primitives/password/components/withoutLabel/index.d.ts.map +1 -0
  144. package/components/primitives/password/components/withoutLabel/index.js +33 -0
  145. package/components/primitives/password/index.d.ts +3 -0
  146. package/components/primitives/password/index.d.ts.map +1 -0
  147. package/components/primitives/password/index.js +2 -0
  148. package/{dist/components → components}/primitives/password/types.d.ts +10 -9
  149. package/components/primitives/password/types.d.ts.map +1 -0
  150. package/components/primitives/password/types.js +1 -0
  151. package/components/primitives/text/component/index.d.ts +7 -0
  152. package/components/primitives/text/component/index.d.ts.map +1 -0
  153. package/components/primitives/text/component/index.js +15 -0
  154. package/{dist/components → components}/primitives/text/components/textWithLabel/index.d.ts +6 -4
  155. package/components/primitives/text/components/textWithLabel/index.d.ts.map +1 -0
  156. package/components/primitives/text/components/textWithLabel/index.js +44 -0
  157. package/{dist/components → components}/primitives/text/components/textWithoutLabel/index.d.ts +6 -4
  158. package/components/primitives/text/components/textWithoutLabel/index.d.ts.map +1 -0
  159. package/components/primitives/text/components/textWithoutLabel/index.js +26 -0
  160. package/components/primitives/text/index.d.ts +3 -0
  161. package/components/primitives/text/index.d.ts.map +1 -0
  162. package/components/primitives/text/index.js +2 -0
  163. package/{dist/components → components}/primitives/text/types.d.ts +7 -6
  164. package/components/primitives/text/types.d.ts.map +1 -0
  165. package/components/primitives/text/types.js +1 -0
  166. package/{dist/components → components}/primitives/types/baseProps.d.ts +30 -29
  167. package/components/primitives/types/baseProps.d.ts.map +1 -0
  168. package/components/primitives/types/baseProps.js +1 -0
  169. package/components/primitives/types/index.d.ts +4 -0
  170. package/components/primitives/types/index.d.ts.map +1 -0
  171. package/{dist/components/primitives/types/index.d.ts → components/primitives/types/index.js} +3 -3
  172. package/{dist/components → components}/primitives/types/label.d.ts +14 -13
  173. package/components/primitives/types/label.d.ts.map +1 -0
  174. package/components/primitives/types/label.js +1 -0
  175. package/components/primitives/types/validation/index.d.ts +3 -0
  176. package/components/primitives/types/validation/index.d.ts.map +1 -0
  177. package/{dist/components/primitives/types/validation/index.d.ts → components/primitives/types/validation/index.js} +2 -2
  178. package/{dist/components → components}/primitives/types/validation/state.d.ts +9 -8
  179. package/components/primitives/types/validation/state.d.ts.map +1 -0
  180. package/components/primitives/types/validation/state.js +2 -0
  181. package/{dist/components → components}/primitives/types/validation/status.d.ts +10 -9
  182. package/components/primitives/types/validation/status.d.ts.map +1 -0
  183. package/components/primitives/types/validation/status.js +11 -0
  184. package/{dist/components → components}/search/component/index.d.ts +6 -3
  185. package/components/search/component/index.d.ts.map +1 -0
  186. package/components/search/component/index.js +37 -0
  187. package/components/search/index.d.ts +3 -0
  188. package/components/search/index.d.ts.map +1 -0
  189. package/components/search/index.js +2 -0
  190. package/{dist/components → components}/search/types.d.ts +27 -26
  191. package/components/search/types.d.ts.map +1 -0
  192. package/components/search/types.js +1 -0
  193. package/{dist/components → components}/tabs/component/index.d.ts +34 -31
  194. package/components/tabs/component/index.d.ts.map +1 -0
  195. package/components/tabs/component/index.js +68 -0
  196. package/{dist/components → components}/tabs/components/item/index.d.ts +13 -11
  197. package/components/tabs/components/item/index.d.ts.map +1 -0
  198. package/components/tabs/components/item/index.js +27 -0
  199. package/components/tabs/index.d.ts +3 -0
  200. package/components/tabs/index.d.ts.map +1 -0
  201. package/components/tabs/index.js +2 -0
  202. package/{dist/components → components}/tabs/types.d.ts +43 -42
  203. package/components/tabs/types.d.ts.map +1 -0
  204. package/components/tabs/types.js +34 -0
  205. package/{dist/components → components}/tag/component/index.d.ts +7 -4
  206. package/components/tag/component/index.d.ts.map +1 -0
  207. package/components/tag/component/index.js +28 -0
  208. package/components/tag/index.d.ts +3 -0
  209. package/components/tag/index.d.ts.map +1 -0
  210. package/components/tag/index.js +2 -0
  211. package/{dist/components → components}/tag/types.d.ts +27 -26
  212. package/components/tag/types.d.ts.map +1 -0
  213. package/components/tag/types.js +1 -0
  214. package/{dist/components → components}/types.d.ts +67 -66
  215. package/components/types.d.ts.map +1 -0
  216. package/components/types.js +31 -0
  217. package/hooks/index.d.ts +3 -0
  218. package/hooks/index.d.ts.map +1 -0
  219. package/{dist/hooks/index.d.ts → hooks/index.js} +2 -2
  220. package/{dist/hooks → hooks}/useComponentOutsideClick.d.ts +11 -10
  221. package/hooks/useComponentOutsideClick.d.ts.map +1 -0
  222. package/hooks/useComponentOutsideClick.js +32 -0
  223. package/{dist/hooks → hooks}/usePagination.d.ts +20 -19
  224. package/hooks/usePagination.d.ts.map +1 -0
  225. package/hooks/usePagination.js +28 -0
  226. package/index.d.ts +4 -0
  227. package/index.d.ts.map +1 -0
  228. package/{dist/index.d.ts → index.js} +3 -3
  229. package/package.json +39 -45
  230. package/readme.md +56 -0
  231. package/tsconfig.tsbuildinfo +1 -0
  232. package/{dist/utils → utils}/dataAttributes.d.ts +8 -7
  233. package/utils/dataAttributes.d.ts.map +1 -0
  234. package/utils/dataAttributes.js +19 -0
  235. package/{dist/utils → utils}/formValidation.d.ts +16 -15
  236. package/utils/formValidation.d.ts.map +1 -0
  237. package/utils/formValidation.js +35 -0
  238. package/utils/index.d.ts +3 -0
  239. package/utils/index.d.ts.map +1 -0
  240. package/{dist/utils/index.d.ts → utils/index.js} +2 -2
  241. package/dist/bbr-components.js +0 -1040
  242. package/dist/bbr-components.umd.cjs +0 -27
  243. package/dist/components/anchor/component/index.d.ts +0 -3
  244. package/dist/components/dropdown/component/index.d.ts +0 -4
  245. package/dist/components/icon/component/index.d.ts +0 -5
  246. package/dist/components/icon/index.d.ts +0 -2
  247. package/dist/components/primitives/checkbox/index.d.ts +0 -2
  248. package/dist/components/primitives/date/index.d.ts +0 -2
  249. package/dist/components/primitives/multiline/component/index.d.ts +0 -4
  250. package/dist/components/primitives/multiline/index.d.ts +0 -2
  251. package/dist/components/primitives/number/component/index.d.ts +0 -4
  252. package/dist/components/primitives/number/index.d.ts +0 -2
  253. package/dist/components/primitives/password/component/index.d.ts +0 -4
  254. package/dist/components/primitives/password/index.d.ts +0 -2
  255. package/dist/components/primitives/text/component/index.d.ts +0 -4
  256. package/dist/components/primitives/text/index.d.ts +0 -2
  257. package/dist/components/search/index.d.ts +0 -2
  258. package/dist/components/tabs/index.d.ts +0 -2
  259. package/dist/components/tag/index.d.ts +0 -2
  260. package/dist/style.css +0 -1
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useId, useState } from "react";
3
+ import { getClassName, isNullOrEmpty, isNullOrUndefined } from "@bodynarf/utils";
4
+ import { useComponentOutsideClick } from "../../../../hooks";
5
+ import DropdownItem from "../../../dropdown/components/item";
6
+ import DropdownLabel from "../../../dropdown/components/label";
7
+ const DropdownCompact = ({ items, value, onSelect, deselectable, className, hideOnOuterClick, listMaxHeight, placeholder, compact, disabled, }) => {
8
+ const id = useId();
9
+ const [isListVisible, setListVisible] = useState(false);
10
+ const onItemClick = useCallback((event) => {
11
+ if (disabled ?? false) {
12
+ return;
13
+ }
14
+ const target = event.target;
15
+ if (isNullOrUndefined(target)) {
16
+ return;
17
+ }
18
+ const dataValue = target.dataset["dropdownItemValue"];
19
+ if (isNullOrEmpty(dataValue)) {
20
+ return;
21
+ }
22
+ const item = items.find(x => x.value === dataValue);
23
+ if (isNullOrUndefined(item)) {
24
+ return;
25
+ }
26
+ if (value === item) {
27
+ setListVisible(false);
28
+ return;
29
+ }
30
+ onSelect(item);
31
+ setListVisible(false);
32
+ }, [setListVisible, value, items, onSelect, disabled]);
33
+ const onLabelClick = useCallback((event) => {
34
+ if (disabled ?? false) {
35
+ return;
36
+ }
37
+ const target = event.target;
38
+ if (isNullOrUndefined(target)) {
39
+ return;
40
+ }
41
+ if (target.classList.contains("bi-plus-lg")) {
42
+ onSelect(undefined);
43
+ }
44
+ else {
45
+ setListVisible(state => !state);
46
+ }
47
+ }, [onSelect, setListVisible, disabled]);
48
+ useComponentOutsideClick(`[data-dropdown-id="${id}"]`, isListVisible, () => setListVisible(false), hideOnOuterClick);
49
+ const classNames = getClassName([
50
+ "bbr-dropdown",
51
+ (disabled ?? false) ? "bbr-dropdown--disabled" : "",
52
+ (compact ?? false) ? "bbr-dropdown--compact" : "",
53
+ isListVisible ? "is-active" : "",
54
+ isNullOrEmpty(listMaxHeight) ? "bbr-dropdown--height-default" : "",
55
+ className,
56
+ "dropdown"
57
+ ]);
58
+ return (_jsxs("div", { className: classNames, "data-dropdown-id": id, children: [_jsx(DropdownLabel, { caption: placeholder, deselectable: deselectable === true, selectedItem: value, onClick: onLabelClick }), _jsx("div", { className: "dropdown-menu", children: items.length > 0
59
+ ? _jsx("ul", { className: "dropdown-content", style: { maxHeight: listMaxHeight }, children: items.map(item => _jsx(DropdownItem, { item: item, selected: value?.value === item.value, onClick: onItemClick }, item.id)) })
60
+ : _jsx("span", { className: "dropdown-content dropdown-item", children: "No items found" }) })] }, id));
61
+ };
62
+ export default DropdownCompact;
@@ -1,13 +1,15 @@
1
- import { SelectableItem } from '../../../../components/dropdown';
2
- /** Dropdown item props */
3
- interface DropdownItemProps {
4
- /** Item to present in dropdown */
5
- item: SelectableItem;
6
- /** Is item selected*/
7
- selected: boolean;
8
- /** Item click handler */
9
- onClick: (event: React.MouseEvent<HTMLLIElement>) => void;
10
- }
11
- /** Single item in dropdown component */
12
- declare const DropdownItem: ({ item, selected, onClick }: DropdownItemProps) => JSX.Element;
13
- export default DropdownItem;
1
+ /// <reference types="react" />
2
+ import { SelectableItem } from "../../../dropdown";
3
+ /** Dropdown item props */
4
+ interface DropdownItemProps {
5
+ /** Item to present in dropdown */
6
+ item: SelectableItem;
7
+ /** Is item selected*/
8
+ selected: boolean;
9
+ /** Item click handler */
10
+ onClick: (event: React.MouseEvent<HTMLLIElement>) => void;
11
+ }
12
+ /** Single item in dropdown component */
13
+ declare const DropdownItem: ({ item, selected, onClick }: DropdownItemProps) => JSX.Element;
14
+ export default DropdownItem;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dropdown/components/item/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,0BAA0B;AAC1B,UAAU,iBAAiB;IACvB,kCAAkC;IAClC,IAAI,EAAE,cAAc,CAAC;IAErB,sBAAsB;IACtB,QAAQ,EAAE,OAAO,CAAC;IAElB,yBAAyB;IACzB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED,wCAAwC;AACxC,QAAA,MAAM,YAAY,gCAAiC,iBAAiB,KAAG,WAYtE,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /** Single item in dropdown component */
3
+ const DropdownItem = ({ item, selected, onClick }) => {
4
+ return (_jsx("li", { className: `bbr-dropdown-item dropdown-item${selected ? " is-active" : ""}`, onClick: onClick, "data-dropdown-item-value": item.value, title: item.displayValue, children: item.displayValue }, item.id));
5
+ };
6
+ export default DropdownItem;
@@ -1,17 +1,18 @@
1
- import { MouseEvent } from "react";
2
- import { SelectableItem } from '../../../../components/dropdown';
3
- export interface DropdownLabelProps {
4
- /** Caption when no items selected */
5
- caption: string;
6
- /** Can user deselect */
7
- deselectable: boolean;
8
- /** Selected item */
9
- selectedItem?: SelectableItem;
10
- /** Element classnames */
11
- className?: string;
12
- /** Click handler*/
13
- onClick: (event: MouseEvent<HTMLLabelElement>) => void;
14
- }
15
- /** Label component */
16
- declare const DropdownLabel: ({ caption, selectedItem, onClick, deselectable, className, }: DropdownLabelProps) => JSX.Element;
17
- export default DropdownLabel;
1
+ import { MouseEvent } from "react";
2
+ import { SelectableItem } from "../../../dropdown";
3
+ export interface DropdownLabelProps {
4
+ /** Caption when no items selected */
5
+ caption: string;
6
+ /** Can user deselect */
7
+ deselectable: boolean;
8
+ /** Selected item */
9
+ selectedItem?: SelectableItem;
10
+ /** Element classnames */
11
+ className?: string;
12
+ /** Click handler*/
13
+ onClick: (event: MouseEvent<HTMLLabelElement>) => void;
14
+ }
15
+ /** Label component */
16
+ declare const DropdownLabel: ({ caption, selectedItem, onClick, deselectable, className, }: DropdownLabelProps) => JSX.Element;
17
+ export default DropdownLabel;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dropdown/components/label/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAOnC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IAC/B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,YAAY,EAAE,OAAO,CAAC;IAEtB,oBAAoB;IACpB,YAAY,CAAC,EAAE,cAAc,CAAC;IAE9B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mBAAmB;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,sBAAsB;AACtB,QAAA,MAAM,aAAa,iEAIhB,kBAAkB,KAAG,WAkCvB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getClassName, isNullOrEmpty, isNullOrUndefined } from "@bodynarf/utils";
3
+ import { ElementSize } from "../../..";
4
+ import Icon from "../../../icon";
5
+ /** Label component */
6
+ const DropdownLabel = ({ caption, selectedItem, onClick, deselectable, className, }) => {
7
+ const itemSelected = !isNullOrUndefined(selectedItem);
8
+ const text = itemSelected
9
+ ? selectedItem?.displayValue
10
+ : caption;
11
+ const deselectVisible = deselectable && itemSelected;
12
+ const elClassName = getClassName([
13
+ "dropdown-trigger",
14
+ "bbr-dropdown__label",
15
+ isNullOrEmpty(className) ? "" : `${className}--md`,
16
+ itemSelected ? "" : "bbr-dropdown__label--default",
17
+ "button"
18
+ ]);
19
+ return (_jsxs("label", { className: elClassName, onClick: onClick, children: [deselectVisible &&
20
+ _jsx(Icon, { name: "plus-lg", size: ElementSize.Medium }), _jsx("span", { className: deselectVisible ? "mx-2" : "mr-2", title: itemSelected ? text : undefined, children: text }), _jsx(Icon, { name: "arrow-down", size: ElementSize.Medium })] }));
21
+ };
22
+ export default DropdownLabel;
@@ -1,3 +1,5 @@
1
- import { DropdownProps } from '../../../../components/dropdown';
2
- declare const DropdownWithLabel: ({ items, value, onSelect, validationState, deselectable, className, hideOnOuterClick, listMaxHeight, label, placeholder, disabled }: DropdownProps) => JSX.Element;
3
- export default DropdownWithLabel;
1
+ /// <reference types="react" />
2
+ import { DropdownProps } from "../../../dropdown";
3
+ declare const DropdownWithLabel: ({ items, value, onSelect, validationState, deselectable, className, hideOnOuterClick, listMaxHeight, label, placeholder, disabled }: DropdownProps) => JSX.Element;
4
+ export default DropdownWithLabel;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/dropdown/components/withLabel/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,QAAA,MAAM,iBAAiB,wIAOpB,aAAa,KAAG,WAoLlB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useId, useState } from "react";
3
+ import { isNullOrUndefined, isNullOrEmpty, getClassName } from "@bodynarf/utils";
4
+ import { getValidationValues } from "../../../../utils";
5
+ import { useComponentOutsideClick } from "../../../../hooks";
6
+ import DropdownItem from "../../../dropdown/components/item";
7
+ import DropdownLabel from "../../../dropdown/components/label";
8
+ const DropdownWithLabel = ({ items, value, onSelect, validationState, deselectable, className, hideOnOuterClick, listMaxHeight, label, placeholder, disabled }) => {
9
+ const id = useId();
10
+ const [isListVisible, setListVisible] = useState(false);
11
+ const [isValidationDefined, styleClassName, validationMessages] = getValidationValues(undefined, validationState);
12
+ const onItemClick = useCallback((event) => {
13
+ if (disabled ?? false) {
14
+ return;
15
+ }
16
+ const target = event.target;
17
+ if (isNullOrUndefined(target)) {
18
+ return;
19
+ }
20
+ const dataValue = target.dataset["dropdownItemValue"];
21
+ if (isNullOrEmpty(dataValue)) {
22
+ return;
23
+ }
24
+ const item = items.find(x => x.value === dataValue);
25
+ if (isNullOrUndefined(item)) {
26
+ return;
27
+ }
28
+ if (value === item) {
29
+ setListVisible(false);
30
+ return;
31
+ }
32
+ onSelect(item);
33
+ setListVisible(false);
34
+ }, [setListVisible, value, items, onSelect, disabled]);
35
+ const onLabelClick = useCallback((event) => {
36
+ if (disabled ?? false) {
37
+ return;
38
+ }
39
+ const target = event.target;
40
+ if (isNullOrUndefined(target)) {
41
+ return;
42
+ }
43
+ if (target.classList.contains("bi-plus-lg")) {
44
+ onSelect(undefined);
45
+ }
46
+ else {
47
+ setListVisible(state => !state);
48
+ }
49
+ }, [onSelect, setListVisible, disabled]);
50
+ useComponentOutsideClick(`[data-dropdown-id="${id}"]`, isListVisible, () => setListVisible(false), hideOnOuterClick);
51
+ const classNames = getClassName([
52
+ "bbr-dropdown",
53
+ (disabled ?? false) ? "bbr-dropdown--disabled" : "",
54
+ isListVisible ? "is-active" : "",
55
+ isNullOrEmpty(listMaxHeight) ? "bbr-dropdown--height-default" : "",
56
+ className,
57
+ "dropdown"
58
+ ]);
59
+ const labelClassName = getClassName([
60
+ "label",
61
+ label.className
62
+ ]);
63
+ if (label.horizontal) {
64
+ const labelContainerClassName = getClassName([
65
+ "field-label",
66
+ "is-normal",
67
+ label.horizontalContainerClassName
68
+ ]);
69
+ const fieldContainerClassName = getClassName([
70
+ "field-body",
71
+ label.horizontalFieldContainerClassName
72
+ ]);
73
+ return (_jsxs("div", { className: "bbr-dropdown__root-container--with-label bbr-input field is-horizontal", children: [_jsx("div", { className: labelContainerClassName, children: _jsx("label", { className: labelClassName, htmlFor: id, children: label.caption }) }), _jsx("div", { className: fieldContainerClassName, children: _jsxs("div", { className: "field", children: [_jsxs("div", { className: classNames, "data-dropdown-id": id, children: [_jsx(DropdownLabel, { className: styleClassName, caption: placeholder, deselectable: deselectable === true, selectedItem: value, onClick: onLabelClick }), _jsx("div", { className: "dropdown-menu", children: items.length > 0
74
+ ? _jsx("ul", { className: "dropdown-content", style: { maxHeight: listMaxHeight }, children: items.map(item => _jsx(DropdownItem, { item: item, selected: value?.value === item.value, onClick: onItemClick }, item.id)) })
75
+ : _jsx("span", { className: "dropdown-content dropdown-item", children: "No items found" }) })] }, id), isValidationDefined && validationMessages.length > 0 &&
76
+ _jsx("p", { className: `help m-help ${styleClassName}`, children: validationMessages.join("\n") })] }) })] }));
77
+ }
78
+ return (_jsxs("div", { className: "field", children: [_jsx("label", { className: labelClassName, htmlFor: id, children: label.caption }), _jsxs("div", { className: classNames, "data-dropdown-id": id, children: [_jsx(DropdownLabel, { className: styleClassName, caption: placeholder, deselectable: deselectable === true, selectedItem: value, onClick: onLabelClick }), _jsx("div", { className: "dropdown-menu", children: items.length > 0
79
+ ? _jsx("ul", { className: "dropdown-content", style: { maxHeight: listMaxHeight }, children: items.map(item => _jsx(DropdownItem, { item: item, selected: value?.value === item.value, onClick: onItemClick }, item.id)) })
80
+ : _jsx("span", { className: "dropdown-content dropdown-item", children: "No items found" }) })] }, id), isValidationDefined && validationMessages.length > 0 &&
81
+ _jsx("p", { className: `help m-help ${styleClassName}`, children: validationMessages.join("\n") })] }));
82
+ };
83
+ export default DropdownWithLabel;
@@ -0,0 +1,3 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -1,2 +1,2 @@
1
- export { default } from "./component";
2
- export * from "./types";
1
+ export { default } from "./component";
2
+ export * from "./types";
@@ -1,45 +1,46 @@
1
- import { BaseElementProps, InputLabel, ValidationState } from '../../components';
2
- /** Dropdown item */
3
- export interface SelectableItem {
4
- /** Unique item identifier */
5
- id: string;
6
- /** Item value */
7
- value: string;
8
- /** Displaying text */
9
- displayValue: string;
10
- }
11
- /** Dropdown component props type */
12
- export interface DropdownProps extends BaseElementProps {
13
- /** Items which can be selected */
14
- items: Array<SelectableItem>;
15
- /** Input element placeholder */
16
- placeholder: string;
17
- /**
18
- * Action to update selected value, which stored outside
19
- */
20
- onSelect: (item?: SelectableItem) => void;
21
- /**
22
- * Selected value.
23
- * Must be stored outside
24
- */
25
- value?: SelectableItem;
26
- /** Hide dropdown list when its opened and user click outside */
27
- hideOnOuterClick: boolean;
28
- /** Can user deselect */
29
- deselectable?: boolean;
30
- /** Custom dropdown list max-height property */
31
- listMaxHeight?: string;
32
- /**
33
- * Should dropdown be compact
34
- * Will have width by maximum current selection item width
35
- */
36
- compact?: boolean;
37
- /**
38
- * Is element disabled
39
- */
40
- disabled?: boolean;
41
- /** Label configuration */
42
- label?: InputLabel;
43
- /** Current validation state */
44
- validationState?: ValidationState;
45
- }
1
+ import { BaseElementProps, InputLabel, ValidationState } from "..";
2
+ /** Dropdown item */
3
+ export interface SelectableItem {
4
+ /** Unique item identifier */
5
+ id: string;
6
+ /** Item value */
7
+ value: string;
8
+ /** Displaying text */
9
+ displayValue: string;
10
+ }
11
+ /** Dropdown component props type */
12
+ export interface DropdownProps extends BaseElementProps {
13
+ /** Items which can be selected */
14
+ items: Array<SelectableItem>;
15
+ /** Input element placeholder */
16
+ placeholder: string;
17
+ /**
18
+ * Action to update selected value, which stored outside
19
+ */
20
+ onSelect: (item?: SelectableItem) => void;
21
+ /**
22
+ * Selected value.
23
+ * Must be stored outside
24
+ */
25
+ value?: SelectableItem;
26
+ /** Hide dropdown list when its opened and user click outside */
27
+ hideOnOuterClick: boolean;
28
+ /** Can user deselect */
29
+ deselectable?: boolean;
30
+ /** Custom dropdown list max-height property */
31
+ listMaxHeight?: string;
32
+ /**
33
+ * Should dropdown be compact
34
+ * Will have width by maximum current selection item width
35
+ */
36
+ compact?: boolean;
37
+ /**
38
+ * Is element disabled
39
+ */
40
+ disabled?: boolean;
41
+ /** Label configuration */
42
+ label?: InputLabel;
43
+ /** Current validation state */
44
+ validationState?: ValidationState;
45
+ }
46
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/dropdown/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEhF,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC3B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,sBAAsB;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACnD,kCAAkC;IAClC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAE7B,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;IAEpB;;MAEE;IACF,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IAE1C;;;MAGE;IACF,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB,gEAAgE;IAChE,gBAAgB,EAAE,OAAO,CAAC;IAE1B,wBAAwB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,+BAA+B;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;CACrC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import "./style.scss";
3
+ import { IconProps } from "../../icon";
4
+ /**
5
+ * Icon component. Based on bootstrap icons
6
+ */
7
+ export default function Icon({ name, size, className, }: IconProps): JSX.Element;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/icon/component/index.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AAItB,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AASjD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EACzB,IAAI,EAAE,IAAyB,EAC/B,SAAS,GACZ,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAYzB"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { getClassName } from "@bodynarf/utils";
3
+ import "./style.scss";
4
+ import { ElementSize } from "../..";
5
+ const sizeToClassMap = new Map([
6
+ [ElementSize.Small, "bbr-icon--size-small"],
7
+ [ElementSize.Normal, ""],
8
+ [ElementSize.Medium, "bbr-icon--size-medium"],
9
+ [ElementSize.Large, "bbr-icon--size-large"]
10
+ ]);
11
+ /**
12
+ * Icon component. Based on bootstrap icons
13
+ */
14
+ export default function Icon({ name, size = ElementSize.Normal, className, }) {
15
+ const classNames = getClassName([
16
+ "bbr-icon",
17
+ "bi",
18
+ `bi-${name}`,
19
+ sizeToClassMap.has(size) ? sizeToClassMap.get(size) : "",
20
+ className
21
+ ]);
22
+ return (_jsx("i", { className: classNames }));
23
+ }
@@ -0,0 +1,3 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
@@ -1,15 +1,16 @@
1
- import { ElementSize } from '../../components';
2
- /** Icon component props */
3
- export interface IconProps {
4
- /**
5
- * Icon name. Must be without `bi-`
6
- * @example ["Arrow repeat", "arrow-repeat"]
7
- * // Icon name to icon class name.
8
- * // For class name check bootstrap icons website
9
- */
10
- name: string;
11
- /** Additional classname */
12
- className?: string;
13
- /** Icon size */
14
- size?: ElementSize;
15
- }
1
+ import { ElementSize } from "..";
2
+ /** Icon component props */
3
+ export interface IconProps {
4
+ /**
5
+ * Icon name. Must be without `bi-`
6
+ * @example ["Arrow repeat", "arrow-repeat"]
7
+ * // Icon name to icon class name.
8
+ * // For class name check bootstrap icons website
9
+ */
10
+ name: string;
11
+ /** Additional classname */
12
+ className?: string;
13
+ /** Icon size */
14
+ size?: ElementSize;
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/icon/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,2BAA2B;AAC3B,MAAM,WAAW,SAAS;IACtB;;;;;MAKE;IACF,IAAI,EAAE,MAAM,CAAC;IAEb,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gBAAgB;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC;CACtB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ export * from "./accordion";
2
+ export * from "./anchor";
3
+ export * from "./button";
4
+ export * from "./dropdown";
5
+ export * from "./icon";
6
+ export * from "./paginator";
7
+ export * from "./search";
8
+ export * from "./tabs";
9
+ export * from "./tag";
10
+ export * from "./primitives";
11
+ export * from "./types";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AAEtB,cAAc,cAAc,CAAC;AAE7B,cAAc,SAAS,CAAC"}
@@ -1,11 +1,11 @@
1
- export * from "./accordion";
2
- export * from "./anchor";
3
- export * from "./button";
4
- export * from "./dropdown";
5
- export * from "./icon";
6
- export * from "./paginator";
7
- export * from "./search";
8
- export * from "./tabs";
9
- export * from "./tag";
10
- export * from "./primitives";
11
- export * from "./types";
1
+ export * from "./accordion";
2
+ export * from "./anchor";
3
+ export * from "./button";
4
+ export * from "./dropdown";
5
+ export * from "./icon";
6
+ export * from "./paginator";
7
+ export * from "./search";
8
+ export * from "./tabs";
9
+ export * from "./tag";
10
+ export * from "./primitives";
11
+ export * from "./types";
@@ -1,6 +1,8 @@
1
- import { PaginatorProps } from '../../../components/paginator';
2
- /**
3
- * Paginator component.
4
- * Used for visualization of pagging configuration
5
- */
6
- export default function Paginator({ count, onPageChange, currentPage, position, rounded, size, className, showNextButtons, nearPagesCount }: PaginatorProps): JSX.Element;
1
+ /// <reference types="react" />
2
+ import { PaginatorProps } from "../../paginator";
3
+ /**
4
+ * Paginator component.
5
+ * Used for visualization of pagging configuration
6
+ */
7
+ export default function Paginator({ count, onPageChange, currentPage, position, rounded, size, className, showNextButtons, nearPagesCount }: PaginatorProps): JSX.Element;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/paginator/component/index.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAuB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhF;;;EAGE;AACF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAC9B,KAAK,EAAE,YAAY,EAAE,WAAW,EAChC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAClC,eAAe,EAAE,cAAc,EAClC,EAAE,cAAc,GAAG,GAAG,CAAC,OAAO,CA4G9B"}
@@ -0,0 +1,47 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useMemo } from "react";
3
+ import { getClassName, isNullOrEmpty } from "@bodynarf/utils";
4
+ import { generatePageNumbers } from "../../paginator";
5
+ /**
6
+ * Paginator component.
7
+ * Used for visualization of pagging configuration
8
+ */
9
+ export default function Paginator({ count, onPageChange, currentPage, position, rounded, size, className, showNextButtons, nearPagesCount }) {
10
+ const page = currentPage || 0;
11
+ const pageChange = useCallback((event) => {
12
+ const target = event.target;
13
+ const pageRaw = target.dataset["page"];
14
+ if (isNullOrEmpty(pageRaw)) {
15
+ return;
16
+ }
17
+ const page = +pageRaw;
18
+ if (page !== currentPage && page > 0 && page <= count) {
19
+ onPageChange(page);
20
+ }
21
+ }, [onPageChange, currentPage, count]);
22
+ const pageNumbers = useMemo(() => generatePageNumbers(page, count, nearPagesCount), [page, count]);
23
+ const canGoBack = useMemo(() => page > 1, [page]);
24
+ const canGoForward = useMemo(() => page < count, [page, count]);
25
+ if (pageNumbers.length <= 1) {
26
+ return _jsx(_Fragment, {});
27
+ }
28
+ const classNames = getClassName([
29
+ "bbr-paginator",
30
+ "pagination",
31
+ paginationPositionToClassMap.has(position || "") ? paginationPositionToClassMap.get(position || "") : "",
32
+ rounded == true ? "is-rounded" : "",
33
+ isNullOrEmpty(size) ? "" : `is-${size}`,
34
+ className
35
+ ]);
36
+ return (_jsxs("nav", { className: classNames, role: "navigation", "aria-label": "pagination", children: [showNextButtons === true &&
37
+ _jsxs(_Fragment, { children: [_jsx("a", { className: `pagination-previous${canGoBack ? "" : " is-disabled"}`, "data-page": page - 1, onClick: pageChange, children: "Previous" }), _jsx("a", { className: `pagination-next${canGoForward ? "" : " is-disabled"}`, "data-page": page + 1, onClick: pageChange, children: "Next page" })] }), _jsxs("ul", { className: "pagination-list", children: [page !== 1 && !pageNumbers.includes(1) &&
38
+ _jsxs(_Fragment, { children: [_jsx("li", { children: _jsx("a", { className: "pagination-link", "aria-label": "Goto page 1", "data-page": 1, onClick: pageChange, children: "1" }) }), _jsx("li", { children: _jsx("span", { className: "pagination-ellipsis", children: "\u2026" }) })] }), pageNumbers.map(x => _jsx("li", { children: _jsx("a", { className: `pagination-link${page === x ? " is-current" : ""}`, "aria-label": `Goto page ${x}`, "data-page": x, onClick: pageChange, children: x }) }, x)), page != count && !pageNumbers.includes(count) &&
39
+ _jsxs(_Fragment, { children: [_jsx("li", { children: _jsx("span", { className: "pagination-ellipsis", children: "\u2026" }) }), _jsx("li", { children: _jsx("a", { className: "pagination-link", "aria-label": `Goto page ${count}`, "data-page": count, onClick: pageChange, children: count }) })] })] })] }));
40
+ }
41
+ /**
42
+ * Position setting to css class name map
43
+ */
44
+ const paginationPositionToClassMap = new Map([
45
+ ["center", "is-centered"],
46
+ ["right", "is-right"]
47
+ ]);
@@ -0,0 +1,4 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
3
+ export * from "./utils";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/paginator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1,3 +1,3 @@
1
- export { default } from "./component";
2
- export * from "./types";
3
- export * from "./utils";
1
+ export { default } from "./component";
2
+ export * from "./types";
3
+ export * from "./utils";