@aquera/nile-elements 0.1.57-beta-1.9 → 0.1.57

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 (328) hide show
  1. package/README.md +4 -0
  2. package/demo/index.html +1 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +195 -6
  6. package/dist/nile-select/nile-select.cjs.js +1 -1
  7. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  8. package/dist/nile-select/nile-select.esm.js +1 -1
  9. package/dist/nile-slider/index.cjs.js +2 -0
  10. package/dist/nile-slider/index.cjs.js.map +1 -0
  11. package/dist/nile-slider/index.esm.js +1 -0
  12. package/dist/nile-slider/nile-slider.cjs.js +2 -0
  13. package/dist/nile-slider/nile-slider.cjs.js.map +1 -0
  14. package/dist/nile-slider/nile-slider.css.cjs.js +2 -0
  15. package/dist/nile-slider/nile-slider.css.cjs.js.map +1 -0
  16. package/dist/nile-slider/nile-slider.css.esm.js +106 -0
  17. package/dist/nile-slider/nile-slider.esm.js +27 -0
  18. package/dist/nile-slider/nile-slider.template.cjs.js +2 -0
  19. package/dist/nile-slider/nile-slider.template.cjs.js.map +1 -0
  20. package/dist/nile-slider/nile-slider.template.esm.js +59 -0
  21. package/dist/nile-slider/types/nile-slider.enums.cjs.js +2 -0
  22. package/dist/nile-slider/types/nile-slider.enums.cjs.js.map +1 -0
  23. package/dist/nile-slider/types/nile-slider.enums.esm.js +1 -0
  24. package/dist/nile-slider/types/nile-slider.types.cjs.js +2 -0
  25. package/dist/nile-slider/types/nile-slider.types.cjs.js.map +1 -0
  26. package/dist/nile-slider/types/nile-slider.types.esm.js +1 -0
  27. package/dist/nile-slider/utils/nile-slider.utils.cjs.js +2 -0
  28. package/dist/nile-slider/utils/nile-slider.utils.cjs.js.map +1 -0
  29. package/dist/nile-slider/utils/nile-slider.utils.esm.js +1 -0
  30. package/dist/src/index.d.ts +1 -0
  31. package/dist/src/index.js +1 -0
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/nile-select/nile-select.d.ts +0 -4
  34. package/dist/src/nile-select/nile-select.js +1 -31
  35. package/dist/src/nile-select/nile-select.js.map +1 -1
  36. package/dist/src/nile-slider/nile-slider.css.d.ts +2 -8
  37. package/dist/src/nile-slider/nile-slider.css.js +21 -13
  38. package/dist/src/nile-slider/nile-slider.css.js.map +1 -1
  39. package/dist/src/nile-slider/nile-slider.d.ts +3 -2
  40. package/dist/src/nile-slider/nile-slider.js +60 -24
  41. package/dist/src/nile-slider/nile-slider.js.map +1 -1
  42. package/dist/src/nile-slider/nile-slider.template.js +33 -4
  43. package/dist/src/nile-slider/nile-slider.template.js.map +1 -1
  44. package/dist/src/nile-slider/types/nile-slider.enums.js.map +1 -1
  45. package/dist/src/nile-slider/utils/nile-slider.utils.js +26 -13
  46. package/dist/src/nile-slider/utils/nile-slider.utils.js.map +1 -1
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +4 -4
  49. package/src/index.ts +2 -1
  50. package/src/nile-select/nile-select.ts +1 -37
  51. package/src/nile-slider/index.ts +1 -0
  52. package/src/nile-slider/nile-slider.css.ts +119 -0
  53. package/src/nile-slider/nile-slider.template.ts +77 -0
  54. package/src/nile-slider/nile-slider.ts +215 -0
  55. package/src/nile-slider/types/nile-slider.enums.ts +10 -0
  56. package/src/nile-slider/types/nile-slider.types.ts +13 -0
  57. package/src/nile-slider/utils/nile-slider.utils.ts +136 -0
  58. package/vscode-html-custom-data.json +135 -45
  59. package/dist/axe.min-2b379f29.cjs.js +0 -12
  60. package/dist/axe.min-2b379f29.cjs.js.map +0 -1
  61. package/dist/axe.min-c2cd8733.esm.js +0 -12
  62. package/dist/fixture-2b5b3aba.esm.js +0 -569
  63. package/dist/fixture-7bfb866e.cjs.js +0 -395
  64. package/dist/fixture-7bfb866e.cjs.js.map +0 -1
  65. package/dist/src/nile-file-preview/index.d.ts +0 -1
  66. package/dist/src/nile-file-preview/index.js +0 -2
  67. package/dist/src/nile-file-preview/index.js.map +0 -1
  68. package/dist/src/nile-file-preview/nile-file-preview.css.d.ts +0 -12
  69. package/dist/src/nile-file-preview/nile-file-preview.css.js +0 -568
  70. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +0 -1
  71. package/dist/src/nile-file-preview/nile-file-preview.d.ts +0 -50
  72. package/dist/src/nile-file-preview/nile-file-preview.js +0 -171
  73. package/dist/src/nile-file-preview/nile-file-preview.js.map +0 -1
  74. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +0 -13
  75. package/dist/src/nile-file-preview/nile-file-preview.template.js +0 -210
  76. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +0 -1
  77. package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +0 -7
  78. package/dist/src/nile-file-preview/nile-file-preview.test.js +0 -30
  79. package/dist/src/nile-file-preview/nile-file-preview.test.js.map +0 -1
  80. package/dist/src/nile-file-preview/types/index.d.ts +0 -2
  81. package/dist/src/nile-file-preview/types/index.js +0 -3
  82. package/dist/src/nile-file-preview/types/index.js.map +0 -1
  83. package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +0 -28
  84. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +0 -33
  85. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +0 -1
  86. package/dist/src/nile-file-preview/types/nile-file-preview.interface.d.ts +0 -4
  87. package/dist/src/nile-file-preview/types/nile-file-preview.interface.js +0 -2
  88. package/dist/src/nile-file-preview/types/nile-file-preview.interface.js.map +0 -1
  89. package/dist/src/nile-file-preview/utils/index.d.ts +0 -1
  90. package/dist/src/nile-file-preview/utils/index.js +0 -2
  91. package/dist/src/nile-file-preview/utils/index.js.map +0 -1
  92. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +0 -4
  93. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +0 -38
  94. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +0 -1
  95. package/dist/src/nile-file-upload/index.d.ts +0 -1
  96. package/dist/src/nile-file-upload/index.js +0 -2
  97. package/dist/src/nile-file-upload/index.js.map +0 -1
  98. package/dist/src/nile-file-upload/nile-file-upload.css.d.ts +0 -12
  99. package/dist/src/nile-file-upload/nile-file-upload.css.js +0 -569
  100. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +0 -1
  101. package/dist/src/nile-file-upload/nile-file-upload.d.ts +0 -48
  102. package/dist/src/nile-file-upload/nile-file-upload.js +0 -165
  103. package/dist/src/nile-file-upload/nile-file-upload.js.map +0 -1
  104. package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +0 -11
  105. package/dist/src/nile-file-upload/nile-file-upload.template.js +0 -171
  106. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +0 -1
  107. package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +0 -7
  108. package/dist/src/nile-file-upload/nile-file-upload.test.js +0 -30
  109. package/dist/src/nile-file-upload/nile-file-upload.test.js.map +0 -1
  110. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +0 -35
  111. package/dist/src/nile-file-upload/types/file-upload.enums.js +0 -42
  112. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +0 -1
  113. package/dist/src/nile-file-upload/types/file-upload.type.d.ts +0 -4
  114. package/dist/src/nile-file-upload/types/file-upload.type.js +0 -2
  115. package/dist/src/nile-file-upload/types/file-upload.type.js.map +0 -1
  116. package/dist/src/nile-file-upload/types/index.d.ts +0 -2
  117. package/dist/src/nile-file-upload/types/index.js +0 -3
  118. package/dist/src/nile-file-upload/types/index.js.map +0 -1
  119. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +0 -23
  120. package/dist/src/nile-file-upload/utils/drag-drop.util.js +0 -85
  121. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +0 -1
  122. package/dist/src/nile-file-upload/utils/file-validation.util.d.ts +0 -11
  123. package/dist/src/nile-file-upload/utils/file-validation.util.js +0 -120
  124. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +0 -1
  125. package/dist/src/nile-icon/icons/svg/ng-activity.d.ts +0 -5
  126. package/dist/src/nile-icon/icons/svg/ng-activity.js +0 -5
  127. package/dist/src/nile-icon/icons/svg/ng-activity.js.map +0 -1
  128. package/dist/src/nile-icon/icons/svg/ng-align-center.d.ts +0 -5
  129. package/dist/src/nile-icon/icons/svg/ng-align-center.js +0 -5
  130. package/dist/src/nile-icon/icons/svg/ng-align-center.js.map +0 -1
  131. package/dist/src/nile-icon/icons/svg/ng-annotation-x.d.ts +0 -5
  132. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js +0 -5
  133. package/dist/src/nile-icon/icons/svg/ng-annotation-x.js.map +0 -1
  134. package/dist/src/nile-icon/icons/svg/ng-arrow-down.d.ts +0 -5
  135. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js +0 -5
  136. package/dist/src/nile-icon/icons/svg/ng-arrow-down.js.map +0 -1
  137. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.d.ts +0 -5
  138. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js +0 -5
  139. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-down.js.map +0 -1
  140. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.d.ts +0 -5
  141. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js +0 -5
  142. package/dist/src/nile-icon/icons/svg/ng-arrow-narrow-left.js.map +0 -1
  143. package/dist/src/nile-icon/icons/svg/ng-arrow-up.d.ts +0 -5
  144. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js +0 -5
  145. package/dist/src/nile-icon/icons/svg/ng-arrow-up.js.map +0 -1
  146. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.d.ts +0 -5
  147. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js +0 -5
  148. package/dist/src/nile-icon/icons/svg/ng-bar-chart-12.js.map +0 -1
  149. package/dist/src/nile-icon/icons/svg/ng-bell-01.d.ts +0 -5
  150. package/dist/src/nile-icon/icons/svg/ng-bell-01.js +0 -5
  151. package/dist/src/nile-icon/icons/svg/ng-bell-01.js.map +0 -1
  152. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.d.ts +0 -5
  153. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js +0 -5
  154. package/dist/src/nile-icon/icons/svg/ng-bell-ringing-04.js.map +0 -1
  155. package/dist/src/nile-icon/icons/svg/ng-bold-01.d.ts +0 -5
  156. package/dist/src/nile-icon/icons/svg/ng-bold-01.js +0 -5
  157. package/dist/src/nile-icon/icons/svg/ng-bold-01.js.map +0 -1
  158. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.d.ts +0 -5
  159. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js +0 -5
  160. package/dist/src/nile-icon/icons/svg/ng-calendar-plus-02.js.map +0 -1
  161. package/dist/src/nile-icon/icons/svg/ng-calendar.d.ts +0 -5
  162. package/dist/src/nile-icon/icons/svg/ng-calendar.js +0 -5
  163. package/dist/src/nile-icon/icons/svg/ng-calendar.js.map +0 -1
  164. package/dist/src/nile-icon/icons/svg/ng-check-circle.d.ts +0 -5
  165. package/dist/src/nile-icon/icons/svg/ng-check-circle.js +0 -5
  166. package/dist/src/nile-icon/icons/svg/ng-check-circle.js.map +0 -1
  167. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.d.ts +0 -5
  168. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js +0 -5
  169. package/dist/src/nile-icon/icons/svg/ng-check-square-broken.js.map +0 -1
  170. package/dist/src/nile-icon/icons/svg/ng-chevron-down.d.ts +0 -5
  171. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js +0 -5
  172. package/dist/src/nile-icon/icons/svg/ng-chevron-down.js.map +0 -1
  173. package/dist/src/nile-icon/icons/svg/ng-chevron-left.d.ts +0 -5
  174. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js +0 -5
  175. package/dist/src/nile-icon/icons/svg/ng-chevron-left.js.map +0 -1
  176. package/dist/src/nile-icon/icons/svg/ng-chevron-right.d.ts +0 -5
  177. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js +0 -5
  178. package/dist/src/nile-icon/icons/svg/ng-chevron-right.js.map +0 -1
  179. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.d.ts +0 -5
  180. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js +0 -5
  181. package/dist/src/nile-icon/icons/svg/ng-chevron-selector-vertical.js.map +0 -1
  182. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.d.ts +0 -5
  183. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js +0 -5
  184. package/dist/src/nile-icon/icons/svg/ng-chevron-up-double.js.map +0 -1
  185. package/dist/src/nile-icon/icons/svg/ng-chevron-up.d.ts +0 -5
  186. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js +0 -5
  187. package/dist/src/nile-icon/icons/svg/ng-chevron-up.js.map +0 -1
  188. package/dist/src/nile-icon/icons/svg/ng-copy-03.d.ts +0 -5
  189. package/dist/src/nile-icon/icons/svg/ng-copy-03.js +0 -5
  190. package/dist/src/nile-icon/icons/svg/ng-copy-03.js.map +0 -1
  191. package/dist/src/nile-icon/icons/svg/ng-dots-grid.d.ts +0 -5
  192. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js +0 -5
  193. package/dist/src/nile-icon/icons/svg/ng-dots-grid.js.map +0 -1
  194. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.d.ts +0 -5
  195. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js +0 -5
  196. package/dist/src/nile-icon/icons/svg/ng-dots-vertical.js.map +0 -1
  197. package/dist/src/nile-icon/icons/svg/ng-download-01.d.ts +0 -5
  198. package/dist/src/nile-icon/icons/svg/ng-download-01.js +0 -5
  199. package/dist/src/nile-icon/icons/svg/ng-download-01.js.map +0 -1
  200. package/dist/src/nile-icon/icons/svg/ng-dropdown.d.ts +0 -5
  201. package/dist/src/nile-icon/icons/svg/ng-dropdown.js +0 -5
  202. package/dist/src/nile-icon/icons/svg/ng-dropdown.js.map +0 -1
  203. package/dist/src/nile-icon/icons/svg/ng-edit-02.d.ts +0 -5
  204. package/dist/src/nile-icon/icons/svg/ng-edit-02.js +0 -5
  205. package/dist/src/nile-icon/icons/svg/ng-edit-02.js.map +0 -1
  206. package/dist/src/nile-icon/icons/svg/ng-edit-05.d.ts +0 -5
  207. package/dist/src/nile-icon/icons/svg/ng-edit-05.js +0 -5
  208. package/dist/src/nile-icon/icons/svg/ng-edit-05.js.map +0 -1
  209. package/dist/src/nile-icon/icons/svg/ng-expand-06.d.ts +0 -5
  210. package/dist/src/nile-icon/icons/svg/ng-expand-06.js +0 -5
  211. package/dist/src/nile-icon/icons/svg/ng-expand-06.js.map +0 -1
  212. package/dist/src/nile-icon/icons/svg/ng-file-02.d.ts +0 -5
  213. package/dist/src/nile-icon/icons/svg/ng-file-02.js +0 -5
  214. package/dist/src/nile-icon/icons/svg/ng-file-02.js.map +0 -1
  215. package/dist/src/nile-icon/icons/svg/ng-file-check-02.d.ts +0 -5
  216. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js +0 -5
  217. package/dist/src/nile-icon/icons/svg/ng-file-check-02.js.map +0 -1
  218. package/dist/src/nile-icon/icons/svg/ng-file-question-03.d.ts +0 -5
  219. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js +0 -5
  220. package/dist/src/nile-icon/icons/svg/ng-file-question-03.js.map +0 -1
  221. package/dist/src/nile-icon/icons/svg/ng-filter-lines.d.ts +0 -5
  222. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js +0 -5
  223. package/dist/src/nile-icon/icons/svg/ng-filter-lines.js.map +0 -1
  224. package/dist/src/nile-icon/icons/svg/ng-grid-01.d.ts +0 -5
  225. package/dist/src/nile-icon/icons/svg/ng-grid-01.js +0 -5
  226. package/dist/src/nile-icon/icons/svg/ng-grid-01.js.map +0 -1
  227. package/dist/src/nile-icon/icons/svg/ng-help-circle.d.ts +0 -5
  228. package/dist/src/nile-icon/icons/svg/ng-help-circle.js +0 -5
  229. package/dist/src/nile-icon/icons/svg/ng-help-circle.js.map +0 -1
  230. package/dist/src/nile-icon/icons/svg/ng-image-user-left.d.ts +0 -5
  231. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js +0 -5
  232. package/dist/src/nile-icon/icons/svg/ng-image-user-left.js.map +0 -1
  233. package/dist/src/nile-icon/icons/svg/ng-info-circle.d.ts +0 -5
  234. package/dist/src/nile-icon/icons/svg/ng-info-circle.js +0 -5
  235. package/dist/src/nile-icon/icons/svg/ng-info-circle.js.map +0 -1
  236. package/dist/src/nile-icon/icons/svg/ng-italic-01.d.ts +0 -5
  237. package/dist/src/nile-icon/icons/svg/ng-italic-01.js +0 -5
  238. package/dist/src/nile-icon/icons/svg/ng-italic-01.js.map +0 -1
  239. package/dist/src/nile-icon/icons/svg/ng-list.d.ts +0 -5
  240. package/dist/src/nile-icon/icons/svg/ng-list.js +0 -5
  241. package/dist/src/nile-icon/icons/svg/ng-list.js.map +0 -1
  242. package/dist/src/nile-icon/icons/svg/ng-log-out-01.d.ts +0 -5
  243. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js +0 -5
  244. package/dist/src/nile-icon/icons/svg/ng-log-out-01.js.map +0 -1
  245. package/dist/src/nile-icon/icons/svg/ng-mail-01.d.ts +0 -5
  246. package/dist/src/nile-icon/icons/svg/ng-mail-01.js +0 -5
  247. package/dist/src/nile-icon/icons/svg/ng-mail-01.js.map +0 -1
  248. package/dist/src/nile-icon/icons/svg/ng-mail-04.d.ts +0 -5
  249. package/dist/src/nile-icon/icons/svg/ng-mail-04.js +0 -5
  250. package/dist/src/nile-icon/icons/svg/ng-mail-04.js.map +0 -1
  251. package/dist/src/nile-icon/icons/svg/ng-menu-05.d.ts +0 -5
  252. package/dist/src/nile-icon/icons/svg/ng-menu-05.js +0 -5
  253. package/dist/src/nile-icon/icons/svg/ng-menu-05.js.map +0 -1
  254. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.d.ts +0 -5
  255. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js +0 -5
  256. package/dist/src/nile-icon/icons/svg/ng-message-text-square-01.js.map +0 -1
  257. package/dist/src/nile-icon/icons/svg/ng-minimize-02.d.ts +0 -5
  258. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js +0 -5
  259. package/dist/src/nile-icon/icons/svg/ng-minimize-02.js.map +0 -1
  260. package/dist/src/nile-icon/icons/svg/ng-plus.d.ts +0 -5
  261. package/dist/src/nile-icon/icons/svg/ng-plus.js +0 -5
  262. package/dist/src/nile-icon/icons/svg/ng-plus.js.map +0 -1
  263. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.d.ts +0 -5
  264. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js +0 -5
  265. package/dist/src/nile-icon/icons/svg/ng-refresh-cw-02.js.map +0 -1
  266. package/dist/src/nile-icon/icons/svg/ng-rocket-02.d.ts +0 -5
  267. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js +0 -5
  268. package/dist/src/nile-icon/icons/svg/ng-rocket-02.js.map +0 -1
  269. package/dist/src/nile-icon/icons/svg/ng-search-lg.d.ts +0 -5
  270. package/dist/src/nile-icon/icons/svg/ng-search-lg.js +0 -5
  271. package/dist/src/nile-icon/icons/svg/ng-search-lg.js.map +0 -1
  272. package/dist/src/nile-icon/icons/svg/ng-send-01.d.ts +0 -5
  273. package/dist/src/nile-icon/icons/svg/ng-send-01.js +0 -5
  274. package/dist/src/nile-icon/icons/svg/ng-send-01.js.map +0 -1
  275. package/dist/src/nile-icon/icons/svg/ng-settings-01.d.ts +0 -5
  276. package/dist/src/nile-icon/icons/svg/ng-settings-01.js +0 -5
  277. package/dist/src/nile-icon/icons/svg/ng-settings-01.js.map +0 -1
  278. package/dist/src/nile-icon/icons/svg/ng-share-04.d.ts +0 -5
  279. package/dist/src/nile-icon/icons/svg/ng-share-04.js +0 -5
  280. package/dist/src/nile-icon/icons/svg/ng-share-04.js.map +0 -1
  281. package/dist/src/nile-icon/icons/svg/ng-share-06.d.ts +0 -5
  282. package/dist/src/nile-icon/icons/svg/ng-share-06.js +0 -5
  283. package/dist/src/nile-icon/icons/svg/ng-share-06.js.map +0 -1
  284. package/dist/src/nile-icon/icons/svg/ng-stars-02.d.ts +0 -5
  285. package/dist/src/nile-icon/icons/svg/ng-stars-02.js +0 -5
  286. package/dist/src/nile-icon/icons/svg/ng-stars-02.js.map +0 -1
  287. package/dist/src/nile-icon/icons/svg/ng-trash-01.d.ts +0 -5
  288. package/dist/src/nile-icon/icons/svg/ng-trash-01.js +0 -5
  289. package/dist/src/nile-icon/icons/svg/ng-trash-01.js.map +0 -1
  290. package/dist/src/nile-icon/icons/svg/ng-trash-03.d.ts +0 -5
  291. package/dist/src/nile-icon/icons/svg/ng-trash-03.js +0 -5
  292. package/dist/src/nile-icon/icons/svg/ng-trash-03.js.map +0 -1
  293. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.d.ts +0 -5
  294. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js +0 -5
  295. package/dist/src/nile-icon/icons/svg/ng-trend-up-01.js.map +0 -1
  296. package/dist/src/nile-icon/icons/svg/ng-underline-01.d.ts +0 -5
  297. package/dist/src/nile-icon/icons/svg/ng-underline-01.js +0 -5
  298. package/dist/src/nile-icon/icons/svg/ng-underline-01.js.map +0 -1
  299. package/dist/src/nile-icon/icons/svg/ng-upload-01.d.ts +0 -5
  300. package/dist/src/nile-icon/icons/svg/ng-upload-01.js +0 -5
  301. package/dist/src/nile-icon/icons/svg/ng-upload-01.js.map +0 -1
  302. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.d.ts +0 -5
  303. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js +0 -5
  304. package/dist/src/nile-icon/icons/svg/ng-upload-cloud-02.js.map +0 -1
  305. package/dist/src/nile-icon/icons/svg/ng-user-01.d.ts +0 -5
  306. package/dist/src/nile-icon/icons/svg/ng-user-01.js +0 -5
  307. package/dist/src/nile-icon/icons/svg/ng-user-01.js.map +0 -1
  308. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.d.ts +0 -5
  309. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js +0 -5
  310. package/dist/src/nile-icon/icons/svg/ng-user-check-02-1.js.map +0 -1
  311. package/dist/src/nile-icon/icons/svg/ng-user-check-02.d.ts +0 -5
  312. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js +0 -5
  313. package/dist/src/nile-icon/icons/svg/ng-user-check-02.js.map +0 -1
  314. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.d.ts +0 -5
  315. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js +0 -5
  316. package/dist/src/nile-icon/icons/svg/ng-user-plus-02.js.map +0 -1
  317. package/dist/src/nile-icon/icons/svg/ng-user-right-01.d.ts +0 -5
  318. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js +0 -5
  319. package/dist/src/nile-icon/icons/svg/ng-user-right-01.js.map +0 -1
  320. package/dist/src/nile-icon/icons/svg/ng-users-01.d.ts +0 -5
  321. package/dist/src/nile-icon/icons/svg/ng-users-01.js +0 -5
  322. package/dist/src/nile-icon/icons/svg/ng-users-01.js.map +0 -1
  323. package/dist/src/nile-icon/icons/svg/ng-x-close.d.ts +0 -5
  324. package/dist/src/nile-icon/icons/svg/ng-x-close.js +0 -5
  325. package/dist/src/nile-icon/icons/svg/ng-x-close.js.map +0 -1
  326. package/dist/src/nile-icon/icons/svg/ng-x-square.d.ts +0 -5
  327. package/dist/src/nile-icon/icons/svg/ng-x-square.js +0 -5
  328. package/dist/src/nile-icon/icons/svg/ng-x-square.js.map +0 -1
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Copyright Aquera Inc 2023
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
2
+ * Copyright Aquera Inc 2025
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
7
  import { css } from 'lit';
