| 9194 | container.appendChild(dayGridContainer); |
| 9195 | } |
| 9196 | _renderMonthGrid(container) { |
| 9197 | const { date } = this.getState(); |
| 9198 | const wrapper = document.createElement("div"); |
| 9199 | wrapper.classList.add("dhx_cal_datepicker_months"); |
| 9200 | const months = []; |
| 9201 | for (let i = 0; i < 12; i++) { |
| 9202 | months.push(new Date(date.getFullYear(), i, 1)); |
| 9203 | } |
| 9204 | const formatLabel = this.scheduler.date.date_to_str("%M"); |
| 9205 | months.forEach((month) => { |
| 9206 | const monthElement = document.createElement("div"); |
| 9207 | monthElement.classList.add("dhx_cal_datepicker_month"); |
| 9208 | if (date.getMonth() === month.getMonth()) { |
| 9209 | monthElement.classList.add("dhx_cal_datepicker_current"); |
| 9210 | } |
| 9211 | monthElement.setAttribute("data-month", month.getMonth()); |
| 9212 | monthElement.innerHTML = formatLabel(month); |
| 9213 | this._domEvents.attach(monthElement, "click", () => { |
| 9214 | const newDate = new Date(month); |
| 9215 | this.setState({ date: newDate, mode: "days" }); |
| 9216 | }); |
| 9217 | wrapper.appendChild(monthElement); |
| 9218 | }); |
| 9219 | container.appendChild(wrapper); |
| 9220 | const doneArea = document.createElement("div"); |
| 9221 | doneArea.classList.add("dhx_cal_datepicker_done"); |
| 9222 | const doneBtn = document.createElement("button"); |
| 9223 | doneBtn.innerText = "Done"; |
| 9224 | doneBtn.classList.add("dhx_cal_datepicker_done_btn"); |
| 9225 | this._domEvents.attach(doneBtn, "click", () => { |
| 9226 | this.setState({ mode: "days" }); |
| 9227 | }); |
| 9228 | doneArea.appendChild(doneBtn); |
| 9229 | container.appendChild(doneArea); |
| 9230 | } |
| 9231 | _renderYearGrid(container) { |
| 9232 | const { date } = this.getState(); |
| 9233 | const startYear = Math.floor(date.getFullYear() / 10) * 10; |