Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

forms-pickers.js 8.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. /**
  2. * Form Picker
  3. */
  4. 'use strict';
  5. (function () {
  6. // Flat Picker
  7. // --------------------------------------------------------------------
  8. const flatpickrDate = document.querySelector('#flatpickr-date'),
  9. flatpickrTime = document.querySelector('#flatpickr-time'),
  10. flatpickrDateTime = document.querySelector('#flatpickr-datetime'),
  11. flatpickrMulti = document.querySelector('#flatpickr-multi'),
  12. flatpickrRange = document.querySelector('#flatpickr-range'),
  13. flatpickrInline = document.querySelector('#flatpickr-inline'),
  14. flatpickrFriendly = document.querySelector('#flatpickr-human-friendly'),
  15. flatpickrDisabledRange = document.querySelector('#flatpickr-disabled-range');
  16. // Date
  17. if (flatpickrDate) {
  18. flatpickrDate.flatpickr({
  19. monthSelectorType: 'static',
  20. static: true
  21. });
  22. }
  23. // Time
  24. if (flatpickrTime) {
  25. flatpickrTime.flatpickr({
  26. enableTime: true,
  27. noCalendar: true,
  28. static: true
  29. });
  30. }
  31. // Datetime
  32. if (flatpickrDateTime) {
  33. flatpickrDateTime.flatpickr({
  34. enableTime: true,
  35. dateFormat: 'Y-m-d H:i',
  36. static: true
  37. });
  38. }
  39. // Multi Date Select
  40. if (flatpickrMulti) {
  41. flatpickrMulti.flatpickr({
  42. weekNumbers: true,
  43. enableTime: true,
  44. mode: 'multiple',
  45. minDate: 'today',
  46. static: true
  47. });
  48. }
  49. // Range
  50. if (typeof flatpickrRange != undefined) {
  51. flatpickrRange.flatpickr({
  52. mode: 'range',
  53. static: true
  54. });
  55. }
  56. // Inline
  57. if (flatpickrInline) {
  58. flatpickrInline.flatpickr({
  59. inline: true,
  60. allowInput: false,
  61. monthSelectorType: 'static'
  62. });
  63. }
  64. // Human Friendly
  65. if (flatpickrFriendly) {
  66. flatpickrFriendly.flatpickr({
  67. altInput: true,
  68. altFormat: 'F j, Y',
  69. dateFormat: 'Y-m-d',
  70. static: true
  71. });
  72. }
  73. // Disabled Date Range
  74. if (flatpickrDisabledRange) {
  75. const fromDate = new Date(Date.now() - 3600 * 1000 * 48);
  76. const toDate = new Date(Date.now() + 3600 * 1000 * 48);
  77. flatpickrDisabledRange.flatpickr({
  78. dateFormat: 'Y-m-d',
  79. disable: [
  80. {
  81. from: fromDate.toISOString().split('T')[0],
  82. to: toDate.toISOString().split('T')[0]
  83. }
  84. ],
  85. static: true
  86. });
  87. }
  88. })();
  89. // * Pickers with jQuery dependency (jquery)
  90. $(function () {
  91. // Bootstrap Daterange Picker
  92. // --------------------------------------------------------------------
  93. var bsRangePickerBasic = $('#bs-rangepicker-basic'),
  94. bsRangePickerSingle = $('#bs-rangepicker-single'),
  95. bsRangePickerTime = $('#bs-rangepicker-time'),
  96. bsRangePickerRange = $('#bs-rangepicker-range'),
  97. bsRangePickerWeekNum = $('#bs-rangepicker-week-num'),
  98. bsRangePickerDropdown = $('#bs-rangepicker-dropdown');
  99. // Basic
  100. if (bsRangePickerBasic.length) {
  101. bsRangePickerBasic.daterangepicker({
  102. opens: isRtl ? 'left' : 'right'
  103. });
  104. }
  105. // Single
  106. if (bsRangePickerSingle.length) {
  107. bsRangePickerSingle.daterangepicker({
  108. singleDatePicker: true,
  109. opens: isRtl ? 'left' : 'right'
  110. });
  111. }
  112. // Time & Date
  113. if (bsRangePickerTime.length) {
  114. bsRangePickerTime.daterangepicker({
  115. timePicker: true,
  116. timePickerIncrement: 30,
  117. locale: {
  118. format: 'MM/DD/YYYY h:mm A'
  119. },
  120. opens: isRtl ? 'left' : 'right'
  121. });
  122. }
  123. if (bsRangePickerRange.length) {
  124. bsRangePickerRange.daterangepicker({
  125. ranges: {
  126. Today: [moment(), moment()],
  127. Yesterday: [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
  128. 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
  129. 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
  130. 'This Month': [moment().startOf('month'), moment().endOf('month')],
  131. 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
  132. },
  133. opens: isRtl ? 'left' : 'right'
  134. });
  135. }
  136. // Week Numbers
  137. if (bsRangePickerWeekNum.length) {
  138. bsRangePickerWeekNum.daterangepicker({
  139. showWeekNumbers: true,
  140. opens: isRtl ? 'left' : 'right'
  141. });
  142. }
  143. // Dropdown
  144. if (bsRangePickerDropdown.length) {
  145. bsRangePickerDropdown.daterangepicker({
  146. showDropdowns: true,
  147. opens: isRtl ? 'left' : 'right'
  148. });
  149. }
  150. const bsRangePickerCancelBtn = document.getElementsByClassName('cancelBtn');
  151. // Adding btn-label-primary class and removing btn-default in cancel buttons
  152. Array.from(bsRangePickerCancelBtn).forEach(btn => {
  153. btn.classList.remove('btn-default');
  154. btn.classList.add('btn-label-primary');
  155. });
  156. // jQuery Timepicker
  157. // --------------------------------------------------------------------
  158. var basicTimepicker = $('#timepicker-basic'),
  159. minMaxTimepicker = $('#timepicker-min-max'),
  160. disabledTimepicker = $('#timepicker-disabled-times'),
  161. formatTimepicker = $('#timepicker-format'),
  162. stepTimepicker = $('#timepicker-step'),
  163. altHourTimepicker = $('#timepicker-24hours');
  164. // Basic
  165. if (basicTimepicker.length) {
  166. basicTimepicker.timepicker({
  167. orientation: isRtl ? 'r' : 'l'
  168. });
  169. }
  170. // Min & Max
  171. if (minMaxTimepicker.length) {
  172. minMaxTimepicker.timepicker({
  173. minTime: '2:00pm',
  174. maxTime: '7:00pm',
  175. showDuration: true,
  176. orientation: isRtl ? 'r' : 'l'
  177. });
  178. }
  179. // Disabled Picker
  180. if (disabledTimepicker.length) {
  181. disabledTimepicker.timepicker({
  182. disableTimeRanges: [
  183. ['12am', '3am'],
  184. ['4am', '4:30am']
  185. ],
  186. orientation: isRtl ? 'r' : 'l'
  187. });
  188. }
  189. // Format Picker
  190. if (formatTimepicker.length) {
  191. formatTimepicker.timepicker({
  192. timeFormat: 'H:i:s',
  193. orientation: isRtl ? 'r' : 'l'
  194. });
  195. }
  196. // Steps Picker
  197. if (stepTimepicker.length) {
  198. stepTimepicker.timepicker({
  199. step: 15,
  200. orientation: isRtl ? 'r' : 'l'
  201. });
  202. }
  203. // 24 Hours Format
  204. if (altHourTimepicker.length) {
  205. altHourTimepicker.timepicker({
  206. show: '24:00',
  207. timeFormat: 'H:i:s',
  208. orientation: isRtl ? 'r' : 'l'
  209. });
  210. }
  211. });
  212. // color picker (pickr)
  213. // --------------------------------------------------------------------
  214. (function () {
  215. const classicPicker = document.querySelector('#color-picker-classic'),
  216. monolithPicker = document.querySelector('#color-picker-monolith'),
  217. nanoPicker = document.querySelector('#color-picker-nano');
  218. // classic
  219. if (classicPicker) {
  220. const classicPickr = new Pickr({
  221. el: classicPicker,
  222. theme: 'classic',
  223. default: 'rgba(102, 108, 232, 1)',
  224. swatches: [
  225. 'rgba(102, 108, 232, 1)',
  226. 'rgba(40, 208, 148, 1)',
  227. 'rgba(255, 73, 97, 1)',
  228. 'rgba(255, 145, 73, 1)',
  229. 'rgba(30, 159, 242, 1)'
  230. ],
  231. components: {
  232. // Main components
  233. preview: true,
  234. opacity: true,
  235. hue: true,
  236. // Input / output Options
  237. interaction: {
  238. hex: true,
  239. rgba: true,
  240. hsla: true,
  241. hsva: true,
  242. cmyk: true,
  243. input: true,
  244. clear: true,
  245. save: true
  246. }
  247. }
  248. });
  249. }
  250. // monolith
  251. if (monolithPicker) {
  252. const monoPickr = new Pickr({
  253. el: monolithPicker,
  254. theme: 'monolith',
  255. default: 'rgba(40, 208, 148, 1)',
  256. swatches: [
  257. 'rgba(102, 108, 232, 1)',
  258. 'rgba(40, 208, 148, 1)',
  259. 'rgba(255, 73, 97, 1)',
  260. 'rgba(255, 145, 73, 1)',
  261. 'rgba(30, 159, 242, 1)'
  262. ],
  263. components: {
  264. // Main components
  265. preview: true,
  266. opacity: true,
  267. hue: true,
  268. // Input / output Options
  269. interaction: {
  270. hex: true,
  271. rgba: true,
  272. hsla: true,
  273. hsva: true,
  274. cmyk: true,
  275. input: true,
  276. clear: true,
  277. save: true
  278. }
  279. }
  280. });
  281. }
  282. // nano
  283. if (nanoPicker) {
  284. const nanoPickr = new Pickr({
  285. el: nanoPicker,
  286. theme: 'nano',
  287. default: 'rgba(255, 73, 97, 1)',
  288. swatches: [
  289. 'rgba(102, 108, 232, 1)',
  290. 'rgba(40, 208, 148, 1)',
  291. 'rgba(255, 73, 97, 1)',
  292. 'rgba(255, 145, 73, 1)',
  293. 'rgba(30, 159, 242, 1)'
  294. ],
  295. components: {
  296. // Main components
  297. preview: true,
  298. opacity: true,
  299. hue: true,
  300. // Input / output Options
  301. interaction: {
  302. hex: true,
  303. rgba: true,
  304. hsla: true,
  305. hsva: true,
  306. cmyk: true,
  307. input: true,
  308. clear: true,
  309. save: true
  310. }
  311. }
  312. });
  313. }
  314. })();