8
8
  /**
9
- * Slider CSS
10
- */
9
+ * Slider CSS
10
+ */
11
11
  export const styles = css `
12
12
  :host {
13
13
  display: block;
@@ -55,8 +55,13 @@ export const styles = css `
55
55
  position: relative;
56
56
  width: 228px;
57
57
  height: 4px;
58
- background-color: var(--nile-colors-white-base);
59
- border-radius: var(--nile-radius-radius-3xl);
58
+ background-color: var(--nile-colors-neutral-400);
59
+ user-select: none;
60
+ border-radius: var(--nile-radius-radius-3xl);
61
+ }
62
+
63
+ .range:hover {
64
+ cursor: pointer;
60
65
  }
61
66
 
62
67
  .range-completed {
@@ -80,17 +85,19 @@ export const styles = css `
80
85
  border-radius: var(--nile-radius-radius-3xl);
81
86
  left: 0;
82
87
  z-index: 100;
83
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;
88
+ box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
89
+ transition: box-shadow var(--nile-transition-duration-default) ease;
84
90
  }
85
91
 
86
92
  .range-button:hover, .range-button-two:hover {
87
- cursor: grab;
93
+ cursor: pointer;
88
94
  background-color: var(--nile-colors-primary-700);
89
95
  }
90
96
 
91
97
  .range-button:active, .range-button-two:active {
92
- cursor: grabbing;
98
+ transition: box-shadow var(--nile-transition-duration-default) ease;
93
99
  background-color: var(--nile-colors-primary-700);
100
+ box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;
94
101
  }
95
102
 
96
103
  .range-button-two {
@@ -103,7 +110,8 @@ export const styles = css `
103
110
  border-radius: var(--nile-radius-radius-3xl);
104
111
  left: 100%;
105
112
  z-index: 100;
106
- box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;
113
+ box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
114
+ transition: box-shadow var(--nile-transition-duration-default) ease;
107
115
  }
108
116
  `;
109
117
  export default [styles];
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.css.js","sourceRoot":"","sources":["../../../src/nile-slider/nile-slider.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiGxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Slider CSS\n */\nexport const styles = css`\n :host {\n display: block;\n }\n\n .container {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n height: 100px;\n }\n\n .align-item-center {\n align-items: center;\n }\n\n slot.span {\n font-size: var(--nile-font-size-micro);\n margin-top: 14px;\n }\n\n .range-container {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-sm);\n }\n\n .column-reverse {\n flex-direction: column-reverse;\n }\n\n .label-container {\n display: flex;\n justify-content: space-between;\n }\n\n .label-container span {\n margin: var(--nile-spacing-none);\n padding: var(--nile-spacing-none);\n font-size: var(--nile-font-size-micro);\n }\n\n .range {\n position: relative;\n width: 228px;\n height: 4px;\n background-color: var(--nile-colors-white-base);\n\t border-radius: var(--nile-radius-radius-3xl);\n }\n\n .range-completed {\n position: absolute;\n height: 100%;\n width: 0%;\n background-color: var(--nile-colors-primary-600);\n top: 0px;\n left: 0px;\n z-index: 98;\n border-radius: var(--nile-radius-radius-3xl);\n }\n\n .range-button {\n height: 12px;\n width: 12px;\n background-color: var(--nile-colors-primary-600);\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n border-radius: var(--nile-radius-radius-3xl);\n left: 0;\n z-index: 100;\n box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;\n }\n\n .range-button:hover, .range-button-two:hover {\n cursor: grab;\n background-color: var(--nile-colors-primary-700);\n }\n\n .range-button:active, .range-button-two:active {\n cursor: grabbing;\n background-color: var(--nile-colors-primary-700);\n }\n\n .range-button-two {\n height: 12px;\n width: 12px;\n background-color: var(--nile-colors-primary-600);\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n border-radius: var(--nile-radius-radius-3xl);\n left: 100%;\n z-index: 100;\n box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-slider.css.js","sourceRoot":"","sources":["../../../src/nile-slider/nile-slider.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AACF,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;EAEE;AACF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyGxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2025\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\nimport { css } from 'lit';\n\n/**\n* Slider CSS\n*/\nexport const styles = css`\n :host {\n display: block;\n }\n\n .container {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 10px;\n height: 100px;\n }\n\n .align-item-center {\n align-items: center;\n }\n\n slot.span {\n font-size: var(--nile-font-size-micro);\n margin-top: 14px;\n }\n\n .range-container {\n display: flex;\n flex-direction: column;\n gap: var(--nile-spacing-sm);\n }\n\n .column-reverse {\n flex-direction: column-reverse;\n }\n\n .label-container {\n display: flex;\n justify-content: space-between;\n }\n\n .label-container span {\n margin: var(--nile-spacing-none);\n padding: var(--nile-spacing-none);\n font-size: var(--nile-font-size-micro);\n }\n\n .range {\n position: relative;\n width: 228px;\n height: 4px;\n background-color: var(--nile-colors-neutral-400);\n user-select: none;\n border-radius: var(--nile-radius-radius-3xl);\n }\n\n .range:hover {\n cursor: pointer;\n }\n\n .range-completed {\n position: absolute;\n height: 100%;\n width: 0%;\n background-color: var(--nile-colors-primary-600);\n top: 0px;\n left: 0px;\n z-index: 98;\n border-radius: var(--nile-radius-radius-3xl);\n }\n\n .range-button {\n height: 12px;\n width: 12px;\n background-color: var(--nile-colors-primary-600);\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n border-radius: var(--nile-radius-radius-3xl);\n left: 0;\n z-index: 100;\n box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;\n transition: box-shadow var(--nile-transition-duration-default) ease;\n }\n\n .range-button:hover, .range-button-two:hover {\n cursor: pointer;\n background-color: var(--nile-colors-primary-700);\n }\n\n .range-button:active, .range-button-two:active {\n transition: box-shadow var(--nile-transition-duration-default) ease;\n background-color: var(--nile-colors-primary-700);\n box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;\n }\n\n .range-button-two {\n height: 12px;\n width: 12px;\n background-color: var(--nile-colors-primary-600);\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n border-radius: var(--nile-radius-radius-3xl);\n left: 100%;\n z-index: 100;\n box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;\n transition: box-shadow var(--nile-transition-duration-default) ease;\n }\n`;\n\nexport default [styles];\n"]}
@@ -14,8 +14,8 @@ import { TooltipPosition } from './types/nile-slider.types';
14
14
  */
15
15
  export declare class NileSlider extends NileElement {
16
16
  static get styles(): CSSResultArray;
17
- value: number;
18
17
  minValue: number;
18
+ value: number;
19
19
  maxValue: number;
20
20
  rangeOneValue: number;
21
21
  rangeTwoValue: number;
@@ -33,9 +33,10 @@ export declare class NileSlider extends NileElement {
33
33
  connectedCallback(): void;
34
34
  firstUpdated(changedProps: Map<string, any>): void;
35
35
  checkValueValidity(value: number, min: number, max: number): number;
36
+ checkRangeValidity(): void;
36
37
  onMouseMove: (e: MouseEvent) => void;
37
38
  onMouseUp: () => void;
38
- onMouseClick: (e: MouseEvent) => void;
39
+ onMouseDown: (e: MouseEvent) => void;
39
40
  render(): TemplateResult;
40
41
  disconnectedCallback(): void;
41
42
  }
@@ -11,7 +11,7 @@ import { classMap } from 'lit/directives/class-map.js';
11
11
  import { html } from 'lit';
12
12
  import { customElement, property } from 'lit/decorators.js';
13
13
  import { rangeSlider, singleSlider, lableContaier } from './nile-slider.template';
14
- import { handleSingleSlider, handleRangeOne, handleRangeTwo, getHtmlElements, removeMoveListeners, valueToPercent, handleTwoThumbClick } from './utils/nile-slider.utils';
14
+ import { handleSingleSlider, handleRangeOne, handleRangeTwo, getHtmlElements, removeMoveListeners, valueToPercent, handleTwoThumbClick, addMoveListeners } from './utils/nile-slider.utils';
15
15
  /**
16
16
  * Nile slider component.
17
17
  *
@@ -20,9 +20,9 @@ import { handleSingleSlider, handleRangeOne, handleRangeTwo, getHtmlElements, re
20
20
  let NileSlider = class NileSlider extends NileElement {
21
21
  constructor() {
22
22
  super(...arguments);
23
- this.value = 0;
24
23
  this.minValue = 0;
25
- this.maxValue = 0;
24
+ this.value = this.minValue;
25
+ this.maxValue = 100;
26
26
  this.rangeOneValue = this.minValue;
27
27
  this.rangeTwoValue = this.maxValue;
28
28
  this.showLabel = false;
@@ -64,16 +64,22 @@ let NileSlider = class NileSlider extends NileElement {
64
64
  this.activeThumb = null;
65
65
  removeMoveListeners(this);
66
66
  };
67
- this.onMouseClick = (e) => {
67
+ this.onMouseDown = (e) => {
68
68
  const rect = this.range.getBoundingClientRect();
69
69
  const clickX = e.clientX - rect.left;
70
70
  const percent = (clickX / rect.width) * 100;
71
71
  const value = this.minValue + (percent / 100) * (this.maxValue - this.minValue);
72
72
  if (!this.rangeSlider) {
73
73
  handleSingleSlider(e, rect, this);
74
+ this.activeThumb = 'one';
75
+ addMoveListeners(this);
74
76
  }
75
77
  else {
76
78
  handleTwoThumbClick(value, this);
79
+ const distToOne = Math.abs(value - this.rangeOneValue);
80
+ const distToTwo = Math.abs(value - this.rangeTwoValue);
81
+ this.activeThumb = distToOne <= distToTwo ? 'one' : 'two';
82
+ addMoveListeners(this);
77
83
  }
78
84
  };
79
85
  }
@@ -83,6 +89,9 @@ let NileSlider = class NileSlider extends NileElement {
83
89
  connectedCallback() {
84
90
  super.connectedCallback();
85
91
  this.emit("nile-init" /* NileSliderEvents.NILE_INIT */);
92
+ if (this.rangeSlider) {
93
+ this.checkRangeValidity();
94
+ }
86
95
  }
