blogo 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.markdown +97 -0
- data/Rakefile +24 -0
- data/app/assets/images/blogo/background.png +0 -0
- data/app/assets/images/blogo/github-icon-active.png +0 -0
- data/app/assets/images/blogo/github-icon.png +0 -0
- data/app/assets/images/blogo/rss-icon-active.png +0 -0
- data/app/assets/images/blogo/rss-icon.png +0 -0
- data/app/assets/images/blogo/twitter-icon-active.png +0 -0
- data/app/assets/images/blogo/twitter-icon.png +0 -0
- data/app/assets/javascripts/blogo/admin/application.js +13 -0
- data/app/assets/javascripts/blogo/admin/ckeditor.js +2 -0
- data/app/assets/javascripts/blogo/admin/helpers/post_preview.js.coffee +41 -0
- data/app/assets/javascripts/blogo/admin/helpers/title_to_url.js.coffee +19 -0
- data/app/assets/javascripts/blogo/ckeditor/ckeditor_basepath.js.erb +6 -0
- data/app/assets/javascripts/blogo/ckeditor/config.js.erb +41 -0
- data/app/assets/stylesheets/blogo/admin.sass +105 -0
- data/app/assets/stylesheets/blogo/blog.sass +198 -0
- data/app/controllers/blogo/admin/base_controller.rb +19 -0
- data/app/controllers/blogo/admin/comments_controller.rb +7 -0
- data/app/controllers/blogo/admin/images_controller.rb +44 -0
- data/app/controllers/blogo/admin/posts_controller.rb +64 -0
- data/app/controllers/blogo/admin/sessions_controller.rb +24 -0
- data/app/controllers/blogo/application_controller.rb +2 -0
- data/app/controllers/blogo/posts_controller.rb +82 -0
- data/app/form_builders/blogo/form_builder.rb +17 -0
- data/app/helpers/blogo/admin/base_helper.rb +10 -0
- data/app/helpers/blogo/application_helper.rb +40 -0
- data/app/models/blogo/post.rb +59 -0
- data/app/models/blogo/tag.rb +10 -0
- data/app/models/blogo/tagging.rb +4 -0
- data/app/models/blogo/user.rb +9 -0
- data/app/services/blogo/base_post_service.rb +51 -0
- data/app/services/blogo/create_post_service.rb +27 -0
- data/app/services/blogo/destroy_post_service.rb +13 -0
- data/app/services/blogo/preview_post_service.rb +20 -0
- data/app/services/blogo/update_post_service.rb +24 -0
- data/app/views/blogo/admin/comments/index.html.erb +5 -0
- data/app/views/blogo/admin/images/create.erb +6 -0
- data/app/views/blogo/admin/posts/_form.html.erb +57 -0
- data/app/views/blogo/admin/posts/_post_li.html.erb +14 -0
- data/app/views/blogo/admin/posts/edit.html.erb +5 -0
- data/app/views/blogo/admin/posts/index.html.erb +18 -0
- data/app/views/blogo/admin/posts/new.html.erb +5 -0
- data/app/views/blogo/admin/sessions/new.html.erb +14 -0
- data/app/views/blogo/admin/shared/_nav_bar.html.erb +10 -0
- data/app/views/blogo/posts/_icons.html.erb +11 -0
- data/app/views/blogo/posts/_meta.html.erb +33 -0
- data/app/views/blogo/posts/_paginator.html.erb +20 -0
- data/app/views/blogo/posts/_post_header.html.erb +20 -0
- data/app/views/blogo/posts/_post_overview.html.erb +9 -0
- data/app/views/blogo/posts/feed.atom.builder +18 -0
- data/app/views/blogo/posts/index.html.erb +6 -0
- data/app/views/blogo/posts/show.html.erb +4 -0
- data/app/views/blogo/shared/_aside.html.erb +24 -0
- data/app/views/blogo/shared/_disqus_comments.html.erb +20 -0
- data/app/views/blogo/shared/_google_analytics.html.erb +16 -0
- data/app/views/blogo/shared/_post.html.erb +7 -0
- data/app/views/layouts/blogo/admin.html.erb +29 -0
- data/app/views/layouts/blogo/blog.html.erb +41 -0
- data/config/routes.rb +27 -0
- data/db/migrate/20140218134508_create_blogo_users.rb +15 -0
- data/db/migrate/20140218134512_create_blogo_tags.rb +13 -0
- data/db/migrate/20140218134550_create_blogo_posts.rb +29 -0
- data/db/migrate/20140218134620_create_blogo_taggings.rb +12 -0
- data/lib/blogo.rb +25 -0
- data/lib/blogo/config.rb +46 -0
- data/lib/blogo/engine.rb +20 -0
- data/lib/blogo/errors.rb +5 -0
- data/lib/blogo/paginator.rb +111 -0
- data/lib/blogo/renderer.rb +29 -0
- data/lib/blogo/renderer/base.rb +48 -0
- data/lib/blogo/renderer/html.rb +10 -0
- data/lib/blogo/renderer/markdown.rb +14 -0
- data/lib/blogo/version.rb +3 -0
- data/lib/tasks/blogo_tasks.rake +25 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/icons.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/icons_hidpi.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/image/images/noimage.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/link/images/anchor.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/plugins/magicline/images/icon.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/icons.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/icons_hidpi.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/arrow.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/close.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/hidpi/close.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/lock-open.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/lock.png +0 -0
- data/vendor/assets/images/blogo/ckeditor/skins/moono/images/refresh.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/ckeditor.js +902 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/af.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ar.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/bg.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/bn.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/bs.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ca.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/cs.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/cy.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/da.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/de.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/el.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/en-au.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/en-ca.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/en-gb.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/en.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/eo.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/es.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/et.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/eu.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/fa.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/fi.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/fo.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/fr-ca.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/fr.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/gl.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/gu.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/he.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/hi.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/hr.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/hu.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/id.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/is.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/it.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ja.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ka.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/km.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ko.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ku.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/lt.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/lv.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/mk.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/mn.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ms.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/nb.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/nl.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/no.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/pl.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/pt-br.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/pt.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ro.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ru.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/si.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/sk.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/sl.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/sq.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/sr-latn.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/sr.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/sv.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/th.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/tr.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/ug.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/uk.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/vi.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/zh-cn.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/lang/zh.js +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +10 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +9 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js +10 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/about/dialogs/about.js +7 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/image/dialogs/image.js +43 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/link/dialogs/anchor.js +8 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/link/dialogs/link.js +37 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/link/images/anchor.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/pastefromword/filter/default.js +31 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/scayt/dialogs/options.js +20 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/ar.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/bg.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/ca.js +14 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/es.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/gl.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/he.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/hu.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/id.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/ja.js +9 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/km.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/pt.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/ru.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/si.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/sl.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/sq.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/uk.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/vi.js +14 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/lang/zh.js +12 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/table/dialogs/table.js +21 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wpmore/demo.html +67 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wpmore/images/more.gif +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wpmore/images/more_bug.gif +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wpmore/images/page.gif +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wpmore/plugin.js +179 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wsc/dialogs/tmp.html +118 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wsc/dialogs/wsc.js +67 -0
- data/vendor/assets/javascripts/blogo/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/dialog.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/dialog_ie.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/dialog_ie7.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/dialog_ie8.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/dialog_iequirks.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/dialog_opera.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/editor.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/editor_gecko.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/editor_ie.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/editor_ie7.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/editor_ie8.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/editor_iequirks.css +5 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/icons.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/icons_hidpi.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/arrow.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/close.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/hidpi/close.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/lock-open.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/lock.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/skins/moono/images/refresh.png +0 -0
- data/vendor/assets/javascripts/blogo/ckeditor/styles.js +111 -0
- data/vendor/assets/javascripts/blogo/modal.js +315 -0
- data/vendor/assets/javascripts/blogo/moment.js +6 -0
- data/vendor/assets/javascripts/blogo/pikaday.js +920 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/contents.css +123 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/dialog.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/dialog_ie.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/dialog_ie7.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/dialog_ie8.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/dialog_iequirks.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/dialog_opera.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/editor.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/editor_gecko.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/editor_ie.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/editor_ie7.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/editor_ie8.css +5 -0
- data/vendor/assets/stylesheets/blogo/ckeditor/skins/moono/editor_iequirks.css +5 -0
- data/vendor/assets/stylesheets/blogo/modal.scss +326 -0
- data/vendor/assets/stylesheets/blogo/pikaday.css +170 -0
- data/vendor/assets/stylesheets/blogo/pure-min.css +11 -0
- metadata +418 -0
@@ -0,0 +1,6 @@
|
|
1
|
+
//! moment.js
|
2
|
+
//! version : 2.5.1
|
3
|
+
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
|
4
|
+
//! license : MIT
|
5
|
+
//! momentjs.com
|
6
|
+
(function(a){function b(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function c(a,b){return function(c){return k(a.call(this,c),b)}}function d(a,b){return function(c){return this.lang().ordinal(a.call(this,c),b)}}function e(){}function f(a){w(a),h(this,a)}function g(a){var b=q(a),c=b.year||0,d=b.month||0,e=b.week||0,f=b.day||0,g=b.hour||0,h=b.minute||0,i=b.second||0,j=b.millisecond||0;this._milliseconds=+j+1e3*i+6e4*h+36e5*g,this._days=+f+7*e,this._months=+d+12*c,this._data={},this._bubble()}function h(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return b.hasOwnProperty("toString")&&(a.toString=b.toString),b.hasOwnProperty("valueOf")&&(a.valueOf=b.valueOf),a}function i(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&qb.hasOwnProperty(b)&&(c[b]=a[b]);return c}function j(a){return 0>a?Math.ceil(a):Math.floor(a)}function k(a,b,c){for(var d=""+Math.abs(a),e=a>=0;d.length<b;)d="0"+d;return(e?c?"+":"":"-")+d}function l(a,b,c,d){var e,f,g=b._milliseconds,h=b._days,i=b._months;g&&a._d.setTime(+a._d+g*c),(h||i)&&(e=a.minute(),f=a.hour()),h&&a.date(a.date()+h*c),i&&a.month(a.month()+i*c),g&&!d&&db.updateOffset(a),(h||i)&&(a.minute(e),a.hour(f))}function m(a){return"[object Array]"===Object.prototype.toString.call(a)}function n(a){return"[object Date]"===Object.prototype.toString.call(a)||a instanceof Date}function o(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&s(a[d])!==s(b[d]))&&g++;return g+f}function p(a){if(a){var b=a.toLowerCase().replace(/(.)s$/,"$1");a=Tb[a]||Ub[b]||b}return a}function q(a){var b,c,d={};for(c in a)a.hasOwnProperty(c)&&(b=p(c),b&&(d[b]=a[c]));return d}function r(b){var c,d;if(0===b.indexOf("week"))c=7,d="day";else{if(0!==b.indexOf("month"))return;c=12,d="month"}db[b]=function(e,f){var g,h,i=db.fn._lang[b],j=[];if("number"==typeof e&&(f=e,e=a),h=function(a){var b=db().utc().set(d,a);return i.call(db.fn._lang,b,e||"")},null!=f)return h(f);for(g=0;c>g;g++)j.push(h(g));return j}}function s(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=b>=0?Math.floor(b):Math.ceil(b)),c}function t(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function u(a){return v(a)?366:365}function v(a){return a%4===0&&a%100!==0||a%400===0}function w(a){var b;a._a&&-2===a._pf.overflow&&(b=a._a[jb]<0||a._a[jb]>11?jb:a._a[kb]<1||a._a[kb]>t(a._a[ib],a._a[jb])?kb:a._a[lb]<0||a._a[lb]>23?lb:a._a[mb]<0||a._a[mb]>59?mb:a._a[nb]<0||a._a[nb]>59?nb:a._a[ob]<0||a._a[ob]>999?ob:-1,a._pf._overflowDayOfYear&&(ib>b||b>kb)&&(b=kb),a._pf.overflow=b)}function x(a){return null==a._isValid&&(a._isValid=!isNaN(a._d.getTime())&&a._pf.overflow<0&&!a._pf.empty&&!a._pf.invalidMonth&&!a._pf.nullInput&&!a._pf.invalidFormat&&!a._pf.userInvalidated,a._strict&&(a._isValid=a._isValid&&0===a._pf.charsLeftOver&&0===a._pf.unusedTokens.length)),a._isValid}function y(a){return a?a.toLowerCase().replace("_","-"):a}function z(a,b){return b._isUTC?db(a).zone(b._offset||0):db(a).local()}function A(a,b){return b.abbr=a,pb[a]||(pb[a]=new e),pb[a].set(b),pb[a]}function B(a){delete pb[a]}function C(a){var b,c,d,e,f=0,g=function(a){if(!pb[a]&&rb)try{require("./lang/"+a)}catch(b){}return pb[a]};if(!a)return db.fn._lang;if(!m(a)){if(c=g(a))return c;a=[a]}for(;f<a.length;){for(e=y(a[f]).split("-"),b=e.length,d=y(a[f+1]),d=d?d.split("-"):null;b>0;){if(c=g(e.slice(0,b).join("-")))return c;if(d&&d.length>=b&&o(e,d,!0)>=b-1)break;b--}f++}return db.fn._lang}function D(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function E(a){var b,c,d=a.match(vb);for(b=0,c=d.length;c>b;b++)d[b]=Yb[d[b]]?Yb[d[b]]:D(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function F(a,b){return a.isValid()?(b=G(b,a.lang()),Vb[b]||(Vb[b]=E(b)),Vb[b](a)):a.lang().invalidDate()}function G(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(wb.lastIndex=0;d>=0&&wb.test(a);)a=a.replace(wb,c),wb.lastIndex=0,d-=1;return a}function H(a,b){var c,d=b._strict;switch(a){case"DDDD":return Ib;case"YYYY":case"GGGG":case"gggg":return d?Jb:zb;case"Y":case"G":case"g":return Lb;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return d?Kb:Ab;case"S":if(d)return Gb;case"SS":if(d)return Hb;case"SSS":if(d)return Ib;case"DDD":return yb;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Cb;case"a":case"A":return C(b._l)._meridiemParse;case"X":return Fb;case"Z":case"ZZ":return Db;case"T":return Eb;case"SSSS":return Bb;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return d?Hb:xb;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return xb;default:return c=new RegExp(P(O(a.replace("\\","")),"i"))}}function I(a){a=a||"";var b=a.match(Db)||[],c=b[b.length-1]||[],d=(c+"").match(Qb)||["-",0,0],e=+(60*d[1])+s(d[2]);return"+"===d[0]?-e:e}function J(a,b,c){var d,e=c._a;switch(a){case"M":case"MM":null!=b&&(e[jb]=s(b)-1);break;case"MMM":case"MMMM":d=C(c._l).monthsParse(b),null!=d?e[jb]=d:c._pf.invalidMonth=b;break;case"D":case"DD":null!=b&&(e[kb]=s(b));break;case"DDD":case"DDDD":null!=b&&(c._dayOfYear=s(b));break;case"YY":e[ib]=s(b)+(s(b)>68?1900:2e3);break;case"YYYY":case"YYYYY":case"YYYYYY":e[ib]=s(b);break;case"a":case"A":c._isPm=C(c._l).isPM(b);break;case"H":case"HH":case"h":case"hh":e[lb]=s(b);break;case"m":case"mm":e[mb]=s(b);break;case"s":case"ss":e[nb]=s(b);break;case"S":case"SS":case"SSS":case"SSSS":e[ob]=s(1e3*("0."+b));break;case"X":c._d=new Date(1e3*parseFloat(b));break;case"Z":case"ZZ":c._useUTC=!0,c._tzm=I(b);break;case"w":case"ww":case"W":case"WW":case"d":case"dd":case"ddd":case"dddd":case"e":case"E":a=a.substr(0,1);case"gg":case"gggg":case"GG":case"GGGG":case"GGGGG":a=a.substr(0,2),b&&(c._w=c._w||{},c._w[a]=b)}}function K(a){var b,c,d,e,f,g,h,i,j,k,l=[];if(!a._d){for(d=M(a),a._w&&null==a._a[kb]&&null==a._a[jb]&&(f=function(b){var c=parseInt(b,10);return b?b.length<3?c>68?1900+c:2e3+c:c:null==a._a[ib]?db().weekYear():a._a[ib]},g=a._w,null!=g.GG||null!=g.W||null!=g.E?h=Z(f(g.GG),g.W||1,g.E,4,1):(i=C(a._l),j=null!=g.d?V(g.d,i):null!=g.e?parseInt(g.e,10)+i._week.dow:0,k=parseInt(g.w,10)||1,null!=g.d&&j<i._week.dow&&k++,h=Z(f(g.gg),k,j,i._week.doy,i._week.dow)),a._a[ib]=h.year,a._dayOfYear=h.dayOfYear),a._dayOfYear&&(e=null==a._a[ib]?d[ib]:a._a[ib],a._dayOfYear>u(e)&&(a._pf._overflowDayOfYear=!0),c=U(e,0,a._dayOfYear),a._a[jb]=c.getUTCMonth(),a._a[kb]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=l[b]=d[b];for(;7>b;b++)a._a[b]=l[b]=null==a._a[b]?2===b?1:0:a._a[b];l[lb]+=s((a._tzm||0)/60),l[mb]+=s((a._tzm||0)%60),a._d=(a._useUTC?U:T).apply(null,l)}}function L(a){var b;a._d||(b=q(a._i),a._a=[b.year,b.month,b.day,b.hour,b.minute,b.second,b.millisecond],K(a))}function M(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function N(a){a._a=[],a._pf.empty=!0;var b,c,d,e,f,g=C(a._l),h=""+a._i,i=h.length,j=0;for(d=G(a._f,g).match(vb)||[],b=0;b<d.length;b++)e=d[b],c=(h.match(H(e,a))||[])[0],c&&(f=h.substr(0,h.indexOf(c)),f.length>0&&a._pf.unusedInput.push(f),h=h.slice(h.indexOf(c)+c.length),j+=c.length),Yb[e]?(c?a._pf.empty=!1:a._pf.unusedTokens.push(e),J(e,c,a)):a._strict&&!c&&a._pf.unusedTokens.push(e);a._pf.charsLeftOver=i-j,h.length>0&&a._pf.unusedInput.push(h),a._isPm&&a._a[lb]<12&&(a._a[lb]+=12),a._isPm===!1&&12===a._a[lb]&&(a._a[lb]=0),K(a),w(a)}function O(a){return a.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e})}function P(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a){var c,d,e,f,g;if(0===a._f.length)return a._pf.invalidFormat=!0,a._d=new Date(0/0),void 0;for(f=0;f<a._f.length;f++)g=0,c=h({},a),c._pf=b(),c._f=a._f[f],N(c),x(c)&&(g+=c._pf.charsLeftOver,g+=10*c._pf.unusedTokens.length,c._pf.score=g,(null==e||e>g)&&(e=g,d=c));h(a,d||c)}function R(a){var b,c,d=a._i,e=Mb.exec(d);if(e){for(a._pf.iso=!0,b=0,c=Ob.length;c>b;b++)if(Ob[b][1].exec(d)){a._f=Ob[b][0]+(e[6]||" ");break}for(b=0,c=Pb.length;c>b;b++)if(Pb[b][1].exec(d)){a._f+=Pb[b][0];break}d.match(Db)&&(a._f+="Z"),N(a)}else a._d=new Date(d)}function S(b){var c=b._i,d=sb.exec(c);c===a?b._d=new Date:d?b._d=new Date(+d[1]):"string"==typeof c?R(b):m(c)?(b._a=c.slice(0),K(b)):n(c)?b._d=new Date(+c):"object"==typeof c?L(b):b._d=new Date(c)}function T(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function U(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function V(a,b){if("string"==typeof a)if(isNaN(a)){if(a=b.weekdaysParse(a),"number"!=typeof a)return null}else a=parseInt(a,10);return a}function W(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function X(a,b,c){var d=hb(Math.abs(a)/1e3),e=hb(d/60),f=hb(e/60),g=hb(f/24),h=hb(g/365),i=45>d&&["s",d]||1===e&&["m"]||45>e&&["mm",e]||1===f&&["h"]||22>f&&["hh",f]||1===g&&["d"]||25>=g&&["dd",g]||45>=g&&["M"]||345>g&&["MM",hb(g/30)]||1===h&&["y"]||["yy",h];return i[2]=b,i[3]=a>0,i[4]=c,W.apply({},i)}function Y(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=db(a).add("d",f),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function Z(a,b,c,d,e){var f,g,h=U(a,0,1).getUTCDay();return c=null!=c?c:e,f=e-h+(h>d?7:0)-(e>h?7:0),g=7*(b-1)+(c-e)+f+1,{year:g>0?a:a-1,dayOfYear:g>0?g:u(a-1)+g}}function $(a){var b=a._i,c=a._f;return null===b?db.invalid({nullInput:!0}):("string"==typeof b&&(a._i=b=C().preparse(b)),db.isMoment(b)?(a=i(b),a._d=new Date(+b._d)):c?m(c)?Q(a):N(a):S(a),new f(a))}function _(a,b){db.fn[a]=db.fn[a+"s"]=function(a){var c=this._isUTC?"UTC":"";return null!=a?(this._d["set"+c+b](a),db.updateOffset(this),this):this._d["get"+c+b]()}}function ab(a){db.duration.fn[a]=function(){return this._data[a]}}function bb(a,b){db.duration.fn["as"+a]=function(){return+this/b}}function cb(a){var b=!1,c=db;"undefined"==typeof ender&&(a?(gb.moment=function(){return!b&&console&&console.warn&&(b=!0,console.warn("Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release.")),c.apply(null,arguments)},h(gb.moment,c)):gb.moment=db)}for(var db,eb,fb="2.5.1",gb=this,hb=Math.round,ib=0,jb=1,kb=2,lb=3,mb=4,nb=5,ob=6,pb={},qb={_isAMomentObject:null,_i:null,_f:null,_l:null,_strict:null,_isUTC:null,_offset:null,_pf:null,_lang:null},rb="undefined"!=typeof module&&module.exports&&"undefined"!=typeof require,sb=/^\/?Date\((\-?\d+)/i,tb=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,ub=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,vb=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,wb=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,xb=/\d\d?/,yb=/\d{1,3}/,zb=/\d{1,4}/,Ab=/[+\-]?\d{1,6}/,Bb=/\d+/,Cb=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Db=/Z|[\+\-]\d\d:?\d\d/gi,Eb=/T/i,Fb=/[\+\-]?\d+(\.\d{1,3})?/,Gb=/\d/,Hb=/\d\d/,Ib=/\d{3}/,Jb=/\d{4}/,Kb=/[+-]?\d{6}/,Lb=/[+-]?\d+/,Mb=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nb="YYYY-MM-DDTHH:mm:ssZ",Ob=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],Pb=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],Qb=/([\+\-]|\d\d)/gi,Rb="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),Sb={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},Tb={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",D:"date",w:"week",W:"isoWeek",M:"month",y:"year",DDD:"dayOfYear",e:"weekday",E:"isoWeekday",gg:"weekYear",GG:"isoWeekYear"},Ub={dayofyear:"dayOfYear",isoweekday:"isoWeekday",isoweek:"isoWeek",weekyear:"weekYear",isoweekyear:"isoWeekYear"},Vb={},Wb="DDD w W M D d".split(" "),Xb="M D H h m s w W".split(" "),Yb={M:function(){return this.month()+1},MMM:function(a){return this.lang().monthsShort(this,a)},MMMM:function(a){return this.lang().months(this,a)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(a){return this.lang().weekdaysMin(this,a)},ddd:function(a){return this.lang().weekdaysShort(this,a)},dddd:function(a){return this.lang().weekdays(this,a)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return k(this.year()%100,2)},YYYY:function(){return k(this.year(),4)},YYYYY:function(){return k(this.year(),5)},YYYYYY:function(){var a=this.year(),b=a>=0?"+":"-";return b+k(Math.abs(a),6)},gg:function(){return k(this.weekYear()%100,2)},gggg:function(){return k(this.weekYear(),4)},ggggg:function(){return k(this.weekYear(),5)},GG:function(){return k(this.isoWeekYear()%100,2)},GGGG:function(){return k(this.isoWeekYear(),4)},GGGGG:function(){return k(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return s(this.milliseconds()/100)},SS:function(){return k(s(this.milliseconds()/10),2)},SSS:function(){return k(this.milliseconds(),3)},SSSS:function(){return k(this.milliseconds(),3)},Z:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+k(s(a/60),2)+":"+k(s(a)%60,2)},ZZ:function(){var a=-this.zone(),b="+";return 0>a&&(a=-a,b="-"),b+k(s(a/60),2)+k(s(a)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Zb=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];Wb.length;)eb=Wb.pop(),Yb[eb+"o"]=d(Yb[eb],eb);for(;Xb.length;)eb=Xb.pop(),Yb[eb+eb]=c(Yb[eb],2);for(Yb.DDDD=c(Yb.DDD,3),h(e.prototype,{set:function(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(a){return this._months[a.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(a){return this._monthsShort[a.month()]},monthsParse:function(a){var b,c,d;for(this._monthsParse||(this._monthsParse=[]),b=0;12>b;b++)if(this._monthsParse[b]||(c=db.utc([2e3,b]),d="^"+this.months(c,"")+"|^"+this.monthsShort(c,""),this._monthsParse[b]=new RegExp(d.replace(".",""),"i")),this._monthsParse[b].test(a))return b},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(a){return this._weekdays[a.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(a){return this._weekdaysShort[a.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(a){return this._weekdaysMin[a.day()]},weekdaysParse:function(a){var b,c,d;for(this._weekdaysParse||(this._weekdaysParse=[]),b=0;7>b;b++)if(this._weekdaysParse[b]||(c=db([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(a){var b=this._longDateFormat[a];return!b&&this._longDateFormat[a.toUpperCase()]&&(b=this._longDateFormat[a.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a]=b),b},isPM:function(a){return"p"===(a+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(a,b){var c=this._calendar[a];return"function"==typeof c?c.apply(b):c},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)},pastFuture:function(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)},ordinal:function(a){return this._ordinal.replace("%d",a)},_ordinal:"%d",preparse:function(a){return a},postformat:function(a){return a},week:function(a){return Y(a,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),db=function(c,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._i=c,g._f=d,g._l=e,g._strict=f,g._isUTC=!1,g._pf=b(),$(g)},db.utc=function(c,d,e,f){var g;return"boolean"==typeof e&&(f=e,e=a),g={},g._isAMomentObject=!0,g._useUTC=!0,g._isUTC=!0,g._l=e,g._i=c,g._f=d,g._strict=f,g._pf=b(),$(g).utc()},db.unix=function(a){return db(1e3*a)},db.duration=function(a,b){var c,d,e,f=a,h=null;return db.isDuration(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(f={},b?f[b]=a:f.milliseconds=a):(h=tb.exec(a))?(c="-"===h[1]?-1:1,f={y:0,d:s(h[kb])*c,h:s(h[lb])*c,m:s(h[mb])*c,s:s(h[nb])*c,ms:s(h[ob])*c}):(h=ub.exec(a))&&(c="-"===h[1]?-1:1,e=function(a){var b=a&&parseFloat(a.replace(",","."));return(isNaN(b)?0:b)*c},f={y:e(h[2]),M:e(h[3]),d:e(h[4]),h:e(h[5]),m:e(h[6]),s:e(h[7]),w:e(h[8])}),d=new g(f),db.isDuration(a)&&a.hasOwnProperty("_lang")&&(d._lang=a._lang),d},db.version=fb,db.defaultFormat=Nb,db.updateOffset=function(){},db.lang=function(a,b){var c;return a?(b?A(y(a),b):null===b?(B(a),a="en"):pb[a]||C(a),c=db.duration.fn._lang=db.fn._lang=C(a),c._abbr):db.fn._lang._abbr},db.langData=function(a){return a&&a._lang&&a._lang._abbr&&(a=a._lang._abbr),C(a)},db.isMoment=function(a){return a instanceof f||null!=a&&a.hasOwnProperty("_isAMomentObject")},db.isDuration=function(a){return a instanceof g},eb=Zb.length-1;eb>=0;--eb)r(Zb[eb]);for(db.normalizeUnits=function(a){return p(a)},db.invalid=function(a){var b=db.utc(0/0);return null!=a?h(b._pf,a):b._pf.userInvalidated=!0,b},db.parseZone=function(a){return db(a).parseZone()},h(db.fn=f.prototype,{clone:function(){return db(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var a=db(this).utc();return 0<a.year()&&a.year()<=9999?F(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):F(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var a=this;return[a.year(),a.month(),a.date(),a.hours(),a.minutes(),a.seconds(),a.milliseconds()]},isValid:function(){return x(this)},isDSTShifted:function(){return this._a?this.isValid()&&o(this._a,(this._isUTC?db.utc(this._a):db(this._a)).toArray())>0:!1},parsingFlags:function(){return h({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(a){var b=F(this,a||db.defaultFormat);return this.lang().postformat(b)},add:function(a,b){var c;return c="string"==typeof a?db.duration(+b,a):db.duration(a,b),l(this,c,1),this},subtract:function(a,b){var c;return c="string"==typeof a?db.duration(+b,a):db.duration(a,b),l(this,c,-1),this},diff:function(a,b,c){var d,e,f=z(a,this),g=6e4*(this.zone()-f.zone());return b=p(b),"year"===b||"month"===b?(d=432e5*(this.daysInMonth()+f.daysInMonth()),e=12*(this.year()-f.year())+(this.month()-f.month()),e+=(this-db(this).startOf("month")-(f-db(f).startOf("month")))/d,e-=6e4*(this.zone()-db(this).startOf("month").zone()-(f.zone()-db(f).startOf("month").zone()))/d,"year"===b&&(e/=12)):(d=this-f,e="second"===b?d/1e3:"minute"===b?d/6e4:"hour"===b?d/36e5:"day"===b?(d-g)/864e5:"week"===b?(d-g)/6048e5:d),c?e:j(e)},from:function(a,b){return db.duration(this.diff(a)).lang(this.lang()._abbr).humanize(!b)},fromNow:function(a){return this.from(db(),a)},calendar:function(){var a=z(db(),this).startOf("day"),b=this.diff(a,"days",!0),c=-6>b?"sameElse":-1>b?"lastWeek":0>b?"lastDay":1>b?"sameDay":2>b?"nextDay":7>b?"nextWeek":"sameElse";return this.format(this.lang().calendar(c,this))},isLeapYear:function(){return v(this.year())},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=V(a,this.lang()),this.add({d:a-b})):b},month:function(a){var b,c=this._isUTC?"UTC":"";return null!=a?"string"==typeof a&&(a=this.lang().monthsParse(a),"number"!=typeof a)?this:(b=this.date(),this.date(1),this._d["set"+c+"Month"](a),this.date(Math.min(b,this.daysInMonth())),db.updateOffset(this),this):this._d["get"+c+"Month"]()},startOf:function(a){switch(a=p(a)){case"year":this.month(0);case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===a?this.weekday(0):"isoWeek"===a&&this.isoWeekday(1),this},endOf:function(a){return a=p(a),this.startOf(a).add("isoWeek"===a?"week":a,1).subtract("ms",1)},isAfter:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)>+db(a).startOf(b)},isBefore:function(a,b){return b="undefined"!=typeof b?b:"millisecond",+this.clone().startOf(b)<+db(a).startOf(b)},isSame:function(a,b){return b=b||"ms",+this.clone().startOf(b)===+z(a,this).startOf(b)},min:function(a){return a=db.apply(null,arguments),this>a?this:a},max:function(a){return a=db.apply(null,arguments),a>this?this:a},zone:function(a){var b=this._offset||0;return null==a?this._isUTC?b:this._d.getTimezoneOffset():("string"==typeof a&&(a=I(a)),Math.abs(a)<16&&(a=60*a),this._offset=a,this._isUTC=!0,b!==a&&l(this,db.duration(b-a,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(a){return a=a?db(a).zone():0,(this.zone()-a)%60===0},daysInMonth:function(){return t(this.year(),this.month())},dayOfYear:function(a){var b=hb((db(this).startOf("day")-db(this).startOf("year"))/864e5)+1;return null==a?b:this.add("d",a-b)},quarter:function(){return Math.ceil((this.month()+1)/3)},weekYear:function(a){var b=Y(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==a?b:this.add("y",a-b)},isoWeekYear:function(a){var b=Y(this,1,4).year;return null==a?b:this.add("y",a-b)},week:function(a){var b=this.lang().week(this);return null==a?b:this.add("d",7*(a-b))},isoWeek:function(a){var b=Y(this,1,4).week;return null==a?b:this.add("d",7*(a-b))},weekday:function(a){var b=(this.day()+7-this.lang()._week.dow)%7;return null==a?b:this.add("d",a-b)},isoWeekday:function(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)},get:function(a){return a=p(a),this[a]()},set:function(a,b){return a=p(a),"function"==typeof this[a]&&this[a](b),this},lang:function(b){return b===a?this._lang:(this._lang=C(b),this)}}),eb=0;eb<Rb.length;eb++)_(Rb[eb].toLowerCase().replace(/s$/,""),Rb[eb]);_("year","FullYear"),db.fn.days=db.fn.day,db.fn.months=db.fn.month,db.fn.weeks=db.fn.week,db.fn.isoWeeks=db.fn.isoWeek,db.fn.toJSON=db.fn.toISOString,h(db.duration.fn=g.prototype,{_bubble:function(){var a,b,c,d,e=this._milliseconds,f=this._days,g=this._months,h=this._data;h.milliseconds=e%1e3,a=j(e/1e3),h.seconds=a%60,b=j(a/60),h.minutes=b%60,c=j(b/60),h.hours=c%24,f+=j(c/24),h.days=f%30,g+=j(f/30),h.months=g%12,d=j(g/12),h.years=d},weeks:function(){return j(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*s(this._months/12)},humanize:function(a){var b=+this,c=X(b,!a,this.lang());return a&&(c=this.lang().pastFuture(b,c)),this.lang().postformat(c)},add:function(a,b){var c=db.duration(a,b);return this._milliseconds+=c._milliseconds,this._days+=c._days,this._months+=c._months,this._bubble(),this},subtract:function(a,b){var c=db.duration(a,b);return this._milliseconds-=c._milliseconds,this._days-=c._days,this._months-=c._months,this._bubble(),this},get:function(a){return a=p(a),this[a.toLowerCase()+"s"]()},as:function(a){return a=p(a),this["as"+a.charAt(0).toUpperCase()+a.slice(1)+"s"]()},lang:db.fn.lang,toIsoString:function(){var a=Math.abs(this.years()),b=Math.abs(this.months()),c=Math.abs(this.days()),d=Math.abs(this.hours()),e=Math.abs(this.minutes()),f=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(a?a+"Y":"")+(b?b+"M":"")+(c?c+"D":"")+(d||e||f?"T":"")+(d?d+"H":"")+(e?e+"M":"")+(f?f+"S":""):"P0D"}});for(eb in Sb)Sb.hasOwnProperty(eb)&&(bb(eb,Sb[eb]),ab(eb.toLowerCase()));bb("Weeks",6048e5),db.duration.fn.asMonths=function(){return(+this-31536e6*this.years())/2592e6+12*this.years()},db.lang("en",{ordinal:function(a){var b=a%10,c=1===s(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),rb?(module.exports=db,cb(!0)):"function"==typeof define&&define.amd?define("moment",function(b,c,d){return d.config&&d.config()&&d.config().noGlobal!==!0&&cb(d.config().noGlobal===a),db}):cb()}).call(this);
|
@@ -0,0 +1,920 @@
|
|
1
|
+
/*!
|
2
|
+
* Pikaday
|
3
|
+
*
|
4
|
+
* Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday
|
5
|
+
*/
|
6
|
+
|
7
|
+
(function (root, factory)
|
8
|
+
{
|
9
|
+
'use strict';
|
10
|
+
|
11
|
+
var moment;
|
12
|
+
if (typeof exports === 'object') {
|
13
|
+
// CommonJS module
|
14
|
+
// Load moment.js as an optional dependency
|
15
|
+
try { moment = require('moment'); } catch (e) {}
|
16
|
+
module.exports = factory(moment);
|
17
|
+
} else if (typeof define === 'function' && define.amd) {
|
18
|
+
// AMD. Register as an anonymous module.
|
19
|
+
define(function (req)
|
20
|
+
{
|
21
|
+
// Load moment.js as an optional dependency
|
22
|
+
var id = 'moment';
|
23
|
+
moment = req.defined && req.defined(id) ? req(id) : undefined;
|
24
|
+
return factory(moment);
|
25
|
+
});
|
26
|
+
} else {
|
27
|
+
root.Pikaday = factory(root.moment);
|
28
|
+
}
|
29
|
+
}(this, function (moment)
|
30
|
+
{
|
31
|
+
'use strict';
|
32
|
+
|
33
|
+
/**
|
34
|
+
* feature detection and helper functions
|
35
|
+
*/
|
36
|
+
var hasMoment = typeof moment === 'function',
|
37
|
+
|
38
|
+
hasEventListeners = !!window.addEventListener,
|
39
|
+
|
40
|
+
document = window.document,
|
41
|
+
|
42
|
+
sto = window.setTimeout,
|
43
|
+
|
44
|
+
addEvent = function(el, e, callback, capture)
|
45
|
+
{
|
46
|
+
if (hasEventListeners) {
|
47
|
+
el.addEventListener(e, callback, !!capture);
|
48
|
+
} else {
|
49
|
+
el.attachEvent('on' + e, callback);
|
50
|
+
}
|
51
|
+
},
|
52
|
+
|
53
|
+
removeEvent = function(el, e, callback, capture)
|
54
|
+
{
|
55
|
+
if (hasEventListeners) {
|
56
|
+
el.removeEventListener(e, callback, !!capture);
|
57
|
+
} else {
|
58
|
+
el.detachEvent('on' + e, callback);
|
59
|
+
}
|
60
|
+
},
|
61
|
+
|
62
|
+
fireEvent = function(el, eventName, data)
|
63
|
+
{
|
64
|
+
var ev;
|
65
|
+
|
66
|
+
if (document.createEvent) {
|
67
|
+
ev = document.createEvent('HTMLEvents');
|
68
|
+
ev.initEvent(eventName, true, false);
|
69
|
+
ev = extend(ev, data);
|
70
|
+
el.dispatchEvent(ev);
|
71
|
+
} else if (document.createEventObject) {
|
72
|
+
ev = document.createEventObject();
|
73
|
+
ev = extend(ev, data);
|
74
|
+
el.fireEvent('on' + eventName, ev);
|
75
|
+
}
|
76
|
+
},
|
77
|
+
|
78
|
+
trim = function(str)
|
79
|
+
{
|
80
|
+
return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g,'');
|
81
|
+
},
|
82
|
+
|
83
|
+
hasClass = function(el, cn)
|
84
|
+
{
|
85
|
+
return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;
|
86
|
+
},
|
87
|
+
|
88
|
+
addClass = function(el, cn)
|
89
|
+
{
|
90
|
+
if (!hasClass(el, cn)) {
|
91
|
+
el.className = (el.className === '') ? cn : el.className + ' ' + cn;
|
92
|
+
}
|
93
|
+
},
|
94
|
+
|
95
|
+
removeClass = function(el, cn)
|
96
|
+
{
|
97
|
+
el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));
|
98
|
+
},
|
99
|
+
|
100
|
+
isArray = function(obj)
|
101
|
+
{
|
102
|
+
return (/Array/).test(Object.prototype.toString.call(obj));
|
103
|
+
},
|
104
|
+
|
105
|
+
isDate = function(obj)
|
106
|
+
{
|
107
|
+
return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());
|
108
|
+
},
|
109
|
+
|
110
|
+
isLeapYear = function(year)
|
111
|
+
{
|
112
|
+
// solution by Matti Virkkunen: http://stackoverflow.com/a/4881951
|
113
|
+
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
114
|
+
},
|
115
|
+
|
116
|
+
getDaysInMonth = function(year, month)
|
117
|
+
{
|
118
|
+
return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
|
119
|
+
},
|
120
|
+
|
121
|
+
setToStartOfDay = function(date)
|
122
|
+
{
|
123
|
+
if (isDate(date)) date.setHours(0,0,0,0);
|
124
|
+
},
|
125
|
+
|
126
|
+
compareDates = function(a,b)
|
127
|
+
{
|
128
|
+
// weak date comparison (use setToStartOfDay(date) to ensure correct result)
|
129
|
+
return a.getTime() === b.getTime();
|
130
|
+
},
|
131
|
+
|
132
|
+
extend = function(to, from, overwrite)
|
133
|
+
{
|
134
|
+
var prop, hasProp;
|
135
|
+
for (prop in from) {
|
136
|
+
hasProp = to[prop] !== undefined;
|
137
|
+
if (hasProp && typeof from[prop] === 'object' && from[prop].nodeName === undefined) {
|
138
|
+
if (isDate(from[prop])) {
|
139
|
+
if (overwrite) {
|
140
|
+
to[prop] = new Date(from[prop].getTime());
|
141
|
+
}
|
142
|
+
}
|
143
|
+
else if (isArray(from[prop])) {
|
144
|
+
if (overwrite) {
|
145
|
+
to[prop] = from[prop].slice(0);
|
146
|
+
}
|
147
|
+
} else {
|
148
|
+
to[prop] = extend({}, from[prop], overwrite);
|
149
|
+
}
|
150
|
+
} else if (overwrite || !hasProp) {
|
151
|
+
to[prop] = from[prop];
|
152
|
+
}
|
153
|
+
}
|
154
|
+
return to;
|
155
|
+
},
|
156
|
+
|
157
|
+
|
158
|
+
/**
|
159
|
+
* defaults and localisation
|
160
|
+
*/
|
161
|
+
defaults = {
|
162
|
+
|
163
|
+
// bind the picker to a form field
|
164
|
+
field: null,
|
165
|
+
|
166
|
+
// automatically show/hide the picker on `field` focus (default `true` if `field` is set)
|
167
|
+
bound: undefined,
|
168
|
+
|
169
|
+
// position of the datepicker, relative to the field (default to bottom & left)
|
170
|
+
// ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)
|
171
|
+
position: 'bottom left',
|
172
|
+
|
173
|
+
// the default output format for `.toString()` and `field` value
|
174
|
+
format: 'YYYY-MM-DD',
|
175
|
+
|
176
|
+
// the initial date to view when first opened
|
177
|
+
defaultDate: null,
|
178
|
+
|
179
|
+
// make the `defaultDate` the initial selected value
|
180
|
+
setDefaultDate: false,
|
181
|
+
|
182
|
+
// first day of week (0: Sunday, 1: Monday etc)
|
183
|
+
firstDay: 0,
|
184
|
+
|
185
|
+
// the minimum/earliest date that can be selected
|
186
|
+
minDate: null,
|
187
|
+
// the maximum/latest date that can be selected
|
188
|
+
maxDate: null,
|
189
|
+
|
190
|
+
// number of years either side, or array of upper/lower range
|
191
|
+
yearRange: 10,
|
192
|
+
|
193
|
+
// used internally (don't config outside)
|
194
|
+
minYear: 0,
|
195
|
+
maxYear: 9999,
|
196
|
+
minMonth: undefined,
|
197
|
+
maxMonth: undefined,
|
198
|
+
|
199
|
+
isRTL: false,
|
200
|
+
|
201
|
+
// Additional text to append to the year in the calendar title
|
202
|
+
yearSuffix: '',
|
203
|
+
|
204
|
+
// Render the month after year in the calendar title
|
205
|
+
showMonthAfterYear: false,
|
206
|
+
|
207
|
+
// how many months are visible (not implemented yet)
|
208
|
+
numberOfMonths: 1,
|
209
|
+
|
210
|
+
// internationalization
|
211
|
+
i18n: {
|
212
|
+
previousMonth : 'Previous Month',
|
213
|
+
nextMonth : 'Next Month',
|
214
|
+
months : ['January','February','March','April','May','June','July','August','September','October','November','December'],
|
215
|
+
weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
|
216
|
+
weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
|
217
|
+
},
|
218
|
+
|
219
|
+
// callback function
|
220
|
+
onSelect: null,
|
221
|
+
onOpen: null,
|
222
|
+
onClose: null,
|
223
|
+
onDraw: null
|
224
|
+
},
|
225
|
+
|
226
|
+
|
227
|
+
/**
|
228
|
+
* templating functions to abstract HTML rendering
|
229
|
+
*/
|
230
|
+
renderDayName = function(opts, day, abbr)
|
231
|
+
{
|
232
|
+
day += opts.firstDay;
|
233
|
+
while (day >= 7) {
|
234
|
+
day -= 7;
|
235
|
+
}
|
236
|
+
return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];
|
237
|
+
},
|
238
|
+
|
239
|
+
renderDay = function(i, isSelected, isToday, isDisabled, isEmpty)
|
240
|
+
{
|
241
|
+
if (isEmpty) {
|
242
|
+
return '<td class="is-empty"></td>';
|
243
|
+
}
|
244
|
+
var arr = [];
|
245
|
+
if (isDisabled) {
|
246
|
+
arr.push('is-disabled');
|
247
|
+
}
|
248
|
+
if (isToday) {
|
249
|
+
arr.push('is-today');
|
250
|
+
}
|
251
|
+
if (isSelected) {
|
252
|
+
arr.push('is-selected');
|
253
|
+
}
|
254
|
+
return '<td data-day="' + i + '" class="' + arr.join(' ') + '"><button class="pika-button" type="button">' + i + '</button>' + '</td>';
|
255
|
+
},
|
256
|
+
|
257
|
+
renderRow = function(days, isRTL)
|
258
|
+
{
|
259
|
+
return '<tr>' + (isRTL ? days.reverse() : days).join('') + '</tr>';
|
260
|
+
},
|
261
|
+
|
262
|
+
renderBody = function(rows)
|
263
|
+
{
|
264
|
+
return '<tbody>' + rows.join('') + '</tbody>';
|
265
|
+
},
|
266
|
+
|
267
|
+
renderHead = function(opts)
|
268
|
+
{
|
269
|
+
var i, arr = [];
|
270
|
+
for (i = 0; i < 7; i++) {
|
271
|
+
arr.push('<th scope="col"><abbr title="' + renderDayName(opts, i) + '">' + renderDayName(opts, i, true) + '</abbr></th>');
|
272
|
+
}
|
273
|
+
return '<thead>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</thead>';
|
274
|
+
},
|
275
|
+
|
276
|
+
renderTitle = function(instance)
|
277
|
+
{
|
278
|
+
var i, j, arr,
|
279
|
+
opts = instance._o,
|
280
|
+
month = instance._m,
|
281
|
+
year = instance._y,
|
282
|
+
isMinYear = year === opts.minYear,
|
283
|
+
isMaxYear = year === opts.maxYear,
|
284
|
+
html = '<div class="pika-title">',
|
285
|
+
monthHtml,
|
286
|
+
yearHtml,
|
287
|
+
prev = true,
|
288
|
+
next = true;
|
289
|
+
|
290
|
+
for (arr = [], i = 0; i < 12; i++) {
|
291
|
+
arr.push('<option value="' + i + '"' +
|
292
|
+
(i === month ? ' selected': '') +
|
293
|
+
((isMinYear && i < opts.minMonth) || (isMaxYear && i > opts.maxMonth) ? 'disabled' : '') + '>' +
|
294
|
+
opts.i18n.months[i] + '</option>');
|
295
|
+
}
|
296
|
+
monthHtml = '<div class="pika-label">' + opts.i18n.months[month] + '<select class="pika-select pika-select-month">' + arr.join('') + '</select></div>';
|
297
|
+
|
298
|
+
if (isArray(opts.yearRange)) {
|
299
|
+
i = opts.yearRange[0];
|
300
|
+
j = opts.yearRange[1] + 1;
|
301
|
+
} else {
|
302
|
+
i = year - opts.yearRange;
|
303
|
+
j = 1 + year + opts.yearRange;
|
304
|
+
}
|
305
|
+
|
306
|
+
for (arr = []; i < j && i <= opts.maxYear; i++) {
|
307
|
+
if (i >= opts.minYear) {
|
308
|
+
arr.push('<option value="' + i + '"' + (i === year ? ' selected': '') + '>' + (i) + '</option>');
|
309
|
+
}
|
310
|
+
}
|
311
|
+
yearHtml = '<div class="pika-label">' + year + opts.yearSuffix + '<select class="pika-select pika-select-year">' + arr.join('') + '</select></div>';
|
312
|
+
|
313
|
+
if (opts.showMonthAfterYear) {
|
314
|
+
html += yearHtml + monthHtml;
|
315
|
+
} else {
|
316
|
+
html += monthHtml + yearHtml;
|
317
|
+
}
|
318
|
+
|
319
|
+
if (isMinYear && (month === 0 || opts.minMonth >= month)) {
|
320
|
+
prev = false;
|
321
|
+
}
|
322
|
+
|
323
|
+
if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {
|
324
|
+
next = false;
|
325
|
+
}
|
326
|
+
|
327
|
+
html += '<button class="pika-prev' + (prev ? '' : ' is-disabled') + '" type="button">' + opts.i18n.previousMonth + '</button>';
|
328
|
+
html += '<button class="pika-next' + (next ? '' : ' is-disabled') + '" type="button">' + opts.i18n.nextMonth + '</button>';
|
329
|
+
|
330
|
+
return html += '</div>';
|
331
|
+
},
|
332
|
+
|
333
|
+
renderTable = function(opts, data)
|
334
|
+
{
|
335
|
+
return '<table cellpadding="0" cellspacing="0" class="pika-table">' + renderHead(opts) + renderBody(data) + '</table>';
|
336
|
+
},
|
337
|
+
|
338
|
+
|
339
|
+
/**
|
340
|
+
* Pikaday constructor
|
341
|
+
*/
|
342
|
+
Pikaday = function(options)
|
343
|
+
{
|
344
|
+
var self = this,
|
345
|
+
opts = self.config(options);
|
346
|
+
|
347
|
+
self._onMouseDown = function(e)
|
348
|
+
{
|
349
|
+
if (!self._v) {
|
350
|
+
return;
|
351
|
+
}
|
352
|
+
e = e || window.event;
|
353
|
+
var target = e.target || e.srcElement;
|
354
|
+
if (!target) {
|
355
|
+
return;
|
356
|
+
}
|
357
|
+
|
358
|
+
if (!hasClass(target, 'is-disabled')) {
|
359
|
+
if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty')) {
|
360
|
+
self.setDate(new Date(self._y, self._m, parseInt(target.innerHTML, 10)));
|
361
|
+
if (opts.bound) {
|
362
|
+
sto(function() {
|
363
|
+
self.hide();
|
364
|
+
}, 100);
|
365
|
+
}
|
366
|
+
return;
|
367
|
+
}
|
368
|
+
else if (hasClass(target, 'pika-prev')) {
|
369
|
+
self.prevMonth();
|
370
|
+
}
|
371
|
+
else if (hasClass(target, 'pika-next')) {
|
372
|
+
self.nextMonth();
|
373
|
+
}
|
374
|
+
}
|
375
|
+
if (!hasClass(target, 'pika-select')) {
|
376
|
+
if (e.preventDefault) {
|
377
|
+
e.preventDefault();
|
378
|
+
} else {
|
379
|
+
e.returnValue = false;
|
380
|
+
return false;
|
381
|
+
}
|
382
|
+
} else {
|
383
|
+
self._c = true;
|
384
|
+
}
|
385
|
+
};
|
386
|
+
|
387
|
+
self._onChange = function(e)
|
388
|
+
{
|
389
|
+
e = e || window.event;
|
390
|
+
var target = e.target || e.srcElement;
|
391
|
+
if (!target) {
|
392
|
+
return;
|
393
|
+
}
|
394
|
+
if (hasClass(target, 'pika-select-month')) {
|
395
|
+
self.gotoMonth(target.value);
|
396
|
+
}
|
397
|
+
else if (hasClass(target, 'pika-select-year')) {
|
398
|
+
self.gotoYear(target.value);
|
399
|
+
}
|
400
|
+
};
|
401
|
+
|
402
|
+
self._onInputChange = function(e)
|
403
|
+
{
|
404
|
+
var date;
|
405
|
+
|
406
|
+
if (e.firedBy === self) {
|
407
|
+
return;
|
408
|
+
}
|
409
|
+
if (hasMoment) {
|
410
|
+
date = moment(opts.field.value, opts.format);
|
411
|
+
date = (date && date.isValid()) ? date.toDate() : null;
|
412
|
+
}
|
413
|
+
else {
|
414
|
+
date = new Date(Date.parse(opts.field.value));
|
415
|
+
}
|
416
|
+
self.setDate(isDate(date) ? date : null);
|
417
|
+
if (!self._v) {
|
418
|
+
self.show();
|
419
|
+
}
|
420
|
+
};
|
421
|
+
|
422
|
+
self._onInputFocus = function()
|
423
|
+
{
|
424
|
+
self.show();
|
425
|
+
};
|
426
|
+
|
427
|
+
self._onInputClick = function()
|
428
|
+
{
|
429
|
+
self.show();
|
430
|
+
};
|
431
|
+
|
432
|
+
self._onInputBlur = function()
|
433
|
+
{
|
434
|
+
if (!self._c) {
|
435
|
+
self._b = sto(function() {
|
436
|
+
self.hide();
|
437
|
+
}, 50);
|
438
|
+
}
|
439
|
+
self._c = false;
|
440
|
+
};
|
441
|
+
|
442
|
+
self._onClick = function(e)
|
443
|
+
{
|
444
|
+
e = e || window.event;
|
445
|
+
var target = e.target || e.srcElement,
|
446
|
+
pEl = target;
|
447
|
+
if (!target) {
|
448
|
+
return;
|
449
|
+
}
|
450
|
+
if (!hasEventListeners && hasClass(target, 'pika-select')) {
|
451
|
+
if (!target.onchange) {
|
452
|
+
target.setAttribute('onchange', 'return;');
|
453
|
+
addEvent(target, 'change', self._onChange);
|
454
|
+
}
|
455
|
+
}
|
456
|
+
do {
|
457
|
+
if (hasClass(pEl, 'pika-single')) {
|
458
|
+
return;
|
459
|
+
}
|
460
|
+
}
|
461
|
+
while ((pEl = pEl.parentNode));
|
462
|
+
if (self._v && target !== opts.trigger) {
|
463
|
+
self.hide();
|
464
|
+
}
|
465
|
+
};
|
466
|
+
|
467
|
+
self.el = document.createElement('div');
|
468
|
+
self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '');
|
469
|
+
|
470
|
+
addEvent(self.el, 'mousedown', self._onMouseDown, true);
|
471
|
+
addEvent(self.el, 'change', self._onChange);
|
472
|
+
|
473
|
+
if (opts.field) {
|
474
|
+
if (opts.bound) {
|
475
|
+
document.body.appendChild(self.el);
|
476
|
+
} else {
|
477
|
+
opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);
|
478
|
+
}
|
479
|
+
addEvent(opts.field, 'change', self._onInputChange);
|
480
|
+
|
481
|
+
if (!opts.defaultDate) {
|
482
|
+
if (hasMoment && opts.field.value) {
|
483
|
+
opts.defaultDate = moment(opts.field.value, opts.format).toDate();
|
484
|
+
} else {
|
485
|
+
opts.defaultDate = new Date(Date.parse(opts.field.value));
|
486
|
+
}
|
487
|
+
opts.setDefaultDate = true;
|
488
|
+
}
|
489
|
+
}
|
490
|
+
|
491
|
+
var defDate = opts.defaultDate;
|
492
|
+
|
493
|
+
if (isDate(defDate)) {
|
494
|
+
if (opts.setDefaultDate) {
|
495
|
+
self.setDate(defDate, true);
|
496
|
+
} else {
|
497
|
+
self.gotoDate(defDate);
|
498
|
+
}
|
499
|
+
} else {
|
500
|
+
self.gotoDate(new Date());
|
501
|
+
}
|
502
|
+
|
503
|
+
if (opts.bound) {
|
504
|
+
this.hide();
|
505
|
+
self.el.className += ' is-bound';
|
506
|
+
addEvent(opts.trigger, 'click', self._onInputClick);
|
507
|
+
addEvent(opts.trigger, 'focus', self._onInputFocus);
|
508
|
+
addEvent(opts.trigger, 'blur', self._onInputBlur);
|
509
|
+
} else {
|
510
|
+
this.show();
|
511
|
+
}
|
512
|
+
|
513
|
+
};
|
514
|
+
|
515
|
+
|
516
|
+
/**
|
517
|
+
* public Pikaday API
|
518
|
+
*/
|
519
|
+
Pikaday.prototype = {
|
520
|
+
|
521
|
+
|
522
|
+
/**
|
523
|
+
* configure functionality
|
524
|
+
*/
|
525
|
+
config: function(options)
|
526
|
+
{
|
527
|
+
if (!this._o) {
|
528
|
+
this._o = extend({}, defaults, true);
|
529
|
+
}
|
530
|
+
|
531
|
+
var opts = extend(this._o, options, true);
|
532
|
+
|
533
|
+
opts.isRTL = !!opts.isRTL;
|
534
|
+
|
535
|
+
opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;
|
536
|
+
|
537
|
+
opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);
|
538
|
+
|
539
|
+
opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;
|
540
|
+
|
541
|
+
var nom = parseInt(opts.numberOfMonths, 10) || 1;
|
542
|
+
opts.numberOfMonths = nom > 4 ? 4 : nom;
|
543
|
+
|
544
|
+
if (!isDate(opts.minDate)) {
|
545
|
+
opts.minDate = false;
|
546
|
+
}
|
547
|
+
if (!isDate(opts.maxDate)) {
|
548
|
+
opts.maxDate = false;
|
549
|
+
}
|
550
|
+
if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {
|
551
|
+
opts.maxDate = opts.minDate = false;
|
552
|
+
}
|
553
|
+
if (opts.minDate) {
|
554
|
+
setToStartOfDay(opts.minDate);
|
555
|
+
opts.minYear = opts.minDate.getFullYear();
|
556
|
+
opts.minMonth = opts.minDate.getMonth();
|
557
|
+
}
|
558
|
+
if (opts.maxDate) {
|
559
|
+
setToStartOfDay(opts.maxDate);
|
560
|
+
opts.maxYear = opts.maxDate.getFullYear();
|
561
|
+
opts.maxMonth = opts.maxDate.getMonth();
|
562
|
+
}
|
563
|
+
|
564
|
+
if (isArray(opts.yearRange)) {
|
565
|
+
var fallback = new Date().getFullYear() - 10;
|
566
|
+
opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;
|
567
|
+
opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;
|
568
|
+
} else {
|
569
|
+
opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;
|
570
|
+
if (opts.yearRange > 100) {
|
571
|
+
opts.yearRange = 100;
|
572
|
+
}
|
573
|
+
}
|
574
|
+
|
575
|
+
return opts;
|
576
|
+
},
|
577
|
+
|
578
|
+
/**
|
579
|
+
* return a formatted string of the current selection (using Moment.js if available)
|
580
|
+
*/
|
581
|
+
toString: function(format)
|
582
|
+
{
|
583
|
+
return !isDate(this._d) ? '' : hasMoment ? moment(this._d).format(format || this._o.format) : this._d.toDateString();
|
584
|
+
},
|
585
|
+
|
586
|
+
/**
|
587
|
+
* return a Moment.js object of the current selection (if available)
|
588
|
+
*/
|
589
|
+
getMoment: function()
|
590
|
+
{
|
591
|
+
return hasMoment ? moment(this._d) : null;
|
592
|
+
},
|
593
|
+
|
594
|
+
/**
|
595
|
+
* set the current selection from a Moment.js object (if available)
|
596
|
+
*/
|
597
|
+
setMoment: function(date, preventOnSelect)
|
598
|
+
{
|
599
|
+
if (hasMoment && moment.isMoment(date)) {
|
600
|
+
this.setDate(date.toDate(), preventOnSelect);
|
601
|
+
}
|
602
|
+
},
|
603
|
+
|
604
|
+
/**
|
605
|
+
* return a Date object of the current selection
|
606
|
+
*/
|
607
|
+
getDate: function()
|
608
|
+
{
|
609
|
+
return isDate(this._d) ? new Date(this._d.getTime()) : null;
|
610
|
+
},
|
611
|
+
|
612
|
+
/**
|
613
|
+
* set the current selection
|
614
|
+
*/
|
615
|
+
setDate: function(date, preventOnSelect)
|
616
|
+
{
|
617
|
+
if (!date) {
|
618
|
+
this._d = null;
|
619
|
+
return this.draw();
|
620
|
+
}
|
621
|
+
if (typeof date === 'string') {
|
622
|
+
date = new Date(Date.parse(date));
|
623
|
+
}
|
624
|
+
if (!isDate(date)) {
|
625
|
+
return;
|
626
|
+
}
|
627
|
+
|
628
|
+
var min = this._o.minDate,
|
629
|
+
max = this._o.maxDate;
|
630
|
+
|
631
|
+
if (isDate(min) && date < min) {
|
632
|
+
date = min;
|
633
|
+
} else if (isDate(max) && date > max) {
|
634
|
+
date = max;
|
635
|
+
}
|
636
|
+
|
637
|
+
this._d = new Date(date.getTime());
|
638
|
+
setToStartOfDay(this._d);
|
639
|
+
this.gotoDate(this._d);
|
640
|
+
|
641
|
+
if (this._o.field) {
|
642
|
+
this._o.field.value = this.toString();
|
643
|
+
fireEvent(this._o.field, 'change', { firedBy: this });
|
644
|
+
}
|
645
|
+
if (!preventOnSelect && typeof this._o.onSelect === 'function') {
|
646
|
+
this._o.onSelect.call(this, this.getDate());
|
647
|
+
}
|
648
|
+
},
|
649
|
+
|
650
|
+
/**
|
651
|
+
* change view to a specific date
|
652
|
+
*/
|
653
|
+
gotoDate: function(date)
|
654
|
+
{
|
655
|
+
if (!isDate(date)) {
|
656
|
+
return;
|
657
|
+
}
|
658
|
+
this._y = date.getFullYear();
|
659
|
+
this._m = date.getMonth();
|
660
|
+
this.draw();
|
661
|
+
},
|
662
|
+
|
663
|
+
gotoToday: function()
|
664
|
+
{
|
665
|
+
this.gotoDate(new Date());
|
666
|
+
},
|
667
|
+
|
668
|
+
/**
|
669
|
+
* change view to a specific month (zero-index, e.g. 0: January)
|
670
|
+
*/
|
671
|
+
gotoMonth: function(month)
|
672
|
+
{
|
673
|
+
if (!isNaN( (month = parseInt(month, 10)) )) {
|
674
|
+
this._m = month < 0 ? 0 : month > 11 ? 11 : month;
|
675
|
+
this.draw();
|
676
|
+
}
|
677
|
+
},
|
678
|
+
|
679
|
+
nextMonth: function()
|
680
|
+
{
|
681
|
+
if (++this._m > 11) {
|
682
|
+
this._m = 0;
|
683
|
+
this._y++;
|
684
|
+
}
|
685
|
+
this.draw();
|
686
|
+
},
|
687
|
+
|
688
|
+
prevMonth: function()
|
689
|
+
{
|
690
|
+
if (--this._m < 0) {
|
691
|
+
this._m = 11;
|
692
|
+
this._y--;
|
693
|
+
}
|
694
|
+
this.draw();
|
695
|
+
},
|
696
|
+
|
697
|
+
/**
|
698
|
+
* change view to a specific full year (e.g. "2012")
|
699
|
+
*/
|
700
|
+
gotoYear: function(year)
|
701
|
+
{
|
702
|
+
if (!isNaN(year)) {
|
703
|
+
this._y = parseInt(year, 10);
|
704
|
+
this.draw();
|
705
|
+
}
|
706
|
+
},
|
707
|
+
|
708
|
+
/**
|
709
|
+
* change the minDate
|
710
|
+
*/
|
711
|
+
setMinDate: function(value)
|
712
|
+
{
|
713
|
+
this._o.minDate = value;
|
714
|
+
},
|
715
|
+
|
716
|
+
/**
|
717
|
+
* change the maxDate
|
718
|
+
*/
|
719
|
+
setMaxDate: function(value)
|
720
|
+
{
|
721
|
+
this._o.maxDate = value;
|
722
|
+
},
|
723
|
+
|
724
|
+
/**
|
725
|
+
* refresh the HTML
|
726
|
+
*/
|
727
|
+
draw: function(force)
|
728
|
+
{
|
729
|
+
if (!this._v && !force) {
|
730
|
+
return;
|
731
|
+
}
|
732
|
+
var opts = this._o,
|
733
|
+
minYear = opts.minYear,
|
734
|
+
maxYear = opts.maxYear,
|
735
|
+
minMonth = opts.minMonth,
|
736
|
+
maxMonth = opts.maxMonth;
|
737
|
+
|
738
|
+
if (this._y <= minYear) {
|
739
|
+
this._y = minYear;
|
740
|
+
if (!isNaN(minMonth) && this._m < minMonth) {
|
741
|
+
this._m = minMonth;
|
742
|
+
}
|
743
|
+
}
|
744
|
+
if (this._y >= maxYear) {
|
745
|
+
this._y = maxYear;
|
746
|
+
if (!isNaN(maxMonth) && this._m > maxMonth) {
|
747
|
+
this._m = maxMonth;
|
748
|
+
}
|
749
|
+
}
|
750
|
+
|
751
|
+
this.el.innerHTML = renderTitle(this) + this.render(this._y, this._m);
|
752
|
+
|
753
|
+
if (opts.bound) {
|
754
|
+
this.adjustPosition();
|
755
|
+
if(opts.field.type !== 'hidden') {
|
756
|
+
sto(function() {
|
757
|
+
opts.trigger.focus();
|
758
|
+
}, 1);
|
759
|
+
}
|
760
|
+
}
|
761
|
+
|
762
|
+
if (typeof this._o.onDraw === 'function') {
|
763
|
+
var self = this;
|
764
|
+
sto(function() {
|
765
|
+
self._o.onDraw.call(self);
|
766
|
+
}, 0);
|
767
|
+
}
|
768
|
+
},
|
769
|
+
|
770
|
+
adjustPosition: function()
|
771
|
+
{
|
772
|
+
var field = this._o.trigger, pEl = field,
|
773
|
+
width = this.el.offsetWidth, height = this.el.offsetHeight,
|
774
|
+
viewportWidth = window.innerWidth || document.documentElement.clientWidth,
|
775
|
+
viewportHeight = window.innerHeight || document.documentElement.clientHeight,
|
776
|
+
scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop,
|
777
|
+
left, top, clientRect;
|
778
|
+
|
779
|
+
if (typeof field.getBoundingClientRect === 'function') {
|
780
|
+
clientRect = field.getBoundingClientRect();
|
781
|
+
left = clientRect.left + window.pageXOffset;
|
782
|
+
top = clientRect.bottom + window.pageYOffset;
|
783
|
+
} else {
|
784
|
+
left = pEl.offsetLeft;
|
785
|
+
top = pEl.offsetTop + pEl.offsetHeight;
|
786
|
+
while((pEl = pEl.offsetParent)) {
|
787
|
+
left += pEl.offsetLeft;
|
788
|
+
top += pEl.offsetTop;
|
789
|
+
}
|
790
|
+
}
|
791
|
+
|
792
|
+
// default position is bottom & left
|
793
|
+
if (left + width > viewportWidth ||
|
794
|
+
(
|
795
|
+
this._o.position.indexOf('right') > -1 &&
|
796
|
+
left - width + field.offsetWidth > 0
|
797
|
+
)
|
798
|
+
) {
|
799
|
+
left = left - width + field.offsetWidth;
|
800
|
+
}
|
801
|
+
if (top + height > viewportHeight + scrollTop ||
|
802
|
+
(
|
803
|
+
this._o.position.indexOf('top') > -1 &&
|
804
|
+
top - height - field.offsetHeight > 0
|
805
|
+
)
|
806
|
+
) {
|
807
|
+
top = top - height - field.offsetHeight;
|
808
|
+
}
|
809
|
+
this.el.style.cssText = [
|
810
|
+
'position: absolute',
|
811
|
+
'left: ' + left + 'px',
|
812
|
+
'top: ' + top + 'px'
|
813
|
+
].join(';');
|
814
|
+
},
|
815
|
+
|
816
|
+
/**
|
817
|
+
* render HTML for a particular month
|
818
|
+
*/
|
819
|
+
render: function(year, month)
|
820
|
+
{
|
821
|
+
var opts = this._o,
|
822
|
+
now = new Date(),
|
823
|
+
days = getDaysInMonth(year, month),
|
824
|
+
before = new Date(year, month, 1).getDay(),
|
825
|
+
data = [],
|
826
|
+
row = [];
|
827
|
+
setToStartOfDay(now);
|
828
|
+
if (opts.firstDay > 0) {
|
829
|
+
before -= opts.firstDay;
|
830
|
+
if (before < 0) {
|
831
|
+
before += 7;
|
832
|
+
}
|
833
|
+
}
|
834
|
+
var cells = days + before,
|
835
|
+
after = cells;
|
836
|
+
while(after > 7) {
|
837
|
+
after -= 7;
|
838
|
+
}
|
839
|
+
cells += 7 - after;
|
840
|
+
for (var i = 0, r = 0; i < cells; i++)
|
841
|
+
{
|
842
|
+
var day = new Date(year, month, 1 + (i - before)),
|
843
|
+
isDisabled = (opts.minDate && day < opts.minDate) || (opts.maxDate && day > opts.maxDate),
|
844
|
+
isSelected = isDate(this._d) ? compareDates(day, this._d) : false,
|
845
|
+
isToday = compareDates(day, now),
|
846
|
+
isEmpty = i < before || i >= (days + before);
|
847
|
+
|
848
|
+
row.push(renderDay(1 + (i - before), isSelected, isToday, isDisabled, isEmpty));
|
849
|
+
|
850
|
+
if (++r === 7) {
|
851
|
+
data.push(renderRow(row, opts.isRTL));
|
852
|
+
row = [];
|
853
|
+
r = 0;
|
854
|
+
}
|
855
|
+
}
|
856
|
+
return renderTable(opts, data);
|
857
|
+
},
|
858
|
+
|
859
|
+
isVisible: function()
|
860
|
+
{
|
861
|
+
return this._v;
|
862
|
+
},
|
863
|
+
|
864
|
+
show: function()
|
865
|
+
{
|
866
|
+
if (!this._v) {
|
867
|
+
if (this._o.bound) {
|
868
|
+
addEvent(document, 'click', this._onClick);
|
869
|
+
}
|
870
|
+
removeClass(this.el, 'is-hidden');
|
871
|
+
this._v = true;
|
872
|
+
this.draw();
|
873
|
+
if (typeof this._o.onOpen === 'function') {
|
874
|
+
this._o.onOpen.call(this);
|
875
|
+
}
|
876
|
+
}
|
877
|
+
},
|
878
|
+
|
879
|
+
hide: function()
|
880
|
+
{
|
881
|
+
var v = this._v;
|
882
|
+
if (v !== false) {
|
883
|
+
if (this._o.bound) {
|
884
|
+
removeEvent(document, 'click', this._onClick);
|
885
|
+
}
|
886
|
+
this.el.style.cssText = '';
|
887
|
+
addClass(this.el, 'is-hidden');
|
888
|
+
this._v = false;
|
889
|
+
if (v !== undefined && typeof this._o.onClose === 'function') {
|
890
|
+
this._o.onClose.call(this);
|
891
|
+
}
|
892
|
+
}
|
893
|
+
},
|
894
|
+
|
895
|
+
/**
|
896
|
+
* GAME OVER
|
897
|
+
*/
|
898
|
+
destroy: function()
|
899
|
+
{
|
900
|
+
this.hide();
|
901
|
+
removeEvent(this.el, 'mousedown', this._onMouseDown, true);
|
902
|
+
removeEvent(this.el, 'change', this._onChange);
|
903
|
+
if (this._o.field) {
|
904
|
+
removeEvent(this._o.field, 'change', this._onInputChange);
|
905
|
+
if (this._o.bound) {
|
906
|
+
removeEvent(this._o.trigger, 'click', this._onInputClick);
|
907
|
+
removeEvent(this._o.trigger, 'focus', this._onInputFocus);
|
908
|
+
removeEvent(this._o.trigger, 'blur', this._onInputBlur);
|
909
|
+
}
|
910
|
+
}
|
911
|
+
if (this.el.parentNode) {
|
912
|
+
this.el.parentNode.removeChild(this.el);
|
913
|
+
}
|
914
|
+
}
|
915
|
+
|
916
|
+
};
|
917
|
+
|
918
|
+
return Pikaday;
|
919
|
+
|
920
|
+
}));
|