@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
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.57-beta-1.9",
6
+ "version": "0.1.57",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -86,7 +86,8 @@
86
86
  "./nile-inline-edit": "./dist/src/nile-inline-edit/index.js",
87
87
  "./nile-tour": "./dist/src/nile-tour/index.js",
88
88
  "./nile-table": "./dist/src/nile-table/index.js",
89
- "./nile-pagination": "./dist/src/nile-pagination/index.js"
89
+ "./nile-pagination": "./dist/src/nile-pagination/index.js",
90
+ "./nile-slider": "./dist/src/nile-slider/index.js"
90
91
  },
91
92
  "scripts": {
92
93
  "analyze": "cem analyze --litelement",
@@ -190,5 +191,4 @@
190
191
  "prettier --write"
191
192
  ]
192
193
  }
193
- }
194
-
194
+ }
package/src/index.ts CHANGED
@@ -77,4 +77,5 @@ export { NileToolbar } from './nile-toolbar';
77
77
  export { NileInlineEdit } from './nile-inline-edit';
78
78
  export { NileTable } from './nile-table';
79
79
  export { NileFilterChip } from './nile-filter-chip';
80
- export {NilePagination } from './nile-pagination';
80
+ export {NilePagination } from './nile-pagination';
81
+ export { NileSlider } from './nile-slider';
@@ -258,46 +258,10 @@ export class NileSelect extends NileElement implements NileFormControl {
258
258
  this.emit('nile-destroy');
259
259
  }
260
260
 
261
- private observer: MutationObserver | null = null;
262
-
263
261
  protected updated(_changedProperties: PropertyValues): void {
264
262
  if(_changedProperties.has('multiple')) {
265
- this.waitForChildrenRender().then(() => {
266
- this.setCheckBoxInOption(this.multiple);
267
- });
268
- }
269
- }
270
-
271
- protected firstUpdated(_changedProperties: PropertyValues): void {
272
- this.waitForChildrenRender().then(() => {
273
263
  this.setCheckBoxInOption(this.multiple);
274
- });
275
- }
276
-
277
- private waitForChildrenRender(): Promise<void> {
278
- return new Promise((resolve) => {
279
- if (this.areChildrenReady()) {
280
- resolve();
281
- return;
282
- }
283
-
284
- this.observer?.disconnect();
285
- this.observer = new MutationObserver(() => {
286
- if (this.areChildrenReady()) {
287
- this.observer?.disconnect();
288
- resolve();
289
- }
290
- });
291
-
292
- this.observer.observe(this.renderRoot as HTMLElement, {
293
- childList: true
294
- });
295
- });
296
- }
297
-
298
- private areChildrenReady(): boolean {
299
- const options = this.getAllOptions();
300
- return options.length > 0;
264
+ }
301
265
  }
302
266
 