87
96
  firstUpdated(changedProps) {
88
97
  getHtmlElements(this);
@@ -92,9 +101,7 @@ let NileSlider = class NileSlider extends NileElement {
92
101
  this.buttonOne.style.left = `${percent}%`;
93
102
  this.completed.style.width = `${percent}%`;
94
103
  }
95
- else if (this.rangeSlider && changedProps.has('rangeOneValue') || changedProps.has('rangeTwoValue')) {
96
- this.rangeOneValue = this.checkValueValidity(this.rangeOneValue, this.minValue, this.maxValue);
97
- this.rangeTwoValue = this.checkValueValidity(this.rangeTwoValue, this.minValue, this.maxValue);
104
+ else if (this.rangeSlider) {
98
105
  const percentOne = valueToPercent(this.rangeOneValue, this);
99
106
  const percentTwo = valueToPercent(this.rangeTwoValue, this);
100
107
  if (this.buttonOne)
@@ -108,29 +115,58 @@ let NileSlider = class NileSlider extends NileElement {
108
115
  }
109
116
  }
110
117
  checkValueValidity(value, min, max) {
111
- return Math.max(min, Math.min(value, max));
118
+ if (max - min <= 1) {
119
+ return Math.max(min, Math.min(value, max));
120
+ }
121
+ return Math.floor(Math.max(min, Math.min(value, max)));
122
+ }
123
+ checkRangeValidity() {
124
+ if (this.rangeTwoValue > this.maxValue) {
125
+ this.rangeTwoValue = this.maxValue;
126
+ }
127
+ else if (this.rangeTwoValue < this.rangeOneValue) {
128
+ this.rangeTwoValue = this.rangeOneValue;
129
+ }
130
+ if (this.rangeOneValue < this.minValue) {
131
+ this.rangeOneValue = this.minValue;
132
+ }
133
+ else if (this.rangeOneValue > this.rangeTwoValue) {
134
+ this.rangeOneValue = this.rangeTwoValue;
135
+ }
112
136
  }
113
137
  render() {
138
+ const hasLabels = this.showLabel;
139
+ const ariaLabelledby = hasLabels ? 'label-start label-end' : undefined;
114
140
  return html `
115
- <div part="base" class=${classMap({
116
- container: true,
117
- 'align-item-center': !this.showLabel
118
- })}>
141
+ <div
142
+ part="base"
143
+ class=${classMap({
144
+ 'container': true,
145
+ 'align-item-center': !hasLabels
146
+ })}
147
+ >
119
148
  <slot class="span" name="prefix"></slot>
120
- <div part="range-container" class=${classMap({
149
+
150
+ <div
151
+ part="range-container"
152
+ class=${classMap({
121
153
  'range-container': true,
122
- 'column-reverse': this.labelPosition === "bottom"
123
- })}>
124
- ${this.showLabel
125
- ? lableContaier(this)
126
- : html ``}
127
- <div class="range" part="range">
154
+ 'column-reverse': this.labelPosition === 'bottom'
155
+ })}
156
+ >
157
+ ${hasLabels ? lableContaier(this) : html ``}
158
+
159
+ <div
160
+ class="range"
161
+ part="range"
162
+ role="group"
163
+ aria-labelledby=${ariaLabelledby}
164
+ >
128
165
  <span class="range-completed" part="range-completed"></span>
129
- ${this.rangeSlider
130
- ? rangeSlider(this)
131
- : singleSlider(this)}
166
+ ${this.rangeSlider ? rangeSlider(this) : singleSlider(this)}
132
167
  </div>
133
168
  </div>
169
+
134
170
  <slot class="span" name="suffix"></slot>
135
171
  </div>
136
172
  `;
@@ -142,10 +178,10 @@ let NileSlider = class NileSlider extends NileElement {
142
178
  };
143
179
  __decorate([
144
180
  property({ type: Number })
145
- ], NileSlider.prototype, "value", void 0);
181
+ ], NileSlider.prototype, "minValue", void 0);
146
182
  __decorate([
147
183
  property({ type: Number })
148
- ], NileSlider.prototype, "minValue", void 0);
184
+ ], NileSlider.prototype, "value", void 0);
149
185
  __decorate([
150
186
  property({ type: Number })
151
187
  ], NileSlider.prototype, "maxValue", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.js","sourceRoot":"","sources":["../../../src/nile-slider/nile-slider.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { styles } from './nile-slider.css';\nimport NileElement from '../internal/nile-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { TooltipPosition } from './types/nile-slider.types';\nimport { NileSliderEvents } from './types/nile-slider.enums';\nimport { rangeSlider, singleSlider, lableContaier } from './nile-slider.template';\nimport { \n handleSingleSlider, \n handleRangeOne, \n handleRangeTwo, \n getHtmlElements, \n removeMoveListeners,\n valueToPercent,\n handleTwoThumbClick\n} from './utils/nile-slider.utils'\n\n/** \n * Nile slider component.\n *\n * @tag nile-slider\n */\n@customElement('nile-slider')\nexport class NileSlider extends NileElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Number }) value: number = 0;\n @property({ type: Number }) minValue: number = 0;\n @property({ type: Number }) maxValue: number = 0;\n @property({ type: Number }) rangeOneValue: number = this.minValue;\n @property({ type: Number }) rangeTwoValue: number = this.maxValue;\n @property({ type: Boolean}) showLabel: boolean = false;\n @property({ type: String }) labelStart: string = \"\";\n @property({ type: String }) labelEnd: string = \"\";\n @property({ type: Boolean}) rangeSlider: boolean = false;\n @property({ type: String }) labelPosition: string = \"top\";\n @property({ type: String }) tooltipPosition: TooltipPosition = \"top\";\n\n public buttonOne!: HTMLElement;\n public buttonTwo!: HTMLElement;\n public range!: HTMLElement;\n public completed!: HTMLElement;\n public activeThumb: 'one' | 'two' | null = null;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit(NileSliderEvents.NILE_INIT); \n }\n\n firstUpdated(changedProps: Map<string, any>): void {\n getHtmlElements(this);\n\n if (!this.rangeSlider && changedProps.has('value')) {\n this.value = this.checkValueValidity(this.value, this.minValue, this.maxValue);\n const percent = valueToPercent(this.value, this);\n\n this.buttonOne.style.left = `${percent}%`;\n this.completed.style.width = `${percent}%`;\n } else if (this.rangeSlider && changedProps.has('rangeOneValue') || changedProps.has('rangeTwoValue')) {\n this.rangeOneValue = this.checkValueValidity(this.rangeOneValue, this.minValue, this.maxValue);\n this.rangeTwoValue = this.checkValueValidity(this.rangeTwoValue, this.minValue, this.maxValue);\n\n const percentOne = valueToPercent(this.rangeOneValue, this);\n const percentTwo = valueToPercent(this.rangeTwoValue, this);\n\n if (this.buttonOne) this.buttonOne.style.left = `${percentOne}%`;\n if (this.buttonTwo) this.buttonTwo.style.left = `${percentTwo}%`;\n\n const left = Math.min(percentOne, percentTwo);\n const width = Math.abs(percentTwo - percentOne);\n\n this.completed.style.left = `${left}%`;\n this.completed.style.width = `${width}%`;\n }\n }\n\n checkValueValidity(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n }\n\n public onMouseMove = (e: MouseEvent): void => {\n const rect = this.range.getBoundingClientRect();\n\n if (!this.rangeSlider) {\n handleSingleSlider(e, rect, this);\n } else {\n if (this.activeThumb === 'one') {\n handleRangeOne(e, rect, this);\n } else if (this.activeThumb === 'two') {\n handleRangeTwo(e, rect, this);\n }\n\n const start = valueToPercent(this.rangeOneValue, this);\n const end = valueToPercent(this.rangeTwoValue, this);\n const left = Math.min(start, end);\n const width = Math.abs(end - start);\n\n if(this.rangeTwoValue >= this.rangeOneValue) {\n this.completed.style.left = `${left}%`;\n this.completed.style.width = `${width}%`;\n }\n }\n };\n\n public onMouseUp = (): void => {\n if(!this.rangeSlider) this.emit(NileSliderEvents.NILE_CHANGE_END, { value: this.value });\n else {\n this.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE_END, { value: this.rangeOneValue });\n this.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE_END, { value: this.rangeTwoValue });\n }\n this.activeThumb = null;\n removeMoveListeners(this);\n };\n\n public onMouseClick = (e: MouseEvent): void => {\n const rect = this.range.getBoundingClientRect();\n const clickX = e.clientX - rect.left;\n const percent = (clickX / rect.width) * 100;\n const value = this.minValue + (percent / 100) * (this.maxValue - this.minValue);\n \n if (!this.rangeSlider) {\n handleSingleSlider(e, rect, this);\n } else {\n handleTwoThumbClick(value, this);\n }\n };\n \n\n public render(): TemplateResult {\n return html`\n <div part=\"base\" class=${classMap({\n container: true,\n 'align-item-center': !this.showLabel\n })}>\n <slot class=\"span\" name=\"prefix\"></slot>\n <div part=\"range-container\" class=${classMap({\n 'range-container': true,\n 'column-reverse': this.labelPosition === \"bottom\"\n })}>\n ${this.showLabel\n ? lableContaier(this)\n : html``}\n <div class=\"range\" part=\"range\">\n <span class=\"range-completed\" part=\"range-completed\"></span>\n ${this.rangeSlider\n ? rangeSlider(this)\n : singleSlider(this)}\n </div>\n </div>\n <slot class=\"span\" name=\"suffix\"></slot>\n </div>\n `;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.emit(NileSliderEvents.NILE_DESTROY);\n }\n}\n\nexport default NileSlider;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-slider': NileSlider;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-slider.js","sourceRoot":"","sources":["../../../src/nile-slider/nile-slider.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { styles } from './nile-slider.css';\nimport NileElement from '../internal/nile-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { TooltipPosition } from './types/nile-slider.types';\nimport { NileSliderEvents } from './types/nile-slider.enums';\nimport { rangeSlider, singleSlider, lableContaier } from './nile-slider.template';\nimport { \n handleSingleSlider, \n handleRangeOne, \n handleRangeTwo, \n getHtmlElements, \n removeMoveListeners,\n valueToPercent,\n handleTwoThumbClick,\n addMoveListeners\n} from './utils/nile-slider.utils'\n\n/** \n * Nile slider component.\n *\n * @tag nile-slider\n */\n@customElement('nile-slider')\nexport class NileSlider extends NileElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n @property({ type: Number }) minValue: number = 0;\n @property({ type: Number }) value: number = this.minValue;\n @property({ type: Number }) maxValue: number = 100;\n @property({ type: Number }) rangeOneValue: number = this.minValue;\n @property({ type: Number }) rangeTwoValue: number = this.maxValue;\n @property({ type: Boolean}) showLabel: boolean = false;\n @property({ type: String }) labelStart: string = \"\";\n @property({ type: String }) labelEnd: string = \"\";\n @property({ type: Boolean}) rangeSlider: boolean = false;\n @property({ type: String }) labelPosition: string = \"top\";\n @property({ type: String }) tooltipPosition: TooltipPosition = \"top\";\n\n public buttonOne!: HTMLElement;\n public buttonTwo!: HTMLElement;\n public range!: HTMLElement;\n public completed!: HTMLElement;\n public activeThumb: 'one' | 'two' | null = null;\n\n connectedCallback(): void {\n super.connectedCallback();\n this.emit(NileSliderEvents.NILE_INIT); \n\n if(this.rangeSlider) {\n this.checkRangeValidity();\n }\n }\n\n firstUpdated(changedProps: Map<string, any>): void {\n getHtmlElements(this);\n\n if (!this.rangeSlider && changedProps.has('value')) {\n this.value = this.checkValueValidity(this.value, this.minValue, this.maxValue);\n const percent = valueToPercent(this.value, this);\n \n this.buttonOne.style.left = `${percent}%`;\n this.completed.style.width = `${percent}%`;\n } else if (this.rangeSlider) {\n \n const percentOne = valueToPercent(this.rangeOneValue, this);\n const percentTwo = valueToPercent(this.rangeTwoValue, this);\n \n if (this.buttonOne) this.buttonOne.style.left = `${percentOne}%`;\n if (this.buttonTwo) this.buttonTwo.style.left = `${percentTwo}%`;\n \n const left = Math.min(percentOne, percentTwo);\n const width = Math.abs(percentTwo - percentOne);\n \n this.completed.style.left = `${left}%`;\n this.completed.style.width = `${width}%`;\n }\n }\n\n checkValueValidity(value: number, min: number, max: number): number {\n if(max - min <= 1) { \n return Math.max(min, Math.min(value, max));\n }\n return Math.floor(Math.max(min, Math.min(value, max)));\n }\n\n checkRangeValidity(): void {\n if(this.rangeTwoValue > this.maxValue) {\n this.rangeTwoValue = this.maxValue;\n } else if(this.rangeTwoValue < this.rangeOneValue) {\n this.rangeTwoValue = this.rangeOneValue;\n }\n\n if(this.rangeOneValue < this.minValue) {\n this.rangeOneValue = this.minValue;\n } else if(this.rangeOneValue > this.rangeTwoValue) {\n this.rangeOneValue = this.rangeTwoValue;\n }\n } \n\n public onMouseMove = (e: MouseEvent): void => {\n const rect = this.range.getBoundingClientRect();\n\n if (!this.rangeSlider) {\n handleSingleSlider(e, rect, this);\n } else {\n if (this.activeThumb === 'one') {\n handleRangeOne(e, rect, this);\n } else if (this.activeThumb === 'two') {\n handleRangeTwo(e, rect, this);\n }\n\n const start = valueToPercent(this.rangeOneValue, this);\n const end = valueToPercent(this.rangeTwoValue, this);\n const left = Math.min(start, end);\n const width = Math.abs(end - start);\n\n if(this.rangeTwoValue >= this.rangeOneValue) {\n this.completed.style.left = `${left}%`;\n this.completed.style.width = `${width}%`;\n }\n }\n };\n\n public onMouseUp = (): void => {\n if(!this.rangeSlider) this.emit(NileSliderEvents.NILE_CHANGE_END, { value: this.value });\n else {\n this.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE_END, { value: this.rangeOneValue });\n this.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE_END, { value: this.rangeTwoValue });\n }\n this.activeThumb = null;\n removeMoveListeners(this);\n };\n\n public onMouseDown = (e: MouseEvent): void => {\n const rect = this.range.getBoundingClientRect();\n const clickX = e.clientX - rect.left;\n const percent = (clickX / rect.width) * 100;\n const value = this.minValue + (percent / 100) * (this.maxValue - this.minValue);\n \n if (!this.rangeSlider) {\n handleSingleSlider(e, rect, this);\n this.activeThumb = 'one';\n addMoveListeners(this);\n } else {\n handleTwoThumbClick(value, this);\n const distToOne = Math.abs(value - this.rangeOneValue);\n const distToTwo = Math.abs(value - this.rangeTwoValue);\n this.activeThumb = distToOne <= distToTwo ? 'one' : 'two';\n addMoveListeners(this);\n }\n };\n\n public render(): TemplateResult {\n const hasLabels = this.showLabel;\n const ariaLabelledby = hasLabels ? 'label-start label-end' : undefined;\n \n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'container': true,\n 'align-item-center': !hasLabels\n })}\n >\n <slot class=\"span\" name=\"prefix\"></slot>\n \n <div\n part=\"range-container\"\n class=${classMap({\n 'range-container': true,\n 'column-reverse': this.labelPosition === 'bottom'\n })}\n >\n ${hasLabels ? lableContaier(this) : html``}\n \n <div\n class=\"range\"\n part=\"range\"\n role=\"group\"\n aria-labelledby=${ariaLabelledby}\n >\n <span class=\"range-completed\" part=\"range-completed\"></span>\n ${this.rangeSlider ? rangeSlider(this) : singleSlider(this)}\n </div>\n </div>\n \n <slot class=\"span\" name=\"suffix\"></slot>\n </div>\n `;\n } \n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.emit(NileSliderEvents.NILE_DESTROY);\n }\n}\n\nexport default NileSlider;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-slider': NileSlider;\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import { html } from 'lit';
2
+ import { classMap } from 'lit/directives/class-map.js';
2
3
  export const rangeSlider = (nileSlider) => {
3
4
  return html `
4
5
  <div>
@@ -6,7 +7,17 @@ export const rangeSlider = (nileSlider) => {
6
7
  content=${nileSlider.rangeOneValue}
7
8
  placement=${nileSlider.tooltipPosition}
8
9
  >
9
- <div id="range-one" class="range-button" part="range-button"></div>
10
+ <div
11
+ id="range-one"
12
+ class="range-button"
13
+ part="range-button"
14
+ role="slider"
15
+ tabindex="0"
16
+ aria-valuemin=${nileSlider.minValue}
17
+ aria-valuemax=${nileSlider.maxValue}
18
+ aria-valuenow=${nileSlider.rangeOneValue}
19
+ aria-label="Minimum value"
20
+ ></div>
10
21
  </nile-tooltip>
11
22
  <nile-tooltip
12
23
  content=${nileSlider.rangeTwoValue}
@@ -16,6 +27,12 @@ export const rangeSlider = (nileSlider) => {
16
27
  id="range-two"
17
28
  class="range-button-two"
18
29
  part="range-button-two"
30
+ role="slider"
31
+ tabindex="0"
32
+ aria-valuemin=${nileSlider.minValue}
33
+ aria-valuemax=${nileSlider.maxValue}
34
+ aria-valuenow=${nileSlider.rangeTwoValue}
35
+ aria-label="Maximum value"
19
36
  ></div>
20
37
  </nile-tooltip>
21
38
  </div>
@@ -28,7 +45,19 @@ export const singleSlider = (nileSlider) => {
28
45
  content=${nileSlider.value}
29
46
  placement=${nileSlider.tooltipPosition}
30
47
  >
31
- <div class="range-button" part="range-button"></div>
48
+ <div
49
+ class=${classMap({
50
+ 'range-button': true,
51
+ 'range-button-active': nileSlider.activeThumb === 'one',
52
+ })}
53
+ part="range-button"
54
+ role="slider"
55
+ tabindex="0"
56
+ aria-valuemin=${nileSlider.minValue}
57
+ aria-valuemax=${nileSlider.maxValue}
58
+ aria-valuenow=${nileSlider.value}
59
+ aria-label=${nileSlider.ariaLabel || "Slider value"}
60
+ ></div>
32
61
  </nile-tooltip>
33
62
  </div>
34
63
  `;
@@ -36,8 +65,8 @@ export const singleSlider = (nileSlider) => {
36
65
  export const lableContaier = (nileSlider) => {
37
66
  return html `
38
67
  <div part="label-container" class="label-container">
39
- <span>${nileSlider.labelStart}</span>
40
- <span>${nileSlider.labelEnd}</span>
68
+ <span id="label-start">${nileSlider.labelStart}</span>
69
+ <span id="label-end">${nileSlider.labelEnd}</span>
41
70
  </div>
42
71
  `;
43
72
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.template.js","sourceRoot":"","sources":["../../../src/nile-slider/nile-slider.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAsB,EAAkB,EAAE;IACpE,OAAO,IAAI,CAAA;;;kBAGK,UAAU,CAAC,aAAa;oBACtB,UAAU,CAAC,eAAe;;;;;kBAK5B,UAAU,CAAC,aAAa;oBACtB,UAAU,CAAC,eAAe;;;;;;;;;GAS3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAsB,EAAkB,EAAE;IACrE,OAAO,IAAI,CAAA;;;kBAGK,UAAU,CAAC,KAAK;oBACd,UAAU,CAAC,eAAe;;;;;GAK3C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAsB,EAAkB,EAAE;IACtE,OAAO,IAAI,CAAA;;cAEC,UAAU,CAAC,UAAU;cACrB,UAAU,CAAC,QAAQ;;GAE9B,CAAC;AACJ,CAAC,CAAA","sourcesContent":["import { TemplateResult, html } from 'lit';\nimport NileSlider from './nile-slider';\n\nexport const rangeSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.rangeOneValue}\n placement=${nileSlider.tooltipPosition}\n >\n <div id=\"range-one\" class=\"range-button\" part=\"range-button\"></div>\n </nile-tooltip>\n <nile-tooltip\n content=${nileSlider.rangeTwoValue}\n placement=${nileSlider.tooltipPosition}\n >\n <div\n id=\"range-two\"\n class=\"range-button-two\"\n part=\"range-button-two\"\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\nexport const singleSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.value}\n placement=${nileSlider.tooltipPosition}\n >\n <div class=\"range-button\" part=\"range-button\"></div>\n </nile-tooltip>\n </div>\n `;\n};\n\nexport const lableContaier = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div part=\"label-container\" class=\"label-container\">\n <span>${nileSlider.labelStart}</span>\n <span>${nileSlider.labelEnd}</span>\n </div>\n `;\n}"]}
1
+ {"version":3,"file":"nile-slider.template.js","sourceRoot":"","sources":["../../../src/nile-slider/nile-slider.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAsB,EAAkB,EAAE;IACpE,OAAO,IAAI,CAAA;;;kBAGK,UAAU,CAAC,aAAa;oBACtB,UAAU,CAAC,eAAe;;;;;;;;0BAQpB,UAAU,CAAC,QAAQ;0BACnB,UAAU,CAAC,QAAQ;0BACnB,UAAU,CAAC,aAAa;;;;;kBAKhC,UAAU,CAAC,aAAa;oBACtB,UAAU,CAAC,eAAe;;;;;;;;0BAQpB,UAAU,CAAC,QAAQ;0BACnB,UAAU,CAAC,QAAQ;0BACnB,UAAU,CAAC,aAAa;;;;;GAK/C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAsB,EAAkB,EAAE;IACrE,OAAO,IAAI,CAAA;;;kBAGK,UAAU,CAAC,KAAK;oBACd,UAAU,CAAC,eAAe;;;kBAG5B,QAAQ,CAAC;QACf,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,UAAU,CAAC,WAAW,KAAK,KAAK;KACxD,CAAC;;;;0BAIc,UAAU,CAAC,QAAQ;0BACnB,UAAU,CAAC,QAAQ;0BACnB,UAAU,CAAC,KAAK;uBACnB,UAAU,CAAC,SAAS,IAAI,cAAc;;;;GAI1D,CAAC;AACJ,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAsB,EAAkB,EAAE;IACtE,OAAO,IAAI,CAAA;;+BAEkB,UAAU,CAAC,UAAU;6BACvB,UAAU,CAAC,QAAQ;;GAE7C,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { TemplateResult, html } from 'lit';\nimport NileSlider from './nile-slider';\nimport { classMap } from 'lit/directives/class-map.js';\n\nexport const rangeSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.rangeOneValue}\n placement=${nileSlider.tooltipPosition}\n >\n <div \n id=\"range-one\" \n class=\"range-button\"\n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.rangeOneValue}\n aria-label=\"Minimum value\"\n ></div>\n </nile-tooltip>\n <nile-tooltip\n content=${nileSlider.rangeTwoValue}\n placement=${nileSlider.tooltipPosition}\n >\n <div\n id=\"range-two\"\n class=\"range-button-two\"\n part=\"range-button-two\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.rangeTwoValue}\n aria-label=\"Maximum value\"\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\nexport const singleSlider = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div>\n <nile-tooltip\n content=${nileSlider.value}\n placement=${nileSlider.tooltipPosition}\n >\n <div \n class=${classMap({\n 'range-button': true,\n 'range-button-active': nileSlider.activeThumb === 'one',\n })} \n part=\"range-button\"\n role=\"slider\"\n tabindex=\"0\"\n aria-valuemin=${nileSlider.minValue}\n aria-valuemax=${nileSlider.maxValue}\n aria-valuenow=${nileSlider.value}\n aria-label=${nileSlider.ariaLabel || \"Slider value\"}\n ></div>\n </nile-tooltip>\n </div>\n `;\n};\n\n\nexport const lableContaier = (nileSlider: NileSlider): TemplateResult => {\n return html`\n <div part=\"label-container\" class=\"label-container\">\n <span id=\"label-start\">${nileSlider.labelStart}</span>\n <span id=\"label-end\">${nileSlider.labelEnd}</span>\n </div>\n `;\n};"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.enums.js","sourceRoot":"","sources":["../../../../src/nile-slider/types/nile-slider.enums.ts"],"names":[],"mappings":"","sourcesContent":["export const enum NileSliderEvents {\n NILE_INIT = \"nile-init\",\n NILE_CHANGE = \"nile-change\",\n NILE_CHANGE_END = \"nile-change-end\",\n NILE_BUTTON_FIRST_CHANGE = \"nile-button-first-change\",\n NILE_BUTTON_LAST_CHANGE = \"nile-button-last-change\",\n NILE_BUTTON_FIRST_CHANGE_END = \"nile-button-first-change-end\",\n NILE_BUTTON_LAST_CHANGE_END = \"nile-button-last-change-end\",\n NILE_DESTROY = \"nile-destroy\",\n}"]}
1
+ {"version":3,"file":"nile-slider.enums.js","sourceRoot":"","sources":["../../../../src/nile-slider/types/nile-slider.enums.ts"],"names":[],"mappings":"","sourcesContent":["export const enum NileSliderEvents {\n NILE_INIT = \"nile-init\",\n NILE_CHANGE = \"nile-change\",\n NILE_CHANGE_END = \"nile-change-end\",\n NILE_BUTTON_FIRST_CHANGE = \"nile-button-first-change\",\n NILE_BUTTON_LAST_CHANGE = \"nile-button-last-change\",\n NILE_BUTTON_FIRST_CHANGE_END = \"nile-button-first-change-end\",\n NILE_BUTTON_LAST_CHANGE_END = \"nile-button-last-change-end\",\n NILE_DESTROY = \"nile-destroy\", \n}"]}
@@ -1,12 +1,19 @@
1
1
  export const getClampedPercent = (rect, x) => {
2
- const clamped = Math.max(0, Math.min(x, rect.width));
3
- return (clamped / rect.width) * 100;
2
+ const clampedX = Math.max(0, Math.min(x, rect.width));
3
+ const percent = (clampedX / rect.width) * 100;
4
+ return percent;
4
5
  };
5
6
  export const percentToValue = (percent, nileSlider) => {
6
- return Math.floor((percent / 100) * nileSlider.maxValue);
7
+ const value = nileSlider.minValue + (percent / 100) * (nileSlider.maxValue - nileSlider.minValue);
8
+ if (nileSlider.maxValue - nileSlider.minValue < 1) {
9
+ return parseFloat(value.toFixed(2));
10
+ }
11
+ else {
12
+ return Math.floor(value);
13
+ }
7
14
  };
8
15
  export const valueToPercent = (value, nileSlider) => {
9
- return (value / nileSlider.maxValue) * 100;
16
+ return ((value - nileSlider.minValue) / (nileSlider.maxValue - nileSlider.minValue)) * 100;
10
17
  };
11
18
  export const handleSingleSlider = (e, rect, nileSlider) => {
12
19
  const x = e.clientX - rect.left;
@@ -20,28 +27,32 @@ export const handleRangeOne = (e, rect, nileSlider) => {
20
27
  const x = e.clientX - rect.left;
21
28
  const percent = getClampedPercent(rect, x);
22
29
  nileSlider.rangeOneValue = percentToValue(percent, nileSlider);
30
+ nileSlider.rangeOneValue = Math.min(nileSlider.rangeOneValue, nileSlider.rangeTwoValue);
23
31
  nileSlider.emit("nile-button-first-change" /* NileSliderEvents.NILE_BUTTON_FIRST_CHANGE */, {
24
32
  value: nileSlider.rangeOneValue,
25
33
  });
26
- if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue)
34
+ if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {
27
35
  nileSlider.buttonOne.style.left = `${percent}%`;
36
+ }
28
37
  };
29
38
  export const handleRangeTwo = (e, rect, nileSlider) => {
30
39
  const x = e.clientX - rect.left;
31
40
  const percent = getClampedPercent(rect, x);
32
41
  nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);
42
+ nileSlider.rangeTwoValue = Math.max(nileSlider.rangeTwoValue, nileSlider.rangeOneValue);
33
43
  nileSlider.emit("nile-button-last-change" /* NileSliderEvents.NILE_BUTTON_LAST_CHANGE */, {
34
44
  value: nileSlider.rangeTwoValue,
35
45
  });
36
- if (nileSlider.rangeTwoValue >= nileSlider.rangeOneValue)
46
+ if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {
37
47
  nileSlider.buttonTwo.style.left = `${percent}%`;
48
+ }
38
49
  };
39
50
  export const getHtmlElements = (nileSlider) => {
40
51
  nileSlider.range = nileSlider.renderRoot.querySelector('.range');
41
52
  nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button');
42
53
  nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two');
43
54
  nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed');
44
- nileSlider.range.addEventListener('click', nileSlider.onMouseClick);
55
+ nileSlider.range.addEventListener('mousedown', nileSlider.onMouseDown);
45
56
  nileSlider.buttonOne?.addEventListener('mousedown', () => {
46
57
  nileSlider.activeThumb = 'one';
47
58
  addMoveListeners(nileSlider);
@@ -52,21 +63,23 @@ export const getHtmlElements = (nileSlider) => {
52
63
  });
53
64
  };
54
65
  export const addMoveListeners = (nileSlider) => {
55
- nileSlider.range.addEventListener('mousemove', nileSlider.onMouseMove);
56
- nileSlider.range.addEventListener('mouseup', nileSlider.onMouseUp);
66
+ window.addEventListener('mousemove', nileSlider.onMouseMove);
67
+ window.addEventListener('mouseup', nileSlider.onMouseUp);
57
68
  };
58
69
  export const removeMoveListeners = (nileSlider) => {
59
- nileSlider.range.removeEventListener('mousemove', nileSlider.onMouseMove);
60
- nileSlider.range.removeEventListener('mouseup', nileSlider.onMouseUp);
70
+ window.removeEventListener('mousemove', nileSlider.onMouseMove);
71
+ window.removeEventListener('mouseup', nileSlider.onMouseUp);
61
72
  };
62
73
  export const handleTwoThumbClick = (value, nileSlider) => {
63
74
  const distToOne = Math.abs(value - nileSlider.rangeOneValue);
64
75
  const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);
65
76
  if (distToOne <= distToTwo) {
66
- nileSlider.rangeOneValue = Math.floor(nileSlider.checkValueValidity(value, nileSlider.minValue, nileSlider.maxValue));
77
+ const clamped = Math.min(value, nileSlider.rangeTwoValue);
78
+ nileSlider.rangeOneValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);
67
79
  }
68
80
  else {
69
- nileSlider.rangeTwoValue = Math.floor(nileSlider.checkValueValidity(value, nileSlider.minValue, nileSlider.maxValue));
81
+ const clamped = Math.max(value, nileSlider.rangeOneValue);
82
+ nileSlider.rangeTwoValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);
70
83
  }
