Code Monkey home page Code Monkey logo

typepicker's Introduction

TypePicker

A date picker use in web and react-native

INSTALL

	npm install typepicker
	or
	yarn add typepicker

OPTIONS

OPTION REQUIRED TYPE DESC Default
size NO number Size of data created 1
selection NO number Size of data picked 1

API

	apply.select(date:Date)=>void

	apply.date(date:Date)=>void

	apply.dates(dates:Date[])=>void

	apply.update()=>void;

	apply.disableDate((date:Date)=>boolean)

	listen(({type,types,payload})=>void)

EXAMPLE

Full Example

	//if you are using typescript
	import TypePicker from "typepicker";

	const config = {
		size:1,
		selection:1
	}

	interface TypePickerDate {
	  date: Date;
	  invalid: boolean;
	  disabled: boolean;
	  status?: {
	    isActive?: boolean;
	    isStart?: boolean;
	    isEnd?: Boolean;
	    inRange?: Boolean;
	  };
	}


	const typepicker= new TypePicker(config);

	const onSelectDate =(date:Date[])=>{

		// to disaplay selected values
	}
	const onDataUpdate =(data:[])=>{

			const renderData =data.map(item=>{
						return  {
							year: <number>item.year
							month: <number> item.month,
							dates: <TypePickerDate>item.dates						}
			})
		//here goes how your datepicker ui render
		//example
		//document.getElementById('picker') .innerHTML=template(renderData)



	}

	//setup listeners of select date and data update;
	typepicker.listen(({type,payload})=>[
				if(type==='select'){onSelectDate(payload)}
				if(type==='update'){onDataUpdate(payload)}
	})


	// jump to some date
	// typically use in switching ui display

	typePicker.apply.date(new Date(2019,7,1))

	//set initial dates , its length should euqal to `config.selection`,
	//do not care about the order, we sort them inside picker
	typepicker.apply.dates([someDateObject1,...res])

	//set disabled date
	typepicker.apply.disableDate(date=>{
			return date.getDate() ===31 || date.getDay()===4 //...more conditions
	})

	//call TypePicker update method to trigger rerender
	typepicker.apply.update()

	//select some date from picker data
	//it will trigger `typepicker.listen`
	typepicker.apply.select(someDateObject)






typepicker's People

Contributors

fi2zz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.