diff --git a/README.md b/README.md index 98f4bf7..d0270e0 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ For various examples, please see here: * [Bar Type Timeline](https://ka215.github.io/jquery.timeline/index.html) * [Point Type Timeline](https://ka215.github.io/jquery.timeline/index2.html) +* [Multi Languages](https://ka215.github.io/jquery.timeline/index3.html) ## Browser Support jQuery.Timeline supports the following browsers: @@ -70,6 +71,7 @@ You can pass options on plugin initialization. For example: $("#myTimeline").timeline({ startDatetime: '2017-05-25', rows: 6, + datetimeFormat: { meta: 'g:i A, D F j, Y' }, rangeAlign: 'center' }); ``` @@ -81,7 +83,7 @@ $("#myTimeline").timeline({ | startDatetime | String | currently | Default set datetime as viewing timetable; format is `"^[-+]d{4}(/\|-)d{2}(/\|-)d{2}\sd{2}:d{2}:d{2}$"` or "**currently**" | | datetimePrefix | String | | The prefix of the date and time notation displayed in the headline | | showHeadline | Boolean | true | Whether to display headline | -| datetimeFormat | Object | `{full:"j M Y", year:"Y", month:"M", day:"D, j M", years:"Y", months:"F", days:"j"}` | Available formats are here: [fn.date.js](https://gist.github.com/ka215/20cbab58e4f7d4e5508a07cff8d64b00) | +| datetimeFormat | Object | `{full:"j M Y", year:"Y", month:"M", day:"D, j M", years:"Y", months:"F", days:"j", meta:"Y/m/d H:i", metato:""}` | Available formats are here: [fn.date.js](https://gist.github.com/ka215/20cbab58e4f7d4e5508a07cff8d64b00); Since version 1.0.3, it's able to define the date format displayed in the meta field of the event detail. In addition, it can be specified as a language JSON file for multilingual support. | | minuteInterval | Integer | 30 | Recommend more than 5 minutes; only if top scale is "days" (Deprecated) | | zerofillYear | Boolean | false | It's outputted at the "0099" if true, the "99" if false | | range | Integer | 3 | The default view range of the timetable starting from the "startDatetime" | @@ -94,6 +96,7 @@ $("#myTimeline").timeline({ | naviIcon | Object | `{left:"jqtl-circle-left", right:"jqtl-circle-right"}` | Define class name | | showPointer | Boolean | true | Whether to display needle pointer on the current datetime | | i18n | Object | (omission) | Define translated text for internationalization of datetime format converted by datetime format. For details, refer to the section on [Internationalization](#Internationalization). | +| langsDir | String | ./langs/ | Since ver.1.0.3, you can specify the path that stores the language files for multilingualization. Please specify by relative path or absolute URL from HTML where js script is loaded. | ## Methods @@ -231,6 +234,55 @@ $("#myTimeline").timeline({ > **Note**: The above is an example of defining translation text in German. +### Multilingualization + +Since version 1.0.3, multilingual support enhanced. By placing any required language files (as the JSON format) on the "langs" folder, the translated text defined in the JSON file is applied according the language setting of the browser. + +```json +{ + "month": { + "Jan": "January", + "Feb": "February", + "Mar": "March", + "Apr": "April", + "May": "May", + "Jun": "June", + "Jul": "July", + "Aug": "August", + "Sep": "September", + "Oct": "October", + "Nov": "November", + "Dec": "December" + }, + "day": { + "Sun": "Sunday", + "Mon": "Monday", + "Tue": "Tuesday", + "Wed": "Wednesday", + "Thu": "Thurseday", + "Fri": "Friday", + "Sat": "Saturday" + }, + "ma": [ + "am", + "pm" + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} +``` + +> **Note**: The above is an "en-US.json" that defined translation text in English. + ## TIPS Some practical TIPS are as follows: diff --git a/dist/langs/de-de.json b/dist/langs/de-de.json new file mode 100644 index 0000000..e0eefe5 --- /dev/null +++ b/dist/langs/de-de.json @@ -0,0 +1,40 @@ +{ + "month": { + "Jan.": "Janvier", + "Fév.": "Février", + "Mars": "Mars", + "Avr.": "Avril", + "Mai": "Mai", + "Juin": "Juin", + "Juillet": "Juillet", + "Août.": "Août", + "Sept.": "Septembre", + "Oct.": "Octobre", + "Nov.": "Novembre", + "Déc.": "Décembre" + }, + "day": { + "Lu": "Lundi", + "Ma": "Mardi", + "Me": "Mercredi", + "Jeudi": "Jeudi", + "Ve": "Vendredi", + "Sa": "Samedi", + "Di": "Dimanche" + }, + "ma": [ + "vorm.", + "nachm." + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} \ No newline at end of file diff --git a/dist/langs/en-US.json b/dist/langs/en-US.json new file mode 100644 index 0000000..eb5677c --- /dev/null +++ b/dist/langs/en-US.json @@ -0,0 +1,40 @@ +{ + "month": { + "Jan": "January", + "Feb": "February", + "Mar": "March", + "Apr": "April", + "May": "May", + "Jun": "June", + "Jul": "July", + "Aug": "August", + "Sep": "September", + "Oct": "October", + "Nov": "November", + "Dec": "December" + }, + "day": { + "Sun": "Sunday", + "Mon": "Monday", + "Tue": "Tuesday", + "Wed": "Wednesday", + "Thu": "Thurseday", + "Fri": "Friday", + "Sat": "Saturday" + }, + "ma": [ + "am", + "pm" + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} \ No newline at end of file diff --git a/dist/langs/ja.json b/dist/langs/ja.json new file mode 100644 index 0000000..9f74673 --- /dev/null +++ b/dist/langs/ja.json @@ -0,0 +1,40 @@ +{ + "month": { + "一月": "睦月", + "二月": "如月", + "三月": "弥生", + "四月": "卯月", + "五月": "皐月", + "六月": "水無月", + "七月": "文月", + "八月": "葉月", + "九月": "長月", + "十月": "神無月", + "十一月": "霜月", + "十二月": "師走" + }, + "day": { + "日": "日曜", + "月": "月曜", + "火": "火曜", + "水": "水曜", + "木": "木曜", + "金": "金曜", + "土": "土曜" + }, + "ma": [ + "午前", + "午後" + ], + "format": { + "full": "Y年m月j日", + "year": "Y年", + "month": "Y年M", + "day": "m月j日(D)", + "years": "Y年", + "months": "F", + "days": "j(D)", + "meta": "Y年m月j日 H:i", + "metato": "" + } +} \ No newline at end of file diff --git a/dist/timeline.min.css b/dist/timeline.min.css index 62e8d64..4b171fd 100644 --- a/dist/timeline.min.css +++ b/dist/timeline.min.css @@ -1,8 +1,8 @@ /*! * jQuery Timeline Plugin * ------------------------ - * Version: 1.0.2 + * Version: 1.0.3 * Coded by: ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT - */@font-face{font-family:jQueryTimeline;src:url(fonts/jQueryTimeline.eot?t4qpol);src:url(fonts/jQueryTimeline.eot?t4qpol#iefix) format("embedded-opentype"),url(fonts/jQueryTimeline.ttf?t4qpol) format("truetype"),url(fonts/jQueryTimeline.woff?t4qpol) format("woff"),url(fonts/jQueryTimeline.svg?t4qpol#jQueryTimeline) format("svg");font-weight:400;font-style:normal}[class*=" jqtl-"],[class^=jqtl-]{font-family:jQueryTimeline!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jqtl-pushpin:before{content:"\ea37"}.jqtl-calendar:before{content:"\ea60"}.jqtl-spinner:before{content:"\eb24"}.jqtl-more:before{content:"\ec5b"}.jqtl-more-horizontal:before{content:"\ec5c"}.jqtl-more-vertical:before{content:"\ec6a"}.jqtl-dot:before{content:"\ec6b"}.jqtl-plus:before{content:"\ed5d"}.jqtl-minus:before{content:"\ed5e"}.jqtl-cross:before{content:"\ed6d"}.jqtl-circle-right:before{content:"\edee"}.jqtl-circle-left:before{content:"\edf2"}.jqtl-circle-fill-right:before{content:"\edf6"}.jqtl-circle-fill-left:before{content:"\edfa"}.jqtl-arrow-down:before{content:"\ee29"}*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box}.timeline-container{position:relative;display:block;visibility:hidden;margin:15px;font-size:1rem;line-height:1.5}.timeline-header{text-align:left}.timeline-headline{margin-top:0;margin-bottom:.5rem;font-family:inherit;font-size:1.3rem;font-weight:500;line-height:1.1;color:inherit}.timeline-from-date,.timeline-to-date{margin-right:.3rem}.timeline-from-date:before{content:"\ea60";font-family:jQueryTimeline!important;margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-to-date:before{content:"\301C";margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-body{position:relative;display:block;margin:0 auto;width:inherit;overflow-x:auto;overflow-y:hidden;text-align:center;z-index:1}.timeline-wrapper{position:relative;display:inline-block;margin:0 1px;width:auto;height:259px}.timeline-wrapper:after,.timeline-wrapper:before{content:"";position:absolute;top:0;width:1px;height:100%}.timeline-wrapper:before{left:0;border-left:1px solid #ddd}.timeline-wrapper:after{right:0;border-right:1px solid #ddd}.timeline-timetable{display:table;position:relative;border-collapse:collapse;border-spacing:0;border-color:#ddd;border-top:1px solid #ddd;border-right:0;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th{border:0}.timeline-timetable>thead>tr>th.scale-major{padding-top:4px;padding-bottom:4px;font-size:100%;color:#555;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-medium{padding-top:0;padding-bottom:4px;font-size:85%;color:#777;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-major:last-child,.timeline-timetable>thead>tr>th.scale-medium:last-child{border-right:0}.timeline-timetable>thead>tr>th.scale-small{padding:0;border-top:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th.scale-small:last-child{border-right:0}.timeline-to-prev{position:absolute;top:-2rem;left:15px;z-index:9}.timeline-to-next{position:absolute;top:-2rem;right:15px;z-index:9}.spacer-cell{display:block;width:29px;min-height:5px}.timeline-events{position:relative;display:block;left:0;width:100%;height:auto;z-index:9}.timeline-container .timeline-events{position:absolute;height:200px}.timeline-node{position:absolute;display:block;margin:6px 0;padding:4px 25px 4px 10px;height:auto;line-height:20px;vertical-align:middle;text-align:left;background-color:#e3d7a3;color:#777e41;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;cursor:pointer;z-index:8;-webkit-transition:all 1s ease 0;transition:all 1s ease 0}.timeline-event-pointer{margin:0;padding:0;line-height:1;text-align:center;background-color:#f0f0f0;border-radius:100%;border:solid 4px #4496d3;background-image:none;background-size:cover;background-repeat:no-repeat;background-position:center center}.timeline-node.timeline-event-pointer.hovered{z-index:99}.timeline-node.timeline-event-pointer.active{-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-node.timeline-text-truncate.active{margin:2px 0 4px;border:solid 1px rgba(61,61,61,.25);-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-node.timeline-text-truncate:after{content:"\ec5c";font-family:jQueryTimeline!important;font-size:14px;position:absolute;right:5px}.timeline-loader{position:absolute;display:inline-block;width:48px;height:48px;margin:0;padding:0;top:50%;left:50%;opacity:.3;-webkit-animation:spin 2.1s linear infinite;animation:spin 2.1s linear infinite}.timeline-loader i{position:absolute;top:0;left:0;font-size:48px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.timeline-line-canvas{position:absolute;display:block;left:0;width:100%;height:200px;z-index:6}.timeline-grids{position:absolute;left:0;height:200px;border-top:1px solid #ddd;z-index:0}.timeline-grids>tbody>tr>td{padding:0;border-top:0;border-right:1px dotted #ddd;border-bottom:0;border-left:0;vertical-align:bottom}.timeline-grids>tbody>tr>td:first-child{border-left:0}.timeline-grids>tbody>tr>td:last{border-right:0}.timeline-needle-pointer{position:absolute;display:block;bottom:7px;width:1px;height:calc(100% - 56px);border-left:2px dotted #e8383d;z-index:19}_::-webkit-full-page-media,_:future,:root .timeline-needle-pointer{bottom:0}.timeline-needle-pointer:before{content:"\ea37";font-family:jQueryTimeline!important;position:absolute;top:-8px;left:-7.5px;font-size:13px;color:#e8383d}.timeline-footer{position:relative;top:50%;width:100%;z-index:5}.timeline-nav{width:inherit}.timeline-to-next-default,.timeline-to-prev-default{width:2rem;height:2rem;line-height:2rem;font-size:2rem;color:rgba(71,71,71,.325);text-decoration:none}.timeline-to-next-default:active,.timeline-to-next-default:focus,.timeline-to-next-default:hover,.timeline-to-prev-default:active,.timeline-to-prev-default:focus,.timeline-to-prev-default:hover{color:rgba(71,71,71,.75);text-decoration:none}.timeline-to-next-custom,.timeline-to-prev-custom{width:2rem;height:2rem;line-height:2rem;vertical-align:middle;text-align:center;border-radius:50%;background-color:rgba(51,51,51,.2);color:#fff;text-decoration:none}.timeline-to-next-custom:active,.timeline-to-next-custom:focus,.timeline-to-next-custom:hover,.timeline-to-prev-custom:active,.timeline-to-prev-custom:focus,.timeline-to-prev-custom:hover{background-color:rgba(51,51,51,.3);color:rgba(255,255,255,.75);text-decoration:none}.timeline-event-view{display:block;margin:0 1em}.timeline-event-header{margin-top:0;margin-bottom:1rem;border-bottom:dotted 1px #a8a8a8}.timeline-event-label{font-family:inherit;font-size:1.75rem;font-weight:500;line-height:1.1;color:inherit}.timeline-event-meta{margin-top:0;margin-bottom:.5rem;font-size:1rem;font-weight:300}.timeline-event-meta:before{content:"\ea60";font-family:jQueryTimeline!important;color:#999;margin-right:.5rem}.timeline-event-date-separator{display:inline-block}.timeline-event-date-separator:after{content:"\301c";color:#777;font-weight:400;margin-left:.5rem;margin-right:.5rem}.timeline-event-body{margin-top:0;margin-bottom:1rem}.timeline-event-footer{margin-top:0;margin-bottom:1rem} \ No newline at end of file + */@font-face{font-family:jQueryTimeline;src:url(fonts/jQueryTimeline.eot?t4qpol);src:url(fonts/jQueryTimeline.eot?t4qpol#iefix) format("embedded-opentype"),url(fonts/jQueryTimeline.ttf?t4qpol) format("truetype"),url(fonts/jQueryTimeline.woff?t4qpol) format("woff"),url(fonts/jQueryTimeline.svg?t4qpol#jQueryTimeline) format("svg");font-weight:400;font-style:normal}[class*=" jqtl-"],[class^=jqtl-]{font-family:jQueryTimeline!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jqtl-pushpin:before{content:"\ea37"}.jqtl-calendar:before{content:"\ea60"}.jqtl-spinner:before{content:"\eb24"}.jqtl-more:before{content:"\ec5b"}.jqtl-more-horizontal:before{content:"\ec5c"}.jqtl-more-vertical:before{content:"\ec6a"}.jqtl-dot:before{content:"\ec6b"}.jqtl-plus:before{content:"\ed5d"}.jqtl-minus:before{content:"\ed5e"}.jqtl-cross:before{content:"\ed6d"}.jqtl-circle-right:before{content:"\edee"}.jqtl-circle-left:before{content:"\edf2"}.jqtl-circle-fill-right:before{content:"\edf6"}.jqtl-circle-fill-left:before{content:"\edfa"}.jqtl-arrow-down:before{content:"\ee29"}*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box}.timeline-container{position:relative;display:block;visibility:hidden;margin:15px;font-size:1rem;line-height:1.5}.timeline-header{text-align:left}.timeline-headline{margin-top:0;margin-bottom:.5rem;font-family:inherit;font-size:1.3rem;font-weight:500;line-height:1.1;color:inherit}.timeline-from-date,.timeline-to-date{margin-right:.3rem}.timeline-from-date:before{content:"\ea60";font-family:jQueryTimeline!important;margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-to-date:before{content:"\301C";margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-body{position:relative;display:block;margin:0 auto;width:inherit;overflow-x:auto;overflow-y:hidden;text-align:center;z-index:1}.timeline-wrapper{position:relative;display:inline-block;margin:0 1px;width:auto;height:259px}.timeline-wrapper:after,.timeline-wrapper:before{content:"";position:absolute;top:0;width:1px;height:100%}.timeline-wrapper:before{left:0;border-left:1px solid #ddd}.timeline-wrapper:after{right:0;border-right:1px solid #ddd}.timeline-timetable{display:table;position:relative;border-collapse:collapse;border-spacing:0;border-color:#ddd;border-top:1px solid #ddd;border-right:0;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th{border:0}.timeline-timetable>thead>tr>th.scale-major{padding-top:4px;padding-bottom:4px;font-size:100%;color:#555;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-medium{padding-top:0;padding-bottom:4px;font-size:85%;color:#777;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-major:last-child,.timeline-timetable>thead>tr>th.scale-medium:last-child{border-right:0}.timeline-timetable>thead>tr>th.scale-small{padding:0;border-top:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th.scale-small:last-child{border-right:0}.timeline-to-prev{position:absolute;top:-2rem;left:15px;z-index:9}.timeline-to-next{position:absolute;top:-2rem;right:15px;z-index:9}.spacer-cell{display:block;width:29px;min-height:5px}.timeline-events{position:relative;display:none;left:0;width:100%;height:auto;z-index:9}.timeline-container .timeline-events{position:absolute;height:200px}.timeline-body .timeline-events{display:block}.timeline-node{position:absolute;display:block;margin:6px 0;padding:4px 25px 4px 10px;height:auto;line-height:20px;vertical-align:middle;text-align:left;background-color:#e3d7a3;color:#777e41;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;cursor:pointer;z-index:8;-webkit-transition:all 1s ease 0;transition:all 1s ease 0}.timeline-event-pointer{margin:0;padding:0;line-height:1;text-align:center;background-color:#f0f0f0;border-radius:100%;border:solid 4px #4496d3;background-image:none;background-size:cover;background-repeat:no-repeat;background-position:center center}.timeline-node.timeline-event-pointer.hovered{z-index:99}.timeline-node.timeline-event-pointer.active{-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-node.timeline-text-truncate.active{margin:2px 0 4px;border:solid 1px rgba(61,61,61,.25);-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-node.timeline-text-truncate:after{content:"\ec5c";font-family:jQueryTimeline!important;font-size:14px;position:absolute;right:5px}.timeline-loader{position:absolute;display:inline-block;width:48px;height:48px;margin:0;padding:0;top:50%;left:50%;opacity:.3;-webkit-animation:spin 2.1s linear infinite;animation:spin 2.1s linear infinite}.timeline-loader i{position:absolute;top:0;left:0;font-size:48px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.timeline-line-canvas{position:absolute;display:block;left:0;width:100%;height:200px;z-index:6}.timeline-grids{position:absolute;left:0;height:200px;border-top:1px solid #ddd;z-index:0}.timeline-grids>tbody>tr>td{padding:0;border-top:0;border-right:1px dotted #ddd;border-bottom:0;border-left:0;vertical-align:bottom}.timeline-grids>tbody>tr>td:first-child{border-left:0}.timeline-grids>tbody>tr>td:last{border-right:0}.timeline-needle-pointer{position:absolute;display:block;bottom:7px;width:1px;height:calc(100% - 56px);border-left:2px dotted #e8383d;z-index:19}_::-webkit-full-page-media,_:future,:root .timeline-needle-pointer{bottom:0}.timeline-needle-pointer:before{content:"\ea37";font-family:jQueryTimeline!important;position:absolute;top:-8px;left:-7.5px;font-size:13px;color:#e8383d}.timeline-footer{position:relative;top:50%;width:100%;z-index:5}.timeline-nav{width:inherit}.timeline-to-next-default,.timeline-to-prev-default{width:2rem;height:2rem;line-height:2rem;font-size:2rem;color:rgba(71,71,71,.325);text-decoration:none}.timeline-to-next-default:active,.timeline-to-next-default:focus,.timeline-to-next-default:hover,.timeline-to-prev-default:active,.timeline-to-prev-default:focus,.timeline-to-prev-default:hover{color:rgba(71,71,71,.75);text-decoration:none}.timeline-to-next-custom,.timeline-to-prev-custom{width:2rem;height:2rem;line-height:2rem;vertical-align:middle;text-align:center;border-radius:50%;background-color:rgba(51,51,51,.2);color:#fff;text-decoration:none}.timeline-to-next-custom:active,.timeline-to-next-custom:focus,.timeline-to-next-custom:hover,.timeline-to-prev-custom:active,.timeline-to-prev-custom:focus,.timeline-to-prev-custom:hover{background-color:rgba(51,51,51,.3);color:rgba(255,255,255,.75);text-decoration:none}.timeline-event-view{display:block;margin:0 1em}.timeline-event-header{margin-top:0;margin-bottom:1rem;border-bottom:dotted 1px #a8a8a8}.timeline-event-label{font-family:inherit;font-size:1.75rem;font-weight:500;line-height:1.1;color:inherit}.timeline-event-meta{margin-top:0;margin-bottom:.5rem;font-size:1rem;font-weight:300}.timeline-event-meta:before{content:"\ea60";font-family:jQueryTimeline!important;color:#999;margin-right:.5rem}.timeline-event-date-separator{display:inline-block}.timeline-event-date-separator:after{content:"\301c";color:#777;font-weight:400;margin-left:.5rem;margin-right:.5rem}.timeline-event-body{margin-top:0;margin-bottom:1rem}.timeline-event-footer{margin-top:0;margin-bottom:1rem} \ No newline at end of file diff --git a/dist/timeline.min.js b/dist/timeline.min.js index 316dccd..08d216c 100644 --- a/dist/timeline.min.js +++ b/dist/timeline.min.js @@ -1,9 +1,9 @@ /*! * jQuery Timeline Plugin * ------------------------ - * Version: 1.0.2 + * Version: 1.0.3 * Author: Ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT */ -!function(e){function t(t){var i,r,n,l=e(t),o=l.data("timeline");n=/-|\/|\s|\:/,r=o.timeline.attr("actual-start-datetime").split(n);var d=new Date(Number(r[0]),Number(r[1])-1,Number(r[2]),Number(r[3]),Number(r[4]),Number(r[5]));Number(r[0])<100&&d.setFullYear(Number(r[0]));var h,u,f=e("
",{addClass:"timeline-header"}),g=e("
",{addClass:"timeline-body"}),p=e("
",{addClass:"timeline-footer"}),v=e("
",{addClass:"timeline-wrapper"}),b=e("",{addClass:"timeline-timetable timeline-scale"}),w=e("
",{addClass:"timeline-events"}),x=e("
",{addClass:"timeline-timetable timeline-grids"}),M=e("
",{addClass:"timeline-needle-pointer"}),D=e("
",{addClass:"timeline-events default-events"}),k=new Date(d),N={years:{medium_scale:"months",medium_cols:12,small_scale:"days",small_cols:Number(o.timeline.attr("min-grid-per"))},months:{medium_scale:"days",medium_cols:new Date(d.getFullYear(),d.getMonth()+1,0).getDate(),small_scale:"hours",small_cols:Number(o.timeline.attr("min-grid-per"))},days:{medium_scale:"hours",medium_cols:24,small_scale:"minutes",small_cols:Number(o.timeline.attr("min-grid-per"))}},F=o.timeline.attr("scale"),Y=N[F].medium_scale,T=N[F].small_scale,C=Number(o.timeline.attr("min-grid-per"))*Number(o.timeline.attr("min-grid-size")),S=[N[F].medium_cols];if(l.hasClass("timeline-container")||l.addClass("timeline-container"),l.find(".timeline-events").length>0&&(l.find(".timeline-events").children().clone().appendTo(D),a(D,o)),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type"))var H=e("",{addClass:"timeline-line-canvas"});if(l.empty(),"years"===o.timeline.attr("scale")?(k.setFullYear(k.getFullYear()+Number(o.timeline.attr("range"))),u=k.getTime(),k.setTime(u-1)):"months"===o.timeline.attr("scale")?(k.setMonth(k.getMonth()+Number(o.timeline.attr("range"))),u=k.getTime(),k.setTime(u-1)):(k.setDate(k.getDate()+Number(o.timeline.attr("range"))),u=k.getTime(),k.setTime(u-1)),"days"===Y&&Number(o.timeline.attr("range"))>1)for(i=1;i'+L+''+z+"",f.append('

'+A+"

")}var O,J,_,E,P="
",W="",G="";for(h=c(S)*N[F].small_cols,o.timeline.attr("total-cols",h),i=0;i',O=new Date(d),F){case"years":O.setFullYear(O.getFullYear()+i),I="",1==o.timeline.attr("zerofill-year")&&(O.getFullYear()<100?I="00":O.getFullYear()<1e3&&(I="0")),_=I+y(o.timeline.attr("datetime-format-years"),O);break;case"months":O.setMonth(O.getMonth()+i),_=y(o.timeline.attr("datetime-format-months"),O);break;case"days":O.setDate(O.getDate()+i),_=y(o.timeline.attr("datetime-format-days"),O)}P+=_+""}for(P+="",i=0;i',W+=_+""}for(W+="",i=0;i';var q="";for(i=0;i';if(q+="",0==o.timeline.attr("show-pointer"))M.css("display","none");else{var X=m(s(!0),o);!1!==X?M.css("left",X+"px"):M.css("display","none")}var B=e("
",{addClass:"timeline-loader",css:{display:"block"}});B.append('Loading...');var U='
',Q=""===o.timeline.attr("navi-icon-left")?"jqtl-circle-left":o.timeline.attr("navi-icon-left"),$=""===o.timeline.attr("navi-icon-right")?"jqtl-circle-right":o.timeline.attr("navi-icon-right");return U+='',U+='',U+="
",b.append("
"+P+W+G+""),x.append(""+q+""),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type")?v.append(b.prop("outerHTML")+w.prop("outerHTML")+H.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")):v.append(b.prop("outerHTML")+w.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")),g.append(v),p.append(U),l.append(f),l.append(g),l.append(p),l.append(B.prop("outerHTML")),l}function i(t){var i=e(t),a=i.data("timeline");x="auto"===a.timeline.attr("timeline-height")||"number"!=typeof a.timeline.attr("timeline-height")?Number(a.timeline.attr("rows"))*Number(a.timeline.attr("row-height")):Number(a.timeline.attr("timeline-height"));var r={width:i.find(".timeline-timetable.timeline-scale").outerWidth(),height:63};i.find(".timeline-wrapper")[0].offsetHeight!=r.height+x&&(i.find(".timeline-wrapper").css("height",r.height+x+"px"),i.find(".timeline-events").css("height",x+"px"),i.find(".timeline-line-canvas").css("height",x+"px").attr("width",r.width).attr("height",x),i.find(".timeline-grids").css("height",x+"px")),a.timeline.attr("min-grid-size",Number(a.timeline.attr("min-grid-size"))<5?30:Number(a.timeline.attr("min-grid-size"))),i.find(".spacer-cell").width()!=a.timeline.attr("min-grid-size")-1&&i.find(".spacer-cell").css("width",a.timeline.attr("min-grid-size")-1+"px");var n=-1*((i.find(".timeline-body").outerHeight()-i.find(".timeline-scale").outerHeight())/2+i.find(".timeline-to-prev").outerHeight());return i.find(".timeline-to-prev").css("top",n+"px"),i.find(".timeline-to-next").css("top",n+"px"),i.find(".timeline-body").scroll(function(){var t=e(this).scrollLeft();t<1?i.find(".timeline-to-prev").hide():t>=r.width-e(this).outerWidth()-2?i.find(".timeline-to-next").hide():(i.find(".timeline-to-prev").show(),i.find(".timeline-to-next").show())}),i}function a(t,i){if(e(t).children().length>0){var a=[],r=[],n=1;e(t).children().each(function(){if(e(this).data("timelineNode")){var t=new Function("return "+e(this).data("timelineNode"))();t.label=e(this).text(),t.eventId&&r.push(Number(t.eventId)),a.push(t)}}),a.length>0&&(n=r.length>0?Math.max.apply(null,r)+1:n,a.forEach(function(e,t,i){e.eventId||(i[t].eventId=n,n++)}),i.timeline.text(JSON.stringify(a)))}return i}function r(t){var i=e(t),a=i.data("timeline"),r=new Function("return "+a.timeline.text())(),l=new Date(d(a.timeline.attr("actual-start-datetime"))),s=new Date(l),m=a.timeline.attr("type"),c=a.timeline.attr("scale"),h=Number(a.timeline.attr("range")),u=Number(a.timeline.attr("row-height")),f=Number(a.timeline.attr("total-cols")),y=Number(a.timeline.attr("min-grid-per")),g=Number(a.timeline.attr("min-grid-size")),p={x:0,y:0,w:0},v=g*f-1;switch(i.find(".timeline-loader").css("display","block"),c){case"years":s.setYear(s.getFullYear()+h);break;case"months":s.setMonth(s.getMonth()+h-1);break;case"days":s.setDate(s.getDate()+h)}i.find(".timeline-events").empty(),r.forEach(function(t){if(t.start){var a,r=new Date(d(t.start)),n=void 0==t.end?new Date(d(t.start)):new Date(d(t.end)),h=y*g;if(o(r,l,s)){switch(c){case"years":p.x=Math.round((r-l)*v/(s-l));break;case"months":p.x=Math.floor((r-l)/864e5*h);break;case"days":p.x=Math.floor((r-l)/36e5*h)}if(p.y=void 0!==t.row?(t.row-1)*u:0,o(n,l,s)){switch(c){case"years":p.w=Math.floor((n-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((n-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((n-l)/36e5*h-p.x)}0==p.w&&(p.w=1)}else switch(c){case"years":p.w=Math.floor((s-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((s-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((s-l)/36e5*h-p.x)}}else if(o(n,l,s))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*u:0,c){case"years":p.w=Math.floor((n-l)/2592e6*h);break;case"months":p.w=Math.floor((n-l)/864e5*h);break;case"days":p.w=Math.floor((n-l)/36e5*h)}else if(o(l,r,n)&&o(s,r,n))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*u:0,c){case"years":p.w=Math.floor((s-l)/2592e6*h);break;case"months":p.w=Math.floor((s-l)/864e5*h);break;case"days":p.w=Math.floor((s-l)/36e5*h)}else p.w=0;if(p.w>0){if("point"===m){var f=t.margin?Number(t.margin):w;f=(f=f<0?0:f)>u/2?u/2-1:f,a=e("
",{addClass:"timeline-node timeline-event-pointer",id:"evt-"+t.eventId,css:{left:p.x-Math.floor(u/2)+f+"px",top:p.y+f+"px",width:u-2*f+"px",height:u-2*f+"px"},title:t.label}),t.bdColor?a.css("border-color",t.bdColor):t.bgColor&&a.css("border-color",t.bgColor),t.image&&a.css("background-image","url("+t.image+")"),t.relation&&e.each(t.relation,function(t,i){-1==e.inArray(t,["before","after","size"])||isNaN(i)?"curve"===t?-1!=e.inArray(i,["lt","rt","lb","rb"])&&a.attr("data-relay-curve",i):a.attr("data-relay-"+t,i):a.attr("data-relay-"+t,Number(i))})}else a=e("
",{addClass:"timeline-node timeline-text-truncate",id:"evt-"+t.eventId,css:{left:p.x+"px",top:p.y+"px",width:p.w+"px"},text:t.label}),t.color&&a.css("color",t.color),p.w1||n.y>1)&&a.lineTo(r.relayStartX,r.relayStartY),a.quadraticCurveTo(r.cpx,r.cpy,r.relayEndX,r.relayEndY)}a.lineTo(t.x,t.y),a.stroke()}}var a,r=t.find(".timeline-node.timeline-event-pointer"),n=t.find(".timeline-line-canvas")[0];n.getContext&&(a=n.getContext("2d"),r.each(function(){var t,r,l,s,o,m,d=void 0==e(this).data("relayLinecolor")?e(this).css("border-left-color"):e(this).data("relayLinecolor"),c=void 0==e(this).data("relayLinesize")?Math.round(g/10):e(this).data("relayLinesize");a.strokeStyle=d,a.lineWidth=c,a.lineJoin="round",a.lineCap="round",s={x:(g-a.lineWidth)/2,y:g/2},o=Math.floor((g-e(this)[0].offsetWidth)/2),t={x:e(this)[0].offsetLeft-o+s.x,y:Math.floor(e(this)[0].offsetTop/g)*g+s.y},console.info([s.x,s.y,o,t.x,t.y]),void 0!=e(this).data("relayBefore")&&(e(this).data("relayBefore")>0?e("#evt-"+e(this).data("relayBefore")).length>0&&(o=Math.floor((g-e("#evt-"+e(this).data("relayBefore"))[0].offsetWidth)/2),r={x:e("#evt-"+e(this).data("relayBefore"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayBefore"))[0].offsetTop/g)*g+s.y}):r={x:0,y:t.y},r&&(m=(r.y-t.y)/g,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(r,t,e(this).data("relayCurve")):i(r,t))),void 0!=e(this).data("relayAfter")&&(e(this).data("relayAfter")>0?e("#evt-"+e(this).data("relayAfter")).length>0&&(o=Math.floor((g-e("#evt-"+e(this).data("relayAfter"))[0].offsetWidth)/2),l={x:e("#evt-"+e(this).data("relayAfter"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayAfter"))[0].offsetTop/g)*g+s.y}):l={x:n.width,y:t.y},l&&(m=(t.y-l.y)/g,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(t,l,e(this).data("relayCurve")):i(t,l)))}))}function l(t){if(0==e(".timeline-event-view").length)return!0;e(".timeline-event-view").empty();var i,a=e("
",{addClass:"timeline-event-header"}),r=e("

",{addClass:"timeline-event-label"}),n=e("
",{addClass:"timeline-event-meta"}),l=e("
",{addClass:"timeline-event-body"}),s=e("
",{addClass:"timeline-event-footer"});return r.text(t.label),i=''+y("Y/m/d H:i",t.start)+"",t.end&&(i+='',i+=''+y("Y/m/d H:i",t.end)+""),a.append(r.prop("outerHTML")+n.append(i).prop("outerHTML")),t.content&&l.html(t.content),e(".timeline-event-view").append(a.prop("outerHTML")+l.prop("outerHTML")+s.prop("outerHTML")),!0}function s(t){var i=new Date;return t&&D().then(function(){i=e("body").data("serverDate"),e.removeData("body","serverDate")},function(){i=new Date}),i}function o(e,t,i){var a=new Date(e).getTime(),r=new Date(t).getTime(),n=new Date(i).getTime();return a-r>=0&&n-a>=0}function m(e,t){e="[object Date]"===Object.prototype.toString.call(e)?e:new Date(d(e));var i,a,r=t.timeline,n=new Date(d(r.attr("actual-start-datetime"))),l=new Date(n),s=r.attr("scale"),m=Number(r.attr("range")),c=Number(r.attr("total-cols")),h=Number(r.attr("min-grid-per")),u=Number(r.attr("min-grid-size")),f=u*c-1,y=h*u;switch(s){case"years":i=(l=new Date(l.setFullYear(l.getFullYear()+m))).getTime(),l.setTime(i-1);break;case"months":i=(l=new Date(l.setMonth(l.getMonth()+m))).getTime(),l.setTime(i-1);break;case"days":i=(l=new Date(l.setDate(l.getDate()+m))).getTime(),l.setTime(i-1)}if(o(e,n,l)){switch(s){case"years":a=Math.round((e-n)*f/(l-n));break;case"months":a=Math.floor((e-n)/864e5*y);break;case"days":a=Math.floor((e-n)/36e5*y)}return a}return!1}function d(e){return e.replace(/-/g,"/")}function c(e){return e.reduce(function(e,t){return e+t})}function h(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(e[i]);return t}function u(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(i);return t}function f(e,t){var i=function(e,t){return Array(e+1).join(t)}(t-1,"0");return String(e).length==t?e:(i+e).substr(-1*e)}function y(e,t){e=e||"";var i="[object Date]"===Object.prototype.toString.call(t)?t:new Date(d(t)),a=p,r=v,n=b,l=e.split(""),s="",o=!1,m=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,1);return t.setTime(t.getTime()-1),t.getDate()},c=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t<12;t++)i.setMonth(t),a+=m(i);return 365===a?0:1},y=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t12?t-12:t},w=function(e){return e.getHours()>12?n[1]:n[0]};return""===e?i:(l.forEach(function(e,t){var n,d,p,v;if(!1!==o)return o=!1,!0;switch(e){case"Y":case"o":n=i.getFullYear();break;case"y":n=(""+i.getFullYear()).slice(-2);break;case"m":n=("0"+(i.getMonth()+1)).slice(-2);break;case"n":n=i.getMonth()+1;break;case"F":n=h(a)[i.getMonth()];break;case"M":n=u(a)[i.getMonth()];break;case"d":n=("0"+i.getDate()).slice(-2);break;case"j":n=i.getDate();break;case"S":n=["st","nd","rd","th"][function(){var e=i.getDate();return 1==e||2==e||3==e||21==e||22==e||23==e||31==e?Number((""+e).slice(-1)-1):3}()];break;case"w":case"W":n=i.getDay();break;case"l":n=h(r)[i.getDay()];break;case"D":n=u(r)[i.getDay()];break;case"N":n=0===i.getDay()?7:i.getDay();break;case"a":n=w(i);break;case"A":n=w(i).toUpperCase();break;case"g":n=g(i);break;case"h":n=("0"+g(i)).slice(-2);break;case"G":n=i.getHours();break;case"H":n=("0"+i.getHours()).slice(-2);break;case"i":n=("0"+i.getMinutes()).slice(-2);break;case"s":n=("0"+i.getSeconds()).slice(-2);break;case"z":n=y(i);break;case"t":n=m(i);break;case"L":n=c(i);break;case"c":d=i.getTimezoneOffset(),p=[Math.floor(Math.abs(d)/60),Math.abs(d)%60],v=d<0?"+":"-",n=i.getFullYear()+"-"+f(i.getMonth()+1,2)+"-"+f(i.getDate(),2)+"T",n+=f(i.getHours(),2)+":"+f(i.getMinutes(),2)+":"+f(i.getSeconds(),2),n+=v+f(p[0],2)+":"+f(p[1],2);break;case"r":d=i.getTimezoneOffset(),p=[Math.floor(Math.abs(d)/60),Math.abs(d)%60],v=d<0?"+":"-",n=u(r)[i.getDay()]+", "+i.getDate()+" "+u(a)[i.getMonth()]+" "+i.getFullYear()+" ",n+=f(i.getHours(),2)+":"+f(i.getMinutes(),2)+":"+f(i.getSeconds(),2)+" ",n+=v+f(p[0],2)+f(p[1],2);break;case"u":n=i.getTime();break;case"U":n=Date.parse(i)/1e3;break;case"\\":o=!0,n=l[t+1];break;default:n=e}s+=n}),s)}var g,p,v,b,w=2,x=0,M={init:function(a){var n=e.extend({type:"bar",scale:"days",startDatetime:"currently",datetimePrefix:"",showHeadline:!0,datetimeFormat:{full:"j M Y",year:"Y",month:"M Y",day:"D, j M",years:"Y",months:"F",days:"j"},minuteInterval:30,zerofillYear:!1,range:3,rows:5,rowHeight:40,height:"auto",minGridPer:2,minGridSize:30,rangeAlign:"current",naviIcon:{left:"jqtl-circle-left",right:"jqtl-circle-right"},showPointer:!0,i18n:{month:{Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},day:{Sun:"Sunday",Mon:"Monday",Tue:"Tuesday",Wed:"Wednesday",Thu:"Thurseday",Fri:"Friday",Sat:"Saturday"},ma:["am","pm"]}},a);return this.each(function(){var a=e(this),l=a.data("timeline"),o=e("
",{title:a.find(".timeline-headline").text(),type:n.type,scale:n.scale,"start-datetime":n.startDatetime,"datetime-prefix":n.datetimePrefix,"show-headline":n.showHeadline?1:0,"datetime-format-full":n.datetimeFormat.full||"j M Y","datetime-format-year":n.datetimeFormat.year||"Y","datetime-format-month":n.datetimeFormat.month||"M Y","datetime-format-day":n.datetimeFormat.day||"D, j M","datetime-format-years":n.datetimeFormat.years||"Y","datetime-format-months":n.datetimeFormat.months||"F","datetime-format-days":n.datetimeFormat.days||"j","minute-interval":n.minuteInterval,"zerofill-year":n.zerofillYear?1:0,range:n.range,rows:n.rows,"row-height":n.rowHeight,"timeline-height":n.height,"min-grid-per":n.minGridPer,"min-grid-size":n.minGridSize,"range-align":n.rangeAlign,"navi-icon-left":n.naviIcon.left||"jqtl-circle-left","navi-icon-right":n.naviIcon.right||"jqtl-circle-right","show-pointer":n.showPointer?1:0,"i18n-month":JSON.stringify(n.i18n.month),"i18n-day":JSON.stringify(n.i18n.day),"i18n-ma":JSON.stringify(n.i18n.ma),text:""});if(a.on("click.timeline",".timeline-to-prev",M.dateback),a.on("click.timeline",".timeline-to-next",M.dateforth),a.on("click.timeline",".timeline-node",M.openEvent),a.on("align.timeline",M.alignment),!l){a.data("timeline",{target:a,timeline:o}),g=n.rowHeight,p=n.i18n.month,v=n.i18n.day,b=n.i18n.ma;var m,c,h,u;switch("currently"===n.startDatetime?m=s(!0):(m=new Date(d(n.startDatetime)),u=/-|\//,h=n.startDatetime.split(u),Number(h[0])<100&&m.setFullYear(Number(h[0]))),n.scale){case"years":c=m.getFullYear()+"/01/01 00:00:00";break;case"months":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/01 00:00:00";break;case"days":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" 00:00:00";break;default:c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" "+c.getHours()+":00:00"}a.data("timeline").timeline.attr("actual-start-datetime",c),t(a),i(a),a.trigger("align.timeline",[n.rangeAlign]),a.css("visibility","visible")}r(a)})},destroy:function(){return this.each(function(){var t=e(this),i=t.data("timeline");e(window).off(".timeline"),i&&(i.timeline.remove(),t.removeData("timeline"))})},render:function(a){return this.each(function(){var n=e(this),l=n.data("timeline");"type"in a&&l.timeline.attr("type",a.type),"scale"in a&&l.timeline.attr("scale",a.scale),"startDatetime"in a&&l.timeline.attr("start-datetime",a.startDatetime),"datetimePrefix"in a&&l.timeline.attr("datetime-prefix",a.datetimePrefix),"showHeadline"in a&&l.timeline.attr("show-headline",a.showHeadline?1:0),"datetimeFormat"in a&&(void 0!=typeof a.datetimeFormat.full&&l.timeline.attr("datetime-format-full",a.datetimeFormat.full),void 0!=typeof a.datetimeFormat.year&&l.timeline.attr("datetime-format-year",a.datetimeFormat.year),void 0!=typeof a.datetimeFormat.month&&l.timeline.attr("datetime-format-month",a.datetimeFormat.month),void 0!=typeof a.datetimeFormat.day&&l.timeline.attr("datetime-format-day",a.datetimeFormat.day),void 0!=typeof a.datetimeFormat.years&&l.timeline.attr("datetime-format-years",a.datetimeFormat.years),void 0!=typeof a.datetimeFormat.months&&l.timeline.attr("datetime-format-months",a.datetimeFormat.months),void 0!=typeof a.datetimeFormat.days&&l.timeline.attr("datetime-format-days",a.datetimeFormat.days)),"minuteInterval"in a&&l.timeline.attr("minute-interval",a.minuteInterval),"zerofillYear"in a&&l.timeline.attr("zerofill-year",a.zerofillYear?1:0),"range"in a&&l.timeline.attr("range",a.range),"rows"in a&&l.timeline.attr("rows",a.rows),"rowHeight"in a&&l.timeline.attr("row-height",a.rowHeight),"height"in a&&l.timeline.attr("timeline-height",a.height),"minGridPer"in a&&l.timeline.attr("min-grid-per",a.minGridPer),"minGridSize"in a&&l.timeline.attr("min-grid-size",a.minGridSize),"rangeAlign"in a&&l.timeline.attr("range-align",a.rangeAlign),"naviIcon"in a&&(void 0!=typeof a.naviIcon.left&&l.timeline.attr("navi-icon-left",a.naviIcon.left),void 0!=typeof a.naviIcon.right&&l.timeline.attr("navi-icon-right",a.naviIcon.right)),"showPointer"in a&&l.timeline.attr("show-pointer",a.showPointer?1:0),"i18n"in a&&(void 0!=typeof a.i18n.month&&l.timeline.attr("i18n-month",JSON.stringify(a.i18n.month)),void 0!=typeof a.i18n.day&&l.timeline.attr("i18n-day",JSON.stringify(a.i18n.day)),void 0!=typeof a.i18n.ma&&l.timeline.attr("i18n-ma",JSON.stringify(a.i18n.ma)));var o,m,c,h;switch("currently"===l.timeline.attr("start-datetime")?o=s(!0):(o=new Date(d(l.timeline.attr("start-datetime"))),h=/-|\//,c=l.timeline.attr("start-datetime").split(h),Number(c[0])<100&&o.setFullYear(Number(c[0]))),l.timeline.attr("scale")){case"years":m=o.getFullYear()+"/01/01 00:00:00";break;case"months":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/01 00:00:00";break;case"days":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" 00:00:00";break;default:m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" "+m.getHours()+":00:00"}l.timeline.attr("actual-start-datetime",m),n.find(".timeline-container").empty().removeClass("timeline-container"),t(n),i(n),r(n),n.trigger("align.timeline",[l.timeline.attr("range-align")])})},show:function(){return this.each(function(){e(this).css("display","block").css("visibility","visible")})},hide:function(){return this.each(function(){e(this).css("visibility","hidden").css("display","none")})},initialized:function(t){return this.each(function(){var i=e(this),a=i.data("timeline");a&&"function"==typeof t&&t(i,a)})},dateback:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=l/r>1?l-r:l-(n-r)/Number(a.timeline.attr("range")))<0?0:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},dateforth:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=(n-l)/r>1?l+r:l+(n-r)/Number(a.timeline.attr("range")))>n-r+1?n-r+1:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},alignment:function(){var t=arguments.length>1?Array.prototype.slice.call(arguments,1):[arguments[0]],i=t[0].toLowerCase(),a=void 0!==t[1]?String(t[1]).toLowerCase():0,r=e(this).find(".timeline-body")[0].clientWidth,n=e(this).find(".timeline-wrapper")[0].scrollWidth,l=0;if(n>r){var o,c=e(this).data("timeline");switch(i){case"left":l=0;break;case"right":l=n-r+1;break;case"center":l=(n-r)/2;break;case"current":l=(o=m(s(!0),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;case"latest":var h,u,f,g=new Function("return "+c.timeline.text())();e.each(g,function(e,t){u=y("U",t.start),0==e?(h=u,f=e):u>=h&&(h=u,f=e)}),l=(o=m(new Date(d(g[f].start)),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;default:l=0;var p="#"+i;e(p).length&&(l=(o=e(p).position().left)-r/2>n-r+1?n-r+1:o-r/2)}-1!=e.inArray(a,["slow","normal","fast"])||Number(a)>0?e(this).find(".timeline-body").animate({scrollLeft:l},a):e(this).find(".timeline-body").scrollLeft(l)}return this},getOptions:function(){var t=e(this).data("timeline");return{title:t.timeline.attr("title"),type:t.timeline.attr("type"),scale:t.timeline.attr("scale"),startDatetime:t.timeline.attr("start-datetime"),datetimePrefix:t.timeline.attr("datetime-prefix"),showHeadline:1==Number(t.timeline.attr("show-headline")),datetimeFormat:{full:t.timeline.attr("datetime-format-full"),year:t.timeline.attr("datetime-format-year"),month:t.timeline.attr("datetime-format-month"),day:t.timeline.attr("datetime-format-day"),years:t.timeline.attr("datetime-format-years"),months:t.timeline.attr("datetime-format-months"),days:t.timeline.attr("datetime-format-days")},minuteInterval:Number(t.timeline.attr("minute-interval")),zerofillYear:1==Number(t.timeline.attr("zerofill-year")),range:Number(t.timeline.attr("range")),rows:Number(t.timeline.attr("rows")),rowHeight:Number(t.timeline.attr("row-height")),height:"auto"===t.timeline.attr("timeline-height")?"auto":Number(t.timeline.attr("timeline-height")),minGridPer:Number(t.timeline.attr("min-grid-per")),minGridSize:Number(t.timeline.attr("min-grid-size")),rangeAlign:t.timeline.attr("range-align"),naviIcon:{left:t.timeline.attr("navi-icon-left"),right:t.timeline.attr("navi-icon-right")},showPointer:t.timeline.attr("show-pointer"),i18n:{month:JSON.parse(t.timeline.attr("i18n-month")),day:JSON.parse(t.timeline.attr("i18n-day")),ma:JSON.parse(t.timeline.attr("i18n-ma"))},events:new Function("return "+t.timeline.text())()}},addEvent:function(t,i){return this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())(),s=1,o=[s];t.length>0&&(e.each(l,function(e,t){o.push(Number(t.eventId))}),s=Math.max.apply(null,o)+1,e.each(t,function(e,t){t.eventId=s,s++,l.push(t)}),n.timeline.text(JSON.stringify(l))),r(a),e(this).trigger("align.timeline",["evt-"+(s-1),"fast"]),n&&"function"==typeof i&&i(a,n)})},removeEvent:function(){var t,i;return 0==arguments.length?(t="all",i=null):1==arguments.length?"function"==typeof arguments[0]?(t="all",i=arguments[0]):(t=arguments[0],i=null):(t=arguments[0],i=arguments[1]),this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())();if("all"===t)l=[];else{var s=[];e.each(l,function(i,a){-1==e.inArray(a.eventId,t)&&s.push(a)}),l=s}n.timeline.text(JSON.stringify(l)),r(a),n&&"function"==typeof i&&i(a,n)})},updateEvent:function(t,i){return void 0!==t&&this.each(function(){var a,n=e(this),l=n.data("timeline"),s=new Function("return "+l.timeline.text())(),o=[];t.length>0&&e.each(t,function(e,t){o.push(t.eventId)}),s.length>0&&o.length>0&&(e.each(s,function(i,r){if(-1!=e.inArray(r.eventId,o)){var n;e.each(t,function(e,t){if(t.eventId==r.eventId)return n=t,a=t.eventId,!1}),s[i]=n}}),l.timeline.text(JSON.stringify(s))),r(n),e(this).trigger("align.timeline",["evt-"+a,"fast"]),l&&"function"==typeof i&&i(n,l)})},openEvent:function(t){var i=Number(e(t.target).attr("id").replace("evt-","")),a=t.delegateTarget;return""!==i&&0!=i&&e(a).each(function(){var t,a=e(this).data("timeline"),r=new Function("return "+a.timeline.text())();e.each(r,function(e,a){if(a.eventId==i)return t=a,!1}),e(this).find(".timeline-node").each(function(){e(this).attr("id")==="evt-"+i?e(this).addClass("active"):e(this).removeClass("active")}),e(this).trigger("align.timeline",["evt-"+i,"fast"]),l(t)&&t.callback&&Function.call(null,"return "+t.callback)()})}};e.fn.timeline=function(t){return M[t]?M[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.timeline."):M.init.apply(this,arguments)};var D=function(){return e.ajax({type:"GET"}).done(function(t,i,a){e("body").data("serverDate",new Date(d(a.getResponseHeader("Date"))))}).promise()}}(jQuery); \ No newline at end of file +!function(e){function t(t){var i,r,n,l=e(t),o=l.data("timeline");n=/-|\/|\s|\:/,r=o.timeline.attr("actual-start-datetime").split(n);var d=new Date(Number(r[0]),Number(r[1])-1,Number(r[2]),Number(r[3]),Number(r[4]),Number(r[5]));Number(r[0])<100&&d.setFullYear(Number(r[0]));var h,f,u=e("
",{addClass:"timeline-header"}),y=e("
",{addClass:"timeline-body"}),p=e("
",{addClass:"timeline-footer"}),v=e("
",{addClass:"timeline-wrapper"}),b=e("

",{addClass:"timeline-timetable timeline-scale"}),w=e("
",{addClass:"timeline-events"}),x=e("
",{addClass:"timeline-timetable timeline-grids"}),M=e("
",{addClass:"timeline-needle-pointer"}),D=e("
",{addClass:"timeline-events default-events"}),N=new Date(d),F={years:{medium_scale:"months",medium_cols:12,small_scale:"days",small_cols:Number(o.timeline.attr("min-grid-per"))},months:{medium_scale:"days",medium_cols:new Date(d.getFullYear(),d.getMonth()+1,0).getDate(),small_scale:"hours",small_cols:Number(o.timeline.attr("min-grid-per"))},days:{medium_scale:"hours",medium_cols:24,small_scale:"minutes",small_cols:Number(o.timeline.attr("min-grid-per"))}},k=o.timeline.attr("scale"),Y=F[k].medium_scale,T=F[k].small_scale,S=Number(o.timeline.attr("min-grid-per"))*Number(o.timeline.attr("min-grid-size")),C=[F[k].medium_cols];if(l.hasClass("timeline-container")||l.addClass("timeline-container"),l.find(".timeline-events").length>0&&(l.find(".timeline-events").children().clone().appendTo(D),a(D,o)),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type"))var H=e("",{addClass:"timeline-line-canvas"});if(l.empty(),"years"===o.timeline.attr("scale")?(N.setFullYear(N.getFullYear()+Number(o.timeline.attr("range"))),f=N.getTime(),N.setTime(f-1)):"months"===o.timeline.attr("scale")?(N.setMonth(N.getMonth()+Number(o.timeline.attr("range"))),f=N.getTime(),N.setTime(f-1)):(N.setDate(N.getDate()+Number(o.timeline.attr("range"))),f=N.getTime(),N.setTime(f-1)),"days"===Y&&Number(o.timeline.attr("range"))>1)for(i=1;i'+L+''+j+"",u.append('

'+O+"

")}var A,J,_,E,P="
",W="",G="";for(h=c(C)*F[k].small_cols,o.timeline.attr("total-cols",h),i=0;i',A=new Date(d),k){case"years":A.setFullYear(A.getFullYear()+i),z="",1==o.timeline.attr("zerofill-year")&&(A.getFullYear()<100?z="00":A.getFullYear()<1e3&&(z="0")),_=z+g(o.timeline.attr("datetime-format-years"),A);break;case"months":A.setMonth(A.getMonth()+i),_=g(o.timeline.attr("datetime-format-months"),A);break;case"days":A.setDate(A.getDate()+i),_=g(o.timeline.attr("datetime-format-days"),A)}P+=_+""}for(P+="",i=0;i',W+=_+""}for(W+="",i=0;i';var q="";for(i=0;i';if(q+="",0==o.timeline.attr("show-pointer"))M.css("display","none");else{var X=m(s(!0),o);!1!==X?M.css("left",X+"px"):M.css("display","none")}var B=e("
",{addClass:"timeline-loader",css:{display:"block"}});B.append('Loading...');var U='
',Q=""===o.timeline.attr("navi-icon-left")?"jqtl-circle-left":o.timeline.attr("navi-icon-left"),$=""===o.timeline.attr("navi-icon-right")?"jqtl-circle-right":o.timeline.attr("navi-icon-right");return U+='',U+='',U+="
",b.append("
"+P+W+G+""),x.append(""+q+""),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type")?v.append(b.prop("outerHTML")+w.prop("outerHTML")+H.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")):v.append(b.prop("outerHTML")+w.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")),y.append(v),p.append(U),l.append(u),l.append(y),l.append(p),l.append(B.prop("outerHTML")),l}function i(t){var i=e(t),a=i.data("timeline");b="auto"===a.timeline.attr("timeline-height")||"number"!=typeof a.timeline.attr("timeline-height")?Number(a.timeline.attr("rows"))*Number(a.timeline.attr("row-height")):Number(a.timeline.attr("timeline-height"));var r={width:i.find(".timeline-timetable.timeline-scale").outerWidth(),height:63};i.find(".timeline-wrapper")[0].offsetHeight!=r.height+b&&(i.find(".timeline-wrapper").css("height",r.height+b+"px"),i.find(".timeline-events").css("height",b+"px"),i.find(".timeline-line-canvas").css("height",b+"px").attr("width",r.width).attr("height",b),i.find(".timeline-grids").css("height",b+"px")),a.timeline.attr("min-grid-size",Number(a.timeline.attr("min-grid-size"))<5?30:Number(a.timeline.attr("min-grid-size"))),i.find(".spacer-cell").width()!=a.timeline.attr("min-grid-size")-1&&i.find(".spacer-cell").css("width",a.timeline.attr("min-grid-size")-1+"px");var n=-1*((i.find(".timeline-body").outerHeight()-i.find(".timeline-scale").outerHeight())/2+i.find(".timeline-to-prev").outerHeight());return i.find(".timeline-to-prev").css("top",n+"px"),i.find(".timeline-to-next").css("top",n+"px"),i.find(".timeline-body").scroll(function(){var t=e(this).scrollLeft();t<1?i.find(".timeline-to-prev").hide():t>=r.width-e(this).outerWidth()-2?i.find(".timeline-to-next").hide():(i.find(".timeline-to-prev").show(),i.find(".timeline-to-next").show())}),i}function a(t,i){if(e(t).children().length>0){var a=[],r=[],n=1;e(t).children().each(function(){if(e(this).data("timelineNode")){var t=new Function("return "+e(this).data("timelineNode"))();t.label=e(this).text(),t.eventId&&r.push(Number(t.eventId)),a.push(t)}}),a.length>0&&(n=r.length>0?Math.max.apply(null,r)+1:n,a.forEach(function(e,t,i){e.eventId||(i[t].eventId=n,n++)}),i.timeline.text(JSON.stringify(a)))}return i}function r(t){var i=e(t),a=i.data("timeline"),r=new Function("return "+a.timeline.text())(),l=new Date(d(a.timeline.attr("actual-start-datetime"))),s=new Date(l),m=a.timeline.attr("type"),c=a.timeline.attr("scale"),h=Number(a.timeline.attr("range")),f=Number(a.timeline.attr("row-height")),u=Number(a.timeline.attr("total-cols")),g=Number(a.timeline.attr("min-grid-per")),y=Number(a.timeline.attr("min-grid-size")),p={x:0,y:0,w:0},b=y*u-1;switch(i.find(".timeline-loader").css("display","block"),c){case"years":s.setYear(s.getFullYear()+h);break;case"months":s.setMonth(s.getMonth()+h-1);break;case"days":s.setDate(s.getDate()+h)}i.find(".timeline-events").empty(),r.forEach(function(t){if(t.start){var a,r=new Date(d(t.start)),n=void 0==t.end?new Date(d(t.start)):new Date(d(t.end)),h=g*y;if(o(r,l,s)){switch(c){case"years":p.x=Math.round((r-l)*b/(s-l));break;case"months":p.x=Math.floor((r-l)/864e5*h);break;case"days":p.x=Math.floor((r-l)/36e5*h)}if(p.y=void 0!==t.row?(t.row-1)*f:0,o(n,l,s)){switch(c){case"years":p.w=Math.floor((n-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((n-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((n-l)/36e5*h-p.x)}0==p.w&&(p.w=1)}else switch(c){case"years":p.w=Math.floor((s-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((s-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((s-l)/36e5*h-p.x)}}else if(o(n,l,s))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*f:0,c){case"years":p.w=Math.floor((n-l)/2592e6*h);break;case"months":p.w=Math.floor((n-l)/864e5*h);break;case"days":p.w=Math.floor((n-l)/36e5*h)}else if(o(l,r,n)&&o(s,r,n))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*f:0,c){case"years":p.w=Math.floor((s-l)/2592e6*h);break;case"months":p.w=Math.floor((s-l)/864e5*h);break;case"days":p.w=Math.floor((s-l)/36e5*h)}else p.w=0;if(p.w>0){if("point"===m){var u=t.margin?Number(t.margin):v;u=(u=u<0?0:u)>f/2?f/2-1:u,a=e("
",{addClass:"timeline-node timeline-event-pointer",id:"evt-"+t.eventId,css:{left:p.x-Math.floor(f/2)+u+"px",top:p.y+u+"px",width:f-2*u+"px",height:f-2*u+"px"},title:t.label}),t.bdColor?a.css("border-color",t.bdColor):t.bgColor&&a.css("border-color",t.bgColor),t.image&&a.css("background-image","url("+t.image+")"),t.relation&&e.each(t.relation,function(t,i){-1==e.inArray(t,["before","after","size"])||isNaN(i)?"curve"===t?-1!=e.inArray(i,["lt","rt","lb","rb"])&&a.attr("data-relay-curve",i):a.attr("data-relay-"+t,i):a.attr("data-relay-"+t,Number(i))})}else a=e("
",{addClass:"timeline-node timeline-text-truncate",id:"evt-"+t.eventId,css:{left:p.x+"px",top:p.y+"px",width:p.w+"px"},text:t.label}),t.color&&a.css("color",t.color),p.w1||n.y>1)&&a.lineTo(r.relayStartX,r.relayStartY),a.quadraticCurveTo(r.cpx,r.cpy,r.relayEndX,r.relayEndY)}a.lineTo(t.x,t.y),a.stroke()}}var a,r=t.find(".timeline-node.timeline-event-pointer"),n=t.find(".timeline-line-canvas")[0];n.getContext&&(a=n.getContext("2d"),r.each(function(){var t,r,l,s,o,m,d=void 0==e(this).data("relayLinecolor")?e(this).css("border-left-color"):e(this).data("relayLinecolor"),c=void 0==e(this).data("relayLinesize")?Math.round(p/10):e(this).data("relayLinesize");a.strokeStyle=d,a.lineWidth=c,a.lineJoin="round",a.lineCap="round",s={x:(p-a.lineWidth)/2,y:p/2},o=Math.floor((p-e(this)[0].offsetWidth)/2),t={x:e(this)[0].offsetLeft-o+s.x,y:Math.floor(e(this)[0].offsetTop/p)*p+s.y},void 0!=e(this).data("relayBefore")&&(e(this).data("relayBefore")>0?e("#evt-"+e(this).data("relayBefore")).length>0&&(o=Math.floor((p-e("#evt-"+e(this).data("relayBefore"))[0].offsetWidth)/2),r={x:e("#evt-"+e(this).data("relayBefore"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayBefore"))[0].offsetTop/p)*p+s.y}):r={x:0,y:t.y},r&&(m=(r.y-t.y)/p,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(r,t,e(this).data("relayCurve")):i(r,t))),void 0!=e(this).data("relayAfter")&&(e(this).data("relayAfter")>0?e("#evt-"+e(this).data("relayAfter")).length>0&&(o=Math.floor((p-e("#evt-"+e(this).data("relayAfter"))[0].offsetWidth)/2),l={x:e("#evt-"+e(this).data("relayAfter"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayAfter"))[0].offsetTop/p)*p+s.y}):l={x:n.width,y:t.y},l&&(m=(t.y-l.y)/p,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(t,l,e(this).data("relayCurve")):i(t,l)))}))}function l(t,i){if(0==e(".timeline-event-view").length)return!0;e(".timeline-event-view").empty();var a,r=e("
",{addClass:"timeline-event-header"}),n=e("

",{addClass:"timeline-event-label"}),l=e("
",{addClass:"timeline-event-meta"}),s=e("
",{addClass:"timeline-event-body"}),o=e("
",{addClass:"timeline-event-footer"});return n.text(t.label),""===i.end&&(i.end=i.start),a=''+g(i.start,t.start)+"",t.end&&(a+='',a+=''+g(i.end,t.end)+""),r.append(n.prop("outerHTML")+l.append(a).prop("outerHTML")),t.content&&s.html(t.content),e(".timeline-event-view").append(r.prop("outerHTML")+s.prop("outerHTML")+o.prop("outerHTML")),!0}function s(t){var i=new Date;return t&&x().then(function(){i=e("body").data("serverDate"),e.removeData("body","serverDate")},function(){i=new Date}),i}function o(e,t,i){var a=new Date(e).getTime(),r=new Date(t).getTime(),n=new Date(i).getTime();return a-r>=0&&n-a>=0}function m(e,t){e="[object Date]"===Object.prototype.toString.call(e)?e:new Date(d(e));var i,a,r=t.timeline,n=new Date(d(r.attr("actual-start-datetime"))),l=new Date(n),s=r.attr("scale"),m=Number(r.attr("range")),c=Number(r.attr("total-cols")),h=Number(r.attr("min-grid-per")),f=Number(r.attr("min-grid-size")),u=f*c-1,g=h*f;switch(s){case"years":i=(l=new Date(l.setFullYear(l.getFullYear()+m))).getTime(),l.setTime(i-1);break;case"months":i=(l=new Date(l.setMonth(l.getMonth()+m))).getTime(),l.setTime(i-1);break;case"days":i=(l=new Date(l.setDate(l.getDate()+m))).getTime(),l.setTime(i-1)}if(o(e,n,l)){switch(s){case"years":a=Math.round((e-n)*u/(l-n));break;case"months":a=Math.floor((e-n)/864e5*g);break;case"days":a=Math.floor((e-n)/36e5*g)}return a}return!1}function d(e){return e.replace(/-/g,"/")}function c(e){return e.reduce(function(e,t){return e+t})}function h(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(e[i]);return t}function f(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(i);return t}function u(e,t){var i=function(e,t){return Array(e+1).join(t)}(t-1,"0");return String(e).length==t?e:(i+e).substr(-1*e)}function g(t,i){t=t||"";var a="[object Date]"===Object.prototype.toString.call(i)?i:new Date(d(i)),r={Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},n={Sun:"Sunday",Mon:"Monday",Tue:"Tuesday",Wed:"Wednesday",Thu:"Thurseday",Fri:"Friday",Sat:"Saturday"},l=["am","pm"],s=t.split(""),o="",m=!1,c=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,1);return t.setTime(t.getTime()-1),t.getDate()},g=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t<12;t++)i.setMonth(t),a+=c(i);return 365===a?0:1},y=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t12?t-12:t},v=function(e){return e.getHours()>12?l[1]:l[0]};if(""===t)return a;if(e(".timeline-container").length>0){var b=e(".timeline-container").eq(0).data("timeline").timeline;r=b.attr("i18n-month")?JSON.parse(b.attr("i18n-month")):r,n=b.attr("i18n-day")?JSON.parse(b.attr("i18n-day")):n,l=b.attr("i18n-ma")?JSON.parse(b.attr("i18n-ma")):l}return s.forEach(function(e,t){var i,l,d,b;if(!1!==m)return m=!1,!0;switch(e){case"Y":case"o":i=a.getFullYear();break;case"y":i=(""+a.getFullYear()).slice(-2);break;case"m":i=("0"+(a.getMonth()+1)).slice(-2);break;case"n":i=a.getMonth()+1;break;case"F":i=h(r)[a.getMonth()];break;case"M":i=f(r)[a.getMonth()];break;case"d":i=("0"+a.getDate()).slice(-2);break;case"j":i=a.getDate();break;case"S":i=["st","nd","rd","th"][function(){var e=a.getDate();return 1==e||2==e||3==e||21==e||22==e||23==e||31==e?Number((""+e).slice(-1)-1):3}()];break;case"w":case"W":i=a.getDay();break;case"l":i=h(n)[a.getDay()];break;case"D":i=f(n)[a.getDay()];break;case"N":i=0===a.getDay()?7:a.getDay();break;case"a":i=v(a);break;case"A":i=v(a).toUpperCase();break;case"g":i=p(a);break;case"h":i=("0"+p(a)).slice(-2);break;case"G":i=a.getHours();break;case"H":i=("0"+a.getHours()).slice(-2);break;case"i":i=("0"+a.getMinutes()).slice(-2);break;case"s":i=("0"+a.getSeconds()).slice(-2);break;case"z":i=y(a);break;case"t":i=c(a);break;case"L":i=g(a);break;case"c":l=a.getTimezoneOffset(),d=[Math.floor(Math.abs(l)/60),Math.abs(l)%60],b=l<0?"+":"-",i=a.getFullYear()+"-"+u(a.getMonth()+1,2)+"-"+u(a.getDate(),2)+"T",i+=u(a.getHours(),2)+":"+u(a.getMinutes(),2)+":"+u(a.getSeconds(),2),i+=b+u(d[0],2)+":"+u(d[1],2);break;case"r":l=a.getTimezoneOffset(),d=[Math.floor(Math.abs(l)/60),Math.abs(l)%60],b=l<0?"+":"-",i=f(n)[a.getDay()]+", "+a.getDate()+" "+f(r)[a.getMonth()]+" "+a.getFullYear()+" ",i+=u(a.getHours(),2)+":"+u(a.getMinutes(),2)+":"+u(a.getSeconds(),2)+" ",i+=b+u(d[0],2)+u(d[1],2);break;case"u":i=a.getTime();break;case"U":i=Date.parse(a)/1e3;break;case"\\":m=!0,i=s[t+1];break;default:i=e}o+=i}),o}function y(t){var i=e.Deferred(),a=(t.data("timeline").timeline.attr("langs-dir")||"./langs/")+t[0].lang.toLowerCase()+".json";return e.ajax({url:a,type:"post",dataType:"json"}).done(function(e){i.resolve(e)}).fail(function(){i.reject()}),i.promise()}var p,v=2,b=0,w={init:function(a){var n=e.extend({type:"bar",scale:"days",startDatetime:"currently",datetimePrefix:"",showHeadline:!0,datetimeFormat:{full:"j M Y",year:"Y",month:"M Y",day:"D, j M",years:"Y",months:"F",days:"j",meta:"Y/m/d H:i",metato:""},minuteInterval:30,zerofillYear:!1,range:3,rows:5,rowHeight:40,height:"auto",minGridPer:2,minGridSize:30,rangeAlign:"current",naviIcon:{left:"jqtl-circle-left",right:"jqtl-circle-right"},showPointer:!0,i18n:{},langsDir:"./langs/"},a);return this.each(function(){var a=e(this),l=a.data("timeline"),o=e("
",{title:a.find(".timeline-headline").text(),type:n.type,scale:n.scale,"start-datetime":n.startDatetime,"datetime-prefix":n.datetimePrefix,"show-headline":n.showHeadline?1:0,"datetime-format-full":n.datetimeFormat.full||"j M Y","datetime-format-year":n.datetimeFormat.year||"Y","datetime-format-month":n.datetimeFormat.month||"M Y","datetime-format-day":n.datetimeFormat.day||"D, j M","datetime-format-years":n.datetimeFormat.years||"Y","datetime-format-months":n.datetimeFormat.months||"F","datetime-format-days":n.datetimeFormat.days||"j","datetime-format-meta":n.datetimeFormat.meta||"Y/m/d H:i","datetime-format-metato":n.datetimeFormat.metato||"","minute-interval":n.minuteInterval,"zerofill-year":n.zerofillYear?1:0,range:n.range,rows:n.rows,"row-height":n.rowHeight,"timeline-height":n.height,"min-grid-per":n.minGridPer,"min-grid-size":n.minGridSize,"range-align":n.rangeAlign,"navi-icon-left":n.naviIcon.left||"jqtl-circle-left","navi-icon-right":n.naviIcon.right||"jqtl-circle-right","show-pointer":n.showPointer?1:0,"i18n-month":n.i18n.month?JSON.stringify(n.i18n.month):"","i18n-day":n.i18n.day?JSON.stringify(n.i18n.day):"","i18n-ma":n.i18n.ma?JSON.stringify(n.i18n.ma):"","langs-dir":n.langsDir,text:""});if(a.on("click.timeline",".timeline-to-prev",w.dateback),a.on("click.timeline",".timeline-to-next",w.dateforth),a.on("click.timeline",".timeline-node",w.openEvent),a.on("align.timeline",w.alignment),l)r(a);else{a.data("timeline",{target:a,timeline:o}),p=n.rowHeight;var m,c,h,f;switch("currently"===n.startDatetime?m=s(!0):(m=new Date(d(n.startDatetime)),f=/-|\//,h=n.startDatetime.split(f),Number(h[0])<100&&m.setFullYear(Number(h[0]))),n.scale){case"years":c=m.getFullYear()+"/01/01 00:00:00";break;case"months":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/01 00:00:00";break;case"days":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" 00:00:00";break;default:c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" "+c.getHours()+":00:00"}a.data("timeline").timeline.attr("actual-start-datetime",c),a[0].lang=M(),y(a).done(function(e){if(a.data("timeline").timeline.attr("i18n-month",JSON.stringify(e.month)),a.data("timeline").timeline.attr("i18n-day",JSON.stringify(e.day)),a.data("timeline").timeline.attr("i18n-ma",JSON.stringify(e.ma)),"format"in e)for(var l in e.format)a.data("timeline").timeline.attr("datetime-format-"+l,e.format[l]);t(a),i(a),a.trigger("align.timeline",[n.rangeAlign]),a.css("visibility","visible"),r(a)}).fail(function(){t(a),i(a),a.trigger("align.timeline",[n.rangeAlign]),a.css("visibility","visible"),r(a)})}})},destroy:function(){return this.each(function(){var t=e(this),i=t.data("timeline");e(window).off(".timeline"),i&&(i.timeline.remove(),t.removeData("timeline"))})},render:function(a){return this.each(function(){var n=e(this),l=n.data("timeline");"type"in a&&l.timeline.attr("type",a.type),"scale"in a&&l.timeline.attr("scale",a.scale),"startDatetime"in a&&l.timeline.attr("start-datetime",a.startDatetime),"datetimePrefix"in a&&l.timeline.attr("datetime-prefix",a.datetimePrefix),"showHeadline"in a&&l.timeline.attr("show-headline",a.showHeadline?1:0),"datetimeFormat"in a&&(void 0!=typeof a.datetimeFormat.full&&l.timeline.attr("datetime-format-full",a.datetimeFormat.full),void 0!=typeof a.datetimeFormat.year&&l.timeline.attr("datetime-format-year",a.datetimeFormat.year),void 0!=typeof a.datetimeFormat.month&&l.timeline.attr("datetime-format-month",a.datetimeFormat.month),void 0!=typeof a.datetimeFormat.day&&l.timeline.attr("datetime-format-day",a.datetimeFormat.day),void 0!=typeof a.datetimeFormat.years&&l.timeline.attr("datetime-format-years",a.datetimeFormat.years),void 0!=typeof a.datetimeFormat.months&&l.timeline.attr("datetime-format-months",a.datetimeFormat.months),void 0!=typeof a.datetimeFormat.days&&l.timeline.attr("datetime-format-days",a.datetimeFormat.days),void 0!=typeof a.datetimeFormat.meta&&l.timeline.attr("datetime-format-meta",a.datetimeFormat.meta),void 0!=typeof a.datetimeFormat.metato&&l.timeline.attr("datetime-format-metato",a.datetimeFormat.metato)),"minuteInterval"in a&&l.timeline.attr("minute-interval",a.minuteInterval),"zerofillYear"in a&&l.timeline.attr("zerofill-year",a.zerofillYear?1:0),"range"in a&&l.timeline.attr("range",a.range),"rows"in a&&l.timeline.attr("rows",a.rows),"rowHeight"in a&&l.timeline.attr("row-height",a.rowHeight),"height"in a&&l.timeline.attr("timeline-height",a.height),"minGridPer"in a&&l.timeline.attr("min-grid-per",a.minGridPer),"minGridSize"in a&&l.timeline.attr("min-grid-size",a.minGridSize),"rangeAlign"in a&&l.timeline.attr("range-align",a.rangeAlign),"naviIcon"in a&&(void 0!=typeof a.naviIcon.left&&l.timeline.attr("navi-icon-left",a.naviIcon.left),void 0!=typeof a.naviIcon.right&&l.timeline.attr("navi-icon-right",a.naviIcon.right)),"showPointer"in a&&l.timeline.attr("show-pointer",a.showPointer?1:0),"i18n"in a&&(void 0!=typeof a.i18n.month&&l.timeline.attr("i18n-month",JSON.stringify(a.i18n.month)),void 0!=typeof a.i18n.day&&l.timeline.attr("i18n-day",JSON.stringify(a.i18n.day)),void 0!=typeof a.i18n.ma&&l.timeline.attr("i18n-ma",JSON.stringify(a.i18n.ma)));var o,m,c,h;switch("currently"===l.timeline.attr("start-datetime")?o=s(!0):(o=new Date(d(l.timeline.attr("start-datetime"))),h=/-|\//,c=l.timeline.attr("start-datetime").split(h),Number(c[0])<100&&o.setFullYear(Number(c[0]))),l.timeline.attr("scale")){case"years":m=o.getFullYear()+"/01/01 00:00:00";break;case"months":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/01 00:00:00";break;case"days":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" 00:00:00";break;default:m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" "+m.getHours()+":00:00"}l.timeline.attr("actual-start-datetime",m),n.find(".timeline-container").empty().removeClass("timeline-container"),n[0].lang=M(),y(n).done(function(e){if(l.timeline.attr("i18n-month",JSON.stringify(e.month)),l.timeline.attr("i18n-day",JSON.stringify(e.day)),l.timeline.attr("i18n-ma",JSON.stringify(e.ma)),"format"in e)for(var a in e.format)n.data("timeline").timeline.attr("datetime-format-"+a,e.format[a]);t(n),i(n),r(n),n.trigger("align.timeline",[l.timeline.attr("range-align")])}).fail(function(){t(n),i(n),r(n),n.trigger("align.timeline",[l.timeline.attr("range-align")])})})},show:function(){return this.each(function(){e(this).css("display","block").css("visibility","visible")})},hide:function(){return this.each(function(){e(this).css("visibility","hidden").css("display","none")})},initialized:function(t){return this.each(function(){var i=e(this),a=i.data("timeline");a&&"function"==typeof t&&t(i,a)})},dateback:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=l/r>1?l-r:l-(n-r)/Number(a.timeline.attr("range")))<0?0:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},dateforth:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=(n-l)/r>1?l+r:l+(n-r)/Number(a.timeline.attr("range")))>n-r+1?n-r+1:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},alignment:function(){var t=arguments.length>1?Array.prototype.slice.call(arguments,1):[arguments[0]],i=t[0].toLowerCase(),a=void 0!==t[1]?String(t[1]).toLowerCase():0,r=e(this).find(".timeline-body")[0].clientWidth,n=e(this).find(".timeline-wrapper")[0].scrollWidth,l=0;if(n>r){var o,c=e(this).data("timeline");switch(i){case"left":l=0;break;case"right":l=n-r+1;break;case"center":l=(n-r)/2;break;case"current":l=(o=m(s(!0),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;case"latest":var h,f,u,y=new Function("return "+c.timeline.text())();e.each(y,function(e,t){f=g("U",t.start),0==e?(h=f,u=e):f>=h&&(h=f,u=e)}),l=(o=m(new Date(d(y[u].start)),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;default:l=0;var p="#"+i;e(p).length&&(l=(o=e(p).position().left)-r/2>n-r+1?n-r+1:o-r/2)}-1!=e.inArray(a,["slow","normal","fast"])||Number(a)>0?e(this).find(".timeline-body").animate({scrollLeft:l},a):e(this).find(".timeline-body").scrollLeft(l)}return this},getOptions:function(){var t=e(this).data("timeline");return{title:t.timeline.attr("title"),type:t.timeline.attr("type"),scale:t.timeline.attr("scale"),startDatetime:t.timeline.attr("start-datetime"),datetimePrefix:t.timeline.attr("datetime-prefix"),showHeadline:1==Number(t.timeline.attr("show-headline")),datetimeFormat:{full:t.timeline.attr("datetime-format-full"),year:t.timeline.attr("datetime-format-year"),month:t.timeline.attr("datetime-format-month"),day:t.timeline.attr("datetime-format-day"),years:t.timeline.attr("datetime-format-years"),months:t.timeline.attr("datetime-format-months"),days:t.timeline.attr("datetime-format-days")},minuteInterval:Number(t.timeline.attr("minute-interval")),zerofillYear:1==Number(t.timeline.attr("zerofill-year")),range:Number(t.timeline.attr("range")),rows:Number(t.timeline.attr("rows")),rowHeight:Number(t.timeline.attr("row-height")),height:"auto"===t.timeline.attr("timeline-height")?"auto":Number(t.timeline.attr("timeline-height")),minGridPer:Number(t.timeline.attr("min-grid-per")),minGridSize:Number(t.timeline.attr("min-grid-size")),rangeAlign:t.timeline.attr("range-align"),naviIcon:{left:t.timeline.attr("navi-icon-left"),right:t.timeline.attr("navi-icon-right")},showPointer:t.timeline.attr("show-pointer"),i18n:{month:JSON.parse(t.timeline.attr("i18n-month")),day:JSON.parse(t.timeline.attr("i18n-day")),ma:JSON.parse(t.timeline.attr("i18n-ma"))},events:new Function("return "+t.timeline.text())()}},addEvent:function(t,i){return this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())(),s=1,o=[s];t.length>0&&(e.each(l,function(e,t){o.push(Number(t.eventId))}),s=Math.max.apply(null,o)+1,e.each(t,function(e,t){t.eventId=s,s++,l.push(t)}),n.timeline.text(JSON.stringify(l))),r(a),e(this).trigger("align.timeline",["evt-"+(s-1),"fast"]),n&&"function"==typeof i&&i(a,n)})},removeEvent:function(){var t,i;return 0==arguments.length?(t="all",i=null):1==arguments.length?"function"==typeof arguments[0]?(t="all",i=arguments[0]):(t=arguments[0],i=null):(t=arguments[0],i=arguments[1]),this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())();if("all"===t)l=[];else{var s=[];e.each(l,function(i,a){-1==e.inArray(a.eventId,t)&&s.push(a)}),l=s}n.timeline.text(JSON.stringify(l)),r(a),n&&"function"==typeof i&&i(a,n)})},updateEvent:function(t,i){return void 0!==t&&this.each(function(){var a,n=e(this),l=n.data("timeline"),s=new Function("return "+l.timeline.text())(),o=[];t.length>0&&e.each(t,function(e,t){o.push(t.eventId)}),s.length>0&&o.length>0&&(e.each(s,function(i,r){if(-1!=e.inArray(r.eventId,o)){var n;e.each(t,function(e,t){if(t.eventId==r.eventId)return n=t,a=t.eventId,!1}),s[i]=n}}),l.timeline.text(JSON.stringify(s))),r(n),e(this).trigger("align.timeline",["evt-"+a,"fast"]),l&&"function"==typeof i&&i(n,l)})},openEvent:function(t){var i=Number(e(t.target).attr("id").replace("evt-","")),a=t.delegateTarget;return""!==i&&0!=i&&e(a).each(function(){var t,a=e(this).data("timeline"),r=new Function("return "+a.timeline.text())(),n={start:a.timeline.attr("datetime-format-meta"),end:a.timeline.attr("datetime-format-metato")};e.each(r,function(e,a){if(a.eventId==i)return t=a,!1}),e(this).find(".timeline-node").each(function(){e(this).attr("id")==="evt-"+i?e(this).addClass("active"):e(this).removeClass("active")}),e(this).trigger("align.timeline",["evt-"+i,"fast"]),l(t,n)&&t.callback&&Function.call(null,"return "+t.callback)()})}};e.fn.timeline=function(t){return w[t]?w[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.timeline."):w.init.apply(this,arguments)};var x=function(){return e.ajax({type:"GET"}).done(function(t,i,a){e("body").data("serverDate",new Date(d(a.getResponseHeader("Date"))))}).promise()},M=function(){return navigator.userLanguage||navigator.browserLanguage||navigator.language}}(jQuery); \ No newline at end of file diff --git a/docs/css/timeline.min.css b/docs/css/timeline.min.css index 62e8d64..4b171fd 100644 --- a/docs/css/timeline.min.css +++ b/docs/css/timeline.min.css @@ -1,8 +1,8 @@ /*! * jQuery Timeline Plugin * ------------------------ - * Version: 1.0.2 + * Version: 1.0.3 * Coded by: ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT - */@font-face{font-family:jQueryTimeline;src:url(fonts/jQueryTimeline.eot?t4qpol);src:url(fonts/jQueryTimeline.eot?t4qpol#iefix) format("embedded-opentype"),url(fonts/jQueryTimeline.ttf?t4qpol) format("truetype"),url(fonts/jQueryTimeline.woff?t4qpol) format("woff"),url(fonts/jQueryTimeline.svg?t4qpol#jQueryTimeline) format("svg");font-weight:400;font-style:normal}[class*=" jqtl-"],[class^=jqtl-]{font-family:jQueryTimeline!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jqtl-pushpin:before{content:"\ea37"}.jqtl-calendar:before{content:"\ea60"}.jqtl-spinner:before{content:"\eb24"}.jqtl-more:before{content:"\ec5b"}.jqtl-more-horizontal:before{content:"\ec5c"}.jqtl-more-vertical:before{content:"\ec6a"}.jqtl-dot:before{content:"\ec6b"}.jqtl-plus:before{content:"\ed5d"}.jqtl-minus:before{content:"\ed5e"}.jqtl-cross:before{content:"\ed6d"}.jqtl-circle-right:before{content:"\edee"}.jqtl-circle-left:before{content:"\edf2"}.jqtl-circle-fill-right:before{content:"\edf6"}.jqtl-circle-fill-left:before{content:"\edfa"}.jqtl-arrow-down:before{content:"\ee29"}*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box}.timeline-container{position:relative;display:block;visibility:hidden;margin:15px;font-size:1rem;line-height:1.5}.timeline-header{text-align:left}.timeline-headline{margin-top:0;margin-bottom:.5rem;font-family:inherit;font-size:1.3rem;font-weight:500;line-height:1.1;color:inherit}.timeline-from-date,.timeline-to-date{margin-right:.3rem}.timeline-from-date:before{content:"\ea60";font-family:jQueryTimeline!important;margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-to-date:before{content:"\301C";margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-body{position:relative;display:block;margin:0 auto;width:inherit;overflow-x:auto;overflow-y:hidden;text-align:center;z-index:1}.timeline-wrapper{position:relative;display:inline-block;margin:0 1px;width:auto;height:259px}.timeline-wrapper:after,.timeline-wrapper:before{content:"";position:absolute;top:0;width:1px;height:100%}.timeline-wrapper:before{left:0;border-left:1px solid #ddd}.timeline-wrapper:after{right:0;border-right:1px solid #ddd}.timeline-timetable{display:table;position:relative;border-collapse:collapse;border-spacing:0;border-color:#ddd;border-top:1px solid #ddd;border-right:0;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th{border:0}.timeline-timetable>thead>tr>th.scale-major{padding-top:4px;padding-bottom:4px;font-size:100%;color:#555;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-medium{padding-top:0;padding-bottom:4px;font-size:85%;color:#777;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-major:last-child,.timeline-timetable>thead>tr>th.scale-medium:last-child{border-right:0}.timeline-timetable>thead>tr>th.scale-small{padding:0;border-top:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th.scale-small:last-child{border-right:0}.timeline-to-prev{position:absolute;top:-2rem;left:15px;z-index:9}.timeline-to-next{position:absolute;top:-2rem;right:15px;z-index:9}.spacer-cell{display:block;width:29px;min-height:5px}.timeline-events{position:relative;display:block;left:0;width:100%;height:auto;z-index:9}.timeline-container .timeline-events{position:absolute;height:200px}.timeline-node{position:absolute;display:block;margin:6px 0;padding:4px 25px 4px 10px;height:auto;line-height:20px;vertical-align:middle;text-align:left;background-color:#e3d7a3;color:#777e41;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;cursor:pointer;z-index:8;-webkit-transition:all 1s ease 0;transition:all 1s ease 0}.timeline-event-pointer{margin:0;padding:0;line-height:1;text-align:center;background-color:#f0f0f0;border-radius:100%;border:solid 4px #4496d3;background-image:none;background-size:cover;background-repeat:no-repeat;background-position:center center}.timeline-node.timeline-event-pointer.hovered{z-index:99}.timeline-node.timeline-event-pointer.active{-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-node.timeline-text-truncate.active{margin:2px 0 4px;border:solid 1px rgba(61,61,61,.25);-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-node.timeline-text-truncate:after{content:"\ec5c";font-family:jQueryTimeline!important;font-size:14px;position:absolute;right:5px}.timeline-loader{position:absolute;display:inline-block;width:48px;height:48px;margin:0;padding:0;top:50%;left:50%;opacity:.3;-webkit-animation:spin 2.1s linear infinite;animation:spin 2.1s linear infinite}.timeline-loader i{position:absolute;top:0;left:0;font-size:48px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.timeline-line-canvas{position:absolute;display:block;left:0;width:100%;height:200px;z-index:6}.timeline-grids{position:absolute;left:0;height:200px;border-top:1px solid #ddd;z-index:0}.timeline-grids>tbody>tr>td{padding:0;border-top:0;border-right:1px dotted #ddd;border-bottom:0;border-left:0;vertical-align:bottom}.timeline-grids>tbody>tr>td:first-child{border-left:0}.timeline-grids>tbody>tr>td:last{border-right:0}.timeline-needle-pointer{position:absolute;display:block;bottom:7px;width:1px;height:calc(100% - 56px);border-left:2px dotted #e8383d;z-index:19}_::-webkit-full-page-media,_:future,:root .timeline-needle-pointer{bottom:0}.timeline-needle-pointer:before{content:"\ea37";font-family:jQueryTimeline!important;position:absolute;top:-8px;left:-7.5px;font-size:13px;color:#e8383d}.timeline-footer{position:relative;top:50%;width:100%;z-index:5}.timeline-nav{width:inherit}.timeline-to-next-default,.timeline-to-prev-default{width:2rem;height:2rem;line-height:2rem;font-size:2rem;color:rgba(71,71,71,.325);text-decoration:none}.timeline-to-next-default:active,.timeline-to-next-default:focus,.timeline-to-next-default:hover,.timeline-to-prev-default:active,.timeline-to-prev-default:focus,.timeline-to-prev-default:hover{color:rgba(71,71,71,.75);text-decoration:none}.timeline-to-next-custom,.timeline-to-prev-custom{width:2rem;height:2rem;line-height:2rem;vertical-align:middle;text-align:center;border-radius:50%;background-color:rgba(51,51,51,.2);color:#fff;text-decoration:none}.timeline-to-next-custom:active,.timeline-to-next-custom:focus,.timeline-to-next-custom:hover,.timeline-to-prev-custom:active,.timeline-to-prev-custom:focus,.timeline-to-prev-custom:hover{background-color:rgba(51,51,51,.3);color:rgba(255,255,255,.75);text-decoration:none}.timeline-event-view{display:block;margin:0 1em}.timeline-event-header{margin-top:0;margin-bottom:1rem;border-bottom:dotted 1px #a8a8a8}.timeline-event-label{font-family:inherit;font-size:1.75rem;font-weight:500;line-height:1.1;color:inherit}.timeline-event-meta{margin-top:0;margin-bottom:.5rem;font-size:1rem;font-weight:300}.timeline-event-meta:before{content:"\ea60";font-family:jQueryTimeline!important;color:#999;margin-right:.5rem}.timeline-event-date-separator{display:inline-block}.timeline-event-date-separator:after{content:"\301c";color:#777;font-weight:400;margin-left:.5rem;margin-right:.5rem}.timeline-event-body{margin-top:0;margin-bottom:1rem}.timeline-event-footer{margin-top:0;margin-bottom:1rem} \ No newline at end of file + */@font-face{font-family:jQueryTimeline;src:url(fonts/jQueryTimeline.eot?t4qpol);src:url(fonts/jQueryTimeline.eot?t4qpol#iefix) format("embedded-opentype"),url(fonts/jQueryTimeline.ttf?t4qpol) format("truetype"),url(fonts/jQueryTimeline.woff?t4qpol) format("woff"),url(fonts/jQueryTimeline.svg?t4qpol#jQueryTimeline) format("svg");font-weight:400;font-style:normal}[class*=" jqtl-"],[class^=jqtl-]{font-family:jQueryTimeline!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jqtl-pushpin:before{content:"\ea37"}.jqtl-calendar:before{content:"\ea60"}.jqtl-spinner:before{content:"\eb24"}.jqtl-more:before{content:"\ec5b"}.jqtl-more-horizontal:before{content:"\ec5c"}.jqtl-more-vertical:before{content:"\ec6a"}.jqtl-dot:before{content:"\ec6b"}.jqtl-plus:before{content:"\ed5d"}.jqtl-minus:before{content:"\ed5e"}.jqtl-cross:before{content:"\ed6d"}.jqtl-circle-right:before{content:"\edee"}.jqtl-circle-left:before{content:"\edf2"}.jqtl-circle-fill-right:before{content:"\edf6"}.jqtl-circle-fill-left:before{content:"\edfa"}.jqtl-arrow-down:before{content:"\ee29"}*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box}.timeline-container{position:relative;display:block;visibility:hidden;margin:15px;font-size:1rem;line-height:1.5}.timeline-header{text-align:left}.timeline-headline{margin-top:0;margin-bottom:.5rem;font-family:inherit;font-size:1.3rem;font-weight:500;line-height:1.1;color:inherit}.timeline-from-date,.timeline-to-date{margin-right:.3rem}.timeline-from-date:before{content:"\ea60";font-family:jQueryTimeline!important;margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-to-date:before{content:"\301C";margin-right:.3rem;color:#7f7f7f;font-weight:400}.timeline-body{position:relative;display:block;margin:0 auto;width:inherit;overflow-x:auto;overflow-y:hidden;text-align:center;z-index:1}.timeline-wrapper{position:relative;display:inline-block;margin:0 1px;width:auto;height:259px}.timeline-wrapper:after,.timeline-wrapper:before{content:"";position:absolute;top:0;width:1px;height:100%}.timeline-wrapper:before{left:0;border-left:1px solid #ddd}.timeline-wrapper:after{right:0;border-right:1px solid #ddd}.timeline-timetable{display:table;position:relative;border-collapse:collapse;border-spacing:0;border-color:#ddd;border-top:1px solid #ddd;border-right:0;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th{border:0}.timeline-timetable>thead>tr>th.scale-major{padding-top:4px;padding-bottom:4px;font-size:100%;color:#555;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-medium{padding-top:0;padding-bottom:4px;font-size:85%;color:#777;text-align:center;border-top:0;border-right:1px solid #ddd;border-bottom:0;border-left:0}.timeline-timetable>thead>tr>th.scale-major:last-child,.timeline-timetable>thead>tr>th.scale-medium:last-child{border-right:0}.timeline-timetable>thead>tr>th.scale-small{padding:0;border-top:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:0}.timeline-timetable>thead>tr>th.scale-small:last-child{border-right:0}.timeline-to-prev{position:absolute;top:-2rem;left:15px;z-index:9}.timeline-to-next{position:absolute;top:-2rem;right:15px;z-index:9}.spacer-cell{display:block;width:29px;min-height:5px}.timeline-events{position:relative;display:none;left:0;width:100%;height:auto;z-index:9}.timeline-container .timeline-events{position:absolute;height:200px}.timeline-body .timeline-events{display:block}.timeline-node{position:absolute;display:block;margin:6px 0;padding:4px 25px 4px 10px;height:auto;line-height:20px;vertical-align:middle;text-align:left;background-color:#e3d7a3;color:#777e41;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;cursor:pointer;z-index:8;-webkit-transition:all 1s ease 0;transition:all 1s ease 0}.timeline-event-pointer{margin:0;padding:0;line-height:1;text-align:center;background-color:#f0f0f0;border-radius:100%;border:solid 4px #4496d3;background-image:none;background-size:cover;background-repeat:no-repeat;background-position:center center}.timeline-node.timeline-event-pointer.hovered{z-index:99}.timeline-node.timeline-event-pointer.active{-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-node.timeline-text-truncate.active{margin:2px 0 4px;border:solid 1px rgba(61,61,61,.25);-webkit-box-shadow:0 10px 6px -6px rgba(51,51,51,.25);box-shadow:0 10px 6px -6px rgba(51,51,51,.25);z-index:99}.timeline-node.timeline-text-truncate:after{content:"\ec5c";font-family:jQueryTimeline!important;font-size:14px;position:absolute;right:5px}.timeline-loader{position:absolute;display:inline-block;width:48px;height:48px;margin:0;padding:0;top:50%;left:50%;opacity:.3;-webkit-animation:spin 2.1s linear infinite;animation:spin 2.1s linear infinite}.timeline-loader i{position:absolute;top:0;left:0;font-size:48px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.timeline-line-canvas{position:absolute;display:block;left:0;width:100%;height:200px;z-index:6}.timeline-grids{position:absolute;left:0;height:200px;border-top:1px solid #ddd;z-index:0}.timeline-grids>tbody>tr>td{padding:0;border-top:0;border-right:1px dotted #ddd;border-bottom:0;border-left:0;vertical-align:bottom}.timeline-grids>tbody>tr>td:first-child{border-left:0}.timeline-grids>tbody>tr>td:last{border-right:0}.timeline-needle-pointer{position:absolute;display:block;bottom:7px;width:1px;height:calc(100% - 56px);border-left:2px dotted #e8383d;z-index:19}_::-webkit-full-page-media,_:future,:root .timeline-needle-pointer{bottom:0}.timeline-needle-pointer:before{content:"\ea37";font-family:jQueryTimeline!important;position:absolute;top:-8px;left:-7.5px;font-size:13px;color:#e8383d}.timeline-footer{position:relative;top:50%;width:100%;z-index:5}.timeline-nav{width:inherit}.timeline-to-next-default,.timeline-to-prev-default{width:2rem;height:2rem;line-height:2rem;font-size:2rem;color:rgba(71,71,71,.325);text-decoration:none}.timeline-to-next-default:active,.timeline-to-next-default:focus,.timeline-to-next-default:hover,.timeline-to-prev-default:active,.timeline-to-prev-default:focus,.timeline-to-prev-default:hover{color:rgba(71,71,71,.75);text-decoration:none}.timeline-to-next-custom,.timeline-to-prev-custom{width:2rem;height:2rem;line-height:2rem;vertical-align:middle;text-align:center;border-radius:50%;background-color:rgba(51,51,51,.2);color:#fff;text-decoration:none}.timeline-to-next-custom:active,.timeline-to-next-custom:focus,.timeline-to-next-custom:hover,.timeline-to-prev-custom:active,.timeline-to-prev-custom:focus,.timeline-to-prev-custom:hover{background-color:rgba(51,51,51,.3);color:rgba(255,255,255,.75);text-decoration:none}.timeline-event-view{display:block;margin:0 1em}.timeline-event-header{margin-top:0;margin-bottom:1rem;border-bottom:dotted 1px #a8a8a8}.timeline-event-label{font-family:inherit;font-size:1.75rem;font-weight:500;line-height:1.1;color:inherit}.timeline-event-meta{margin-top:0;margin-bottom:.5rem;font-size:1rem;font-weight:300}.timeline-event-meta:before{content:"\ea60";font-family:jQueryTimeline!important;color:#999;margin-right:.5rem}.timeline-event-date-separator{display:inline-block}.timeline-event-date-separator:after{content:"\301c";color:#777;font-weight:400;margin-left:.5rem;margin-right:.5rem}.timeline-event-body{margin-top:0;margin-bottom:1rem}.timeline-event-footer{margin-top:0;margin-bottom:1rem} \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index a46e7a6..6821a88 100644 --- a/docs/index.html +++ b/docs/index.html @@ -28,6 +28,7 @@ + diff --git a/docs/index2.html b/docs/index2.html index c7d5f1b..aac3c58 100644 --- a/docs/index2.html +++ b/docs/index2.html @@ -28,6 +28,7 @@ + diff --git a/docs/index3.html b/docs/index3.html new file mode 100644 index 0000000..b5329ea --- /dev/null +++ b/docs/index3.html @@ -0,0 +1,150 @@ + + + + + + Example jQuery Timeline + + + + + + + + + + + + + +
+ + + + +
+ +
+ +
+
    +
  • Not allowed event definition
  • +
  • Event Label
  • +
  • HTML tags is included in the event content
  • +
  • Event with undefined of end date
  • +
  • Event with undefined of start date
  • +
  • Event having callback
  • +
  • Show popover via bootstrap
  • +
  • Event having extended params
  • +
  • Lorem Ipsum
  • +
  • Event having image for point type
  • +
  • Long event from the past over range
  • +
  • Long event until the future over range
  • +
+
+ +
+ + + + +
+ +
+
+

Timeline Event Detail

+

Please click on any event on the above timeline.

+
+
+ +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + diff --git a/docs/js/langs/de-de.json b/docs/js/langs/de-de.json new file mode 100644 index 0000000..e0eefe5 --- /dev/null +++ b/docs/js/langs/de-de.json @@ -0,0 +1,40 @@ +{ + "month": { + "Jan.": "Janvier", + "Fév.": "Février", + "Mars": "Mars", + "Avr.": "Avril", + "Mai": "Mai", + "Juin": "Juin", + "Juillet": "Juillet", + "Août.": "Août", + "Sept.": "Septembre", + "Oct.": "Octobre", + "Nov.": "Novembre", + "Déc.": "Décembre" + }, + "day": { + "Lu": "Lundi", + "Ma": "Mardi", + "Me": "Mercredi", + "Jeudi": "Jeudi", + "Ve": "Vendredi", + "Sa": "Samedi", + "Di": "Dimanche" + }, + "ma": [ + "vorm.", + "nachm." + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} \ No newline at end of file diff --git a/docs/js/langs/en-US.json b/docs/js/langs/en-US.json new file mode 100644 index 0000000..eb5677c --- /dev/null +++ b/docs/js/langs/en-US.json @@ -0,0 +1,40 @@ +{ + "month": { + "Jan": "January", + "Feb": "February", + "Mar": "March", + "Apr": "April", + "May": "May", + "Jun": "June", + "Jul": "July", + "Aug": "August", + "Sep": "September", + "Oct": "October", + "Nov": "November", + "Dec": "December" + }, + "day": { + "Sun": "Sunday", + "Mon": "Monday", + "Tue": "Tuesday", + "Wed": "Wednesday", + "Thu": "Thurseday", + "Fri": "Friday", + "Sat": "Saturday" + }, + "ma": [ + "am", + "pm" + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} \ No newline at end of file diff --git a/docs/js/langs/ja.json b/docs/js/langs/ja.json new file mode 100644 index 0000000..9f74673 --- /dev/null +++ b/docs/js/langs/ja.json @@ -0,0 +1,40 @@ +{ + "month": { + "一月": "睦月", + "二月": "如月", + "三月": "弥生", + "四月": "卯月", + "五月": "皐月", + "六月": "水無月", + "七月": "文月", + "八月": "葉月", + "九月": "長月", + "十月": "神無月", + "十一月": "霜月", + "十二月": "師走" + }, + "day": { + "日": "日曜", + "月": "月曜", + "火": "火曜", + "水": "水曜", + "木": "木曜", + "金": "金曜", + "土": "土曜" + }, + "ma": [ + "午前", + "午後" + ], + "format": { + "full": "Y年m月j日", + "year": "Y年", + "month": "Y年M", + "day": "m月j日(D)", + "years": "Y年", + "months": "F", + "days": "j(D)", + "meta": "Y年m月j日 H:i", + "metato": "" + } +} \ No newline at end of file diff --git a/docs/js/timeline.min.js b/docs/js/timeline.min.js index 316dccd..08d216c 100644 --- a/docs/js/timeline.min.js +++ b/docs/js/timeline.min.js @@ -1,9 +1,9 @@ /*! * jQuery Timeline Plugin * ------------------------ - * Version: 1.0.2 + * Version: 1.0.3 * Author: Ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT */ -!function(e){function t(t){var i,r,n,l=e(t),o=l.data("timeline");n=/-|\/|\s|\:/,r=o.timeline.attr("actual-start-datetime").split(n);var d=new Date(Number(r[0]),Number(r[1])-1,Number(r[2]),Number(r[3]),Number(r[4]),Number(r[5]));Number(r[0])<100&&d.setFullYear(Number(r[0]));var h,u,f=e("
",{addClass:"timeline-header"}),g=e("
",{addClass:"timeline-body"}),p=e("
",{addClass:"timeline-footer"}),v=e("
",{addClass:"timeline-wrapper"}),b=e("

",{addClass:"timeline-timetable timeline-scale"}),w=e("
",{addClass:"timeline-events"}),x=e("
",{addClass:"timeline-timetable timeline-grids"}),M=e("
",{addClass:"timeline-needle-pointer"}),D=e("
",{addClass:"timeline-events default-events"}),k=new Date(d),N={years:{medium_scale:"months",medium_cols:12,small_scale:"days",small_cols:Number(o.timeline.attr("min-grid-per"))},months:{medium_scale:"days",medium_cols:new Date(d.getFullYear(),d.getMonth()+1,0).getDate(),small_scale:"hours",small_cols:Number(o.timeline.attr("min-grid-per"))},days:{medium_scale:"hours",medium_cols:24,small_scale:"minutes",small_cols:Number(o.timeline.attr("min-grid-per"))}},F=o.timeline.attr("scale"),Y=N[F].medium_scale,T=N[F].small_scale,C=Number(o.timeline.attr("min-grid-per"))*Number(o.timeline.attr("min-grid-size")),S=[N[F].medium_cols];if(l.hasClass("timeline-container")||l.addClass("timeline-container"),l.find(".timeline-events").length>0&&(l.find(".timeline-events").children().clone().appendTo(D),a(D,o)),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type"))var H=e("",{addClass:"timeline-line-canvas"});if(l.empty(),"years"===o.timeline.attr("scale")?(k.setFullYear(k.getFullYear()+Number(o.timeline.attr("range"))),u=k.getTime(),k.setTime(u-1)):"months"===o.timeline.attr("scale")?(k.setMonth(k.getMonth()+Number(o.timeline.attr("range"))),u=k.getTime(),k.setTime(u-1)):(k.setDate(k.getDate()+Number(o.timeline.attr("range"))),u=k.getTime(),k.setTime(u-1)),"days"===Y&&Number(o.timeline.attr("range"))>1)for(i=1;i'+L+''+z+"",f.append('

'+A+"

")}var O,J,_,E,P="
",W="",G="";for(h=c(S)*N[F].small_cols,o.timeline.attr("total-cols",h),i=0;i',O=new Date(d),F){case"years":O.setFullYear(O.getFullYear()+i),I="",1==o.timeline.attr("zerofill-year")&&(O.getFullYear()<100?I="00":O.getFullYear()<1e3&&(I="0")),_=I+y(o.timeline.attr("datetime-format-years"),O);break;case"months":O.setMonth(O.getMonth()+i),_=y(o.timeline.attr("datetime-format-months"),O);break;case"days":O.setDate(O.getDate()+i),_=y(o.timeline.attr("datetime-format-days"),O)}P+=_+""}for(P+="",i=0;i',W+=_+""}for(W+="",i=0;i';var q="";for(i=0;i';if(q+="",0==o.timeline.attr("show-pointer"))M.css("display","none");else{var X=m(s(!0),o);!1!==X?M.css("left",X+"px"):M.css("display","none")}var B=e("
",{addClass:"timeline-loader",css:{display:"block"}});B.append('Loading...');var U='
',Q=""===o.timeline.attr("navi-icon-left")?"jqtl-circle-left":o.timeline.attr("navi-icon-left"),$=""===o.timeline.attr("navi-icon-right")?"jqtl-circle-right":o.timeline.attr("navi-icon-right");return U+='',U+='',U+="
",b.append("
"+P+W+G+""),x.append(""+q+""),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type")?v.append(b.prop("outerHTML")+w.prop("outerHTML")+H.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")):v.append(b.prop("outerHTML")+w.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")),g.append(v),p.append(U),l.append(f),l.append(g),l.append(p),l.append(B.prop("outerHTML")),l}function i(t){var i=e(t),a=i.data("timeline");x="auto"===a.timeline.attr("timeline-height")||"number"!=typeof a.timeline.attr("timeline-height")?Number(a.timeline.attr("rows"))*Number(a.timeline.attr("row-height")):Number(a.timeline.attr("timeline-height"));var r={width:i.find(".timeline-timetable.timeline-scale").outerWidth(),height:63};i.find(".timeline-wrapper")[0].offsetHeight!=r.height+x&&(i.find(".timeline-wrapper").css("height",r.height+x+"px"),i.find(".timeline-events").css("height",x+"px"),i.find(".timeline-line-canvas").css("height",x+"px").attr("width",r.width).attr("height",x),i.find(".timeline-grids").css("height",x+"px")),a.timeline.attr("min-grid-size",Number(a.timeline.attr("min-grid-size"))<5?30:Number(a.timeline.attr("min-grid-size"))),i.find(".spacer-cell").width()!=a.timeline.attr("min-grid-size")-1&&i.find(".spacer-cell").css("width",a.timeline.attr("min-grid-size")-1+"px");var n=-1*((i.find(".timeline-body").outerHeight()-i.find(".timeline-scale").outerHeight())/2+i.find(".timeline-to-prev").outerHeight());return i.find(".timeline-to-prev").css("top",n+"px"),i.find(".timeline-to-next").css("top",n+"px"),i.find(".timeline-body").scroll(function(){var t=e(this).scrollLeft();t<1?i.find(".timeline-to-prev").hide():t>=r.width-e(this).outerWidth()-2?i.find(".timeline-to-next").hide():(i.find(".timeline-to-prev").show(),i.find(".timeline-to-next").show())}),i}function a(t,i){if(e(t).children().length>0){var a=[],r=[],n=1;e(t).children().each(function(){if(e(this).data("timelineNode")){var t=new Function("return "+e(this).data("timelineNode"))();t.label=e(this).text(),t.eventId&&r.push(Number(t.eventId)),a.push(t)}}),a.length>0&&(n=r.length>0?Math.max.apply(null,r)+1:n,a.forEach(function(e,t,i){e.eventId||(i[t].eventId=n,n++)}),i.timeline.text(JSON.stringify(a)))}return i}function r(t){var i=e(t),a=i.data("timeline"),r=new Function("return "+a.timeline.text())(),l=new Date(d(a.timeline.attr("actual-start-datetime"))),s=new Date(l),m=a.timeline.attr("type"),c=a.timeline.attr("scale"),h=Number(a.timeline.attr("range")),u=Number(a.timeline.attr("row-height")),f=Number(a.timeline.attr("total-cols")),y=Number(a.timeline.attr("min-grid-per")),g=Number(a.timeline.attr("min-grid-size")),p={x:0,y:0,w:0},v=g*f-1;switch(i.find(".timeline-loader").css("display","block"),c){case"years":s.setYear(s.getFullYear()+h);break;case"months":s.setMonth(s.getMonth()+h-1);break;case"days":s.setDate(s.getDate()+h)}i.find(".timeline-events").empty(),r.forEach(function(t){if(t.start){var a,r=new Date(d(t.start)),n=void 0==t.end?new Date(d(t.start)):new Date(d(t.end)),h=y*g;if(o(r,l,s)){switch(c){case"years":p.x=Math.round((r-l)*v/(s-l));break;case"months":p.x=Math.floor((r-l)/864e5*h);break;case"days":p.x=Math.floor((r-l)/36e5*h)}if(p.y=void 0!==t.row?(t.row-1)*u:0,o(n,l,s)){switch(c){case"years":p.w=Math.floor((n-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((n-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((n-l)/36e5*h-p.x)}0==p.w&&(p.w=1)}else switch(c){case"years":p.w=Math.floor((s-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((s-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((s-l)/36e5*h-p.x)}}else if(o(n,l,s))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*u:0,c){case"years":p.w=Math.floor((n-l)/2592e6*h);break;case"months":p.w=Math.floor((n-l)/864e5*h);break;case"days":p.w=Math.floor((n-l)/36e5*h)}else if(o(l,r,n)&&o(s,r,n))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*u:0,c){case"years":p.w=Math.floor((s-l)/2592e6*h);break;case"months":p.w=Math.floor((s-l)/864e5*h);break;case"days":p.w=Math.floor((s-l)/36e5*h)}else p.w=0;if(p.w>0){if("point"===m){var f=t.margin?Number(t.margin):w;f=(f=f<0?0:f)>u/2?u/2-1:f,a=e("
",{addClass:"timeline-node timeline-event-pointer",id:"evt-"+t.eventId,css:{left:p.x-Math.floor(u/2)+f+"px",top:p.y+f+"px",width:u-2*f+"px",height:u-2*f+"px"},title:t.label}),t.bdColor?a.css("border-color",t.bdColor):t.bgColor&&a.css("border-color",t.bgColor),t.image&&a.css("background-image","url("+t.image+")"),t.relation&&e.each(t.relation,function(t,i){-1==e.inArray(t,["before","after","size"])||isNaN(i)?"curve"===t?-1!=e.inArray(i,["lt","rt","lb","rb"])&&a.attr("data-relay-curve",i):a.attr("data-relay-"+t,i):a.attr("data-relay-"+t,Number(i))})}else a=e("
",{addClass:"timeline-node timeline-text-truncate",id:"evt-"+t.eventId,css:{left:p.x+"px",top:p.y+"px",width:p.w+"px"},text:t.label}),t.color&&a.css("color",t.color),p.w1||n.y>1)&&a.lineTo(r.relayStartX,r.relayStartY),a.quadraticCurveTo(r.cpx,r.cpy,r.relayEndX,r.relayEndY)}a.lineTo(t.x,t.y),a.stroke()}}var a,r=t.find(".timeline-node.timeline-event-pointer"),n=t.find(".timeline-line-canvas")[0];n.getContext&&(a=n.getContext("2d"),r.each(function(){var t,r,l,s,o,m,d=void 0==e(this).data("relayLinecolor")?e(this).css("border-left-color"):e(this).data("relayLinecolor"),c=void 0==e(this).data("relayLinesize")?Math.round(g/10):e(this).data("relayLinesize");a.strokeStyle=d,a.lineWidth=c,a.lineJoin="round",a.lineCap="round",s={x:(g-a.lineWidth)/2,y:g/2},o=Math.floor((g-e(this)[0].offsetWidth)/2),t={x:e(this)[0].offsetLeft-o+s.x,y:Math.floor(e(this)[0].offsetTop/g)*g+s.y},console.info([s.x,s.y,o,t.x,t.y]),void 0!=e(this).data("relayBefore")&&(e(this).data("relayBefore")>0?e("#evt-"+e(this).data("relayBefore")).length>0&&(o=Math.floor((g-e("#evt-"+e(this).data("relayBefore"))[0].offsetWidth)/2),r={x:e("#evt-"+e(this).data("relayBefore"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayBefore"))[0].offsetTop/g)*g+s.y}):r={x:0,y:t.y},r&&(m=(r.y-t.y)/g,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(r,t,e(this).data("relayCurve")):i(r,t))),void 0!=e(this).data("relayAfter")&&(e(this).data("relayAfter")>0?e("#evt-"+e(this).data("relayAfter")).length>0&&(o=Math.floor((g-e("#evt-"+e(this).data("relayAfter"))[0].offsetWidth)/2),l={x:e("#evt-"+e(this).data("relayAfter"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayAfter"))[0].offsetTop/g)*g+s.y}):l={x:n.width,y:t.y},l&&(m=(t.y-l.y)/g,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(t,l,e(this).data("relayCurve")):i(t,l)))}))}function l(t){if(0==e(".timeline-event-view").length)return!0;e(".timeline-event-view").empty();var i,a=e("
",{addClass:"timeline-event-header"}),r=e("

",{addClass:"timeline-event-label"}),n=e("
",{addClass:"timeline-event-meta"}),l=e("
",{addClass:"timeline-event-body"}),s=e("
",{addClass:"timeline-event-footer"});return r.text(t.label),i=''+y("Y/m/d H:i",t.start)+"",t.end&&(i+='',i+=''+y("Y/m/d H:i",t.end)+""),a.append(r.prop("outerHTML")+n.append(i).prop("outerHTML")),t.content&&l.html(t.content),e(".timeline-event-view").append(a.prop("outerHTML")+l.prop("outerHTML")+s.prop("outerHTML")),!0}function s(t){var i=new Date;return t&&D().then(function(){i=e("body").data("serverDate"),e.removeData("body","serverDate")},function(){i=new Date}),i}function o(e,t,i){var a=new Date(e).getTime(),r=new Date(t).getTime(),n=new Date(i).getTime();return a-r>=0&&n-a>=0}function m(e,t){e="[object Date]"===Object.prototype.toString.call(e)?e:new Date(d(e));var i,a,r=t.timeline,n=new Date(d(r.attr("actual-start-datetime"))),l=new Date(n),s=r.attr("scale"),m=Number(r.attr("range")),c=Number(r.attr("total-cols")),h=Number(r.attr("min-grid-per")),u=Number(r.attr("min-grid-size")),f=u*c-1,y=h*u;switch(s){case"years":i=(l=new Date(l.setFullYear(l.getFullYear()+m))).getTime(),l.setTime(i-1);break;case"months":i=(l=new Date(l.setMonth(l.getMonth()+m))).getTime(),l.setTime(i-1);break;case"days":i=(l=new Date(l.setDate(l.getDate()+m))).getTime(),l.setTime(i-1)}if(o(e,n,l)){switch(s){case"years":a=Math.round((e-n)*f/(l-n));break;case"months":a=Math.floor((e-n)/864e5*y);break;case"days":a=Math.floor((e-n)/36e5*y)}return a}return!1}function d(e){return e.replace(/-/g,"/")}function c(e){return e.reduce(function(e,t){return e+t})}function h(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(e[i]);return t}function u(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(i);return t}function f(e,t){var i=function(e,t){return Array(e+1).join(t)}(t-1,"0");return String(e).length==t?e:(i+e).substr(-1*e)}function y(e,t){e=e||"";var i="[object Date]"===Object.prototype.toString.call(t)?t:new Date(d(t)),a=p,r=v,n=b,l=e.split(""),s="",o=!1,m=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,1);return t.setTime(t.getTime()-1),t.getDate()},c=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t<12;t++)i.setMonth(t),a+=m(i);return 365===a?0:1},y=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t12?t-12:t},w=function(e){return e.getHours()>12?n[1]:n[0]};return""===e?i:(l.forEach(function(e,t){var n,d,p,v;if(!1!==o)return o=!1,!0;switch(e){case"Y":case"o":n=i.getFullYear();break;case"y":n=(""+i.getFullYear()).slice(-2);break;case"m":n=("0"+(i.getMonth()+1)).slice(-2);break;case"n":n=i.getMonth()+1;break;case"F":n=h(a)[i.getMonth()];break;case"M":n=u(a)[i.getMonth()];break;case"d":n=("0"+i.getDate()).slice(-2);break;case"j":n=i.getDate();break;case"S":n=["st","nd","rd","th"][function(){var e=i.getDate();return 1==e||2==e||3==e||21==e||22==e||23==e||31==e?Number((""+e).slice(-1)-1):3}()];break;case"w":case"W":n=i.getDay();break;case"l":n=h(r)[i.getDay()];break;case"D":n=u(r)[i.getDay()];break;case"N":n=0===i.getDay()?7:i.getDay();break;case"a":n=w(i);break;case"A":n=w(i).toUpperCase();break;case"g":n=g(i);break;case"h":n=("0"+g(i)).slice(-2);break;case"G":n=i.getHours();break;case"H":n=("0"+i.getHours()).slice(-2);break;case"i":n=("0"+i.getMinutes()).slice(-2);break;case"s":n=("0"+i.getSeconds()).slice(-2);break;case"z":n=y(i);break;case"t":n=m(i);break;case"L":n=c(i);break;case"c":d=i.getTimezoneOffset(),p=[Math.floor(Math.abs(d)/60),Math.abs(d)%60],v=d<0?"+":"-",n=i.getFullYear()+"-"+f(i.getMonth()+1,2)+"-"+f(i.getDate(),2)+"T",n+=f(i.getHours(),2)+":"+f(i.getMinutes(),2)+":"+f(i.getSeconds(),2),n+=v+f(p[0],2)+":"+f(p[1],2);break;case"r":d=i.getTimezoneOffset(),p=[Math.floor(Math.abs(d)/60),Math.abs(d)%60],v=d<0?"+":"-",n=u(r)[i.getDay()]+", "+i.getDate()+" "+u(a)[i.getMonth()]+" "+i.getFullYear()+" ",n+=f(i.getHours(),2)+":"+f(i.getMinutes(),2)+":"+f(i.getSeconds(),2)+" ",n+=v+f(p[0],2)+f(p[1],2);break;case"u":n=i.getTime();break;case"U":n=Date.parse(i)/1e3;break;case"\\":o=!0,n=l[t+1];break;default:n=e}s+=n}),s)}var g,p,v,b,w=2,x=0,M={init:function(a){var n=e.extend({type:"bar",scale:"days",startDatetime:"currently",datetimePrefix:"",showHeadline:!0,datetimeFormat:{full:"j M Y",year:"Y",month:"M Y",day:"D, j M",years:"Y",months:"F",days:"j"},minuteInterval:30,zerofillYear:!1,range:3,rows:5,rowHeight:40,height:"auto",minGridPer:2,minGridSize:30,rangeAlign:"current",naviIcon:{left:"jqtl-circle-left",right:"jqtl-circle-right"},showPointer:!0,i18n:{month:{Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},day:{Sun:"Sunday",Mon:"Monday",Tue:"Tuesday",Wed:"Wednesday",Thu:"Thurseday",Fri:"Friday",Sat:"Saturday"},ma:["am","pm"]}},a);return this.each(function(){var a=e(this),l=a.data("timeline"),o=e("
",{title:a.find(".timeline-headline").text(),type:n.type,scale:n.scale,"start-datetime":n.startDatetime,"datetime-prefix":n.datetimePrefix,"show-headline":n.showHeadline?1:0,"datetime-format-full":n.datetimeFormat.full||"j M Y","datetime-format-year":n.datetimeFormat.year||"Y","datetime-format-month":n.datetimeFormat.month||"M Y","datetime-format-day":n.datetimeFormat.day||"D, j M","datetime-format-years":n.datetimeFormat.years||"Y","datetime-format-months":n.datetimeFormat.months||"F","datetime-format-days":n.datetimeFormat.days||"j","minute-interval":n.minuteInterval,"zerofill-year":n.zerofillYear?1:0,range:n.range,rows:n.rows,"row-height":n.rowHeight,"timeline-height":n.height,"min-grid-per":n.minGridPer,"min-grid-size":n.minGridSize,"range-align":n.rangeAlign,"navi-icon-left":n.naviIcon.left||"jqtl-circle-left","navi-icon-right":n.naviIcon.right||"jqtl-circle-right","show-pointer":n.showPointer?1:0,"i18n-month":JSON.stringify(n.i18n.month),"i18n-day":JSON.stringify(n.i18n.day),"i18n-ma":JSON.stringify(n.i18n.ma),text:""});if(a.on("click.timeline",".timeline-to-prev",M.dateback),a.on("click.timeline",".timeline-to-next",M.dateforth),a.on("click.timeline",".timeline-node",M.openEvent),a.on("align.timeline",M.alignment),!l){a.data("timeline",{target:a,timeline:o}),g=n.rowHeight,p=n.i18n.month,v=n.i18n.day,b=n.i18n.ma;var m,c,h,u;switch("currently"===n.startDatetime?m=s(!0):(m=new Date(d(n.startDatetime)),u=/-|\//,h=n.startDatetime.split(u),Number(h[0])<100&&m.setFullYear(Number(h[0]))),n.scale){case"years":c=m.getFullYear()+"/01/01 00:00:00";break;case"months":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/01 00:00:00";break;case"days":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" 00:00:00";break;default:c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" "+c.getHours()+":00:00"}a.data("timeline").timeline.attr("actual-start-datetime",c),t(a),i(a),a.trigger("align.timeline",[n.rangeAlign]),a.css("visibility","visible")}r(a)})},destroy:function(){return this.each(function(){var t=e(this),i=t.data("timeline");e(window).off(".timeline"),i&&(i.timeline.remove(),t.removeData("timeline"))})},render:function(a){return this.each(function(){var n=e(this),l=n.data("timeline");"type"in a&&l.timeline.attr("type",a.type),"scale"in a&&l.timeline.attr("scale",a.scale),"startDatetime"in a&&l.timeline.attr("start-datetime",a.startDatetime),"datetimePrefix"in a&&l.timeline.attr("datetime-prefix",a.datetimePrefix),"showHeadline"in a&&l.timeline.attr("show-headline",a.showHeadline?1:0),"datetimeFormat"in a&&(void 0!=typeof a.datetimeFormat.full&&l.timeline.attr("datetime-format-full",a.datetimeFormat.full),void 0!=typeof a.datetimeFormat.year&&l.timeline.attr("datetime-format-year",a.datetimeFormat.year),void 0!=typeof a.datetimeFormat.month&&l.timeline.attr("datetime-format-month",a.datetimeFormat.month),void 0!=typeof a.datetimeFormat.day&&l.timeline.attr("datetime-format-day",a.datetimeFormat.day),void 0!=typeof a.datetimeFormat.years&&l.timeline.attr("datetime-format-years",a.datetimeFormat.years),void 0!=typeof a.datetimeFormat.months&&l.timeline.attr("datetime-format-months",a.datetimeFormat.months),void 0!=typeof a.datetimeFormat.days&&l.timeline.attr("datetime-format-days",a.datetimeFormat.days)),"minuteInterval"in a&&l.timeline.attr("minute-interval",a.minuteInterval),"zerofillYear"in a&&l.timeline.attr("zerofill-year",a.zerofillYear?1:0),"range"in a&&l.timeline.attr("range",a.range),"rows"in a&&l.timeline.attr("rows",a.rows),"rowHeight"in a&&l.timeline.attr("row-height",a.rowHeight),"height"in a&&l.timeline.attr("timeline-height",a.height),"minGridPer"in a&&l.timeline.attr("min-grid-per",a.minGridPer),"minGridSize"in a&&l.timeline.attr("min-grid-size",a.minGridSize),"rangeAlign"in a&&l.timeline.attr("range-align",a.rangeAlign),"naviIcon"in a&&(void 0!=typeof a.naviIcon.left&&l.timeline.attr("navi-icon-left",a.naviIcon.left),void 0!=typeof a.naviIcon.right&&l.timeline.attr("navi-icon-right",a.naviIcon.right)),"showPointer"in a&&l.timeline.attr("show-pointer",a.showPointer?1:0),"i18n"in a&&(void 0!=typeof a.i18n.month&&l.timeline.attr("i18n-month",JSON.stringify(a.i18n.month)),void 0!=typeof a.i18n.day&&l.timeline.attr("i18n-day",JSON.stringify(a.i18n.day)),void 0!=typeof a.i18n.ma&&l.timeline.attr("i18n-ma",JSON.stringify(a.i18n.ma)));var o,m,c,h;switch("currently"===l.timeline.attr("start-datetime")?o=s(!0):(o=new Date(d(l.timeline.attr("start-datetime"))),h=/-|\//,c=l.timeline.attr("start-datetime").split(h),Number(c[0])<100&&o.setFullYear(Number(c[0]))),l.timeline.attr("scale")){case"years":m=o.getFullYear()+"/01/01 00:00:00";break;case"months":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/01 00:00:00";break;case"days":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" 00:00:00";break;default:m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" "+m.getHours()+":00:00"}l.timeline.attr("actual-start-datetime",m),n.find(".timeline-container").empty().removeClass("timeline-container"),t(n),i(n),r(n),n.trigger("align.timeline",[l.timeline.attr("range-align")])})},show:function(){return this.each(function(){e(this).css("display","block").css("visibility","visible")})},hide:function(){return this.each(function(){e(this).css("visibility","hidden").css("display","none")})},initialized:function(t){return this.each(function(){var i=e(this),a=i.data("timeline");a&&"function"==typeof t&&t(i,a)})},dateback:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=l/r>1?l-r:l-(n-r)/Number(a.timeline.attr("range")))<0?0:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},dateforth:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=(n-l)/r>1?l+r:l+(n-r)/Number(a.timeline.attr("range")))>n-r+1?n-r+1:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},alignment:function(){var t=arguments.length>1?Array.prototype.slice.call(arguments,1):[arguments[0]],i=t[0].toLowerCase(),a=void 0!==t[1]?String(t[1]).toLowerCase():0,r=e(this).find(".timeline-body")[0].clientWidth,n=e(this).find(".timeline-wrapper")[0].scrollWidth,l=0;if(n>r){var o,c=e(this).data("timeline");switch(i){case"left":l=0;break;case"right":l=n-r+1;break;case"center":l=(n-r)/2;break;case"current":l=(o=m(s(!0),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;case"latest":var h,u,f,g=new Function("return "+c.timeline.text())();e.each(g,function(e,t){u=y("U",t.start),0==e?(h=u,f=e):u>=h&&(h=u,f=e)}),l=(o=m(new Date(d(g[f].start)),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;default:l=0;var p="#"+i;e(p).length&&(l=(o=e(p).position().left)-r/2>n-r+1?n-r+1:o-r/2)}-1!=e.inArray(a,["slow","normal","fast"])||Number(a)>0?e(this).find(".timeline-body").animate({scrollLeft:l},a):e(this).find(".timeline-body").scrollLeft(l)}return this},getOptions:function(){var t=e(this).data("timeline");return{title:t.timeline.attr("title"),type:t.timeline.attr("type"),scale:t.timeline.attr("scale"),startDatetime:t.timeline.attr("start-datetime"),datetimePrefix:t.timeline.attr("datetime-prefix"),showHeadline:1==Number(t.timeline.attr("show-headline")),datetimeFormat:{full:t.timeline.attr("datetime-format-full"),year:t.timeline.attr("datetime-format-year"),month:t.timeline.attr("datetime-format-month"),day:t.timeline.attr("datetime-format-day"),years:t.timeline.attr("datetime-format-years"),months:t.timeline.attr("datetime-format-months"),days:t.timeline.attr("datetime-format-days")},minuteInterval:Number(t.timeline.attr("minute-interval")),zerofillYear:1==Number(t.timeline.attr("zerofill-year")),range:Number(t.timeline.attr("range")),rows:Number(t.timeline.attr("rows")),rowHeight:Number(t.timeline.attr("row-height")),height:"auto"===t.timeline.attr("timeline-height")?"auto":Number(t.timeline.attr("timeline-height")),minGridPer:Number(t.timeline.attr("min-grid-per")),minGridSize:Number(t.timeline.attr("min-grid-size")),rangeAlign:t.timeline.attr("range-align"),naviIcon:{left:t.timeline.attr("navi-icon-left"),right:t.timeline.attr("navi-icon-right")},showPointer:t.timeline.attr("show-pointer"),i18n:{month:JSON.parse(t.timeline.attr("i18n-month")),day:JSON.parse(t.timeline.attr("i18n-day")),ma:JSON.parse(t.timeline.attr("i18n-ma"))},events:new Function("return "+t.timeline.text())()}},addEvent:function(t,i){return this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())(),s=1,o=[s];t.length>0&&(e.each(l,function(e,t){o.push(Number(t.eventId))}),s=Math.max.apply(null,o)+1,e.each(t,function(e,t){t.eventId=s,s++,l.push(t)}),n.timeline.text(JSON.stringify(l))),r(a),e(this).trigger("align.timeline",["evt-"+(s-1),"fast"]),n&&"function"==typeof i&&i(a,n)})},removeEvent:function(){var t,i;return 0==arguments.length?(t="all",i=null):1==arguments.length?"function"==typeof arguments[0]?(t="all",i=arguments[0]):(t=arguments[0],i=null):(t=arguments[0],i=arguments[1]),this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())();if("all"===t)l=[];else{var s=[];e.each(l,function(i,a){-1==e.inArray(a.eventId,t)&&s.push(a)}),l=s}n.timeline.text(JSON.stringify(l)),r(a),n&&"function"==typeof i&&i(a,n)})},updateEvent:function(t,i){return void 0!==t&&this.each(function(){var a,n=e(this),l=n.data("timeline"),s=new Function("return "+l.timeline.text())(),o=[];t.length>0&&e.each(t,function(e,t){o.push(t.eventId)}),s.length>0&&o.length>0&&(e.each(s,function(i,r){if(-1!=e.inArray(r.eventId,o)){var n;e.each(t,function(e,t){if(t.eventId==r.eventId)return n=t,a=t.eventId,!1}),s[i]=n}}),l.timeline.text(JSON.stringify(s))),r(n),e(this).trigger("align.timeline",["evt-"+a,"fast"]),l&&"function"==typeof i&&i(n,l)})},openEvent:function(t){var i=Number(e(t.target).attr("id").replace("evt-","")),a=t.delegateTarget;return""!==i&&0!=i&&e(a).each(function(){var t,a=e(this).data("timeline"),r=new Function("return "+a.timeline.text())();e.each(r,function(e,a){if(a.eventId==i)return t=a,!1}),e(this).find(".timeline-node").each(function(){e(this).attr("id")==="evt-"+i?e(this).addClass("active"):e(this).removeClass("active")}),e(this).trigger("align.timeline",["evt-"+i,"fast"]),l(t)&&t.callback&&Function.call(null,"return "+t.callback)()})}};e.fn.timeline=function(t){return M[t]?M[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.timeline."):M.init.apply(this,arguments)};var D=function(){return e.ajax({type:"GET"}).done(function(t,i,a){e("body").data("serverDate",new Date(d(a.getResponseHeader("Date"))))}).promise()}}(jQuery); \ No newline at end of file +!function(e){function t(t){var i,r,n,l=e(t),o=l.data("timeline");n=/-|\/|\s|\:/,r=o.timeline.attr("actual-start-datetime").split(n);var d=new Date(Number(r[0]),Number(r[1])-1,Number(r[2]),Number(r[3]),Number(r[4]),Number(r[5]));Number(r[0])<100&&d.setFullYear(Number(r[0]));var h,f,u=e("
",{addClass:"timeline-header"}),y=e("
",{addClass:"timeline-body"}),p=e("
",{addClass:"timeline-footer"}),v=e("
",{addClass:"timeline-wrapper"}),b=e("

",{addClass:"timeline-timetable timeline-scale"}),w=e("
",{addClass:"timeline-events"}),x=e("
",{addClass:"timeline-timetable timeline-grids"}),M=e("
",{addClass:"timeline-needle-pointer"}),D=e("
",{addClass:"timeline-events default-events"}),N=new Date(d),F={years:{medium_scale:"months",medium_cols:12,small_scale:"days",small_cols:Number(o.timeline.attr("min-grid-per"))},months:{medium_scale:"days",medium_cols:new Date(d.getFullYear(),d.getMonth()+1,0).getDate(),small_scale:"hours",small_cols:Number(o.timeline.attr("min-grid-per"))},days:{medium_scale:"hours",medium_cols:24,small_scale:"minutes",small_cols:Number(o.timeline.attr("min-grid-per"))}},k=o.timeline.attr("scale"),Y=F[k].medium_scale,T=F[k].small_scale,S=Number(o.timeline.attr("min-grid-per"))*Number(o.timeline.attr("min-grid-size")),C=[F[k].medium_cols];if(l.hasClass("timeline-container")||l.addClass("timeline-container"),l.find(".timeline-events").length>0&&(l.find(".timeline-events").children().clone().appendTo(D),a(D,o)),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type"))var H=e("",{addClass:"timeline-line-canvas"});if(l.empty(),"years"===o.timeline.attr("scale")?(N.setFullYear(N.getFullYear()+Number(o.timeline.attr("range"))),f=N.getTime(),N.setTime(f-1)):"months"===o.timeline.attr("scale")?(N.setMonth(N.getMonth()+Number(o.timeline.attr("range"))),f=N.getTime(),N.setTime(f-1)):(N.setDate(N.getDate()+Number(o.timeline.attr("range"))),f=N.getTime(),N.setTime(f-1)),"days"===Y&&Number(o.timeline.attr("range"))>1)for(i=1;i'+L+''+j+"",u.append('

'+O+"

")}var A,J,_,E,P="
",W="",G="";for(h=c(C)*F[k].small_cols,o.timeline.attr("total-cols",h),i=0;i',A=new Date(d),k){case"years":A.setFullYear(A.getFullYear()+i),z="",1==o.timeline.attr("zerofill-year")&&(A.getFullYear()<100?z="00":A.getFullYear()<1e3&&(z="0")),_=z+g(o.timeline.attr("datetime-format-years"),A);break;case"months":A.setMonth(A.getMonth()+i),_=g(o.timeline.attr("datetime-format-months"),A);break;case"days":A.setDate(A.getDate()+i),_=g(o.timeline.attr("datetime-format-days"),A)}P+=_+""}for(P+="",i=0;i',W+=_+""}for(W+="",i=0;i';var q="";for(i=0;i';if(q+="",0==o.timeline.attr("show-pointer"))M.css("display","none");else{var X=m(s(!0),o);!1!==X?M.css("left",X+"px"):M.css("display","none")}var B=e("
",{addClass:"timeline-loader",css:{display:"block"}});B.append('Loading...');var U='
',Q=""===o.timeline.attr("navi-icon-left")?"jqtl-circle-left":o.timeline.attr("navi-icon-left"),$=""===o.timeline.attr("navi-icon-right")?"jqtl-circle-right":o.timeline.attr("navi-icon-right");return U+='',U+='',U+="
",b.append("
"+P+W+G+""),x.append(""+q+""),"point"===o.timeline.attr("type")||"mixed"===o.timeline.attr("type")?v.append(b.prop("outerHTML")+w.prop("outerHTML")+H.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")):v.append(b.prop("outerHTML")+w.prop("outerHTML")+x.prop("outerHTML")+M.prop("outerHTML")),y.append(v),p.append(U),l.append(u),l.append(y),l.append(p),l.append(B.prop("outerHTML")),l}function i(t){var i=e(t),a=i.data("timeline");b="auto"===a.timeline.attr("timeline-height")||"number"!=typeof a.timeline.attr("timeline-height")?Number(a.timeline.attr("rows"))*Number(a.timeline.attr("row-height")):Number(a.timeline.attr("timeline-height"));var r={width:i.find(".timeline-timetable.timeline-scale").outerWidth(),height:63};i.find(".timeline-wrapper")[0].offsetHeight!=r.height+b&&(i.find(".timeline-wrapper").css("height",r.height+b+"px"),i.find(".timeline-events").css("height",b+"px"),i.find(".timeline-line-canvas").css("height",b+"px").attr("width",r.width).attr("height",b),i.find(".timeline-grids").css("height",b+"px")),a.timeline.attr("min-grid-size",Number(a.timeline.attr("min-grid-size"))<5?30:Number(a.timeline.attr("min-grid-size"))),i.find(".spacer-cell").width()!=a.timeline.attr("min-grid-size")-1&&i.find(".spacer-cell").css("width",a.timeline.attr("min-grid-size")-1+"px");var n=-1*((i.find(".timeline-body").outerHeight()-i.find(".timeline-scale").outerHeight())/2+i.find(".timeline-to-prev").outerHeight());return i.find(".timeline-to-prev").css("top",n+"px"),i.find(".timeline-to-next").css("top",n+"px"),i.find(".timeline-body").scroll(function(){var t=e(this).scrollLeft();t<1?i.find(".timeline-to-prev").hide():t>=r.width-e(this).outerWidth()-2?i.find(".timeline-to-next").hide():(i.find(".timeline-to-prev").show(),i.find(".timeline-to-next").show())}),i}function a(t,i){if(e(t).children().length>0){var a=[],r=[],n=1;e(t).children().each(function(){if(e(this).data("timelineNode")){var t=new Function("return "+e(this).data("timelineNode"))();t.label=e(this).text(),t.eventId&&r.push(Number(t.eventId)),a.push(t)}}),a.length>0&&(n=r.length>0?Math.max.apply(null,r)+1:n,a.forEach(function(e,t,i){e.eventId||(i[t].eventId=n,n++)}),i.timeline.text(JSON.stringify(a)))}return i}function r(t){var i=e(t),a=i.data("timeline"),r=new Function("return "+a.timeline.text())(),l=new Date(d(a.timeline.attr("actual-start-datetime"))),s=new Date(l),m=a.timeline.attr("type"),c=a.timeline.attr("scale"),h=Number(a.timeline.attr("range")),f=Number(a.timeline.attr("row-height")),u=Number(a.timeline.attr("total-cols")),g=Number(a.timeline.attr("min-grid-per")),y=Number(a.timeline.attr("min-grid-size")),p={x:0,y:0,w:0},b=y*u-1;switch(i.find(".timeline-loader").css("display","block"),c){case"years":s.setYear(s.getFullYear()+h);break;case"months":s.setMonth(s.getMonth()+h-1);break;case"days":s.setDate(s.getDate()+h)}i.find(".timeline-events").empty(),r.forEach(function(t){if(t.start){var a,r=new Date(d(t.start)),n=void 0==t.end?new Date(d(t.start)):new Date(d(t.end)),h=g*y;if(o(r,l,s)){switch(c){case"years":p.x=Math.round((r-l)*b/(s-l));break;case"months":p.x=Math.floor((r-l)/864e5*h);break;case"days":p.x=Math.floor((r-l)/36e5*h)}if(p.y=void 0!==t.row?(t.row-1)*f:0,o(n,l,s)){switch(c){case"years":p.w=Math.floor((n-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((n-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((n-l)/36e5*h-p.x)}0==p.w&&(p.w=1)}else switch(c){case"years":p.w=Math.floor((s-l)/2592e6*h-p.x);break;case"months":p.w=Math.floor((s-l)/864e5*h-p.x);break;case"days":p.w=Math.floor((s-l)/36e5*h-p.x)}}else if(o(n,l,s))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*f:0,c){case"years":p.w=Math.floor((n-l)/2592e6*h);break;case"months":p.w=Math.floor((n-l)/864e5*h);break;case"days":p.w=Math.floor((n-l)/36e5*h)}else if(o(l,r,n)&&o(s,r,n))switch(p.x=0,p.y=void 0!==t.row?(t.row-1)*f:0,c){case"years":p.w=Math.floor((s-l)/2592e6*h);break;case"months":p.w=Math.floor((s-l)/864e5*h);break;case"days":p.w=Math.floor((s-l)/36e5*h)}else p.w=0;if(p.w>0){if("point"===m){var u=t.margin?Number(t.margin):v;u=(u=u<0?0:u)>f/2?f/2-1:u,a=e("
",{addClass:"timeline-node timeline-event-pointer",id:"evt-"+t.eventId,css:{left:p.x-Math.floor(f/2)+u+"px",top:p.y+u+"px",width:f-2*u+"px",height:f-2*u+"px"},title:t.label}),t.bdColor?a.css("border-color",t.bdColor):t.bgColor&&a.css("border-color",t.bgColor),t.image&&a.css("background-image","url("+t.image+")"),t.relation&&e.each(t.relation,function(t,i){-1==e.inArray(t,["before","after","size"])||isNaN(i)?"curve"===t?-1!=e.inArray(i,["lt","rt","lb","rb"])&&a.attr("data-relay-curve",i):a.attr("data-relay-"+t,i):a.attr("data-relay-"+t,Number(i))})}else a=e("
",{addClass:"timeline-node timeline-text-truncate",id:"evt-"+t.eventId,css:{left:p.x+"px",top:p.y+"px",width:p.w+"px"},text:t.label}),t.color&&a.css("color",t.color),p.w1||n.y>1)&&a.lineTo(r.relayStartX,r.relayStartY),a.quadraticCurveTo(r.cpx,r.cpy,r.relayEndX,r.relayEndY)}a.lineTo(t.x,t.y),a.stroke()}}var a,r=t.find(".timeline-node.timeline-event-pointer"),n=t.find(".timeline-line-canvas")[0];n.getContext&&(a=n.getContext("2d"),r.each(function(){var t,r,l,s,o,m,d=void 0==e(this).data("relayLinecolor")?e(this).css("border-left-color"):e(this).data("relayLinecolor"),c=void 0==e(this).data("relayLinesize")?Math.round(p/10):e(this).data("relayLinesize");a.strokeStyle=d,a.lineWidth=c,a.lineJoin="round",a.lineCap="round",s={x:(p-a.lineWidth)/2,y:p/2},o=Math.floor((p-e(this)[0].offsetWidth)/2),t={x:e(this)[0].offsetLeft-o+s.x,y:Math.floor(e(this)[0].offsetTop/p)*p+s.y},void 0!=e(this).data("relayBefore")&&(e(this).data("relayBefore")>0?e("#evt-"+e(this).data("relayBefore")).length>0&&(o=Math.floor((p-e("#evt-"+e(this).data("relayBefore"))[0].offsetWidth)/2),r={x:e("#evt-"+e(this).data("relayBefore"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayBefore"))[0].offsetTop/p)*p+s.y}):r={x:0,y:t.y},r&&(m=(r.y-t.y)/p,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(r,t,e(this).data("relayCurve")):i(r,t))),void 0!=e(this).data("relayAfter")&&(e(this).data("relayAfter")>0?e("#evt-"+e(this).data("relayAfter")).length>0&&(o=Math.floor((p-e("#evt-"+e(this).data("relayAfter"))[0].offsetWidth)/2),l={x:e("#evt-"+e(this).data("relayAfter"))[0].offsetLeft-o+s.x,y:Math.floor(e("#evt-"+e(this).data("relayAfter"))[0].offsetTop/p)*p+s.y}):l={x:n.width,y:t.y},l&&(m=(t.y-l.y)/p,Math.abs(m)>0&&void 0!=e(this).data("relayCurve")&&-1!=e.inArray(e(this).data("relayCurve"),["lt","rt","lb","rb"])?i(t,l,e(this).data("relayCurve")):i(t,l)))}))}function l(t,i){if(0==e(".timeline-event-view").length)return!0;e(".timeline-event-view").empty();var a,r=e("
",{addClass:"timeline-event-header"}),n=e("

",{addClass:"timeline-event-label"}),l=e("
",{addClass:"timeline-event-meta"}),s=e("
",{addClass:"timeline-event-body"}),o=e("
",{addClass:"timeline-event-footer"});return n.text(t.label),""===i.end&&(i.end=i.start),a=''+g(i.start,t.start)+"",t.end&&(a+='',a+=''+g(i.end,t.end)+""),r.append(n.prop("outerHTML")+l.append(a).prop("outerHTML")),t.content&&s.html(t.content),e(".timeline-event-view").append(r.prop("outerHTML")+s.prop("outerHTML")+o.prop("outerHTML")),!0}function s(t){var i=new Date;return t&&x().then(function(){i=e("body").data("serverDate"),e.removeData("body","serverDate")},function(){i=new Date}),i}function o(e,t,i){var a=new Date(e).getTime(),r=new Date(t).getTime(),n=new Date(i).getTime();return a-r>=0&&n-a>=0}function m(e,t){e="[object Date]"===Object.prototype.toString.call(e)?e:new Date(d(e));var i,a,r=t.timeline,n=new Date(d(r.attr("actual-start-datetime"))),l=new Date(n),s=r.attr("scale"),m=Number(r.attr("range")),c=Number(r.attr("total-cols")),h=Number(r.attr("min-grid-per")),f=Number(r.attr("min-grid-size")),u=f*c-1,g=h*f;switch(s){case"years":i=(l=new Date(l.setFullYear(l.getFullYear()+m))).getTime(),l.setTime(i-1);break;case"months":i=(l=new Date(l.setMonth(l.getMonth()+m))).getTime(),l.setTime(i-1);break;case"days":i=(l=new Date(l.setDate(l.getDate()+m))).getTime(),l.setTime(i-1)}if(o(e,n,l)){switch(s){case"years":a=Math.round((e-n)*u/(l-n));break;case"months":a=Math.floor((e-n)/864e5*g);break;case"days":a=Math.floor((e-n)/36e5*g)}return a}return!1}function d(e){return e.replace(/-/g,"/")}function c(e){return e.reduce(function(e,t){return e+t})}function h(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(e[i]);return t}function f(e){var t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(i);return t}function u(e,t){var i=function(e,t){return Array(e+1).join(t)}(t-1,"0");return String(e).length==t?e:(i+e).substr(-1*e)}function g(t,i){t=t||"";var a="[object Date]"===Object.prototype.toString.call(i)?i:new Date(d(i)),r={Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},n={Sun:"Sunday",Mon:"Monday",Tue:"Tuesday",Wed:"Wednesday",Thu:"Thurseday",Fri:"Friday",Sat:"Saturday"},l=["am","pm"],s=t.split(""),o="",m=!1,c=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,1);return t.setTime(t.getTime()-1),t.getDate()},g=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t<12;t++)i.setMonth(t),a+=c(i);return 365===a?0:1},y=function(e){var t,i=new Date(e.getFullYear(),0,1),a=0;for(t=0;t12?t-12:t},v=function(e){return e.getHours()>12?l[1]:l[0]};if(""===t)return a;if(e(".timeline-container").length>0){var b=e(".timeline-container").eq(0).data("timeline").timeline;r=b.attr("i18n-month")?JSON.parse(b.attr("i18n-month")):r,n=b.attr("i18n-day")?JSON.parse(b.attr("i18n-day")):n,l=b.attr("i18n-ma")?JSON.parse(b.attr("i18n-ma")):l}return s.forEach(function(e,t){var i,l,d,b;if(!1!==m)return m=!1,!0;switch(e){case"Y":case"o":i=a.getFullYear();break;case"y":i=(""+a.getFullYear()).slice(-2);break;case"m":i=("0"+(a.getMonth()+1)).slice(-2);break;case"n":i=a.getMonth()+1;break;case"F":i=h(r)[a.getMonth()];break;case"M":i=f(r)[a.getMonth()];break;case"d":i=("0"+a.getDate()).slice(-2);break;case"j":i=a.getDate();break;case"S":i=["st","nd","rd","th"][function(){var e=a.getDate();return 1==e||2==e||3==e||21==e||22==e||23==e||31==e?Number((""+e).slice(-1)-1):3}()];break;case"w":case"W":i=a.getDay();break;case"l":i=h(n)[a.getDay()];break;case"D":i=f(n)[a.getDay()];break;case"N":i=0===a.getDay()?7:a.getDay();break;case"a":i=v(a);break;case"A":i=v(a).toUpperCase();break;case"g":i=p(a);break;case"h":i=("0"+p(a)).slice(-2);break;case"G":i=a.getHours();break;case"H":i=("0"+a.getHours()).slice(-2);break;case"i":i=("0"+a.getMinutes()).slice(-2);break;case"s":i=("0"+a.getSeconds()).slice(-2);break;case"z":i=y(a);break;case"t":i=c(a);break;case"L":i=g(a);break;case"c":l=a.getTimezoneOffset(),d=[Math.floor(Math.abs(l)/60),Math.abs(l)%60],b=l<0?"+":"-",i=a.getFullYear()+"-"+u(a.getMonth()+1,2)+"-"+u(a.getDate(),2)+"T",i+=u(a.getHours(),2)+":"+u(a.getMinutes(),2)+":"+u(a.getSeconds(),2),i+=b+u(d[0],2)+":"+u(d[1],2);break;case"r":l=a.getTimezoneOffset(),d=[Math.floor(Math.abs(l)/60),Math.abs(l)%60],b=l<0?"+":"-",i=f(n)[a.getDay()]+", "+a.getDate()+" "+f(r)[a.getMonth()]+" "+a.getFullYear()+" ",i+=u(a.getHours(),2)+":"+u(a.getMinutes(),2)+":"+u(a.getSeconds(),2)+" ",i+=b+u(d[0],2)+u(d[1],2);break;case"u":i=a.getTime();break;case"U":i=Date.parse(a)/1e3;break;case"\\":m=!0,i=s[t+1];break;default:i=e}o+=i}),o}function y(t){var i=e.Deferred(),a=(t.data("timeline").timeline.attr("langs-dir")||"./langs/")+t[0].lang.toLowerCase()+".json";return e.ajax({url:a,type:"post",dataType:"json"}).done(function(e){i.resolve(e)}).fail(function(){i.reject()}),i.promise()}var p,v=2,b=0,w={init:function(a){var n=e.extend({type:"bar",scale:"days",startDatetime:"currently",datetimePrefix:"",showHeadline:!0,datetimeFormat:{full:"j M Y",year:"Y",month:"M Y",day:"D, j M",years:"Y",months:"F",days:"j",meta:"Y/m/d H:i",metato:""},minuteInterval:30,zerofillYear:!1,range:3,rows:5,rowHeight:40,height:"auto",minGridPer:2,minGridSize:30,rangeAlign:"current",naviIcon:{left:"jqtl-circle-left",right:"jqtl-circle-right"},showPointer:!0,i18n:{},langsDir:"./langs/"},a);return this.each(function(){var a=e(this),l=a.data("timeline"),o=e("
",{title:a.find(".timeline-headline").text(),type:n.type,scale:n.scale,"start-datetime":n.startDatetime,"datetime-prefix":n.datetimePrefix,"show-headline":n.showHeadline?1:0,"datetime-format-full":n.datetimeFormat.full||"j M Y","datetime-format-year":n.datetimeFormat.year||"Y","datetime-format-month":n.datetimeFormat.month||"M Y","datetime-format-day":n.datetimeFormat.day||"D, j M","datetime-format-years":n.datetimeFormat.years||"Y","datetime-format-months":n.datetimeFormat.months||"F","datetime-format-days":n.datetimeFormat.days||"j","datetime-format-meta":n.datetimeFormat.meta||"Y/m/d H:i","datetime-format-metato":n.datetimeFormat.metato||"","minute-interval":n.minuteInterval,"zerofill-year":n.zerofillYear?1:0,range:n.range,rows:n.rows,"row-height":n.rowHeight,"timeline-height":n.height,"min-grid-per":n.minGridPer,"min-grid-size":n.minGridSize,"range-align":n.rangeAlign,"navi-icon-left":n.naviIcon.left||"jqtl-circle-left","navi-icon-right":n.naviIcon.right||"jqtl-circle-right","show-pointer":n.showPointer?1:0,"i18n-month":n.i18n.month?JSON.stringify(n.i18n.month):"","i18n-day":n.i18n.day?JSON.stringify(n.i18n.day):"","i18n-ma":n.i18n.ma?JSON.stringify(n.i18n.ma):"","langs-dir":n.langsDir,text:""});if(a.on("click.timeline",".timeline-to-prev",w.dateback),a.on("click.timeline",".timeline-to-next",w.dateforth),a.on("click.timeline",".timeline-node",w.openEvent),a.on("align.timeline",w.alignment),l)r(a);else{a.data("timeline",{target:a,timeline:o}),p=n.rowHeight;var m,c,h,f;switch("currently"===n.startDatetime?m=s(!0):(m=new Date(d(n.startDatetime)),f=/-|\//,h=n.startDatetime.split(f),Number(h[0])<100&&m.setFullYear(Number(h[0]))),n.scale){case"years":c=m.getFullYear()+"/01/01 00:00:00";break;case"months":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/01 00:00:00";break;case"days":c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" 00:00:00";break;default:c=m.getFullYear()+"/"+(m.getMonth()+1)+"/"+m.getDate()+" "+c.getHours()+":00:00"}a.data("timeline").timeline.attr("actual-start-datetime",c),a[0].lang=M(),y(a).done(function(e){if(a.data("timeline").timeline.attr("i18n-month",JSON.stringify(e.month)),a.data("timeline").timeline.attr("i18n-day",JSON.stringify(e.day)),a.data("timeline").timeline.attr("i18n-ma",JSON.stringify(e.ma)),"format"in e)for(var l in e.format)a.data("timeline").timeline.attr("datetime-format-"+l,e.format[l]);t(a),i(a),a.trigger("align.timeline",[n.rangeAlign]),a.css("visibility","visible"),r(a)}).fail(function(){t(a),i(a),a.trigger("align.timeline",[n.rangeAlign]),a.css("visibility","visible"),r(a)})}})},destroy:function(){return this.each(function(){var t=e(this),i=t.data("timeline");e(window).off(".timeline"),i&&(i.timeline.remove(),t.removeData("timeline"))})},render:function(a){return this.each(function(){var n=e(this),l=n.data("timeline");"type"in a&&l.timeline.attr("type",a.type),"scale"in a&&l.timeline.attr("scale",a.scale),"startDatetime"in a&&l.timeline.attr("start-datetime",a.startDatetime),"datetimePrefix"in a&&l.timeline.attr("datetime-prefix",a.datetimePrefix),"showHeadline"in a&&l.timeline.attr("show-headline",a.showHeadline?1:0),"datetimeFormat"in a&&(void 0!=typeof a.datetimeFormat.full&&l.timeline.attr("datetime-format-full",a.datetimeFormat.full),void 0!=typeof a.datetimeFormat.year&&l.timeline.attr("datetime-format-year",a.datetimeFormat.year),void 0!=typeof a.datetimeFormat.month&&l.timeline.attr("datetime-format-month",a.datetimeFormat.month),void 0!=typeof a.datetimeFormat.day&&l.timeline.attr("datetime-format-day",a.datetimeFormat.day),void 0!=typeof a.datetimeFormat.years&&l.timeline.attr("datetime-format-years",a.datetimeFormat.years),void 0!=typeof a.datetimeFormat.months&&l.timeline.attr("datetime-format-months",a.datetimeFormat.months),void 0!=typeof a.datetimeFormat.days&&l.timeline.attr("datetime-format-days",a.datetimeFormat.days),void 0!=typeof a.datetimeFormat.meta&&l.timeline.attr("datetime-format-meta",a.datetimeFormat.meta),void 0!=typeof a.datetimeFormat.metato&&l.timeline.attr("datetime-format-metato",a.datetimeFormat.metato)),"minuteInterval"in a&&l.timeline.attr("minute-interval",a.minuteInterval),"zerofillYear"in a&&l.timeline.attr("zerofill-year",a.zerofillYear?1:0),"range"in a&&l.timeline.attr("range",a.range),"rows"in a&&l.timeline.attr("rows",a.rows),"rowHeight"in a&&l.timeline.attr("row-height",a.rowHeight),"height"in a&&l.timeline.attr("timeline-height",a.height),"minGridPer"in a&&l.timeline.attr("min-grid-per",a.minGridPer),"minGridSize"in a&&l.timeline.attr("min-grid-size",a.minGridSize),"rangeAlign"in a&&l.timeline.attr("range-align",a.rangeAlign),"naviIcon"in a&&(void 0!=typeof a.naviIcon.left&&l.timeline.attr("navi-icon-left",a.naviIcon.left),void 0!=typeof a.naviIcon.right&&l.timeline.attr("navi-icon-right",a.naviIcon.right)),"showPointer"in a&&l.timeline.attr("show-pointer",a.showPointer?1:0),"i18n"in a&&(void 0!=typeof a.i18n.month&&l.timeline.attr("i18n-month",JSON.stringify(a.i18n.month)),void 0!=typeof a.i18n.day&&l.timeline.attr("i18n-day",JSON.stringify(a.i18n.day)),void 0!=typeof a.i18n.ma&&l.timeline.attr("i18n-ma",JSON.stringify(a.i18n.ma)));var o,m,c,h;switch("currently"===l.timeline.attr("start-datetime")?o=s(!0):(o=new Date(d(l.timeline.attr("start-datetime"))),h=/-|\//,c=l.timeline.attr("start-datetime").split(h),Number(c[0])<100&&o.setFullYear(Number(c[0]))),l.timeline.attr("scale")){case"years":m=o.getFullYear()+"/01/01 00:00:00";break;case"months":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/01 00:00:00";break;case"days":m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" 00:00:00";break;default:m=o.getFullYear()+"/"+(o.getMonth()+1)+"/"+o.getDate()+" "+m.getHours()+":00:00"}l.timeline.attr("actual-start-datetime",m),n.find(".timeline-container").empty().removeClass("timeline-container"),n[0].lang=M(),y(n).done(function(e){if(l.timeline.attr("i18n-month",JSON.stringify(e.month)),l.timeline.attr("i18n-day",JSON.stringify(e.day)),l.timeline.attr("i18n-ma",JSON.stringify(e.ma)),"format"in e)for(var a in e.format)n.data("timeline").timeline.attr("datetime-format-"+a,e.format[a]);t(n),i(n),r(n),n.trigger("align.timeline",[l.timeline.attr("range-align")])}).fail(function(){t(n),i(n),r(n),n.trigger("align.timeline",[l.timeline.attr("range-align")])})})},show:function(){return this.each(function(){e(this).css("display","block").css("visibility","visible")})},hide:function(){return this.each(function(){e(this).css("visibility","hidden").css("display","none")})},initialized:function(t){return this.each(function(){var i=e(this),a=i.data("timeline");a&&"function"==typeof t&&t(i,a)})},dateback:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=l/r>1?l-r:l-(n-r)/Number(a.timeline.attr("range")))<0?0:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},dateforth:function(t){t.preventDefault();var i=e(this).parents(".timeline-container"),a=i.data("timeline"),r=i.find(".timeline-body")[0].clientWidth,n=i.find(".timeline-wrapper")[0].scrollWidth,l=i.find(".timeline-body").scrollLeft(),s=0;return n>r&&(s=(s=(n-l)/r>1?l+r:l+(n-r)/Number(a.timeline.attr("range")))>n-r+1?n-r+1:s,i.find(".timeline-body").animate({scrollLeft:s},300)),this},alignment:function(){var t=arguments.length>1?Array.prototype.slice.call(arguments,1):[arguments[0]],i=t[0].toLowerCase(),a=void 0!==t[1]?String(t[1]).toLowerCase():0,r=e(this).find(".timeline-body")[0].clientWidth,n=e(this).find(".timeline-wrapper")[0].scrollWidth,l=0;if(n>r){var o,c=e(this).data("timeline");switch(i){case"left":l=0;break;case"right":l=n-r+1;break;case"center":l=(n-r)/2;break;case"current":l=(o=m(s(!0),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;case"latest":var h,f,u,y=new Function("return "+c.timeline.text())();e.each(y,function(e,t){f=g("U",t.start),0==e?(h=f,u=e):f>=h&&(h=f,u=e)}),l=(o=m(new Date(d(y[u].start)),c))>-1?o-r/2>n-r+1?n-r+1:o-r/2:n-r+1;break;default:l=0;var p="#"+i;e(p).length&&(l=(o=e(p).position().left)-r/2>n-r+1?n-r+1:o-r/2)}-1!=e.inArray(a,["slow","normal","fast"])||Number(a)>0?e(this).find(".timeline-body").animate({scrollLeft:l},a):e(this).find(".timeline-body").scrollLeft(l)}return this},getOptions:function(){var t=e(this).data("timeline");return{title:t.timeline.attr("title"),type:t.timeline.attr("type"),scale:t.timeline.attr("scale"),startDatetime:t.timeline.attr("start-datetime"),datetimePrefix:t.timeline.attr("datetime-prefix"),showHeadline:1==Number(t.timeline.attr("show-headline")),datetimeFormat:{full:t.timeline.attr("datetime-format-full"),year:t.timeline.attr("datetime-format-year"),month:t.timeline.attr("datetime-format-month"),day:t.timeline.attr("datetime-format-day"),years:t.timeline.attr("datetime-format-years"),months:t.timeline.attr("datetime-format-months"),days:t.timeline.attr("datetime-format-days")},minuteInterval:Number(t.timeline.attr("minute-interval")),zerofillYear:1==Number(t.timeline.attr("zerofill-year")),range:Number(t.timeline.attr("range")),rows:Number(t.timeline.attr("rows")),rowHeight:Number(t.timeline.attr("row-height")),height:"auto"===t.timeline.attr("timeline-height")?"auto":Number(t.timeline.attr("timeline-height")),minGridPer:Number(t.timeline.attr("min-grid-per")),minGridSize:Number(t.timeline.attr("min-grid-size")),rangeAlign:t.timeline.attr("range-align"),naviIcon:{left:t.timeline.attr("navi-icon-left"),right:t.timeline.attr("navi-icon-right")},showPointer:t.timeline.attr("show-pointer"),i18n:{month:JSON.parse(t.timeline.attr("i18n-month")),day:JSON.parse(t.timeline.attr("i18n-day")),ma:JSON.parse(t.timeline.attr("i18n-ma"))},events:new Function("return "+t.timeline.text())()}},addEvent:function(t,i){return this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())(),s=1,o=[s];t.length>0&&(e.each(l,function(e,t){o.push(Number(t.eventId))}),s=Math.max.apply(null,o)+1,e.each(t,function(e,t){t.eventId=s,s++,l.push(t)}),n.timeline.text(JSON.stringify(l))),r(a),e(this).trigger("align.timeline",["evt-"+(s-1),"fast"]),n&&"function"==typeof i&&i(a,n)})},removeEvent:function(){var t,i;return 0==arguments.length?(t="all",i=null):1==arguments.length?"function"==typeof arguments[0]?(t="all",i=arguments[0]):(t=arguments[0],i=null):(t=arguments[0],i=arguments[1]),this.each(function(){var a=e(this),n=a.data("timeline"),l=new Function("return "+n.timeline.text())();if("all"===t)l=[];else{var s=[];e.each(l,function(i,a){-1==e.inArray(a.eventId,t)&&s.push(a)}),l=s}n.timeline.text(JSON.stringify(l)),r(a),n&&"function"==typeof i&&i(a,n)})},updateEvent:function(t,i){return void 0!==t&&this.each(function(){var a,n=e(this),l=n.data("timeline"),s=new Function("return "+l.timeline.text())(),o=[];t.length>0&&e.each(t,function(e,t){o.push(t.eventId)}),s.length>0&&o.length>0&&(e.each(s,function(i,r){if(-1!=e.inArray(r.eventId,o)){var n;e.each(t,function(e,t){if(t.eventId==r.eventId)return n=t,a=t.eventId,!1}),s[i]=n}}),l.timeline.text(JSON.stringify(s))),r(n),e(this).trigger("align.timeline",["evt-"+a,"fast"]),l&&"function"==typeof i&&i(n,l)})},openEvent:function(t){var i=Number(e(t.target).attr("id").replace("evt-","")),a=t.delegateTarget;return""!==i&&0!=i&&e(a).each(function(){var t,a=e(this).data("timeline"),r=new Function("return "+a.timeline.text())(),n={start:a.timeline.attr("datetime-format-meta"),end:a.timeline.attr("datetime-format-metato")};e.each(r,function(e,a){if(a.eventId==i)return t=a,!1}),e(this).find(".timeline-node").each(function(){e(this).attr("id")==="evt-"+i?e(this).addClass("active"):e(this).removeClass("active")}),e(this).trigger("align.timeline",["evt-"+i,"fast"]),l(t,n)&&t.callback&&Function.call(null,"return "+t.callback)()})}};e.fn.timeline=function(t){return w[t]?w[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.timeline."):w.init.apply(this,arguments)};var x=function(){return e.ajax({type:"GET"}).done(function(t,i,a){e("body").data("serverDate",new Date(d(a.getResponseHeader("Date"))))}).promise()},M=function(){return navigator.userLanguage||navigator.browserLanguage||navigator.language}}(jQuery); \ No newline at end of file diff --git a/jquery.timeline.jquery.json b/jquery.timeline.jquery.json index 319aa71..0dba603 100644 --- a/jquery.timeline.jquery.json +++ b/jquery.timeline.jquery.json @@ -6,7 +6,7 @@ "timeline", "horizontal" ], - "version": "1.0.2", + "version": "1.0.3", "author": { "name": "ka2", "email": "ka2@ka2.org", diff --git a/package.json b/package.json index df2e2b3..874e63c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery.timeline", - "version": "1.0.2", + "version": "1.0.3", "description": "Horizontal Timeline plugin for jQuery", "main": "gulpfile.js", "dependencies": { diff --git a/src/langs/de-de.json b/src/langs/de-de.json new file mode 100644 index 0000000..e0eefe5 --- /dev/null +++ b/src/langs/de-de.json @@ -0,0 +1,40 @@ +{ + "month": { + "Jan.": "Janvier", + "Fév.": "Février", + "Mars": "Mars", + "Avr.": "Avril", + "Mai": "Mai", + "Juin": "Juin", + "Juillet": "Juillet", + "Août.": "Août", + "Sept.": "Septembre", + "Oct.": "Octobre", + "Nov.": "Novembre", + "Déc.": "Décembre" + }, + "day": { + "Lu": "Lundi", + "Ma": "Mardi", + "Me": "Mercredi", + "Jeudi": "Jeudi", + "Ve": "Vendredi", + "Sa": "Samedi", + "Di": "Dimanche" + }, + "ma": [ + "vorm.", + "nachm." + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} \ No newline at end of file diff --git a/src/langs/en-US.json b/src/langs/en-US.json new file mode 100644 index 0000000..eb5677c --- /dev/null +++ b/src/langs/en-US.json @@ -0,0 +1,40 @@ +{ + "month": { + "Jan": "January", + "Feb": "February", + "Mar": "March", + "Apr": "April", + "May": "May", + "Jun": "June", + "Jul": "July", + "Aug": "August", + "Sep": "September", + "Oct": "October", + "Nov": "November", + "Dec": "December" + }, + "day": { + "Sun": "Sunday", + "Mon": "Monday", + "Tue": "Tuesday", + "Wed": "Wednesday", + "Thu": "Thurseday", + "Fri": "Friday", + "Sat": "Saturday" + }, + "ma": [ + "am", + "pm" + ], + "format": { + "full": "j M Y", + "year": "Y", + "month": "M Y", + "day": "D, j M", + "years": "Y", + "months": "F", + "days": "j", + "meta": "g:i A, D F j, Y", + "metato": "" + } +} \ No newline at end of file diff --git a/src/langs/ja.json b/src/langs/ja.json new file mode 100644 index 0000000..9f74673 --- /dev/null +++ b/src/langs/ja.json @@ -0,0 +1,40 @@ +{ + "month": { + "一月": "睦月", + "二月": "如月", + "三月": "弥生", + "四月": "卯月", + "五月": "皐月", + "六月": "水無月", + "七月": "文月", + "八月": "葉月", + "九月": "長月", + "十月": "神無月", + "十一月": "霜月", + "十二月": "師走" + }, + "day": { + "日": "日曜", + "月": "月曜", + "火": "火曜", + "水": "水曜", + "木": "木曜", + "金": "金曜", + "土": "土曜" + }, + "ma": [ + "午前", + "午後" + ], + "format": { + "full": "Y年m月j日", + "year": "Y年", + "month": "Y年M", + "day": "m月j日(D)", + "years": "Y年", + "months": "F", + "days": "j(D)", + "meta": "Y年m月j日 H:i", + "metato": "" + } +} \ No newline at end of file diff --git a/src/timeline.js b/src/timeline.js index 3809e8a..f4a5362 100644 --- a/src/timeline.js +++ b/src/timeline.js @@ -1,7 +1,7 @@ /*! * jQuery Timeline Plugin * ------------------------ - * Version: 1.0.2 + * Version: 1.0.3 * Author: Ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT @@ -12,7 +12,7 @@ var pluginName = 'jQuery.Timeline', pointMargin = 2, tlEventAreaH = 0, - rowH, i18nMonth, i18nDay, i18nMa; + rowH; var methods = { init : function( options ) { @@ -31,7 +31,9 @@ day : "D, j M", // or "j" etc. years : "Y", months : "F", - days : "j" + days : "j", + meta : "Y/m/d H:i", // start datetime in meta of Event Detail; or "g:i A, D F j, Y" + metato : "" // end datetime in meta of Event Detail; default is same to meta }, minuteInterval : 30, // Recommend more than 5 minutes; only if top scale is "days" ; Deprecated zerofillYear : false, // It's outputted at the "0099" if true, the "99" if false @@ -47,11 +49,8 @@ right : "jqtl-circle-right" }, showPointer : true, - i18n : { - month : { 'Jan': 'January', 'Feb': 'February', 'Mar': 'March', 'Apr': 'April', 'May': 'May', 'Jun': 'June', 'Jul': 'July', 'Aug': 'August', 'Sep': 'September', 'Oct': 'October', 'Nov': 'November', 'Dec': 'December' }, - day : { 'Sun': 'Sunday', 'Mon': 'Monday', 'Tue': 'Tuesday', 'Wed': 'Wednesday', 'Thu': 'Thurseday', 'Fri': 'Friday', 'Sat': 'Saturday' }, - ma : [ 'am', 'pm' ] - } + i18n : {}, + langsDir : "./langs/" }, options); // initialize plugin @@ -73,6 +72,8 @@ "datetime-format-years" : settings.datetimeFormat.years || 'Y', "datetime-format-months": settings.datetimeFormat.months || 'F', "datetime-format-days" : settings.datetimeFormat.days || 'j', + "datetime-format-meta" : settings.datetimeFormat.meta || 'Y/m/d H:i', + "datetime-format-metato": settings.datetimeFormat.metato || '', "minute-interval" : settings.minuteInterval, "zerofill-year" : settings.zerofillYear ? 1 : 0, "range" : settings.range, @@ -85,9 +86,10 @@ "navi-icon-left" : settings.naviIcon.left || 'jqtl-circle-left', "navi-icon-right" : settings.naviIcon.right || 'jqtl-circle-right', "show-pointer" : settings.showPointer ? 1 : 0, - "i18n-month" : JSON.stringify( settings.i18n.month ), - "i18n-day" : JSON.stringify( settings.i18n.day ), - "i18n-ma" : JSON.stringify( settings.i18n.ma ), + "i18n-month" : settings.i18n.month ? JSON.stringify( settings.i18n.month ) : '', + "i18n-day" : settings.i18n.day ? JSON.stringify( settings.i18n.day ) : '', + "i18n-ma" : settings.i18n.ma ? JSON.stringify( settings.i18n.ma ) : '', + "langs-dir" : settings.langsDir, "text" : "" }); @@ -106,9 +108,6 @@ }); rowH = settings.rowHeight; - i18nMonth = settings.i18n.month; - i18nDay = settings.i18n.day; - i18nMa = settings.i18n.ma; // Retrive Current Date var currentDt, currentDate, _tmp, _regx; @@ -137,31 +136,63 @@ currentDate = currentDt.getFullYear() +'/'+ (currentDt.getMonth() + 1) +'/'+ currentDt.getDate() +' '+ currentDate.getHours() +':00:00'; } $this.data('timeline').timeline.attr( 'actual-start-datetime', currentDate ); - - renderTimeline( $this ); - // timeline container sizing - resizeTimeline( $this ); + // Load Language as deferred interface (added v1.0.3) + $this[0].lang = getBrowserLang(); // Set locale + importLocale( $this ).done(function( locale ) { + $this.data('timeline').timeline.attr( 'i18n-month', JSON.stringify( locale.month ) ); + $this.data('timeline').timeline.attr( 'i18n-day', JSON.stringify( locale.day ) ); + $this.data('timeline').timeline.attr( 'i18n-ma', JSON.stringify( locale.ma ) ); + if ( 'format' in locale ) { + for ( var prop in locale.format ) { + $this.data('timeline').timeline.attr( 'datetime-format-' + prop, locale.format[prop] ); + } + } + + renderTimeline( $this ); + + // timeline container sizing + resizeTimeline( $this ); + + // do methods.alignment + $this.trigger( 'align.timeline', [ settings.rangeAlign ] ); + + $this.css('visibility','visible'); + + placeEvents( $this ); + + }).fail(function() { + + renderTimeline( $this ); + + // timeline container sizing + resizeTimeline( $this ); + + // do methods.alignment + $this.trigger( 'align.timeline', [ settings.rangeAlign ] ); + + $this.css('visibility','visible'); + + placeEvents( $this ); + + }); - // do methods.alignment - $this.trigger( 'align.timeline', [ settings.rangeAlign ] ); + } else { + + /* Debugging code for loading effect: + var wait = 0, + sleep = setInterval(function() { + wait++; + if ( wait == 1 ) { + placeEvents( $this ); + clearInterval( sleep ); + } + }, 300); + */ - $this.css('visibility','visible'); + placeEvents( $this ); } - - /* Debugging code for loading effect: - var wait = 0, - sleep = setInterval(function() { - wait++; - if ( wait == 1 ) { - placeEvents( $this ); - clearInterval( sleep ); - } - }, 300); - */ - placeEvents( $this ); - }); }, @@ -223,6 +254,12 @@ if ( typeof options.datetimeFormat.days != undefined ) { data.timeline.attr( 'datetime-format-days', options.datetimeFormat.days ); } + if ( typeof options.datetimeFormat.meta != undefined ) { + data.timeline.attr( 'datetime-format-meta', options.datetimeFormat.meta ); + } + if ( typeof options.datetimeFormat.metato != undefined ) { + data.timeline.attr( 'datetime-format-metato', options.datetimeFormat.metato ); + } } if ( 'minuteInterval' in options ) { data.timeline.attr( 'minute-interval', options.minuteInterval ); @@ -303,12 +340,32 @@ data.timeline.attr( 'actual-start-datetime', currentDate ); $this.find('.timeline-container').empty().removeClass('timeline-container'); - renderTimeline( $this ); - resizeTimeline( $this ); - placeEvents( $this ); - - // do methods.alignment - $this.trigger( 'align.timeline', [ data.timeline.attr('range-align') ] ); + // Load Language as deferred interface (added v1.0.3) + $this[0].lang = getBrowserLang(); // Set locale + importLocale( $this ).done(function( locale ) { + data.timeline.attr( 'i18n-month', JSON.stringify( locale.month ) ); + data.timeline.attr( 'i18n-day', JSON.stringify( locale.day ) ); + data.timeline.attr( 'i18n-ma', JSON.stringify( locale.ma ) ); + if ( 'format' in locale ) { + for ( var prop in locale.format ) { + $this.data('timeline').timeline.attr( 'datetime-format-' + prop, locale.format[prop] ); + } + } + + renderTimeline( $this ); + resizeTimeline( $this ); + placeEvents( $this ); + + // do methods.alignment + $this.trigger( 'align.timeline', [ data.timeline.attr('range-align') ] ); + }).fail(function() { + renderTimeline( $this ); + resizeTimeline( $this ); + placeEvents( $this ); + + // do methods.alignment + $this.trigger( 'align.timeline', [ data.timeline.attr('range-align') ] ); + }); }); }, show : function( ) { @@ -632,7 +689,9 @@ } return $(currentTimeline).each(function(){ var data = $(this).data('timeline'), - eventNodes = ( new Function( 'return ' + data.timeline.text() ) )(), eventData; + eventNodes = ( new Function( 'return ' + data.timeline.text() ) )(), + metaFormat = { start: data.timeline.attr('datetime-format-meta'), end: data.timeline.attr('datetime-format-metato') }, + eventData; $.each( eventNodes, function( i, evt ) { if ( evt.eventId == eventId ) { eventData = evt; @@ -652,7 +711,7 @@ // Alignment to current node $(this).trigger( 'align.timeline', [ 'evt-' + eventId, 'fast' ] ); - if ( showEvent( eventData ) && eventData.callback ) { + if ( showEvent( eventData, metaFormat ) && eventData.callback ) { // console.info( 'Fired "openEvent" method after event shown.' ); Function.call( null, 'return ' + eventData.callback )(); //var callback = Function.call( null, 'return ' + eventData.callback )(); @@ -828,7 +887,6 @@ zf = '0'; } } -//console.info( data.timeline.attr('datetime-format-years') ); label = zf + formatDate( data.timeline.attr('datetime-format-years'), tmpDate ); break; case 'months': @@ -1259,7 +1317,6 @@ x: $(this)[0].offsetLeft - margin + cv.x, y: Math.floor( $(this)[0].offsetTop / rowH ) * rowH + cv.y }; -console.info([ cv.x, cv.y, margin, selfPoint.x, selfPoint.y ]); // Draw lines if ( $(this).data('relayBefore') != undefined ) { @@ -1372,7 +1429,7 @@ console.info([ cv.x, cv.y, margin, selfPoint.x, selfPoint.y ]); } - function showEvent( eventData ) { + function showEvent( eventData, metaFormat ) { if ( $('.timeline-event-view').length == 0 ) { return true; } @@ -1384,10 +1441,13 @@ console.info([ cv.x, cv.y, margin, selfPoint.x, selfPoint.y ]); tlevFooter = $('
', { addClass: "timeline-event-footer" }), temp; tlevLabel.text( eventData.label ); - temp = '' + formatDate( 'Y/m/d H:i', eventData.start ) + ''; + if ( metaFormat.end === '' ) { + metaFormat.end = metaFormat.start; + } + temp = '' + formatDate( metaFormat.start, eventData.start ) + ''; if ( eventData.end ) { temp += ''; - temp += '' + formatDate( 'Y/m/d H:i', eventData.end ) + ''; + temp += '' + formatDate( metaFormat.end, eventData.end ) + ''; } tlevHeader.append( tlevLabel.prop('outerHTML') + tlevMeta.append( temp ).prop('outerHTML') ); if ( eventData.content ) { @@ -1538,9 +1598,9 @@ console.info([ cv.x, cv.y, margin, selfPoint.x, selfPoint.y ]); // Date format like PHP format = format || ''; var baseDt = Object.prototype.toString.call( date ) === '[object Date]' ? date : new Date( normalizeDate( date ) ), - month = i18nMonth, - day = i18nDay, - ma = i18nMa, + month = { 'Jan': 'January', 'Feb': 'February', 'Mar': 'March', 'Apr': 'April', 'May': 'May', 'Jun': 'June', 'Jul': 'July', 'Aug': 'August', 'Sep': 'September', 'Oct': 'October', 'Nov': 'November', 'Dec': 'December' }, + day = { 'Sun': 'Sunday', 'Mon': 'Monday', 'Tue': 'Tuesday', 'Wed': 'Wednesday', 'Thu': 'Thurseday', 'Fri': 'Friday', 'Sat': 'Saturday' }, + ma = [ 'am', 'pm' ], formatStrings = format.split(''), converted = '', esc = false, @@ -1580,6 +1640,13 @@ console.info([ cv.x, cv.y, margin, selfPoint.x, selfPoint.y ]); return baseDt; } + if ( $('.timeline-container').length > 0 ) { + var tlData = $('.timeline-container').eq(0).data('timeline').timeline; + month = tlData.attr('i18n-month') ? JSON.parse( tlData.attr('i18n-month') ) : month; + day = tlData.attr('i18n-day') ? JSON.parse( tlData.attr('i18n-day') ) : day; + ma = tlData.attr('i18n-ma') ? JSON.parse( tlData.attr('i18n-ma') ) : ma; + } + formatStrings.forEach( function( str, i ) { var res, tmp, tzo, sign; if ( esc === false ) { @@ -1706,5 +1773,25 @@ console.info([ cv.x, cv.y, margin, selfPoint.x, selfPoint.y ]); return converted; } + var getBrowserLang = function() { + return ( navigator.userLanguage || navigator.browserLanguage || navigator.language ); //.substr(0,2); + }; + + function importLocale( tlObj ) { + var dfd = $.Deferred(), + langDir = tlObj.data('timeline').timeline.attr('langs-dir') || './langs/', + loadPath = langDir + tlObj[0].lang.toLowerCase() + '.json'; + $.ajax({ + url: loadPath, + type: 'post', + dataType: 'json' + }).done(function( locale ){ + dfd.resolve( locale ); + }).fail(function(){ + dfd.reject(); + }); + + return dfd.promise(); + } })( jQuery ); \ No newline at end of file diff --git a/src/timeline.scss b/src/timeline.scss index 1f33ef8..48f99af 100644 --- a/src/timeline.scss +++ b/src/timeline.scss @@ -5,16 +5,15 @@ $default_event_txtcolor: #777e41; $default_event_pointer_bgcolor: #f0f0f0; $default_event_pointer_border: #4496d3; $default_needle_pointer_color: #e8383d; - -@charset "UTF-8"; /*! * jQuery Timeline Plugin * ------------------------ - * Version: 1.0.2 + * Version: 1.0.3 * Coded by: ka2 ( https://ka2.org/ ) * Repository: https://github.com/ka215/jquery.timeline * Lisenced: MIT */ +@charset "UTF-8"; @font-face { font-family: 'jQueryTimeline'; src: url('#{$font_path}jQueryTimeline.eot?t4qpol'); @@ -234,7 +233,7 @@ $default_needle_pointer_color: #e8383d; } .timeline-events { position: relative; - display: block; + display: none; left: 0; width: 100%; height: auto; @@ -244,6 +243,9 @@ $default_needle_pointer_color: #e8383d; position: absolute; height: 200px; } +.timeline-body .timeline-events { + display: block; +} .timeline-node { position: absolute; display: block;