71
84
  const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);
72
85
  const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-slider.utils.js","sourceRoot":"","sources":["../../../../src/nile-slider/utils/nile-slider.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import NileSlider from '../nile-slider';\nimport { NileSliderEvents } from '../types/nile-slider.enums';\n\nexport const getClampedPercent = (rect: DOMRect, x: number): number => {\n const clamped = Math.max(0, Math.min(x, rect.width));\n return (clamped / rect.width) * 100;\n};\n\nexport const percentToValue = (percent: number, nileSlider: NileSlider): number => {\n return Math.floor((percent / 100) * nileSlider.maxValue);\n};\n\nexport const valueToPercent = (value: number, nileSlider: NileSlider): number => {\n return (value / nileSlider.maxValue) * 100;\n};\n\nexport const handleSingleSlider = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.value = percentToValue(percent, nileSlider);\n nileSlider.emit(NileSliderEvents.NILE_CHANGE, { value: nileSlider.value });\n nileSlider.buttonOne.style.left = `${percent}%`;\n nileSlider.completed.style.width = `${percent}%`;\n};\n\nexport const handleRangeOne = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeOneValue = percentToValue(percent, nileSlider);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) nileSlider.buttonOne.style.left = `${percent}%`;\n};\n\nexport const handleRangeTwo = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n if (nileSlider.rangeTwoValue >= nileSlider.rangeOneValue) nileSlider.buttonTwo.style.left = `${percent}%`;\n};\n\nexport const getHtmlElements = (nileSlider: NileSlider) => {\n nileSlider.range = nileSlider.renderRoot.querySelector('.range') as HTMLElement;\n nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button') as HTMLElement;\n nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two') as HTMLElement;\n nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed') as HTMLElement;\n\n nileSlider.range.addEventListener('click', nileSlider.onMouseClick);\n\n nileSlider.buttonOne?.addEventListener('mousedown', () => {\n nileSlider.activeThumb = 'one';\n addMoveListeners(nileSlider);\n });\n\n nileSlider.buttonTwo?.addEventListener('mousedown', () => {\n nileSlider.activeThumb = 'two';\n addMoveListeners(nileSlider);\n });\n};\n\nexport const addMoveListeners = (nileSlider: NileSlider): void => {\n nileSlider.range.addEventListener('mousemove', nileSlider.onMouseMove);\n nileSlider.range.addEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const removeMoveListeners = (nileSlider: NileSlider): void => {\n nileSlider.range.removeEventListener('mousemove', nileSlider.onMouseMove);\n nileSlider.range.removeEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const handleTwoThumbClick = (\n value: number,\n nileSlider: NileSlider\n): void => {\n const distToOne = Math.abs(value - nileSlider.rangeOneValue);\n const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);\n\n if (distToOne <= distToTwo) {\n nileSlider.rangeOneValue = Math.floor(nileSlider.checkValueValidity(value, nileSlider.minValue, nileSlider.maxValue));\n } else {\n nileSlider.rangeTwoValue = Math.floor(nileSlider.checkValueValidity(value, nileSlider.minValue, nileSlider.maxValue));\n }\n\n const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);\n const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);\n\n nileSlider.buttonOne.style.left = `${percentOne}%`;\n nileSlider.buttonTwo.style.left = `${percentTwo}%`;\n\n const left = Math.min(percentOne, percentTwo);\n const width = Math.abs(percentTwo - percentOne);\n\n nileSlider.completed.style.left = `${left}%`;\n nileSlider.completed.style.width = `${width}%`;\n\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n};\n"]}
