Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

datetime-slot-picker

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

datetime-slot-picker

A webcomponent for date and time slot picker

  • 0.1.8
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.9K
increased by6.25%
Maintainers
1
Weekly downloads
 
Created
Source

Datetime Slot Picker

This is a Web Component for Date and Time Slot Picker. This project is a standalone Web Component built using StencilJS.

You have to pass in dates and time slots that you want to display.

When "timeSlots" is not passed, the component acts as a pure date picker.

This date and time slot picker is useful for below cases:

  • If you have a set of dates that alone should be available for user input
  • If you also want to display a custom time slot along with the date, eg: Sat, 28 Nov 2020, 10 AM - 11 AM.
  • Useful for appointment booking, choosing a delivery time, restaurant reservation, etc.
  • Supports multi language translations. You can pass your own translations and display text.
  • Supports displaying time slots in multiple formats: Eg: 4 PM, 4:00 PM, 16:00, 4 PM - 5 PM, 4:00 PM - 5:00 PM, 16:00 - 17:00.

Usage and Live Demo

View JS Bin

Using the component in HTML

The properties are optional, you can use them to pass custom text.

<datetime-slot-picker 
      placeholder="Pick a time slot" 
      time-slots-text="Time"
      no-slots-text="No slots are available"
      >
</datetime-slot-picker>

To display time slots in HH:mm format, pass the "am-pm-disabled" property. The "dates-hidden-when-times-shown" property can be used if you would like to make the popup more compact, when time slots are shown the date calendar will be hidden.

<datetime-slot-picker 
      placeholder="Pick a time slot" 
      time-slots-text="Time"
      no-slots-text="No slots are available" 
      am-pm-disabled
      dates-hidden-when-times-shown
      >
</datetime-slot-picker>

Initializing slots & listening to slot changes in Javascript

Add the below code inside in your HTML. Ensure the input date and time format is as stated below.

Supported input date format:

  • ddd, D MMM YYYY (Thu, 26 Nov 2020)

Supported input time formats: (Pick a format and all time slots should be the same format)

  • H A (10 AM)
  • H:mm A (10:00 AM)
  • H A - H A (10 AM - 11 AM)
  • H:mm A - H:mm A (10:00 AM - 11:00 AM)
    const datetimeSlotPicker = document.querySelector('datetime-slot-picker');
    datetimeSlotPicker.addEventListener('slotUpdate', function(event){ console.log('Updated Slot: ', event.detail) });
    datetimeSlotPicker.slots = [
        {
            date: 'Thu, 26 Nov 2020',
            timeSlots: [
            '10:00 AM',
            '11:00 AM',
            '4:00 PM',
            '5:00 PM'
            ]
        },
        {
            date: 'Fri, 27 Nov 2020',
            timeSlots: [
            '10:00 AM',
            '11:00 AM',
            '4:00 PM',
            '5:00 PM'
            ]
        }
    ];

If you are passing translations (using Javascript as shown below), you can set the language code

<datetime-slot-picker 
      placeholder="Pick a time slot" 
      time-slots-text="Time"
      no-slots-text="No slots are available" 
      language="en"
      >
</datetime-slot-picker>

To pass translations, also set the translations property as shown below. You can have multiple langage codes like "en".

    const datetimeSlotPicker = document.querySelector('datetime-slot-picker');
    datetimeSlotPicker.addEventListener('slotUpdate', function(event){ console.log('Updated Slot: ', event.detail) });
    datetimeSlotPicker.slots = [
        {
            date: 'Thu, 26 Nov 2020',
            timeSlots: [
            '10 AM - 11 AM',
            '11 AM - 12 PM',
            '4 PM - 5 PM',
            '5 PM - 6 PM'
            ]
        },
        {
            date: 'Fri, 27 Nov 2020',
            timeSlots: [
            '10 AM - 11 AM',
            '11 AM - 12 PM',
            '4 PM - 5 PM',
            '5 PM - 6 PM'
            ]
        }
    ];
    datetimeSlotPicker.translations = {
        en: {
            Mon: 'Mon',
            Tue: 'Tue',
            Wed: 'Wed',
            Thu: 'Thu',
            Fri: 'Fri',
            Sat: 'Sat',
            Sun: 'Sun',
            AM: 'AM',
            PM: 'PM',
            Jan: 'Jan',
            Feb: 'Feb',
            Mar: 'Mar',
            Apr: 'Apr',
            May: 'May',
            Jun: 'Jun',
            Jul: 'Jul',
            Aug: 'Aug',
            Sep: 'Sep',
            Oct: 'Oct',
            Nov: 'Nov',
            Dec: 'Dec'
        }
    };

Using this component

There are three strategies we recommend for using web components built with Stencil.

Script tag

  • Put a script tag similar to this <script src='https://unpkg.com/datetime-slot-picker/dist/datetime-slot-picker/datetime-slot-picker.js'></script> in the head of your index.html
  • Then you can use the element anywhere in your template, JSX, html etc

Node Modules

  • Run npm install datetime-slot-picker --save
  • Put a script tag similar to this <script src='node_modules/datetime-slot-picker/dist/datetime-slot-picker/datetime-slot-picker.js'></script> in the head of your index.html
  • Then you can use the element anywhere in your template, JSX, html etc

In a stencil-starter app

  • Run npm install datetime-slot-picker --save
  • Add an import to the npm packages import datetime-slot-picker;
  • Then you can use the element anywhere in your template, JSX, html etc

Customizing Appearance

You can customize the styling by using CSS. All HTML elemets have a class name (usually starting with "neo", Eg: "neo-input") that can be used.

Developers

To run the project locally, run:

gh repo clone cyberabis/datetime-slot-picker
cd datetime-slot-picker
npm install
npm start

To build the component for production, run:

npm run build

The scripts will be generated under dist/datetime-slot-picker. The whole folder needs to be served, datetime-slot-picker.js acts as the entry point that's included in HTML.

NPM Repository

https://www.npmjs.com/package/datetime-slot-picker

Raising issues / getting help?

Please use the GitHub issue tracker - https://github.com/cyberabis/datetime-slot-picker/issues.

Keywords

FAQs

Package last updated on 30 Nov 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc