extends ../../../layouts/LayoutComponent append variables prepend styles link(href=`${CWD}vendors/flatpickr/flatpickr.min.css`, rel='stylesheet') prepend scripts script(src=`${CWD}vendors/flatpickr/flatpickr.min.js`) script(src=`${CWD}vendors/flatpickr/bn.js`) append content +PageHeader({ title: 'Date Picker' }) p.mt-2 Lightweight, powerful javascript datetimepicker with no dependencies. a(href='https://flatpickr.js.org/' target='_blank').btn.btn-link.ps-0.btn-sm Flatpickr documentation span.fas.fa-chevron-right.ms-1.fs-11 .card.mb-3 .card-header h5.mb-0 Stylesheet .card-body.bg-body-tertiary +ComponentCardLib link(href=`vendors/flatpickr/flatpickr.min.css`, rel='stylesheet') .card.mb-3 .card-header h5.mb-0 Javascript .card-body.bg-body-tertiary +ComponentCardLib script(src=`vendors/flatpickr/flatpickr.min.js`) .row.g-3 .col-lg-6 +ComponentCard({ title: 'Date Picker', anchor: true, }) = '\n' label.form-label(for="datepicker") Start Date = '\n' input.form-control.datetimepicker#datepicker(type="text" placeholder="dd/mm/yy" data-options!={disableMobile:true}) = '\n' .col-lg-6 +ComponentCard({ title: 'Time Picker', anchor: true, }) = '\n' label.form-label(for="timepicker1") Start Time = '\n' input.form-control.datetimepicker#timepicker1(type="text" placeholder="H:i" data-options!={enableTime:true, noCalendar: true, dateFormat:'H:i',disableMobile:true}) = '\n' .col-lg-6 +ComponentCard({ title: 'Date & Time Picker', anchor: true, }) = '\n' label.form-label(for="datetimepicker") Start Date = '\n' input.form-control.datetimepicker#datetimepicker(type="text" placeholder="dd/mm/yy HH:ii" data-options!={enableTime: true, dateFormat:'d/m/y H:i',disableMobile:true}) = '\n' .col-lg-6 +ComponentCard({ title: 'Range', anchor: true, }) = '\n' label.form-label(for="timepicker2") Select Date Range = '\n' input.form-control.datetimepicker#timepicker2(type="text" placeholder="dd/mm/yy to dd/mm/yy" data-options!={ mode:'range', dateFormat:'d/m/y', disableMobile:true, }) = '\n' .col-lg-12 +ComponentCard({ title: 'Predefined Ranges', anchor: true, }) = '\n' label.form-label(for="timepicker3") Select Date Range = '\n' input.form-control.mb-5.datetimepicker#timepicker3(type="text" placeholder="dd/mm/yy to dd/mm/yy" data-options!={ mode:'range', dateFormat:'d/m/y', disableMobile:true, position: 'below', predefinedRanges: [ 'today', {'last_7_days': 'Last week'}, 'last_month', { label: 'My Days', range: ["2023-10-10", new Date()] } ] }) = '\n' h5.mb-4 How it Works: h5.fs-9 Basic ul.mb-4 li p Pass code "predefinedRanges":true | through code data-options | attribute to apply the default preset ranges. +ComponentCardLib('js') | "predefinedRanges":true h5.fs-9.mb-2 Customize Default Ranges ul li.mb-3 p Provide the default ranges ID in the code predefinedRanges | as an array if you would want a specific set of default preset ranges. +ComponentCardLib('js') | "predefinedRanges":["today", "last_7_days"] span.fs-10.fst-italic.mb-3 Available default predefined IDs are code today, code last_month, code this_month, code last_7_days, code last_30_days li p Simply provide your own label as the value and the ID as the key of an object in the code predefinedRanges | array to alter the default preset ranges label text. +ComponentCardLib('js').mb-2 | "predefinedRanges":["today", {"last_7_days": "Last week"}] h5.fs-9.mb-2 Add Custom Ranges ul li.mb-3 p Provide the code label | and code range | as an object as an element of the code predefinedRanges | array if you would want your own custom preset ranges. +ComponentCardLib('js').mb-2 | "predefinedRanges": [ | "today", | {"last_7_days": "Last week"}, | {"label": "My Days", "range": ["2023-10-10", "2023-11-10"]} | ] .col-lg-12 +ComponentCard({ title: 'Validation', description: 'Pass "allowInput":true through data-options attribute to apply the form validation.', anchor: true, }) form.needs-validation(novalidate) .mb-3 label.form-label(for="datepickerVal") Date input.form-control.datetimepicker#datepickerVal(type="text" placeholder="dd/mm/yy" required data-options!={disableMobile:true, allowInput: true}) .invalid-feedback This field is required .mb-3 label.form-label(for="dateTimepickerVal") Date & Time input.form-control.datetimepicker#dateTimepickerVal(type="text" required placeholder="d/m/y H:i" data-options!={enableTime: true, dateFormat:'d/m/y H:i',disableMobile:true, allowInput: true}) .invalid-feedback This field is required button.btn.btn-primary(type="submit") Submit form .col-lg .card .card-header.mb-0.bg-body-tertiary h5(data-anchor) Localization p.mb-1 Flatpickr can be localized per-instance, or globally. To localize flatpickr import language script in code src/js/flatpickr.js. | For example, you can use Bangla language by importing the following script +ComponentCardLib('js').mb-2 | import "flatpickr/dist/l10n/bn.js" p.mb-0 For more details visit Flatpickr a(href='https://flatpickr.js.org/localization/' target="_blank") localization documentation | . .card-body.bg-body-tertiary.py-0 +ComponentCard({ title: 'Example' }).mx-nx1.shadow-none.rounded-top-0 .mb-3 = '\n' label.form-label(for="timepicker4") Select Time Range = '\n' input.form-control.datetimepicker#timepicker4(type="text" placeholder="d/m/y to d/m/y" data-options!={mode:'range', dateFormat:'d/m/y', disableMobile:true, locale: 'bn'})