303
267
  setCheckBoxInOption(checked: boolean): void {
@@ -0,0 +1 @@
1
+ export { NileSlider } from './nile-slider';
@@ -0,0 +1,119 @@
1
+ /**
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
+ import { css } from 'lit';
8
+
9
+ /**
10
+ * Slider CSS
11
+ */
12
+ export const styles = css`
13
+ :host {
14
+ display: block;
15
+ }
16
+
17
+ .container {
18
+ display: flex;
19
+ justify-content: center;
20
+ align-items: center;
21
+ gap: 10px;
22
+ height: 100px;
23
+ }
24
+
25
+ .align-item-center {
26
+ align-items: center;
27
+ }
28
+
29
+ slot.span {
30
+ font-size: var(--nile-font-size-micro);
31
+ margin-top: 14px;
32
+ }
33
+
34
+ .range-container {
35
+ display: flex;
36
+ flex-direction: column;
37
+ gap: var(--nile-spacing-sm);
38
+ }
39
+
40
+ .column-reverse {
41
+ flex-direction: column-reverse;
42
+ }
43
+
44
+ .label-container {
45
+ display: flex;
46
+ justify-content: space-between;
47
+ }
48
+
49
+ .label-container span {
50
+ margin: var(--nile-spacing-none);
51
+ padding: var(--nile-spacing-none);
52
+ font-size: var(--nile-font-size-micro);
53
+ }
54
+
55
+ .range {
56
+ position: relative;
57
+ width: 228px;
58
+ height: 4px;
59
+ background-color: var(--nile-colors-neutral-400);
60
+ user-select: none;
61
+ border-radius: var(--nile-radius-radius-3xl);
62
+ }
63
+
64
+ .range:hover {
65
+ cursor: pointer;
66
+ }
67
+
68
+ .range-completed {
69
+ position: absolute;
70
+ height: 100%;
71
+ width: 0%;
72
+ background-color: var(--nile-colors-primary-600);
73
+ top: 0px;
74
+ left: 0px;
75
+ z-index: 98;
76
+ border-radius: var(--nile-radius-radius-3xl);
77
+ }
78
+
79
+ .range-button {
80
+ height: 12px;
81
+ width: 12px;
82
+ background-color: var(--nile-colors-primary-600);
83
+ position: absolute;
84
+ top: 50%;
85
+ transform: translate(-50%, -50%);
86
+ border-radius: var(--nile-radius-radius-3xl);
87
+ left: 0;
88
+ z-index: 100;
89
+ box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
90
+ transition: box-shadow var(--nile-transition-duration-default) ease;
91
+ }
92
+
93
+ .range-button:hover, .range-button-two:hover {
94
+ cursor: pointer;
95
+ background-color: var(--nile-colors-primary-700);
96
+ }
97
+
98
+ .range-button:active, .range-button-two:active {
99
+ transition: box-shadow var(--nile-transition-duration-default) ease;
100
+ background-color: var(--nile-colors-primary-700);
101
+ box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 4px;
102
+ }
103
+
104
+ .range-button-two {
105
+ height: 12px;
106
+ width: 12px;
107
+ background-color: var(--nile-colors-primary-600);
108
+ position: absolute;
109
+ top: 50%;
110
+ transform: translate(-50%, -50%);
111
+ border-radius: var(--nile-radius-radius-3xl);
112
+ left: 100%;
113
+ z-index: 100;
114
+ box-shadow: rgba(0, 82, 145, 0.1) 0px 1px 2px 0px, rgba(0, 94, 166, 0.15) 0px 0px 0px 2px;
115
+ transition: box-shadow var(--nile-transition-duration-default) ease;
116
+ }
117
+ `;
118
+
119
+ export default [styles];
@@ -0,0 +1,77 @@
1
+ import { TemplateResult, html } from 'lit';
2
+ import NileSlider from './nile-slider';
3
+ import { classMap } from 'lit/directives/class-map.js';
4
+
5
+ export const rangeSlider = (nileSlider: NileSlider): TemplateResult => {
6
+ return html`
7
+ <div>
8
+ <nile-tooltip
9
+ content=${nileSlider.rangeOneValue}
10
+ placement=${nileSlider.tooltipPosition}
11
+ >
12
+ <div
13
+ id="range-one"
14
+ class="range-button"
15
+ part="range-button"
16
+ role="slider"
17
+ tabindex="0"
18
+ aria-valuemin=${nileSlider.minValue}
19
+ aria-valuemax=${nileSlider.maxValue}
20
+ aria-valuenow=${nileSlider.rangeOneValue}
21
+ aria-label="Minimum value"
22
+ ></div>
23
+ </nile-tooltip>
24
+ <nile-tooltip
25
+ content=${nileSlider.rangeTwoValue}
26
+ placement=${nileSlider.tooltipPosition}
27
+ >
28
+ <div
29
+ id="range-two"
30
+ class="range-button-two"
31
+ part="range-button-two"
32
+ role="slider"
33
+ tabindex="0"
34
+ aria-valuemin=${nileSlider.minValue}
35
+ aria-valuemax=${nileSlider.maxValue}
36
+ aria-valuenow=${nileSlider.rangeTwoValue}
37
+ aria-label="Maximum value"
38
+ ></div>
39
+ </nile-tooltip>
40
+ </div>
41
+ `;
42
+ };
43
+
44
+ export const singleSlider = (nileSlider: NileSlider): TemplateResult => {
45
+ return html`
46
+ <div>
47
+ <nile-tooltip
48
+ content=${nileSlider.value}
49
+ placement=${nileSlider.tooltipPosition}
50
+ >
51
+ <div
52
+ class=${classMap({
53
+ 'range-button': true,
54
+ 'range-button-active': nileSlider.activeThumb === 'one',
55
+ })}
56
+ part="range-button"
57
+ role="slider"
58
+ tabindex="0"
59
+ aria-valuemin=${nileSlider.minValue}
60
+ aria-valuemax=${nileSlider.maxValue}
61
+ aria-valuenow=${nileSlider.value}
62
+ aria-label=${nileSlider.ariaLabel || "Slider value"}
63
+ ></div>
64
+ </nile-tooltip>
65
+ </div>
66
+ `;
67
+ };
68
+
69
+
70
+ export const lableContaier = (nileSlider: NileSlider): TemplateResult => {
71
+ return html`
72
+ <div part="label-container" class="label-container">
73
+ <span id="label-start">${nileSlider.labelStart}</span>
74
+ <span id="label-end">${nileSlider.labelEnd}</span>
75
+ </div>
76
+ `;
77
+ };
@@ -0,0 +1,215 @@
1
+ /**
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
+
8
+ import { styles } from './nile-slider.css';
9
+ import NileElement from '../internal/nile-element';
10
+ import { classMap } from 'lit/directives/class-map.js';
11
+ import { html, CSSResultArray, TemplateResult } from 'lit';
12
+ import { customElement, property } from 'lit/decorators.js';
13
+ import { TooltipPosition } from './types/nile-slider.types';
14
+ import { NileSliderEvents } from './types/nile-slider.enums';
15
+ import { rangeSlider, singleSlider, lableContaier } from './nile-slider.template';
16
+ import {
17
+ handleSingleSlider,
18
+ handleRangeOne,
19
+ handleRangeTwo,
20
+ getHtmlElements,
21
+ removeMoveListeners,
22
+ valueToPercent,
23
+ handleTwoThumbClick,
24
+ addMoveListeners
25
+ } from './utils/nile-slider.utils'
26
+
27
+ /**
28
+ * Nile slider component.
29
+ *
30
+ * @tag nile-slider
31
+ */
32
+ @customElement('nile-slider')
33
+ export class NileSlider extends NileElement {
34
+ public static get styles(): CSSResultArray {
35
+ return [styles];
36
+ }
37
+
38
+ @property({ type: Number }) minValue: number = 0;
39
+ @property({ type: Number }) value: number = this.minValue;
40
+ @property({ type: Number }) maxValue: number = 100;
41
+ @property({ type: Number }) rangeOneValue: number = this.minValue;
42
+ @property({ type: Number }) rangeTwoValue: number = this.maxValue;
43
+ @property({ type: Boolean}) showLabel: boolean = false;
44
+ @property({ type: String }) labelStart: string = "";
45
+ @property({ type: String }) labelEnd: string = "";
46
+ @property({ type: Boolean}) rangeSlider: boolean = false;
47
+ @property({ type: String }) labelPosition: string = "top";
48
+ @property({ type: String }) tooltipPosition: TooltipPosition = "top";
49
+
50
+ public buttonOne!: HTMLElement;
51
+ public buttonTwo!: HTMLElement;
52
+ public range!: HTMLElement;
53
+ public completed!: HTMLElement;
54
+ public activeThumb: 'one' | 'two' | null = null;
55
+
56
+ connectedCallback(): void {
57
+ super.connectedCallback();
58
+ this.emit(NileSliderEvents.NILE_INIT);
59
+
60
+ if(this.rangeSlider) {
61
+ this.checkRangeValidity();
62
+ }
63
+ }
64
+
65
+ firstUpdated(changedProps: Map<string, any>): void {
66
+ getHtmlElements(this);
67
+
68
+ if (!this.rangeSlider && changedProps.has('value')) {
69
+ this.value = this.checkValueValidity(this.value, this.minValue, this.maxValue);
70
+ const percent = valueToPercent(this.value, this);
71
+
72
+ this.buttonOne.style.left = `${percent}%`;
73
+ this.completed.style.width = `${percent}%`;
74
+ } else if (this.rangeSlider) {
75
+
76
+ const percentOne = valueToPercent(this.rangeOneValue, this);
77
+ const percentTwo = valueToPercent(this.rangeTwoValue, this);
78
+
79
+ if (this.buttonOne) this.buttonOne.style.left = `${percentOne}%`;
80
+ if (this.buttonTwo) this.buttonTwo.style.left = `${percentTwo}%`;
81
+
82
+ const left = Math.min(percentOne, percentTwo);
83
+ const width = Math.abs(percentTwo - percentOne);
84
+
85
+ this.completed.style.left = `${left}%`;
86
+ this.completed.style.width = `${width}%`;
87
+ }
88
+ }
89
+
90
+ checkValueValidity(value: number, min: number, max: number): number {
91
+ if(max - min <= 1) {
92
+ return Math.max(min, Math.min(value, max));
93
+ }
94
+ return Math.floor(Math.max(min, Math.min(value, max)));
95
+ }
96
+
97
+ checkRangeValidity(): void {
98
+ if(this.rangeTwoValue > this.maxValue) {
99
+ this.rangeTwoValue = this.maxValue;
100
+ } else if(this.rangeTwoValue < this.rangeOneValue) {
101
+ this.rangeTwoValue = this.rangeOneValue;
102
+ }
103
+
104
+ if(this.rangeOneValue < this.minValue) {
105
+ this.rangeOneValue = this.minValue;
106
+ } else if(this.rangeOneValue > this.rangeTwoValue) {
107
+ this.rangeOneValue = this.rangeTwoValue;
108
+ }
109
+ }
110
+
111
+ public onMouseMove = (e: MouseEvent): void => {
112
+ const rect = this.range.getBoundingClientRect();
113
+
114
+ if (!this.rangeSlider) {
115
+ handleSingleSlider(e, rect, this);
116
+ } else {
117
+ if (this.activeThumb === 'one') {
118
+ handleRangeOne(e, rect, this);
119
+ } else if (this.activeThumb === 'two') {
120
+ handleRangeTwo(e, rect, this);
121
+ }
122
+
123
+ const start = valueToPercent(this.rangeOneValue, this);
124
+ const end = valueToPercent(this.rangeTwoValue, this);
125
+ const left = Math.min(start, end);
126
+ const width = Math.abs(end - start);
127
+
128
+ if(this.rangeTwoValue >= this.rangeOneValue) {
129
+ this.completed.style.left = `${left}%`;
130
+ this.completed.style.width = `${width}%`;
131
+ }
132
+ }
133
+ };
134
+
135
+ public onMouseUp = (): void => {
136
+ if(!this.rangeSlider) this.emit(NileSliderEvents.NILE_CHANGE_END, { value: this.value });
137
+ else {
138
+ this.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE_END, { value: this.rangeOneValue });
139
+ this.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE_END, { value: this.rangeTwoValue });
140
+ }
141
+ this.activeThumb = null;
142
+ removeMoveListeners(this);
143
+ };
144
+
145
+ public onMouseDown = (e: MouseEvent): void => {
146
+ const rect = this.range.getBoundingClientRect();
147
+ const clickX = e.clientX - rect.left;
148
+ const percent = (clickX / rect.width) * 100;
149
+ const value = this.minValue + (percent / 100) * (this.maxValue - this.minValue);
150
+
151
+ if (!this.rangeSlider) {
152
+ handleSingleSlider(e, rect, this);
153
+ this.activeThumb = 'one';
154
+ addMoveListeners(this);
155
+ } else {
156
+ handleTwoThumbClick(value, this);
157
+ const distToOne = Math.abs(value - this.rangeOneValue);
158
+ const distToTwo = Math.abs(value - this.rangeTwoValue);
159
+ this.activeThumb = distToOne <= distToTwo ? 'one' : 'two';
160
+ addMoveListeners(this);
161
+ }
162
+ };
163
+
164
+ public render(): TemplateResult {
165
+ const hasLabels = this.showLabel;
166
+ const ariaLabelledby = hasLabels ? 'label-start label-end' : undefined;
167
+
168
+ return html`
169
+ <div
170
+ part="base"
171
+ class=${classMap({
172
+ 'container': true,
173
+ 'align-item-center': !hasLabels
174
+ })}
175
+ >
176
+ <slot class="span" name="prefix"></slot>
177
+
178
+ <div
179
+ part="range-container"
180
+ class=${classMap({
181
+ 'range-container': true,
182
+ 'column-reverse': this.labelPosition === 'bottom'
183
+ })}
184
+ >
185
+ ${hasLabels ? lableContaier(this) : html``}
186
+
187
+ <div
188
+ class="range"
189
+ part="range"
190
+ role="group"
191
+ aria-labelledby=${ariaLabelledby}
192
+ >
193
+ <span class="range-completed" part="range-completed"></span>
194
+ ${this.rangeSlider ? rangeSlider(this) : singleSlider(this)}
195
+ </div>
196
+ </div>
197
+
198
+ <slot class="span" name="suffix"></slot>
199
+ </div>
200
+ `;
201
+ }
202
+
203
+ disconnectedCallback(): void {
204
+ super.disconnectedCallback();
205
+ this.emit(NileSliderEvents.NILE_DESTROY);
206
+ }
207
+ }
208
+
209
+ export default NileSlider;
210
+
211
+ declare global {
212
+ interface HTMLElementTagNameMap {
213
+ 'nile-slider': NileSlider;
214
+ }
215
+ }
@@ -0,0 +1,10 @@
1
+ export const enum NileSliderEvents {
2
+ NILE_INIT = "nile-init",
3
+ NILE_CHANGE = "nile-change",
4
+ NILE_CHANGE_END = "nile-change-end",
5
+ NILE_BUTTON_FIRST_CHANGE = "nile-button-first-change",
6
+ NILE_BUTTON_LAST_CHANGE = "nile-button-last-change",
7
+ NILE_BUTTON_FIRST_CHANGE_END = "nile-button-first-change-end",
8
+ NILE_BUTTON_LAST_CHANGE_END = "nile-button-last-change-end",
9
+ NILE_DESTROY = "nile-destroy",
10
+ }
@@ -0,0 +1,13 @@
1
+ export type TooltipPosition =
2
+ | 'top'
3
+ | 'top-start'
4
+ | 'top-end'
5
+ | 'right'
6
+ | 'right-start'
7
+ | 'right-end'
8
+ | 'bottom'
9
+ | 'bottom-start'
10
+ | 'bottom-end'
11
+ | 'left'
12
+ | 'left-start'
13
+ | 'left-end';
@@ -0,0 +1,136 @@
1
+ import NileSlider from '../nile-slider';
2
+ import { NileSliderEvents } from '../types/nile-slider.enums';
3
+
4
+ export const getClampedPercent = (
5
+ rect: DOMRect,
6
+ x: number,
7
+ ): number => {
8
+ const clampedX = Math.max(0, Math.min(x, rect.width));
9
+ const percent = (clampedX / rect.width) * 100;
10
+ return percent;
11
+ };
12
+
13
+ export const percentToValue = (percent: number, nileSlider: NileSlider): number => {
14
+ const value = nileSlider.minValue + (percent / 100) * (nileSlider.maxValue - nileSlider.minValue);
15
+ if(nileSlider.maxValue - nileSlider.minValue < 1) {
16
+ return parseFloat(value.toFixed(2));
17
+ } else {
18
+ return Math.floor(value);
19
+ }
20
+ };
21
+
22
+ export const valueToPercent = (value: number, nileSlider: NileSlider): number => {
23
+ return ((value - nileSlider.minValue) / (nileSlider.maxValue - nileSlider.minValue)) * 100;
24
+ };
25
+
26
+ export const handleSingleSlider = (
27
+ e: MouseEvent,
28
+ rect: DOMRect,
29
+ nileSlider: NileSlider
30
+ ): void => {
31
+ const x = e.clientX - rect.left;
32
+ const percent = getClampedPercent(rect, x);
33
+ nileSlider.value = percentToValue(percent, nileSlider);
34
+ nileSlider.emit(NileSliderEvents.NILE_CHANGE, { value: nileSlider.value });
35
+ nileSlider.buttonOne.style.left = `${percent}%`;
36
+ nileSlider.completed.style.width = `${percent}%`;
37
+ };
38
+
39
+ export const handleRangeOne = (
40
+ e: MouseEvent,
41
+ rect: DOMRect,
42
+ nileSlider: NileSlider
43
+ ): void => {
44
+ const x = e.clientX - rect.left;
45
+ const percent = getClampedPercent(rect, x);
46
+ nileSlider.rangeOneValue = percentToValue(percent, nileSlider);
47
+ nileSlider.rangeOneValue = Math.min(nileSlider.rangeOneValue, nileSlider.rangeTwoValue);
48
+ nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {
49
+ value: nileSlider.rangeOneValue,
50
+ });
51
+ if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {
52
+ nileSlider.buttonOne.style.left = `${percent}%`;
53
+ }
54
+ };
55
+
56
+ export const handleRangeTwo = (
57
+ e: MouseEvent,
58
+ rect: DOMRect,
59
+ nileSlider: NileSlider
60
+ ): void => {
61
+ const x = e.clientX - rect.left;
62
+ const percent = getClampedPercent(rect, x);
63
+ nileSlider.rangeTwoValue = percentToValue(percent, nileSlider);
64
+ nileSlider.rangeTwoValue = Math.max(nileSlider.rangeTwoValue, nileSlider.rangeOneValue);
65
+ nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {
66
+ value: nileSlider.rangeTwoValue,
67
+ });
68
+
69
+ if (nileSlider.rangeTwoValue > nileSlider.rangeOneValue) {
70
+ nileSlider.buttonTwo.style.left = `${percent}%`;
71
+ }
72
+ };
73
+
74
+ export const getHtmlElements = (nileSlider: NileSlider) => {
75
+ nileSlider.range = nileSlider.renderRoot.querySelector('.range') as HTMLElement;
76
+ nileSlider.buttonOne = nileSlider.renderRoot.querySelector('.range-button') as HTMLElement;
77
+ nileSlider.buttonTwo = nileSlider.renderRoot.querySelector('.range-button-two') as HTMLElement;
78
+ nileSlider.completed = nileSlider.renderRoot.querySelector('.range-completed') as HTMLElement;
79
+
80
+ nileSlider.range.addEventListener('mousedown', nileSlider.onMouseDown);
81
+
82
+ nileSlider.buttonOne?.addEventListener('mousedown', () => {
83
+ nileSlider.activeThumb = 'one';
84
+ addMoveListeners(nileSlider);
85
+ });
86
+
87
+ nileSlider.buttonTwo?.addEventListener('mousedown', () => {
88
+ nileSlider.activeThumb = 'two';
89
+ addMoveListeners(nileSlider);
90
+ });
91
+ };
92
+
93
+ export const addMoveListeners = (nileSlider: NileSlider): void => {
94
+ window.addEventListener('mousemove', nileSlider.onMouseMove);
95
+ window.addEventListener('mouseup', nileSlider.onMouseUp);
96
+ };
97
+
98
+ export const removeMoveListeners = (nileSlider: NileSlider): void => {
99
+ window.removeEventListener('mousemove', nileSlider.onMouseMove);
100
+ window.removeEventListener('mouseup', nileSlider.onMouseUp);
101
+ };
102
+
103
+ export const handleTwoThumbClick = (
104
+ value: number,
105
+ nileSlider: NileSlider
106
+ ): void => {
107
+ const distToOne = Math.abs(value - nileSlider.rangeOneValue);
108
+ const distToTwo = Math.abs(value - nileSlider.rangeTwoValue);
109
+
110
+ if (distToOne <= distToTwo) {
111
+ const clamped = Math.min(value, nileSlider.rangeTwoValue);
112
+ nileSlider.rangeOneValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);
113
+ } else {
114
+ const clamped = Math.max(value, nileSlider.rangeOneValue);
115
+ nileSlider.rangeTwoValue = nileSlider.checkValueValidity(clamped, nileSlider.minValue, nileSlider.maxValue);
116
+ }
117
+
118
+ const percentOne = valueToPercent(nileSlider.rangeOneValue, nileSlider);
119
+ const percentTwo = valueToPercent(nileSlider.rangeTwoValue, nileSlider);
120
+
121
+ nileSlider.buttonOne.style.left = `${percentOne}%`;
122
+ nileSlider.buttonTwo.style.left = `${percentTwo}%`;
123
+
124
+ const left = Math.min(percentOne, percentTwo);
125
+ const width = Math.abs(percentTwo - percentOne);
126
+
127
+ nileSlider.completed.style.left = `${left}%`;
128
+ nileSlider.completed.style.width = `${width}%`;
129
+
130
+ nileSlider.emit(NileSliderEvents.NILE_BUTTON_FIRST_CHANGE, {
131
+ value: nileSlider.rangeOneValue,
132
+ });
133
+ nileSlider.emit(NileSliderEvents.NILE_BUTTON_LAST_CHANGE, {
134
+ value: nileSlider.rangeTwoValue,
135
+ });
136
+ };