1
+ {"version":3,"file":"nile-slider.utils.js","sourceRoot":"","sources":["../../../../src/nile-slider/utils/nile-slider.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import NileSlider from '../nile-slider';\nimport { NileSliderEvents } from '../types/nile-slider.enums';\n\nexport const getClampedPercent = (\n rect: DOMRect,\n x: number,\n): number => {\n const clampedX = Math.max(0, Math.min(x, rect.width)); \n const percent = (clampedX / rect.width) * 100;\n return percent;\n};\n\nexport const percentToValue = (percent: number, nileSlider: NileSlider): number => {\n const value = nileSlider.minValue + (percent / 100) * (nileSlider.maxValue - nileSlider.minValue);\n if(nileSlider.maxValue - nileSlider.minValue < 1) {\n return parseFloat(value.toFixed(2));\n } else {\n return Math.floor(value);\n }\n};\n\nexport const valueToPercent = (value: number, nileSlider: NileSlider): number => {\n return ((value - nileSlider.minValue) / (nileSlider.maxValue - nileSlider.minValue)) * 100;\n};\n\nexport const handleSingleSlider = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.value = percentToValue(percent, nileSlider);\n nileSlider.emit(NileSliderEvents.NILE_CHANGE, { value: nileSlider.value });\n nileSlider.buttonOne.style.left = `${percent}%`;\n nileSlider.completed.style.width = `${percent}%`;\n};\n\nexport const handleRangeOne = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeOneValue = percentToValue(percent, nileSlider);\n nileSlider.rangeOneValue = Math.min(nileSlider.rangeOneValue, nileSlider.rangeTwoValue);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {\n nileSlider.buttonOne.style.left = `${percent}%`;\n }\n};\n\nexport const handleRangeTwo = (\n e: MouseEvent,\n rect: DOMRect,\n nileSlider: NileSlider\n): void => {\n const x = e.clientX - rect.left;\n const percent = getClampedPercent(rect, x);\n nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);\n nileSlider.rangeTwoValue = Math.max(nileSlider.rangeTwoValue, nileSlider.rangeOneValue);\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n\n if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {\n nileSlider.buttonTwo.style.left = `${percent}%`;\n }\n};\n\nexport const getHtmlElements = (nileSlider: NileSlider) => {\n nileSlider.range = nileSlider.renderRoot.querySelector('.range') as HTMLElement;\n nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button') as HTMLElement;\n nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two') as HTMLElement;\n nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed') as HTMLElement;\n\n nileSlider.range.addEventListener('mousedown', nileSlider.onMouseDown);\n\n nileSlider.buttonOne?.addEventListener('mousedown', () => {\n nileSlider.activeThumb = 'one';\n addMoveListeners(nileSlider);\n });\n\n nileSlider.buttonTwo?.addEventListener('mousedown', () => {\n nileSlider.activeThumb = 'two';\n addMoveListeners(nileSlider);\n });\n};\n\nexport const addMoveListeners = (nileSlider: NileSlider): void => {\n window.addEventListener('mousemove', nileSlider.onMouseMove);\n window.addEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const removeMoveListeners = (nileSlider: NileSlider): void => {\n window.removeEventListener('mousemove', nileSlider.onMouseMove);\n window.removeEventListener('mouseup', nileSlider.onMouseUp);\n};\n\nexport const handleTwoThumbClick = (\n value: number,\n nileSlider: NileSlider\n): void => {\n const distToOne = Math.abs(value - nileSlider.rangeOneValue);\n const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);\n\n if (distToOne <= distToTwo) {\n const clamped = Math.min(value, nileSlider.rangeTwoValue);\n nileSlider.rangeOneValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);\n } else {\n const clamped = Math.max(value, nileSlider.rangeOneValue);\n nileSlider.rangeTwoValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);\n } \n\n const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);\n const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);\n\n nileSlider.buttonOne.style.left = `${percentOne}%`;\n nileSlider.buttonTwo.style.left = `${percentTwo}%`;\n\n const left = Math.min(percentOne, percentTwo);\n const width = Math.abs(percentTwo - percentOne);\n\n nileSlider.completed.style.left = `${left}%`;\n nileSlider.completed.style.width = `${width}%`;\n\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {\n value: nileSlider.rangeOneValue,\n });\n nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {\n value: nileSlider.rangeTwoValue,\n });\n};\n"]}