UNPKG

tui-calendar-react

Version:
3 lines (2 loc) 4.53 kB
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var React=require("react"),React__default=_interopDefault(React),PropTypes=_interopDefault(require("prop-types")),day=_interopDefault(require("dayjs")),BaseCalendar=_interopDefault(require("tui-calendar"));function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return(_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _setPrototypeOf(e,t){return(_setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _possibleConstructorReturn(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?_assertThisInitialized(e):t}var EVENT_TYPES=["beforeCreateSchedule","afterRenderSchedule","beforeUpdateSchedule","beforeDeleteSchedule","clickSchedule","clickDayname"];function getTimeTemplate(e,t){var n=[],r=day(e.start.toUTCString());return t||n.push("<strong>"+r.format("HH:mm")+"</strong> "),e.isPrivate?(n.push('<span class="calendar-font-icon ic-lock-b"></span>'),n.push(" Private")):(e.isReadOnly?n.push('<span class="calendar-font-icon ic-readonly-b"></span>'):e.recurrenceRule?n.push('<span class="calendar-font-icon ic-repeat-b"></span>'):e.attendees.length>0?n.push('<span class="calendar-font-icon ic-user-b"></span>'):e.location&&n.push('<span class="calendar-font-icon ic-location-b"></span>'),n.push(" "+e.title)),n.join("")}var TuiCalendar=function(e){function t(){var e,n;_classCallCheck(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return _defineProperty(_assertThisInitialized(_assertThisInitialized(n=_possibleConstructorReturn(this,(e=_getPrototypeOf(t)).call.apply(e,[this].concat(a))))),"calRef",React.createRef()),n}return _inherits(t,React.PureComponent),_createClass(t,[{key:"componentDidMount",value:function(){this.calendar=new BaseCalendar(this.calRef.current,Object.assign({defaultView:"month",taskView:!0,useCreationPopup:!0,useDetailPopup:!0,timezones:[{timezoneOffset:420,displayLabel:"GMT+08:00",tooltip:"Hong Kong"}],template:{monthGridHeader:function(e){return'<span class="tui-full-calendar-weekday-grid-date">'+new Date(e.date).getDate()+"</span>"},milestone:function(e){return'<span class="calendar-font-icon ic-milestone-b"></span> <span style="background-color: '+e.bgColor+'">'+e.title+"</span>"},allday:function(e){return getTimeTemplate(e,!0)},time:function(e){return getTimeTemplate(e,!1)}}},this.props.options)),this.registerEvents(),this.renderCal()}},{key:"componentDidUpdate",value:function(e){var t=this;EVENT_TYPES.map(function(n){t.props[n]!==e[n]&&(t.calendar.off(n),t.calendar.on(n,t.props[n]))}),this.renderCal()}},{key:"componentWillUnmount",value:function(){this.calendar.destroy()}},{key:"registerEvents",value:function(){var e=this;this.calendar.on(EVENT_TYPES.reduce(function(t,n){return Object.assign({},t,_defineProperty({},n,e.props[n]))},{}))}},{key:"renderCal",value:function(){this.calendar.clear(),this.calendar.createSchedules(this.props.schedules),this.calendar.render()}},{key:"render",value:function(){return React__default.createElement("div",{ref:this.calRef,style:{height:800}})}}]),t}();TuiCalendar.defaultProps=Object.assign({schedules:[],options:{}},EVENT_TYPES.reduce(function(e,t){return Object.assign({},e,_defineProperty({},t,function(){}))},{})),TuiCalendar.propTypes=Object.assign({schedules:PropTypes.array,options:PropTypes.object},EVENT_TYPES.reduce(function(e,t){return Object.assign({},e,_defineProperty({},t,PropTypes.func))},{})),module.exports=TuiCalendar; //# sourceMappingURL=react-tui-calendar.cjs.min.js.map