akfatimeline 1.0.2 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +5 -3
- package/CHANGELOG.md +35 -0
- package/dist/Timeline.js +3277 -1
- package/dist/dist/components/Timeline/DatePickerComponent.js +17 -0
- package/dist/dist/components/Timeline/DragAndDropHandler.js +35 -0
- package/dist/dist/components/Timeline/EventTooltip.js +206 -0
- package/dist/dist/components/Timeline/Indicator.js +29 -0
- package/dist/dist/components/Timeline/MasterHeader.js +68 -0
- package/dist/dist/components/Timeline/Resources.js +53 -0
- package/dist/dist/components/Timeline/ResourcesHeader.js +14 -0
- package/dist/dist/components/Timeline/Timeline.css +616 -0
- package/dist/dist/components/Timeline/Timeline.js +304 -0
- package/dist/dist/components/Timeline/TimelineCell.js +8 -0
- package/dist/dist/components/Timeline/TimelineContent.js +447 -0
- package/dist/dist/components/Timeline/TimelineEvents.js +114 -0
- package/dist/dist/components/Timeline/TimelineHeader.js +43 -0
- package/dist/dist/components/Timeline/TimelineMonthContainer.js +29 -0
- package/dist/dist/components/Timeline/TimelineResources.js +16 -0
- package/dist/dist/hooks/useDragAndDrop.js +80 -0
- package/dist/dist/hooks/useEventDragDrop.js +126 -0
- package/dist/dist/hooks/useExtendEvent.js +28 -0
- package/dist/dist/utils/HorizontalVirtualScroll.js +0 -0
- package/dist/dist/utils/dateUtils.js +36 -0
- package/dist/dist/utils/filterTimelineData.js +21 -0
- package/dist/dist/utils/timelineUtils.js +40 -0
- package/package.json +2 -1
- package/public/dist/Timeline.js +3277 -0
- package/public/dist/dist/components/Timeline/DatePickerComponent.js +17 -0
- package/public/dist/dist/components/Timeline/DragAndDropHandler.js +35 -0
- package/public/dist/dist/components/Timeline/EventTooltip.js +206 -0
- package/public/dist/dist/components/Timeline/Indicator.js +29 -0
- package/public/dist/dist/components/Timeline/MasterHeader.js +68 -0
- package/public/dist/dist/components/Timeline/Resources.js +53 -0
- package/public/dist/dist/components/Timeline/ResourcesHeader.js +14 -0
- package/public/dist/dist/components/Timeline/Timeline.css +616 -0
- package/public/dist/dist/components/Timeline/Timeline.js +304 -0
- package/public/dist/dist/components/Timeline/TimelineCell.js +8 -0
- package/public/dist/dist/components/Timeline/TimelineContent.js +447 -0
- package/public/dist/dist/components/Timeline/TimelineEvents.js +114 -0
- package/public/dist/dist/components/Timeline/TimelineHeader.js +43 -0
- package/public/dist/dist/components/Timeline/TimelineMonthContainer.js +29 -0
- package/public/dist/dist/components/Timeline/TimelineResources.js +16 -0
- package/public/dist/dist/hooks/useDragAndDrop.js +80 -0
- package/public/dist/dist/hooks/useEventDragDrop.js +126 -0
- package/public/dist/dist/hooks/useExtendEvent.js +28 -0
- package/public/dist/dist/utils/HorizontalVirtualScroll.js +0 -0
- package/public/dist/dist/utils/dateUtils.js +36 -0
- package/public/dist/dist/utils/filterTimelineData.js +21 -0
- package/public/dist/dist/utils/timelineUtils.js +40 -0
- package/public/index kutuphane /304/261c/304/261n.html" +43 -0
- package/public/index tasarim icin.html +20 -0
- package/src/App.js +161 -154
- package/src/components/Timeline/DatePickerComponent.js +17 -0
- package/src/components/Timeline/EventTooltip.js +1 -1
- package/src/components/Timeline/Indicator.js +1 -2
- package/src/components/Timeline/MasterHeader.js +36 -23
- package/src/components/Timeline/Timeline.css +90 -8
- package/src/components/Timeline/Timeline.js +71 -44
- package/src/components/Timeline/TimelineContent.js +154 -129
- package/src/hooks/useEventDragDrop.js +22 -16
- package/webpack.config.js +25 -7
- package/src/App copy.js +0 -185
- package/src/components/Timeline/TimelineContent copy.js +0 -421
package/dist/Timeline.js
CHANGED
|
@@ -1 +1,3277 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("react")):"function"==typeof define&&define.amd?define(["react"],n):"object"==typeof exports?exports.AkfaTimeline=n(require("react")):e.AkfaTimeline=n(e.react)}(this,(e=>(()=>{"use strict";var n={27:(e,n,t)=>{t.d(n,{A:()=>i});var r=t(601),o=t.n(r),a=t(314),l=t.n(a)()(o());l.push([e.id,'/* src/components/Timeline/Timeline.css */\n\n/* \n Temel: "sales sayfası" temasıyla uyumlu renkler, \n light vs. dark tanımları \n*/\n\n:root {\n /* Light Tema Varsayılan Renkler */\n --background-color: #f5f5f2; /* Açık tema arka plan */\n --text-color: #666; /* Açık tema yazı rengi */\n --border-color: #bbb; /* Daha yumuşak border */\n\n /* Header */\n --header-background-color: #f5f5f2; /* Üst header, tablo header */\n --header-text-color: #666;\n\n /* Resources */\n --resource-background-color: #f5f5f2; \n --resource-text-color: #666;\n --group-header-background-color: #dadada;\n\n /* Timeline */\n --timeline-header-background-color: #f5f5f2;\n --timeline-cell-border-color: #ccc;\n --timeline-event-background-color: #fff;\n --timeline-event-border-color: #666;\n --timeline-event-text-color: #666;\n\n /* Scrollbar */\n --scrollbar-thumb-background: #aaa;\n --scrollbar-thumb-hover-background: #888;\n\n --resource-width: 150px;\n --cell-height: 40px;\n --header-height: 60px;\n --time-slot-height: 20px;\n --container-height: 480px;\n\n --timeline-new-event-background-color: #ff5722;\n --timeline-new-event-text-color: #fff;\n\n --timeline-event-background-color: #ff7f50; \n --timeline-event-text-color: #fff;\n --timeline-event-border-color: #fff;\n\n --timeline-cell-selected-bg: rgba(25,118,210,0.2);\n\n user-select: none; /* Metin seçimini engelle */\n}\n\n/* Koyu Tema */\n.dark-mode {\n /* Koyu tema */\n --background-color: #16202a; /* Koyu tema arka plan */\n --text-color: #ddd; /* Koyu tema yazı rengi */\n --border-color: #444;\n\n --header-background-color: #16202a;\n --header-text-color: #bbb;\n\n --resource-background-color: #16202a;\n --resource-text-color: #bbb;\n --group-header-background-color: #0d141b;\n\n --timeline-header-background-color: #16202a;\n --timeline-cell-border-color: #444;\n --timeline-event-background-color: #2a2a2a;\n --timeline-event-border-color: #222;\n --timeline-event-text-color: #ddd;\n\n --scrollbar-thumb-background: #555;\n --scrollbar-thumb-hover-background: #888;\n\n --timeline-new-event-background-color: #a83e20;\n --timeline-new-event-text-color: #eee;\n\n --timeline-event-background-color: #a83e20;\n --timeline-event-text-color: #fff;\n --timeline-event-border-color: #222;\n\n --timeline-cell-selected-bg: rgba(76,175,80,0.2);\n}\n\n/* Genel Timeline Konteyner */\n.timeline-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n border: 1px solid var(--border-color);\n border-radius: 8px;\n overflow: hidden;\n box-sizing: border-box;\n background-color: var(--background-color);\n color: var(--text-color);\n}\n\n/* Master Header */\n.timeline-master-header {\n width: 100%;\n background-color: var(--header-background-color);\n color: var(--header-text-color);\n border-bottom: 1px solid var(--border-color);\n z-index: 10;\n padding: 10px;\n box-sizing: border-box;\n}\n\n/* Timeline Body */\n.timeline-body {\n display: flex;\n flex: 1;\n}\n\n/* Sol Kısım: Resources */\n.timeline-resources-container {\n width: var(--resource-width);\n display: flex;\n flex-direction: column;\n border-right: 1px solid var(--border-color);\n position: sticky;\n left: 0;\n top: var(--header-height);\n z-index: 2;\n background-color: var(--resource-background-color);\n overflow-y: auto;\n}\n\n/* Resources Header */\n.resources-header {\n background-color: var(--header-background-color);\n color: var(--resource-text-color);\n text-align: center;\n width: var(--resource-width);\n font-weight: bold;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: calc(var(--header-height) * 2); /* Üst üste iki header yüksekliği */\n border-right: 1px solid var(--border-color);\n box-sizing: border-box;\n}\n\n/* Grup Başlığı Hücreleri */\n.group-header-row {\n display: flex;\n height: var(--cell-height);\n background-color: var(--group-header-background-color);\n color: var(--resource-text-color);\n font-weight: bold;\n}\n\n.group-header-cell {\n flex: 1;\n border: 1px solid var(--border-color);\n text-align: center;\n background-color: var(--group-header-background-color);\n color: var(--resource-text-color);\n height: var(--cell-height);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Resource Grupları */\n.resource-group {\n display: flex;\n flex-direction: column;\n}\n\n/* Resource Grup Header */\n.resource-group-header {\n background-color: var(--group-header-background-color);\n color: var(--resource-text-color);\n font-weight: bold;\n height: var(--cell-height);\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 0px;\n cursor: pointer;\n border: 1px solid var(--border-color);\n}\n\n/* Resource Hücreleri */\n.resource-cell {\n padding: 0;\n text-align: left;\n background-color: var(--resource-background-color);\n color: var(--resource-text-color);\n height: var(--cell-height);\n display: flex;\n align-items: center;\n border: 0.3px solid var(--border-color);\n box-sizing: border-box;\n}\n\n/* Sağ Kısım: Timeline */\n.timeline-scrollable-container {\n flex: 1;\n overflow-x: auto;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n position: relative;\n}\n\n/* Header ve Content Wrapper */\n.timeline-header-content-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n/* Timeline Header */\n.timeline-header {\n display: flex;\n background-color: var(--timeline-header-background-color);\n color: var(--header-text-color);\n position: sticky;\n top: 0;\n z-index: 2;\n height: var(--header-height);\n overflow: hidden;\n box-sizing: border-box;\n}\n\n/* Timeline Content */\n.timeline-content {\n display: flex;\n flex-direction: column;\n}\n\n/* Grup Container */\n.group-container {\n display: flex;\n flex-direction: column;\n}\n\n/* Resource Satırları */\n.resource-row {\n display: flex;\n box-sizing: border-box;\n position: relative;\n height: var(--cell-height);\n border: 1px solid var(--border-color);\n margin-top: -1px;\n overflow: hidden;\n}\n\n/* Timeline Hücreleri */\n.timeline-cell {\n flex: 1;\n border: 1px solid var(--timeline-cell-border-color);\n height: 100%;\n box-sizing: border-box;\n}\n\n/* Hücre Seçili Durumu */\n.timeline-cell.selected {\n background-color: rgba(25, 118, 210, 0.2); /* satır içi/hover */\n}\n\n/* Event Stilleri */\n.event {\n position: absolute;\n background-color: var(--timeline-event-background-color);\n color: var(--timeline-event-text-color);\n font-size: 12px;\n padding: 2px 5px;\n border-radius: 4px;\n text-align: left;\n display: flex;\n flex-direction: column;\n justify-content: center;\n box-sizing: border-box;\n z-index: 10;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border: 1px solid var(--timeline-event-border-color);\n cursor: pointer;\n}\n\n/* Event Time Stili */\n.event-time {\n font-size: 10px;\n margin-top: 2px;\n}\n\n/* Scrollbar için */\n.timeline-scrollable-container::-webkit-scrollbar {\n height: 10px;\n}\n\n.timeline-scrollable-container::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb-background);\n border-radius: 5px;\n}\n\n.timeline-scrollable-container::-webkit-scrollbar-thumb:hover {\n background: var(--scrollbar-thumb-hover-background);\n}\n\n.resources-header {\n background-color: var(--header-background-color);\n color: var(--resource-text-color);\n text-align: center;\n width: var(--resource-width);\n font-weight: bold;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: 80px;\n border-right: 1px solid var(--border-color);\n box-sizing: border-box;\n}\n\n/* TimelineHeader Container */\n.timeline-header-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n/* Ay + Yıl satırı */\n.timeline-header-month-row {\n display: flex;\n background-color: var(--header-background-color);\n color: var(--header-text-color);\n font-weight: bold;\n font-size: 16px;\n height: 40px;\n line-height: 40px;\n border-bottom: 1px solid var(--border-color);\n}\n\n/* Ay + Yıl hücreleri */\n.timeline-header-month-cell {\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n /* border-right => dynamic, inline style if needed */\n box-sizing: border-box;\n}\n\n/* Günlük Hücreler (tarih satırı) */\n.timeline-header-day-row {\n display: flex;\n background-color: var(--timeline-header-background-color);\n color: var(--header-text-color);\n /* border-bottom: 1px solid var(--border-color); if needed */\n}\n\n/* Günlük hücre (her gün) */\n.timeline-header-day-cell {\n height: 40px;\n line-height: 40px;\n font-size: 14px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n box-sizing: border-box;\n}\n\n\n/* src/components/Timeline/Timeline.css */\n/* Ekleme: MasterHeader stili */\n\n/* Kapsayıcı */\n.master-header-container {\n display: flex;\n align-items: center;\n padding: 10px;\n\n background-color: var(--header-background-color);\n color: var(--header-text-color);\n\n /* eğer border vs. istersen\n border-bottom: 1px solid var(--border-color);\n */\n}\n\n/* Butonlar */\n.master-header-btn {\n background-color: transparent;\n color: var(--header-text-color);\n border: 1px solid var(--border-color);\n border-radius: 4px;\n padding: 6px 12px;\n margin-right: 10px;\n cursor: pointer;\n font-size: 14px;\n transition: background-color 0.2s ease, color 0.2s ease;\n}\n\n.master-header-btn:hover {\n background-color: rgba(25, 118, 210, 0.2); /* Light tema hover */\n}\n\n.dark-mode .master-header-btn:hover {\n background-color: rgba(76, 175, 80, 0.2); /* Koyu tema hover */\n}\n\n.master-header-btn:focus {\n outline: none;\n}\n\n/* Select */\n.master-header-select {\n margin-left: 10px;\n background-color: transparent;\n color: var(--header-text-color);\n border: 1px solid var(--border-color);\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n cursor: pointer;\n}\n\n.master-header-select:focus {\n outline: none;\n}\n\n\n/* Container */\n.timeline-content-container {\n position: relative;\n width: 100%;\n height: auto; /* or as needed */\n display: flex;\n flex-direction: column;\n}\n\n/* Group container */\n.timeline-group-container {\n margin-bottom: 0px;\n display: flex;\n flex-direction: column;\n}\n\n/* Group header row */\n.timeline-group-header-row {\n display: flex;\n margin-top: -0.08rem;\n}\n\n.timeline-group-header-cell {\n flex: 1;\n height: 2.58rem;\n background-color: var(--group-header-background-color);\n border: 1px solid var(--border-color);\n \n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Resource row */\n.timeline-resource-row {\n display: flex;\n position: relative;\n height: var(--cell-height, 40px);\n border: 1px solid var(--border-color);\n box-sizing: border-box;\n}\n\n/* Each day cell */\n.timeline-cell {\n flex: 1;\n height: 100%;\n position: relative;\n border-left: 1px solid var(--border-color);\n border-right: 1px solid var(--border-color);\n box-sizing: border-box;\n cursor: pointer;\n}\n\n/* "selected" day cell */\n.timeline-cell.selected {\n background-color: var(--timeline-cell-selected-bg, rgba(25,118,210,0.2));\n}\n\n/* Event */\n.timeline-event {\n position: absolute;\n background-color: var(--timeline-event-background-color, #0093ce);\n color: var(--timeline-event-text-color, #fff);\n font-size: 14px;\n padding: 5px;\n border-radius: 20px;\n box-sizing: border-box;\n z-index: 10;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border: 1px solid var(--timeline-event-border-color, #fff);\n top: 5px; /* or a variable offset if you want */\n /* "left" and "width" are inline from JS */\n}\n\n/* Extend handle */\n.timeline-event-extend-handle {\n position: absolute;\n right: 0;\n top: 0;\n width: 10px;\n height: 100%;\n background-color: rgba(0,0,0,0.2);\n cursor: col-resize;\n z-index: 20;\n}\n\n/* Temp event (while creating) */\n.timeline-temp-event {\n position: absolute;\n background-color: var(--timeline-new-event-background-color, #0093ce);\n color: var(--timeline-new-event-text-color, #fff);\n opacity: 0.7;\n border-radius: 20px;\n z-index: 9;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n /* "left"/"width" from JS: " ...calculatePosition(tempEvent, dates)" */\n top: 5px;\n}\n',""]);const i=l},314:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",r=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),r&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),r&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var l={};if(r)for(var i=0;i<this.length;i++){var c=this[i][0];null!=c&&(l[c]=!0)}for(var d=0;d<e.length;d++){var s=[].concat(e[d]);r&&l[s[0]]||(void 0!==a&&(void 0===s[5]||(s[1]="@layer".concat(s[5].length>0?" ".concat(s[5]):""," {").concat(s[1],"}")),s[5]=a),t&&(s[2]?(s[1]="@media ".concat(s[2]," {").concat(s[1],"}"),s[2]=t):s[2]=t),o&&(s[4]?(s[1]="@supports (".concat(s[4],") {").concat(s[1],"}"),s[4]=o):s[4]="".concat(o)),n.push(s))}},n}},601:e=>{e.exports=function(e){return e[1]}},72:e=>{var n=[];function t(e){for(var t=-1,r=0;r<n.length;r++)if(n[r].identifier===e){t=r;break}return t}function r(e,r){for(var a={},l=[],i=0;i<e.length;i++){var c=e[i],d=r.base?c[0]+r.base:c[0],s=a[d]||0,u="".concat(d," ").concat(s);a[d]=s+1;var p=t(u),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==p)n[p].references++,n[p].updater(f);else{var m=o(f,r);r.byIndex=i,n.splice(i,0,{identifier:u,updater:m,references:1})}l.push(u)}return l}function o(e,n){var t=n.domAPI(n);return t.update(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap&&n.supports===e.supports&&n.layer===e.layer)return;t.update(e=n)}else t.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var l=0;l<a.length;l++){var i=t(a[l]);n[i].references--}for(var c=r(e,o),d=0;d<a.length;d++){var s=t(a[d]);0===n[s].references&&(n[s].updater(),n.splice(s,1))}a=c}}},659:e=>{var n={};e.exports=function(e,t){var r=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(t)}},540:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},56:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},825:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var r="";t.supports&&(r+="@supports (".concat(t.supports,") {")),t.media&&(r+="@media ".concat(t.media," {"));var o=void 0!==t.layer;o&&(r+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),r+=t.css,o&&(r+="}"),t.media&&(r+="}"),t.supports&&(r+="}");var a=t.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(r,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},113:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},155:n=>{n.exports=e}},t={};function r(e){var o=t[e];if(void 0!==o)return o.exports;var a=t[e]={id:e,exports:{}};return n[e](a,a.exports,r),a.exports}r.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return r.d(n,{a:n}),n},r.d=(e,n)=>{for(var t in n)r.o(n,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},r.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nc=void 0;var o={};r.r(o),r.d(o,{default:()=>X});var a=r(155),l=r.n(a),i=r(72),c=r.n(i),d=r(825),s=r.n(d),u=r(659),p=r.n(u),f=r(56),m=r.n(f),g=r(540),b=r.n(g),v=r(113),h=r.n(v),x=r(27),y={};y.styleTagTransform=h(),y.setAttributes=m(),y.insert=p().bind(null,"head"),y.domAPI=s(),y.insertStyleElement=b(),c()(x.A,y),x.A&&x.A.locals&&x.A.locals;const w=e=>{let{onToday:n,onAdvance:t,onRetreat:r,onMonthAdvance:o,onMonthRetreat:a,dayRange:i,setDayRange:c,isDarkMode:d,toggleDarkMode:s}=e;return l().createElement("div",{className:"master-header-container"},l().createElement("button",{className:"master-header-btn",onClick:n},"Today"),l().createElement("button",{className:"master-header-btn",onClick:a},"1 Ay Geri"),l().createElement("button",{className:"master-header-btn",onClick:r},"5 Gün Geri"),l().createElement("button",{className:"master-header-btn",onClick:t},"5 Gün İleri"),l().createElement("button",{className:"master-header-btn",onClick:o},"1 Ay İleri"),l().createElement("select",{className:"master-header-select",value:i,onChange:e=>c(parseInt(e.target.value))},l().createElement("option",{value:30},"30 Gün"),l().createElement("option",{value:60},"60 Gün"),l().createElement("option",{value:90},"90 Gün")),l().createElement("button",{className:"master-header-btn",onClick:s},d?"Light Mode":"Dark Mode"))},D=e=>{let{content:n}=e;return l().createElement("div",{className:"resources-header"},n)},E=e=>{let{groupedResources:n=[],collapsedGroups:t={},toggleGroupCollapse:r,resourceSettings:o={showIdAsName:!1,isGrouped:!0,isCollapsible:!0}}=e;const{showIdAsName:a,isGrouped:i,isCollapsible:c}=o;return l().createElement("div",{className:"timeline-resources"},i?n.map(((e,n)=>l().createElement("div",{key:n,className:"resource-group"},l().createElement("div",{className:"resource-group-header",onClick:()=>c&&r(e.groupName)},e.groupName," ",c&&(t[e.groupName]?"▲":"▼")),!t[e.groupName]&&e.resources.map(((e,n)=>l().createElement("div",{key:n,className:"resource-cell"},a?e.id:e.name||e.id)))))):n.flatMap((e=>e.resources)).map(((e,n)=>l().createElement("div",{key:n,className:"resource-cell"},a?e.id:e.name||e.id))))},k=e=>{let{dates:n,monthHeaders:t}=e;return l().createElement("div",{className:"timeline-header-container"},l().createElement("div",{className:"timeline-header-month-row"},t.map(((e,n)=>l().createElement("div",{key:n,className:"timeline-header-month-cell",style:{flex:e.endIndex-e.startIndex+1,borderRight:n<t.length-1?"1px solid var(--border-color)":"none"}},e.monthName," ",e.year)))),l().createElement("div",{className:"timeline-header-day-row"},n.map(((e,t)=>l().createElement("div",{key:t,className:"timeline-header-day-cell",style:{flex:1,borderRight:t<n.length-1?"1px solid var(--border-color)":"none"}},e.display)))))},S=e=>{if(e instanceof Date)return e;if("string"==typeof e){const[n,t,r]=e.split("/").map(Number);return new Date(r,t-1,n)}return"object"==typeof e&&e.fullDate instanceof Date?new Date(e.fullDate.getTime()+6e4*e.fullDate.getTimezoneOffset()):(console.error("parseDate received invalid input:",e),new Date)};function O(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function j(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?O(Object(t),!0).forEach((function(n){I(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):O(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function I(e,n,t){return(n=function(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}const P=e=>{let{todayIndex:n,totalDays:t}=e;return n<0||n>=t?(console.log("Indicator not visible: Out of bounds"),null):(console.log("todayIndex:",n),console.log("totalDays:",t),l().createElement("div",{style:{position:"absolute",top:0,left:"calc(".concat((n+.5)/t," * 100%)"),width:"2px",height:"100%",backgroundColor:"transparent",zIndex:5,borderStyle:"dashed",borderWidth:"0 0 0 2px",borderColor:"red"}}))};function C(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function T(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?C(Object(t),!0).forEach((function(n){N(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):C(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function N(e,n,t){return(n=function(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function M(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function z(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?M(Object(t),!0).forEach((function(n){R(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):M(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function R(e,n,t){return(n=function(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}const A=e=>{let{groupedResources:n,dates:t,collapsedGroups:r,events:o,setEvents:i,onEventClick:c,todayIndex:d,indicatorOn:s,resourceSettings:u,setDropInfo:p,eventsDragOn:f=!0,eventsExtendOn:m=!0,createNewEventOn:g=!0,onDragInfo:b,onExtendInfo:v,onCreateEventInfo:h,onEventRightClick:x}=e;const y=(0,a.useRef)(null),{isDragging:w,dragStart:D,dragEnd:E}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const[n,t]=(0,a.useState)(!1),[r,o]=(0,a.useState)(null),[l,i]=(0,a.useState)(null),[c,d]=(0,a.useState)(e),s=()=>{t(!1),o(null),i(null)};return{events:c,isDragging:n,dragStart:r,dragEnd:l,startDrag:(e,n)=>{t(!0),o({resourceId:e,date:n}),i({resourceId:e,date:n})},updateDrag:(e,t)=>{n&&i({resourceId:e,date:t})},endDrag:e=>{if(!n||!r||!l)return;if(r.resourceId!==l.resourceId)return void s();const t=e.findIndex((e=>S(e.fullDate).toDateString()===S(r.date.fullDate).toDateString())),o=e.findIndex((e=>S(e.fullDate).toDateString()===S(l.date.fullDate).toDateString()));if(-1===t||-1===o)return void s();const a=Math.min(t,o),i=Math.max(t,o),c=e[a].fullDate,u=e[i].fullDate,p={id:Date.now(),title:"Yeni Etkinlik",resourceId:r.resourceId,startDate:c,endDate:u,color:"#ff7f50"};d((e=>[...e,p])),s()},setEvents:d}}(o,i),{handleDragStart:k,handleDragOver:O,handleDrop:I,handleDragEnd:C}=((e,n,t)=>{const[r,o]=(0,a.useState)(null),[l,i]=(0,a.useState)(0),[c,d]=(0,a.useState)(null);return{handleDragStart:(n,t)=>{if("extend"===c)return;n.stopPropagation();const r=n.target.getBoundingClientRect(),a=n.clientX-r.left;o(t),i(a),d("drag");const l=e.find((e=>e.id===t));l&&(console.log("Dragging Event Start:",l.startDate),console.log("Dragging Event End:",l.endDate))},handleExtendStart:(e,n)=>{e.stopPropagation(),o(n),d("extend")},handleDragOver:e=>{e.preventDefault()},handleDrop:(a,s,u)=>{if(a.preventDefault(),"drag"===c&&r){const o=e.find((e=>e.id===r));if(o){const e=o.endDate-o.startDate,i=a.target.offsetWidth||30,c=Math.floor(l/i),d=new Date(u.getTime()-24*c*60*60*1e3),p=new Date(d.getTime()+e);console.log("New Start Date:",d),console.log("New End Date:",p),n((e=>e.map((e=>e.id===r?j(j({},e),{},{resourceId:s,startDate:d,endDate:p}):e)))),t&&t({id:r,newResourceId:s,newStartDate:d,newEndDate:p})}}o(null),i(0),d(null)},handleExtend:(e,t,a)=>{"extend"===c&&r===t&&(n((e=>e.map((e=>e.id===t?j(j({},e),{},{endDate:a}):e)))),console.log("Extended Event ID:",t,"New End Date:",a),o(null),d(null))},handleDragEnd:()=>{o(null),i(0),d(null)}}})(o,i,p),{extendEvent:N}=((e,n)=>({extendEvent:(0,a.useCallback)(((e,t)=>{n((n=>n.map((n=>n.id===e?T(T({},n),{},{endDate:t}):n))))}),[n])}))(0,i),[M,R]=(0,a.useState)(null),[A,G]=(0,a.useState)(null),[H,L]=(0,a.useState)(null),[B,X]=(0,a.useState)(null),[K,V]=(0,a.useState)(!1),[W,Y]=(0,a.useState)(null),[F,J]=(0,a.useState)(null),[_,q]=(0,a.useState)({top:0,left:0}),U=t.length;(0,a.useEffect)((()=>{if(!g)return;if(!K)return;if("extend"===M)return void console.log(">>> 'extend' mode, skip new event creation");const e=e=>{if(!K||!W)return;const n=document.elementFromPoint(e.clientX,e.clientY),t=(null==n?void 0:n.offsetWidth)||30,r=W.startX||e.clientX,o=e.clientX-r,a=Math.max(1,Math.floor(o/t)),l=new Date(W.startDate.getTime());l.setDate(l.getDate()+a),Y(z(z({},W),{},{endDate:l,startX:r,title:"".concat(a," Gece")}))},n=()=>{K&&W&&(i([...o,W]),h&&h(W)),Y(null),V(!1)};return window.addEventListener("mousemove",e),window.addEventListener("mouseup",n),()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",n)}}),[g,K,M,W,o,h,i]),(0,a.useEffect)((()=>{if("extend"===M){const e=e=>(e=>{if("extend"!==M||!A)return;if(!m)return;const n=e.clientX-(null!=B?B:0),t=Math.floor(n/30),r=new Date((null!=H?H:new Date).getTime());r.setDate(r.getDate()+t),console.log(">>> Extending ID:",A.id,"=>",r),i((e=>e.map((e=>e.id===A.id?z(z({},e),{},{endDate:r}):e))))})(e),n=()=>(()=>{if(console.log(">>> Extend finished ID:",null==A?void 0:A.id),v&&A){const e=o.find((e=>e.id===A.id));e&&v({eventId:A.id,newEndDate:e.endDate})}R(null),G(null),L(null),X(null)})();return document.addEventListener("mousemove",e),document.addEventListener("mouseup",n),()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",n)}}}),[M,A,m,H,B]);const $=(e,n)=>{if(!D||!E)return!1;if(e!==D.resourceId)return!1;const r=t.findIndex((e=>S(e.fullDate).getTime()===S(D.date).getTime())),o=t.findIndex((e=>S(e.fullDate).getTime()===S(E.date).getTime())),a=t.findIndex((e=>S(e.fullDate).getTime()===S(n.fullDate).getTime()));return-1!==r&&-1!==o&&-1!==a&&a>=Math.min(r,o)&&a<=Math.max(r,o)},Q=(e,n)=>{const t=S(e.startDate),r=S(e.endDate),o=n.findIndex((e=>S(e.fullDate).toDateString()===t.toDateString())),a=n.findIndex((e=>S(e.fullDate).toDateString()===r.toDateString())),l=n.length;if(o<0&&a<0)return{isVisible:!1,left:0,width:0,isPartialStart:!1,isPartialEnd:!1};if(o>=l&&a>=l)return{isVisible:!1,left:0,width:0,isPartialStart:!1,isPartialEnd:!1};const i=o<0,c=a>=l,d=(Math.max(o,0)+(i?0:.5))/l*100,s=(Math.min(a,l-1)+(c?1:.5))/l*100-d;return{isVisible:!0,left:"".concat(d,"%"),width:"".concat(s,"%"),isPartialStart:i,isPartialEnd:c}};return l().createElement("div",{ref:y,className:"timeline-content-container"},s&&l().createElement(P,{todayIndex:d,totalDays:U}),n.map(((e,n)=>l().createElement("div",{key:n,className:"timeline-group-container"},u.isGrouped&&l().createElement("div",{className:"timeline-group-header-row"},t.map(((e,t)=>l().createElement("div",{key:"group-header-".concat(n,"-").concat(t),className:"timeline-group-header-cell"})))),!r[e.groupName]&&e.resources.map(((e,r)=>{const a=o.filter((n=>n.resourceId===e.id));return l().createElement("div",{key:e.id,className:"timeline-resource-row"},a.map((e=>{const{isVisible:n,left:r,width:o,isPartialStart:a,isPartialEnd:i}=Q(e,t);return n?l().createElement("div",{key:e.id,className:"timeline-event",draggable:"extend"!==M&&f,onDragStart:n=>{"extend"!==M?((e,n)=>{f?k(e,n):e.preventDefault()})(n,e.id):n.preventDefault()},onDragEnd:e=>{"extend"!==M?(e=>{f?C():e.preventDefault()})(e):e.preventDefault()},onContextMenu:n=>((e,n)=>{n.preventDefault(),x&&x(e,n)})(e,n),onClick:n=>((e,n)=>{n.stopPropagation(),c&&c(e,n);const t=n.currentTarget;if(t){const n=t.getBoundingClientRect();q({top:n.top+window.scrollY,left:n.left+n.width/2+window.scrollX}),J(e)}})(e,n),style:{left:r,width:o,top:"5px",borderTopLeftRadius:a?"0px":"20px",borderBottomLeftRadius:a?"0px":"20px",borderTopRightRadius:i?"0px":"20px",borderBottomRightRadius:i?"0px":"20px",cursor:"extend"===M?"col-resize":"grab"}},e.title,m&&l().createElement("div",{className:"timeline-event-extend-handle",onMouseDown:n=>{n.stopPropagation(),((e,n)=>{m&&(e.stopPropagation(),console.log(">>> Extend start ID:",n.id),R("extend"),G(n),L(n.endDate),X(e.clientX))})(n,e)}})):null})),W&&W.resourceId===e.id&&l().createElement("div",{className:"timeline-temp-event",style:z(z({},Q(W,t)),{},{top:"5px"})},W.title),t.map(((t,o)=>l().createElement("div",{key:"cell-".concat(n,"-").concat(r,"-").concat(o),className:"timeline-cell ".concat($(e.id,t)?"selected":""),"data-date":JSON.stringify(t),"data-resource-id":e.id,onMouseDown:()=>((e,n)=>{if(!g)return;const t=S(n.fullDate),r={id:Date.now(),title:"1 Gece",startDate:t,endDate:new Date(t.getTime()+864e5),resourceId:e,color:""};Y(r),V(!0)})(e.id,t),onDragOver:e=>O(e),onDrop:n=>I(n,e.id,S(t.fullDate))}))))}))))),F&&l().createElement("div",{style:{position:"absolute",top:_.top,left:_.left,backgroundColor:"#333",color:"#fff",padding:"5px",borderRadius:"4px",zIndex:999}},l().createElement("button",{onClick:()=>{J(null)}},"X"),F.title))},G=e=>{let{event:n,position:t={top:0,left:0},onClose:r,onEdit:o,onDelete:a}=e;if(!n)return null;const{top:i,left:c}=t,d=(e=>{switch(e){case"Confirmed":return"#4caf50";case"Pending":return"#ff9800";case"Cancelled":return"#f44336";case"Completed":return"#2196f3";default:return"#9e9e9e"}})(n.status);return l().createElement("div",{style:{position:"absolute",top:i-30,left:c+70,transform:"translateX(-50%)",backgroundColor:"#ffffff",color:"#333333",borderRadius:"10px",boxShadow:"0 8px 16px rgba(0, 0, 0, 0.2)",fontSize:"16px",zIndex:1e3,pointerEvents:"auto",whiteSpace:"normal",maxWidth:"400px",width:"100%",transition:"opacity 0.3s ease, transform 0.3s ease"}},r&&l().createElement("button",{onClick:r,style:{position:"absolute",top:"10px",right:"15px",background:"transparent",border:"none",color:"#aaa",fontSize:"24px",cursor:"pointer",transition:"color 0.2s"},"aria-label":"Kapat",onMouseOver:e=>e.target.style.color="#000",onMouseOut:e=>e.target.style.color="#aaa"},"×"),l().createElement("div",{style:{backgroundColor:d,color:"#ffffff",padding:"15px 20px",borderTopLeftRadius:"10px",borderTopRightRadius:"10px",display:"flex",flexDirection:"column",gap:"5px"}},l().createElement("div",{style:{fontWeight:"bold",fontSize:"18px"}},n.title),l().createElement("div",{style:{fontSize:"14px"}},"Rezervasyon ID: ",n.reservationId)),l().createElement("div",{style:{padding:"20px",display:"flex",flexDirection:"column",gap:"15px"}},Array.isArray(n.guestNames)&&l().createElement("div",null,l().createElement("strong",null,"Misafirler:")," ",n.guestNames.join(", ")),l().createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"10px"}},l().createElement("div",null,l().createElement("strong",null,"Giriş:")," ",new Date(n.startDate).toLocaleDateString()),l().createElement("div",null,l().createElement("strong",null,"Çıkış:")," ",new Date(n.endDate).toLocaleDateString())),(void 0!==n.totalAmount||void 0!==n.amountPaid)&&l().createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"10px"}},void 0!==n.amountPaid&&l().createElement("div",null,l().createElement("strong",null,"Ödenen Miktar:")," $",n.amountPaid.toFixed(2)),void 0!==n.totalAmount&&l().createElement("div",null,l().createElement("strong",null,"Toplam Borç:")," $",n.totalAmount.toFixed(2))),n.status&&l().createElement("div",null,l().createElement("strong",null,"Durum:")," ",n.status),n.note&&l().createElement("div",null,l().createElement("strong",null,"Not:")," ",n.note)),l().createElement("div",{style:{padding:"15px 20px",borderTop:"1px solid #ddd",display:"flex",justifyContent:"flex-end",gap:"10px",borderBottomLeftRadius:"10px",borderBottomRightRadius:"10px"}},o&&l().createElement("button",{onClick:()=>o(n),style:{padding:"8px 16px",backgroundColor:"#2196f3",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",gap:"5px",transition:"background-color 0.2s"},onMouseOver:e=>e.target.style.backgroundColor="#1976d2",onMouseOut:e=>e.target.style.backgroundColor="#2196f3"},l().createElement("span",{role:"img","aria-label":"Düzenle"},"✏️"),"Düzenle"),a&&l().createElement("button",{onClick:()=>a(n.id),style:{padding:"8px 16px",backgroundColor:"#f44336",color:"#ffffff",border:"none",borderRadius:"4px",cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",gap:"5px",transition:"background-color 0.2s"},onMouseOver:e=>e.target.style.backgroundColor="#d32f2f",onMouseOut:e=>e.target.style.backgroundColor="#f44336"},l().createElement("span",{role:"img","aria-label":"Sil"},"🗑️"),"Sil")))};function H(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function L(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?H(Object(t),!0).forEach((function(n){B(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):H(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function B(e,n,t){return(n=function(e){var n=function(e){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=typeof t)return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof n?n:n+""}(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}const X=e=>{let{resources:n,programDate:t=null,events:r=[],resourceSettings:o={showIdAsName:!1,isGrouped:!0,isCollapsible:!0},indicatorOn:i=!1,dropInfo:c,setDropInfo:d,masterHeaderView:s=!0,resourceHeaderContent:u="Akfa Timeline",eventsDragOn:p=!0,eventsExtendOn:f=!0,createNewEventOn:m=!0,onDragInfo:g,onExtendInfo:b,onCreateEventInfo:v,onEventClick:h,onEventRightClick:x,horizontalScrollOn:y=!1}=e;const S=(()=>{const e=["Paz","Pzt","Sal","Çar","Per","Cum","Cmt"],n=["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],t=[],r=[];for(let o=2020;o<=2030;o++)for(let a=1;a<=12;a++){const l=new Date(o,a,0).getDate(),i=t.length;for(let n=1;n<=l;n++){const r=new Date(o,a-1,n),l=e[r.getDay()];t.push({fullDate:r,display:"".concat(n," ").concat(l)})}const c=t.length-1;r.push({monthName:n[a-1],year:o,startIndex:i,endIndex:c,totalDays:c-i+1})}return{dates:t,monthHeaders:r}})(),{dates:O,monthHeaders:j}=S,[I,P]=(0,a.useState)({}),[C,T]=(0,a.useState)((()=>{const e=t?new Date(t):new Date;return e.setDate(e.getDate()-3),e})),[N,M]=(0,a.useState)(r),[z,R]=(0,a.useState)(null),[H,B]=(0,a.useState)({top:0,left:0}),[X,K]=(0,a.useState)(30),[V,W]=(0,a.useState)(!1),Y=56.95*X,F=O.findIndex((e=>e.fullDate>=C)),J=F+X,_=-1!==F?O.slice(F,Math.min(J,O.length)):[],q=t?new Date(t):new Date,U=_.findIndex((e=>new Date(e.fullDate).toDateString()===q.toDateString())),$=_.length,Q=e=>{P((n=>L(L({},n),{},{[e]:!n[e]})))};(0,a.useEffect)((()=>{document.body.classList.toggle("dark-mode",V)}),[V]);const Z=j.map((e=>{const n=Math.max(e.startIndex,F),t=Math.min(e.endIndex,J-1);return L(L({},e),{},{startIndex:n,endIndex:t})})).filter((e=>e.startIndex<=e.endIndex));return l().createElement("div",{className:"timeline-container ".concat(V?"dark-mode":"")},s&&l().createElement("div",{className:"timeline-master-header"},l().createElement(w,{onToday:()=>{const e=t?new Date(t):new Date;e.setDate(e.getDate()-3),T(e)},onAdvance:()=>T((e=>new Date(e.getTime()+432e6))),onRetreat:()=>T((e=>new Date(e.getTime()-432e6))),onMonthAdvance:()=>T((e=>{const n=new Date(e);return n.setMonth(n.getMonth()+1),n})),onMonthRetreat:()=>T((e=>{const n=new Date(e);return n.setMonth(n.getMonth()-1),n})),dayRange:X,setDayRange:K,isDarkMode:V,toggleDarkMode:()=>{W((e=>!e))}})),l().createElement("div",{className:"timeline-body"},l().createElement("div",{className:"timeline-resources-container"},l().createElement(D,{content:u}),l().createElement(E,{groupedResources:n,toggleGroupCollapse:Q,collapsedGroups:I,resourceSettings:o})),l().createElement("div",{className:"timeline-scrollable-container",style:{overflowX:y?"auto":"hidden"}},l().createElement("div",{className:"timeline-header-content-wrapper",style:{width:y?"".concat(Y,"px"):"100%"}},l().createElement(k,{dates:_,monthHeaders:Z}),l().createElement(A,{groupedResources:n,dates:_,collapsedGroups:I,events:N,setEvents:M,onEventClick:(e,n)=>{h&&h(e,n);const t=n.currentTarget;if(t){const n=t.getBoundingClientRect();B({top:n.top+window.scrollY,left:n.left+n.width/2+window.scrollX}),R(e)}},todayIndex:U,totalDays:$,indicatorOn:i,resourceSettings:o,toggleGroupCollapse:Q,setDropInfo:d,eventsDragOn:p,eventsExtendOn:f,createNewEventOn:m,onDragInfo:g,onExtendInfo:b,onCreateEventInfo:v,onEventRightClick:x}),z&&l().createElement(G,{event:z,position:H,onClose:()=>{R(null)},onDelete:e=>M((n=>n.filter((n=>n.id!==e))))})))))};return o})()));
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory(require("react"));
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define(["react"], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["AkfaTimeline"] = factory(require("react"));
|
|
8
|
+
else
|
|
9
|
+
root["AkfaTimeline"] = factory(root["react"]);
|
|
10
|
+
})(this, (__WEBPACK_EXTERNAL_MODULE__155__) => {
|
|
11
|
+
return /******/ (() => { // webpackBootstrap
|
|
12
|
+
/******/ "use strict";
|
|
13
|
+
/******/ var __webpack_modules__ = ({
|
|
14
|
+
|
|
15
|
+
/***/ 941:
|
|
16
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
17
|
+
|
|
18
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
19
|
+
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
20
|
+
/* harmony export */ });
|
|
21
|
+
/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
|
|
22
|
+
/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
23
|
+
/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
|
|
24
|
+
/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
25
|
+
// Imports
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
29
|
+
// Module
|
|
30
|
+
___CSS_LOADER_EXPORT___.push([module.id, `.flatpickr-calendar {
|
|
31
|
+
background: transparent;
|
|
32
|
+
opacity: 0;
|
|
33
|
+
display: none;
|
|
34
|
+
text-align: center;
|
|
35
|
+
visibility: hidden;
|
|
36
|
+
padding: 0;
|
|
37
|
+
-webkit-animation: none;
|
|
38
|
+
animation: none;
|
|
39
|
+
direction: ltr;
|
|
40
|
+
border: 0;
|
|
41
|
+
font-size: 14px;
|
|
42
|
+
line-height: 24px;
|
|
43
|
+
border-radius: 5px;
|
|
44
|
+
position: absolute;
|
|
45
|
+
width: 307.875px;
|
|
46
|
+
-webkit-box-sizing: border-box;
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
-ms-touch-action: manipulation;
|
|
49
|
+
touch-action: manipulation;
|
|
50
|
+
-webkit-box-shadow: 0 3px 13px rgba(0,0,0,0.08);
|
|
51
|
+
box-shadow: 0 3px 13px rgba(0,0,0,0.08);
|
|
52
|
+
}
|
|
53
|
+
.flatpickr-calendar.open,
|
|
54
|
+
.flatpickr-calendar.inline {
|
|
55
|
+
opacity: 1;
|
|
56
|
+
max-height: 640px;
|
|
57
|
+
visibility: visible;
|
|
58
|
+
}
|
|
59
|
+
.flatpickr-calendar.open {
|
|
60
|
+
display: inline-block;
|
|
61
|
+
z-index: 99999;
|
|
62
|
+
}
|
|
63
|
+
.flatpickr-calendar.animate.open {
|
|
64
|
+
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
65
|
+
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
66
|
+
}
|
|
67
|
+
.flatpickr-calendar.inline {
|
|
68
|
+
display: block;
|
|
69
|
+
position: relative;
|
|
70
|
+
top: 2px;
|
|
71
|
+
}
|
|
72
|
+
.flatpickr-calendar.static {
|
|
73
|
+
position: absolute;
|
|
74
|
+
top: calc(100% + 2px);
|
|
75
|
+
}
|
|
76
|
+
.flatpickr-calendar.static.open {
|
|
77
|
+
z-index: 999;
|
|
78
|
+
display: block;
|
|
79
|
+
}
|
|
80
|
+
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
|
|
81
|
+
-webkit-box-shadow: none !important;
|
|
82
|
+
box-shadow: none !important;
|
|
83
|
+
}
|
|
84
|
+
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
|
|
85
|
+
-webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
|
|
86
|
+
box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
|
|
87
|
+
}
|
|
88
|
+
.flatpickr-calendar .hasWeeks .dayContainer,
|
|
89
|
+
.flatpickr-calendar .hasTime .dayContainer {
|
|
90
|
+
border-bottom: 0;
|
|
91
|
+
border-bottom-right-radius: 0;
|
|
92
|
+
border-bottom-left-radius: 0;
|
|
93
|
+
}
|
|
94
|
+
.flatpickr-calendar .hasWeeks .dayContainer {
|
|
95
|
+
border-left: 0;
|
|
96
|
+
}
|
|
97
|
+
.flatpickr-calendar.hasTime .flatpickr-time {
|
|
98
|
+
height: 40px;
|
|
99
|
+
border-top: 1px solid rgba(72,72,72,0.2);
|
|
100
|
+
}
|
|
101
|
+
.flatpickr-calendar.hasTime .flatpickr-innerContainer {
|
|
102
|
+
border-bottom: 0;
|
|
103
|
+
}
|
|
104
|
+
.flatpickr-calendar.hasTime .flatpickr-time {
|
|
105
|
+
border: 1px solid rgba(72,72,72,0.2);
|
|
106
|
+
}
|
|
107
|
+
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
|
|
108
|
+
height: auto;
|
|
109
|
+
}
|
|
110
|
+
.flatpickr-calendar:before,
|
|
111
|
+
.flatpickr-calendar:after {
|
|
112
|
+
position: absolute;
|
|
113
|
+
display: block;
|
|
114
|
+
pointer-events: none;
|
|
115
|
+
border: solid transparent;
|
|
116
|
+
content: '';
|
|
117
|
+
height: 0;
|
|
118
|
+
width: 0;
|
|
119
|
+
left: 22px;
|
|
120
|
+
}
|
|
121
|
+
.flatpickr-calendar.rightMost:before,
|
|
122
|
+
.flatpickr-calendar.arrowRight:before,
|
|
123
|
+
.flatpickr-calendar.rightMost:after,
|
|
124
|
+
.flatpickr-calendar.arrowRight:after {
|
|
125
|
+
left: auto;
|
|
126
|
+
right: 22px;
|
|
127
|
+
}
|
|
128
|
+
.flatpickr-calendar.arrowCenter:before,
|
|
129
|
+
.flatpickr-calendar.arrowCenter:after {
|
|
130
|
+
left: 50%;
|
|
131
|
+
right: 50%;
|
|
132
|
+
}
|
|
133
|
+
.flatpickr-calendar:before {
|
|
134
|
+
border-width: 5px;
|
|
135
|
+
margin: 0 -5px;
|
|
136
|
+
}
|
|
137
|
+
.flatpickr-calendar:after {
|
|
138
|
+
border-width: 4px;
|
|
139
|
+
margin: 0 -4px;
|
|
140
|
+
}
|
|
141
|
+
.flatpickr-calendar.arrowTop:before,
|
|
142
|
+
.flatpickr-calendar.arrowTop:after {
|
|
143
|
+
bottom: 100%;
|
|
144
|
+
}
|
|
145
|
+
.flatpickr-calendar.arrowTop:before {
|
|
146
|
+
border-bottom-color: rgba(72,72,72,0.2);
|
|
147
|
+
}
|
|
148
|
+
.flatpickr-calendar.arrowTop:after {
|
|
149
|
+
border-bottom-color: #1bbc9b;
|
|
150
|
+
}
|
|
151
|
+
.flatpickr-calendar.arrowBottom:before,
|
|
152
|
+
.flatpickr-calendar.arrowBottom:after {
|
|
153
|
+
top: 100%;
|
|
154
|
+
}
|
|
155
|
+
.flatpickr-calendar.arrowBottom:before {
|
|
156
|
+
border-top-color: rgba(72,72,72,0.2);
|
|
157
|
+
}
|
|
158
|
+
.flatpickr-calendar.arrowBottom:after {
|
|
159
|
+
border-top-color: #1bbc9b;
|
|
160
|
+
}
|
|
161
|
+
.flatpickr-calendar:focus {
|
|
162
|
+
outline: 0;
|
|
163
|
+
}
|
|
164
|
+
.flatpickr-wrapper {
|
|
165
|
+
position: relative;
|
|
166
|
+
display: inline-block;
|
|
167
|
+
}
|
|
168
|
+
.flatpickr-months {
|
|
169
|
+
display: -webkit-box;
|
|
170
|
+
display: -webkit-flex;
|
|
171
|
+
display: -ms-flexbox;
|
|
172
|
+
display: flex;
|
|
173
|
+
}
|
|
174
|
+
.flatpickr-months .flatpickr-month {
|
|
175
|
+
border-radius: 5px 5px 0 0;
|
|
176
|
+
background: #1bbc9b;
|
|
177
|
+
color: #fff;
|
|
178
|
+
fill: #fff;
|
|
179
|
+
height: 34px;
|
|
180
|
+
line-height: 1;
|
|
181
|
+
text-align: center;
|
|
182
|
+
position: relative;
|
|
183
|
+
-webkit-user-select: none;
|
|
184
|
+
-moz-user-select: none;
|
|
185
|
+
-ms-user-select: none;
|
|
186
|
+
user-select: none;
|
|
187
|
+
overflow: hidden;
|
|
188
|
+
-webkit-box-flex: 1;
|
|
189
|
+
-webkit-flex: 1;
|
|
190
|
+
-ms-flex: 1;
|
|
191
|
+
flex: 1;
|
|
192
|
+
}
|
|
193
|
+
.flatpickr-months .flatpickr-prev-month,
|
|
194
|
+
.flatpickr-months .flatpickr-next-month {
|
|
195
|
+
-webkit-user-select: none;
|
|
196
|
+
-moz-user-select: none;
|
|
197
|
+
-ms-user-select: none;
|
|
198
|
+
user-select: none;
|
|
199
|
+
text-decoration: none;
|
|
200
|
+
cursor: pointer;
|
|
201
|
+
position: absolute;
|
|
202
|
+
top: 0;
|
|
203
|
+
height: 34px;
|
|
204
|
+
padding: 10px;
|
|
205
|
+
z-index: 3;
|
|
206
|
+
color: #fff;
|
|
207
|
+
fill: #fff;
|
|
208
|
+
}
|
|
209
|
+
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
|
|
210
|
+
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
|
|
211
|
+
display: none;
|
|
212
|
+
}
|
|
213
|
+
.flatpickr-months .flatpickr-prev-month i,
|
|
214
|
+
.flatpickr-months .flatpickr-next-month i {
|
|
215
|
+
position: relative;
|
|
216
|
+
}
|
|
217
|
+
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
|
|
218
|
+
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
|
|
219
|
+
/*
|
|
220
|
+
/*rtl:begin:ignore*/
|
|
221
|
+
/*
|
|
222
|
+
*/
|
|
223
|
+
left: 0;
|
|
224
|
+
/*
|
|
225
|
+
/*rtl:end:ignore*/
|
|
226
|
+
/*
|
|
227
|
+
*/
|
|
228
|
+
}
|
|
229
|
+
/*
|
|
230
|
+
/*rtl:begin:ignore*/
|
|
231
|
+
/*
|
|
232
|
+
/*rtl:end:ignore*/
|
|
233
|
+
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
|
|
234
|
+
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
|
|
235
|
+
/*
|
|
236
|
+
/*rtl:begin:ignore*/
|
|
237
|
+
/*
|
|
238
|
+
*/
|
|
239
|
+
right: 0;
|
|
240
|
+
/*
|
|
241
|
+
/*rtl:end:ignore*/
|
|
242
|
+
/*
|
|
243
|
+
*/
|
|
244
|
+
}
|
|
245
|
+
/*
|
|
246
|
+
/*rtl:begin:ignore*/
|
|
247
|
+
/*
|
|
248
|
+
/*rtl:end:ignore*/
|
|
249
|
+
.flatpickr-months .flatpickr-prev-month:hover,
|
|
250
|
+
.flatpickr-months .flatpickr-next-month:hover {
|
|
251
|
+
color: #bbb;
|
|
252
|
+
}
|
|
253
|
+
.flatpickr-months .flatpickr-prev-month:hover svg,
|
|
254
|
+
.flatpickr-months .flatpickr-next-month:hover svg {
|
|
255
|
+
fill: #f64747;
|
|
256
|
+
}
|
|
257
|
+
.flatpickr-months .flatpickr-prev-month svg,
|
|
258
|
+
.flatpickr-months .flatpickr-next-month svg {
|
|
259
|
+
width: 14px;
|
|
260
|
+
height: 14px;
|
|
261
|
+
}
|
|
262
|
+
.flatpickr-months .flatpickr-prev-month svg path,
|
|
263
|
+
.flatpickr-months .flatpickr-next-month svg path {
|
|
264
|
+
-webkit-transition: fill 0.1s;
|
|
265
|
+
transition: fill 0.1s;
|
|
266
|
+
fill: inherit;
|
|
267
|
+
}
|
|
268
|
+
.numInputWrapper {
|
|
269
|
+
position: relative;
|
|
270
|
+
height: auto;
|
|
271
|
+
}
|
|
272
|
+
.numInputWrapper input,
|
|
273
|
+
.numInputWrapper span {
|
|
274
|
+
display: inline-block;
|
|
275
|
+
}
|
|
276
|
+
.numInputWrapper input {
|
|
277
|
+
width: 100%;
|
|
278
|
+
}
|
|
279
|
+
.numInputWrapper input::-ms-clear {
|
|
280
|
+
display: none;
|
|
281
|
+
}
|
|
282
|
+
.numInputWrapper input::-webkit-outer-spin-button,
|
|
283
|
+
.numInputWrapper input::-webkit-inner-spin-button {
|
|
284
|
+
margin: 0;
|
|
285
|
+
-webkit-appearance: none;
|
|
286
|
+
}
|
|
287
|
+
.numInputWrapper span {
|
|
288
|
+
position: absolute;
|
|
289
|
+
right: 0;
|
|
290
|
+
width: 14px;
|
|
291
|
+
padding: 0 4px 0 2px;
|
|
292
|
+
height: 50%;
|
|
293
|
+
line-height: 50%;
|
|
294
|
+
opacity: 0;
|
|
295
|
+
cursor: pointer;
|
|
296
|
+
border: 1px solid rgba(72,72,72,0.15);
|
|
297
|
+
-webkit-box-sizing: border-box;
|
|
298
|
+
box-sizing: border-box;
|
|
299
|
+
}
|
|
300
|
+
.numInputWrapper span:hover {
|
|
301
|
+
background: rgba(0,0,0,0.1);
|
|
302
|
+
}
|
|
303
|
+
.numInputWrapper span:active {
|
|
304
|
+
background: rgba(0,0,0,0.2);
|
|
305
|
+
}
|
|
306
|
+
.numInputWrapper span:after {
|
|
307
|
+
display: block;
|
|
308
|
+
content: "";
|
|
309
|
+
position: absolute;
|
|
310
|
+
}
|
|
311
|
+
.numInputWrapper span.arrowUp {
|
|
312
|
+
top: 0;
|
|
313
|
+
border-bottom: 0;
|
|
314
|
+
}
|
|
315
|
+
.numInputWrapper span.arrowUp:after {
|
|
316
|
+
border-left: 4px solid transparent;
|
|
317
|
+
border-right: 4px solid transparent;
|
|
318
|
+
border-bottom: 4px solid rgba(72,72,72,0.6);
|
|
319
|
+
top: 26%;
|
|
320
|
+
}
|
|
321
|
+
.numInputWrapper span.arrowDown {
|
|
322
|
+
top: 50%;
|
|
323
|
+
}
|
|
324
|
+
.numInputWrapper span.arrowDown:after {
|
|
325
|
+
border-left: 4px solid transparent;
|
|
326
|
+
border-right: 4px solid transparent;
|
|
327
|
+
border-top: 4px solid rgba(72,72,72,0.6);
|
|
328
|
+
top: 40%;
|
|
329
|
+
}
|
|
330
|
+
.numInputWrapper span svg {
|
|
331
|
+
width: inherit;
|
|
332
|
+
height: auto;
|
|
333
|
+
}
|
|
334
|
+
.numInputWrapper span svg path {
|
|
335
|
+
fill: rgba(255,255,255,0.5);
|
|
336
|
+
}
|
|
337
|
+
.numInputWrapper:hover {
|
|
338
|
+
background: rgba(0,0,0,0.05);
|
|
339
|
+
}
|
|
340
|
+
.numInputWrapper:hover span {
|
|
341
|
+
opacity: 1;
|
|
342
|
+
}
|
|
343
|
+
.flatpickr-current-month {
|
|
344
|
+
font-size: 135%;
|
|
345
|
+
line-height: inherit;
|
|
346
|
+
font-weight: 300;
|
|
347
|
+
color: inherit;
|
|
348
|
+
position: absolute;
|
|
349
|
+
width: 75%;
|
|
350
|
+
left: 12.5%;
|
|
351
|
+
padding: 7.48px 0 0 0;
|
|
352
|
+
line-height: 1;
|
|
353
|
+
height: 34px;
|
|
354
|
+
display: inline-block;
|
|
355
|
+
text-align: center;
|
|
356
|
+
-webkit-transform: translate3d(0px, 0px, 0px);
|
|
357
|
+
transform: translate3d(0px, 0px, 0px);
|
|
358
|
+
}
|
|
359
|
+
.flatpickr-current-month span.cur-month {
|
|
360
|
+
font-family: inherit;
|
|
361
|
+
font-weight: 700;
|
|
362
|
+
color: inherit;
|
|
363
|
+
display: inline-block;
|
|
364
|
+
margin-left: 0.5ch;
|
|
365
|
+
padding: 0;
|
|
366
|
+
}
|
|
367
|
+
.flatpickr-current-month span.cur-month:hover {
|
|
368
|
+
background: rgba(0,0,0,0.05);
|
|
369
|
+
}
|
|
370
|
+
.flatpickr-current-month .numInputWrapper {
|
|
371
|
+
width: 6ch;
|
|
372
|
+
width: 7ch\\0;
|
|
373
|
+
display: inline-block;
|
|
374
|
+
}
|
|
375
|
+
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
|
|
376
|
+
border-bottom-color: #fff;
|
|
377
|
+
}
|
|
378
|
+
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
|
|
379
|
+
border-top-color: #fff;
|
|
380
|
+
}
|
|
381
|
+
.flatpickr-current-month input.cur-year {
|
|
382
|
+
background: transparent;
|
|
383
|
+
-webkit-box-sizing: border-box;
|
|
384
|
+
box-sizing: border-box;
|
|
385
|
+
color: inherit;
|
|
386
|
+
cursor: text;
|
|
387
|
+
padding: 0 0 0 0.5ch;
|
|
388
|
+
margin: 0;
|
|
389
|
+
display: inline-block;
|
|
390
|
+
font-size: inherit;
|
|
391
|
+
font-family: inherit;
|
|
392
|
+
font-weight: 300;
|
|
393
|
+
line-height: inherit;
|
|
394
|
+
height: auto;
|
|
395
|
+
border: 0;
|
|
396
|
+
border-radius: 0;
|
|
397
|
+
vertical-align: initial;
|
|
398
|
+
-webkit-appearance: textfield;
|
|
399
|
+
-moz-appearance: textfield;
|
|
400
|
+
appearance: textfield;
|
|
401
|
+
}
|
|
402
|
+
.flatpickr-current-month input.cur-year:focus {
|
|
403
|
+
outline: 0;
|
|
404
|
+
}
|
|
405
|
+
.flatpickr-current-month input.cur-year[disabled],
|
|
406
|
+
.flatpickr-current-month input.cur-year[disabled]:hover {
|
|
407
|
+
font-size: 100%;
|
|
408
|
+
color: rgba(255,255,255,0.5);
|
|
409
|
+
background: transparent;
|
|
410
|
+
pointer-events: none;
|
|
411
|
+
}
|
|
412
|
+
.flatpickr-current-month .flatpickr-monthDropdown-months {
|
|
413
|
+
appearance: menulist;
|
|
414
|
+
background: #1bbc9b;
|
|
415
|
+
border: none;
|
|
416
|
+
border-radius: 0;
|
|
417
|
+
box-sizing: border-box;
|
|
418
|
+
color: inherit;
|
|
419
|
+
cursor: pointer;
|
|
420
|
+
font-size: inherit;
|
|
421
|
+
font-family: inherit;
|
|
422
|
+
font-weight: 300;
|
|
423
|
+
height: auto;
|
|
424
|
+
line-height: inherit;
|
|
425
|
+
margin: -1px 0 0 0;
|
|
426
|
+
outline: none;
|
|
427
|
+
padding: 0 0 0 0.5ch;
|
|
428
|
+
position: relative;
|
|
429
|
+
vertical-align: initial;
|
|
430
|
+
-webkit-box-sizing: border-box;
|
|
431
|
+
-webkit-appearance: menulist;
|
|
432
|
+
-moz-appearance: menulist;
|
|
433
|
+
width: auto;
|
|
434
|
+
}
|
|
435
|
+
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
|
|
436
|
+
.flatpickr-current-month .flatpickr-monthDropdown-months:active {
|
|
437
|
+
outline: none;
|
|
438
|
+
}
|
|
439
|
+
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
|
|
440
|
+
background: rgba(0,0,0,0.05);
|
|
441
|
+
}
|
|
442
|
+
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
|
|
443
|
+
background-color: #1bbc9b;
|
|
444
|
+
outline: none;
|
|
445
|
+
padding: 0;
|
|
446
|
+
}
|
|
447
|
+
.flatpickr-weekdays {
|
|
448
|
+
background: #1bbc9b;
|
|
449
|
+
text-align: center;
|
|
450
|
+
overflow: hidden;
|
|
451
|
+
width: 100%;
|
|
452
|
+
display: -webkit-box;
|
|
453
|
+
display: -webkit-flex;
|
|
454
|
+
display: -ms-flexbox;
|
|
455
|
+
display: flex;
|
|
456
|
+
-webkit-box-align: center;
|
|
457
|
+
-webkit-align-items: center;
|
|
458
|
+
-ms-flex-align: center;
|
|
459
|
+
align-items: center;
|
|
460
|
+
height: 28px;
|
|
461
|
+
}
|
|
462
|
+
.flatpickr-weekdays .flatpickr-weekdaycontainer {
|
|
463
|
+
display: -webkit-box;
|
|
464
|
+
display: -webkit-flex;
|
|
465
|
+
display: -ms-flexbox;
|
|
466
|
+
display: flex;
|
|
467
|
+
-webkit-box-flex: 1;
|
|
468
|
+
-webkit-flex: 1;
|
|
469
|
+
-ms-flex: 1;
|
|
470
|
+
flex: 1;
|
|
471
|
+
}
|
|
472
|
+
span.flatpickr-weekday {
|
|
473
|
+
cursor: default;
|
|
474
|
+
font-size: 90%;
|
|
475
|
+
background: #1bbc9b;
|
|
476
|
+
color: rgba(0,0,0,0.54);
|
|
477
|
+
line-height: 1;
|
|
478
|
+
margin: 0;
|
|
479
|
+
text-align: center;
|
|
480
|
+
display: block;
|
|
481
|
+
-webkit-box-flex: 1;
|
|
482
|
+
-webkit-flex: 1;
|
|
483
|
+
-ms-flex: 1;
|
|
484
|
+
flex: 1;
|
|
485
|
+
font-weight: bolder;
|
|
486
|
+
}
|
|
487
|
+
.dayContainer,
|
|
488
|
+
.flatpickr-weeks {
|
|
489
|
+
padding: 1px 0 0 0;
|
|
490
|
+
}
|
|
491
|
+
.flatpickr-days {
|
|
492
|
+
position: relative;
|
|
493
|
+
overflow: hidden;
|
|
494
|
+
display: -webkit-box;
|
|
495
|
+
display: -webkit-flex;
|
|
496
|
+
display: -ms-flexbox;
|
|
497
|
+
display: flex;
|
|
498
|
+
-webkit-box-align: start;
|
|
499
|
+
-webkit-align-items: flex-start;
|
|
500
|
+
-ms-flex-align: start;
|
|
501
|
+
align-items: flex-start;
|
|
502
|
+
width: 307.875px;
|
|
503
|
+
border-left: 1px solid rgba(72,72,72,0.2);
|
|
504
|
+
border-right: 1px solid rgba(72,72,72,0.2);
|
|
505
|
+
}
|
|
506
|
+
.flatpickr-days:focus {
|
|
507
|
+
outline: 0;
|
|
508
|
+
}
|
|
509
|
+
.dayContainer {
|
|
510
|
+
padding: 0;
|
|
511
|
+
outline: 0;
|
|
512
|
+
text-align: left;
|
|
513
|
+
width: 307.875px;
|
|
514
|
+
min-width: 307.875px;
|
|
515
|
+
max-width: 307.875px;
|
|
516
|
+
-webkit-box-sizing: border-box;
|
|
517
|
+
box-sizing: border-box;
|
|
518
|
+
display: inline-block;
|
|
519
|
+
display: -ms-flexbox;
|
|
520
|
+
display: -webkit-box;
|
|
521
|
+
display: -webkit-flex;
|
|
522
|
+
display: flex;
|
|
523
|
+
-webkit-flex-wrap: wrap;
|
|
524
|
+
flex-wrap: wrap;
|
|
525
|
+
-ms-flex-wrap: wrap;
|
|
526
|
+
-ms-flex-pack: justify;
|
|
527
|
+
-webkit-justify-content: space-around;
|
|
528
|
+
justify-content: space-around;
|
|
529
|
+
-webkit-transform: translate3d(0px, 0px, 0px);
|
|
530
|
+
transform: translate3d(0px, 0px, 0px);
|
|
531
|
+
opacity: 1;
|
|
532
|
+
}
|
|
533
|
+
.dayContainer + .dayContainer {
|
|
534
|
+
-webkit-box-shadow: -1px 0 0 rgba(72,72,72,0.2);
|
|
535
|
+
box-shadow: -1px 0 0 rgba(72,72,72,0.2);
|
|
536
|
+
}
|
|
537
|
+
.flatpickr-day {
|
|
538
|
+
background: none;
|
|
539
|
+
border: 1px solid transparent;
|
|
540
|
+
border-radius: 150px;
|
|
541
|
+
-webkit-box-sizing: border-box;
|
|
542
|
+
box-sizing: border-box;
|
|
543
|
+
color: #484848;
|
|
544
|
+
cursor: pointer;
|
|
545
|
+
font-weight: 400;
|
|
546
|
+
width: 14.2857143%;
|
|
547
|
+
-webkit-flex-basis: 14.2857143%;
|
|
548
|
+
-ms-flex-preferred-size: 14.2857143%;
|
|
549
|
+
flex-basis: 14.2857143%;
|
|
550
|
+
max-width: 39px;
|
|
551
|
+
height: 39px;
|
|
552
|
+
line-height: 39px;
|
|
553
|
+
margin: 0;
|
|
554
|
+
display: inline-block;
|
|
555
|
+
position: relative;
|
|
556
|
+
-webkit-box-pack: center;
|
|
557
|
+
-webkit-justify-content: center;
|
|
558
|
+
-ms-flex-pack: center;
|
|
559
|
+
justify-content: center;
|
|
560
|
+
text-align: center;
|
|
561
|
+
}
|
|
562
|
+
.flatpickr-day.inRange,
|
|
563
|
+
.flatpickr-day.prevMonthDay.inRange,
|
|
564
|
+
.flatpickr-day.nextMonthDay.inRange,
|
|
565
|
+
.flatpickr-day.today.inRange,
|
|
566
|
+
.flatpickr-day.prevMonthDay.today.inRange,
|
|
567
|
+
.flatpickr-day.nextMonthDay.today.inRange,
|
|
568
|
+
.flatpickr-day:hover,
|
|
569
|
+
.flatpickr-day.prevMonthDay:hover,
|
|
570
|
+
.flatpickr-day.nextMonthDay:hover,
|
|
571
|
+
.flatpickr-day:focus,
|
|
572
|
+
.flatpickr-day.prevMonthDay:focus,
|
|
573
|
+
.flatpickr-day.nextMonthDay:focus {
|
|
574
|
+
cursor: pointer;
|
|
575
|
+
outline: 0;
|
|
576
|
+
background: #e2e2e2;
|
|
577
|
+
border-color: #e2e2e2;
|
|
578
|
+
}
|
|
579
|
+
.flatpickr-day.today {
|
|
580
|
+
border-color: #bbb;
|
|
581
|
+
}
|
|
582
|
+
.flatpickr-day.today:hover,
|
|
583
|
+
.flatpickr-day.today:focus {
|
|
584
|
+
border-color: #bbb;
|
|
585
|
+
background: #bbb;
|
|
586
|
+
color: #fff;
|
|
587
|
+
}
|
|
588
|
+
.flatpickr-day.selected,
|
|
589
|
+
.flatpickr-day.startRange,
|
|
590
|
+
.flatpickr-day.endRange,
|
|
591
|
+
.flatpickr-day.selected.inRange,
|
|
592
|
+
.flatpickr-day.startRange.inRange,
|
|
593
|
+
.flatpickr-day.endRange.inRange,
|
|
594
|
+
.flatpickr-day.selected:focus,
|
|
595
|
+
.flatpickr-day.startRange:focus,
|
|
596
|
+
.flatpickr-day.endRange:focus,
|
|
597
|
+
.flatpickr-day.selected:hover,
|
|
598
|
+
.flatpickr-day.startRange:hover,
|
|
599
|
+
.flatpickr-day.endRange:hover,
|
|
600
|
+
.flatpickr-day.selected.prevMonthDay,
|
|
601
|
+
.flatpickr-day.startRange.prevMonthDay,
|
|
602
|
+
.flatpickr-day.endRange.prevMonthDay,
|
|
603
|
+
.flatpickr-day.selected.nextMonthDay,
|
|
604
|
+
.flatpickr-day.startRange.nextMonthDay,
|
|
605
|
+
.flatpickr-day.endRange.nextMonthDay {
|
|
606
|
+
background: #1bbc9b;
|
|
607
|
+
-webkit-box-shadow: none;
|
|
608
|
+
box-shadow: none;
|
|
609
|
+
color: #fff;
|
|
610
|
+
border-color: #1bbc9b;
|
|
611
|
+
}
|
|
612
|
+
.flatpickr-day.selected.startRange,
|
|
613
|
+
.flatpickr-day.startRange.startRange,
|
|
614
|
+
.flatpickr-day.endRange.startRange {
|
|
615
|
+
border-radius: 50px 0 0 50px;
|
|
616
|
+
}
|
|
617
|
+
.flatpickr-day.selected.endRange,
|
|
618
|
+
.flatpickr-day.startRange.endRange,
|
|
619
|
+
.flatpickr-day.endRange.endRange {
|
|
620
|
+
border-radius: 0 50px 50px 0;
|
|
621
|
+
}
|
|
622
|
+
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
|
|
623
|
+
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
|
|
624
|
+
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
|
|
625
|
+
-webkit-box-shadow: -10px 0 0 #1bbc9b;
|
|
626
|
+
box-shadow: -10px 0 0 #1bbc9b;
|
|
627
|
+
}
|
|
628
|
+
.flatpickr-day.selected.startRange.endRange,
|
|
629
|
+
.flatpickr-day.startRange.startRange.endRange,
|
|
630
|
+
.flatpickr-day.endRange.startRange.endRange {
|
|
631
|
+
border-radius: 50px;
|
|
632
|
+
}
|
|
633
|
+
.flatpickr-day.inRange {
|
|
634
|
+
border-radius: 0;
|
|
635
|
+
-webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
|
|
636
|
+
box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;
|
|
637
|
+
}
|
|
638
|
+
.flatpickr-day.flatpickr-disabled,
|
|
639
|
+
.flatpickr-day.flatpickr-disabled:hover,
|
|
640
|
+
.flatpickr-day.prevMonthDay,
|
|
641
|
+
.flatpickr-day.nextMonthDay,
|
|
642
|
+
.flatpickr-day.notAllowed,
|
|
643
|
+
.flatpickr-day.notAllowed.prevMonthDay,
|
|
644
|
+
.flatpickr-day.notAllowed.nextMonthDay {
|
|
645
|
+
color: rgba(72,72,72,0.3);
|
|
646
|
+
background: transparent;
|
|
647
|
+
border-color: transparent;
|
|
648
|
+
cursor: default;
|
|
649
|
+
}
|
|
650
|
+
.flatpickr-day.flatpickr-disabled,
|
|
651
|
+
.flatpickr-day.flatpickr-disabled:hover {
|
|
652
|
+
cursor: not-allowed;
|
|
653
|
+
color: rgba(72,72,72,0.1);
|
|
654
|
+
}
|
|
655
|
+
.flatpickr-day.week.selected {
|
|
656
|
+
border-radius: 0;
|
|
657
|
+
-webkit-box-shadow: -5px 0 0 #1bbc9b, 5px 0 0 #1bbc9b;
|
|
658
|
+
box-shadow: -5px 0 0 #1bbc9b, 5px 0 0 #1bbc9b;
|
|
659
|
+
}
|
|
660
|
+
.flatpickr-day.hidden {
|
|
661
|
+
visibility: hidden;
|
|
662
|
+
}
|
|
663
|
+
.rangeMode .flatpickr-day {
|
|
664
|
+
margin-top: 1px;
|
|
665
|
+
}
|
|
666
|
+
.flatpickr-weekwrapper {
|
|
667
|
+
float: left;
|
|
668
|
+
}
|
|
669
|
+
.flatpickr-weekwrapper .flatpickr-weeks {
|
|
670
|
+
padding: 0 12px;
|
|
671
|
+
border-left: 1px solid rgba(72,72,72,0.2);
|
|
672
|
+
}
|
|
673
|
+
.flatpickr-weekwrapper .flatpickr-weekday {
|
|
674
|
+
float: none;
|
|
675
|
+
width: 100%;
|
|
676
|
+
line-height: 28px;
|
|
677
|
+
}
|
|
678
|
+
.flatpickr-weekwrapper span.flatpickr-day,
|
|
679
|
+
.flatpickr-weekwrapper span.flatpickr-day:hover {
|
|
680
|
+
display: block;
|
|
681
|
+
width: 100%;
|
|
682
|
+
max-width: none;
|
|
683
|
+
color: rgba(72,72,72,0.3);
|
|
684
|
+
background: transparent;
|
|
685
|
+
cursor: default;
|
|
686
|
+
border: none;
|
|
687
|
+
}
|
|
688
|
+
.flatpickr-innerContainer {
|
|
689
|
+
display: block;
|
|
690
|
+
display: -webkit-box;
|
|
691
|
+
display: -webkit-flex;
|
|
692
|
+
display: -ms-flexbox;
|
|
693
|
+
display: flex;
|
|
694
|
+
-webkit-box-sizing: border-box;
|
|
695
|
+
box-sizing: border-box;
|
|
696
|
+
overflow: hidden;
|
|
697
|
+
background: #fff;
|
|
698
|
+
border-bottom: 1px solid rgba(72,72,72,0.2);
|
|
699
|
+
}
|
|
700
|
+
.flatpickr-rContainer {
|
|
701
|
+
display: inline-block;
|
|
702
|
+
padding: 0;
|
|
703
|
+
-webkit-box-sizing: border-box;
|
|
704
|
+
box-sizing: border-box;
|
|
705
|
+
}
|
|
706
|
+
.flatpickr-time {
|
|
707
|
+
text-align: center;
|
|
708
|
+
outline: 0;
|
|
709
|
+
display: block;
|
|
710
|
+
height: 0;
|
|
711
|
+
line-height: 40px;
|
|
712
|
+
max-height: 40px;
|
|
713
|
+
-webkit-box-sizing: border-box;
|
|
714
|
+
box-sizing: border-box;
|
|
715
|
+
overflow: hidden;
|
|
716
|
+
display: -webkit-box;
|
|
717
|
+
display: -webkit-flex;
|
|
718
|
+
display: -ms-flexbox;
|
|
719
|
+
display: flex;
|
|
720
|
+
background: #fff;
|
|
721
|
+
border-radius: 0 0 5px 5px;
|
|
722
|
+
}
|
|
723
|
+
.flatpickr-time:after {
|
|
724
|
+
content: "";
|
|
725
|
+
display: table;
|
|
726
|
+
clear: both;
|
|
727
|
+
}
|
|
728
|
+
.flatpickr-time .numInputWrapper {
|
|
729
|
+
-webkit-box-flex: 1;
|
|
730
|
+
-webkit-flex: 1;
|
|
731
|
+
-ms-flex: 1;
|
|
732
|
+
flex: 1;
|
|
733
|
+
width: 40%;
|
|
734
|
+
height: 40px;
|
|
735
|
+
float: left;
|
|
736
|
+
}
|
|
737
|
+
.flatpickr-time .numInputWrapper span.arrowUp:after {
|
|
738
|
+
border-bottom-color: #484848;
|
|
739
|
+
}
|
|
740
|
+
.flatpickr-time .numInputWrapper span.arrowDown:after {
|
|
741
|
+
border-top-color: #484848;
|
|
742
|
+
}
|
|
743
|
+
.flatpickr-time.hasSeconds .numInputWrapper {
|
|
744
|
+
width: 26%;
|
|
745
|
+
}
|
|
746
|
+
.flatpickr-time.time24hr .numInputWrapper {
|
|
747
|
+
width: 49%;
|
|
748
|
+
}
|
|
749
|
+
.flatpickr-time input {
|
|
750
|
+
background: transparent;
|
|
751
|
+
-webkit-box-shadow: none;
|
|
752
|
+
box-shadow: none;
|
|
753
|
+
border: 0;
|
|
754
|
+
border-radius: 0;
|
|
755
|
+
text-align: center;
|
|
756
|
+
margin: 0;
|
|
757
|
+
padding: 0;
|
|
758
|
+
height: inherit;
|
|
759
|
+
line-height: inherit;
|
|
760
|
+
color: #484848;
|
|
761
|
+
font-size: 14px;
|
|
762
|
+
position: relative;
|
|
763
|
+
-webkit-box-sizing: border-box;
|
|
764
|
+
box-sizing: border-box;
|
|
765
|
+
-webkit-appearance: textfield;
|
|
766
|
+
-moz-appearance: textfield;
|
|
767
|
+
appearance: textfield;
|
|
768
|
+
}
|
|
769
|
+
.flatpickr-time input.flatpickr-hour {
|
|
770
|
+
font-weight: bold;
|
|
771
|
+
}
|
|
772
|
+
.flatpickr-time input.flatpickr-minute,
|
|
773
|
+
.flatpickr-time input.flatpickr-second {
|
|
774
|
+
font-weight: 400;
|
|
775
|
+
}
|
|
776
|
+
.flatpickr-time input:focus {
|
|
777
|
+
outline: 0;
|
|
778
|
+
border: 0;
|
|
779
|
+
}
|
|
780
|
+
.flatpickr-time .flatpickr-time-separator,
|
|
781
|
+
.flatpickr-time .flatpickr-am-pm {
|
|
782
|
+
height: inherit;
|
|
783
|
+
float: left;
|
|
784
|
+
line-height: inherit;
|
|
785
|
+
color: #484848;
|
|
786
|
+
font-weight: bold;
|
|
787
|
+
width: 2%;
|
|
788
|
+
-webkit-user-select: none;
|
|
789
|
+
-moz-user-select: none;
|
|
790
|
+
-ms-user-select: none;
|
|
791
|
+
user-select: none;
|
|
792
|
+
-webkit-align-self: center;
|
|
793
|
+
-ms-flex-item-align: center;
|
|
794
|
+
align-self: center;
|
|
795
|
+
}
|
|
796
|
+
.flatpickr-time .flatpickr-am-pm {
|
|
797
|
+
outline: 0;
|
|
798
|
+
width: 18%;
|
|
799
|
+
cursor: pointer;
|
|
800
|
+
text-align: center;
|
|
801
|
+
font-weight: 400;
|
|
802
|
+
}
|
|
803
|
+
.flatpickr-time input:hover,
|
|
804
|
+
.flatpickr-time .flatpickr-am-pm:hover,
|
|
805
|
+
.flatpickr-time input:focus,
|
|
806
|
+
.flatpickr-time .flatpickr-am-pm:focus {
|
|
807
|
+
background: #eaeaea;
|
|
808
|
+
}
|
|
809
|
+
.flatpickr-input[readonly] {
|
|
810
|
+
cursor: pointer;
|
|
811
|
+
}
|
|
812
|
+
@-webkit-keyframes fpFadeInDown {
|
|
813
|
+
from {
|
|
814
|
+
opacity: 0;
|
|
815
|
+
-webkit-transform: translate3d(0, -20px, 0);
|
|
816
|
+
transform: translate3d(0, -20px, 0);
|
|
817
|
+
}
|
|
818
|
+
to {
|
|
819
|
+
opacity: 1;
|
|
820
|
+
-webkit-transform: translate3d(0, 0, 0);
|
|
821
|
+
transform: translate3d(0, 0, 0);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
@keyframes fpFadeInDown {
|
|
825
|
+
from {
|
|
826
|
+
opacity: 0;
|
|
827
|
+
-webkit-transform: translate3d(0, -20px, 0);
|
|
828
|
+
transform: translate3d(0, -20px, 0);
|
|
829
|
+
}
|
|
830
|
+
to {
|
|
831
|
+
opacity: 1;
|
|
832
|
+
-webkit-transform: translate3d(0, 0, 0);
|
|
833
|
+
transform: translate3d(0, 0, 0);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
`, ""]);
|
|
837
|
+
// Exports
|
|
838
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
/***/ }),
|
|
842
|
+
|
|
843
|
+
/***/ 27:
|
|
844
|
+
/***/ ((module, __webpack_exports__, __webpack_require__) => {
|
|
845
|
+
|
|
846
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
847
|
+
/* harmony export */ A: () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
848
|
+
/* harmony export */ });
|
|
849
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
|
|
850
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
851
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
|
|
852
|
+
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
|
|
853
|
+
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_flatpickr_dist_themes_material_green_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(941);
|
|
854
|
+
// Imports
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
|
|
858
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
859
|
+
___CSS_LOADER_EXPORT___.i(_node_modules_css_loader_dist_cjs_js_node_modules_flatpickr_dist_themes_material_green_css__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A);
|
|
860
|
+
// Module
|
|
861
|
+
___CSS_LOADER_EXPORT___.push([module.id, `/* src/components/Timeline/Timeline.css */
|
|
862
|
+
|
|
863
|
+
/*
|
|
864
|
+
Temel: "sales sayfası" temasıyla uyumlu renkler,
|
|
865
|
+
light vs. dark tanımları
|
|
866
|
+
*/
|
|
867
|
+
|
|
868
|
+
:root {
|
|
869
|
+
/* Light Tema Varsayılan Renkler */
|
|
870
|
+
--background-color: #f5f5f2; /* Açık tema arka plan */
|
|
871
|
+
--text-color: #666; /* Açık tema yazı rengi */
|
|
872
|
+
--border-color: #bbb; /* Daha yumuşak border */
|
|
873
|
+
|
|
874
|
+
/* Header */
|
|
875
|
+
--header-background-color: #f5f5f2; /* Üst header, tablo header */
|
|
876
|
+
--header-text-color: #666;
|
|
877
|
+
|
|
878
|
+
/* Resources */
|
|
879
|
+
--resource-background-color: #f5f5f2;
|
|
880
|
+
--resource-text-color: #666;
|
|
881
|
+
--group-header-background-color: #dadada;
|
|
882
|
+
|
|
883
|
+
/* Timeline */
|
|
884
|
+
--timeline-header-background-color: #f5f5f2;
|
|
885
|
+
--timeline-cell-border-color: #ccc;
|
|
886
|
+
--timeline-event-background-color: #fff;
|
|
887
|
+
--timeline-event-border-color: #666;
|
|
888
|
+
--timeline-event-text-color: #666;
|
|
889
|
+
|
|
890
|
+
/* Scrollbar */
|
|
891
|
+
--scrollbar-thumb-background: #aaa;
|
|
892
|
+
--scrollbar-thumb-hover-background: #888;
|
|
893
|
+
|
|
894
|
+
--resource-width: 150px;
|
|
895
|
+
--cell-height: 40px;
|
|
896
|
+
--header-height: 60px;
|
|
897
|
+
--time-slot-height: 20px;
|
|
898
|
+
--container-height: 480px;
|
|
899
|
+
|
|
900
|
+
--timeline-new-event-background-color: #ff5722;
|
|
901
|
+
--timeline-new-event-text-color: #fff;
|
|
902
|
+
|
|
903
|
+
--timeline-event-background-color: #ff7f50;
|
|
904
|
+
--timeline-event-text-color: #fff;
|
|
905
|
+
--timeline-event-border-color: #fff;
|
|
906
|
+
|
|
907
|
+
--timeline-cell-selected-bg: rgba(25,118,210,0.2);
|
|
908
|
+
|
|
909
|
+
user-select: none; /* Metin seçimini engelle */
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
/* Koyu Tema */
|
|
913
|
+
.dark-mode {
|
|
914
|
+
/* Koyu tema */
|
|
915
|
+
--background-color: #16202a; /* Koyu tema arka plan */
|
|
916
|
+
--text-color: #ddd; /* Koyu tema yazı rengi */
|
|
917
|
+
--border-color: #444;
|
|
918
|
+
|
|
919
|
+
--header-background-color: #16202a;
|
|
920
|
+
--header-text-color: #bbb;
|
|
921
|
+
|
|
922
|
+
--resource-background-color: #16202a;
|
|
923
|
+
--resource-text-color: #bbb;
|
|
924
|
+
--group-header-background-color: #0d141b;
|
|
925
|
+
|
|
926
|
+
--timeline-header-background-color: #16202a;
|
|
927
|
+
--timeline-cell-border-color: #444;
|
|
928
|
+
--timeline-event-background-color: #2a2a2a;
|
|
929
|
+
--timeline-event-border-color: #222;
|
|
930
|
+
--timeline-event-text-color: #ddd;
|
|
931
|
+
|
|
932
|
+
--scrollbar-thumb-background: #555;
|
|
933
|
+
--scrollbar-thumb-hover-background: #888;
|
|
934
|
+
|
|
935
|
+
--timeline-new-event-background-color: #a83e20;
|
|
936
|
+
--timeline-new-event-text-color: #eee;
|
|
937
|
+
|
|
938
|
+
--timeline-event-background-color: #a83e20;
|
|
939
|
+
--timeline-event-text-color: #fff;
|
|
940
|
+
--timeline-event-border-color: #222;
|
|
941
|
+
|
|
942
|
+
--timeline-cell-selected-bg: rgba(76,175,80,0.2);
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
/* Genel Timeline Konteyner */
|
|
946
|
+
.timeline-container {
|
|
947
|
+
display: flex;
|
|
948
|
+
flex-direction: column;
|
|
949
|
+
width: 100%;
|
|
950
|
+
height: 100%;
|
|
951
|
+
border: 1px solid var(--border-color);
|
|
952
|
+
border-radius: 8px;
|
|
953
|
+
overflow: hidden;
|
|
954
|
+
box-sizing: border-box;
|
|
955
|
+
background-color: var(--background-color);
|
|
956
|
+
color: var(--text-color);
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
/* Master Header */
|
|
960
|
+
.timeline-master-header {
|
|
961
|
+
width: 100%;
|
|
962
|
+
background-color: var(--header-background-color);
|
|
963
|
+
color: var(--header-text-color);
|
|
964
|
+
border-bottom: 1px solid var(--border-color);
|
|
965
|
+
z-index: 10;
|
|
966
|
+
padding: 10px;
|
|
967
|
+
box-sizing: border-box;
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
/* Timeline Body */
|
|
971
|
+
.timeline-body {
|
|
972
|
+
display: flex;
|
|
973
|
+
flex: 1;
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
/* Sol Kısım: Resources */
|
|
977
|
+
.timeline-resources-container {
|
|
978
|
+
width: var(--resource-width);
|
|
979
|
+
display: flex;
|
|
980
|
+
flex-direction: column;
|
|
981
|
+
border-right: 1px solid var(--border-color);
|
|
982
|
+
position: sticky;
|
|
983
|
+
left: 0;
|
|
984
|
+
top: var(--header-height);
|
|
985
|
+
z-index: 2;
|
|
986
|
+
background-color: var(--resource-background-color);
|
|
987
|
+
overflow-y: auto;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
/* Resources Header */
|
|
991
|
+
.resources-header {
|
|
992
|
+
background-color: var(--header-background-color);
|
|
993
|
+
color: var(--resource-text-color);
|
|
994
|
+
text-align: center;
|
|
995
|
+
width: var(--resource-width);
|
|
996
|
+
font-weight: bold;
|
|
997
|
+
display: flex;
|
|
998
|
+
flex-direction: column;
|
|
999
|
+
justify-content: center;
|
|
1000
|
+
align-items: center;
|
|
1001
|
+
height: calc(var(--header-height) * 2); /* Üst üste iki header yüksekliği */
|
|
1002
|
+
border-right: 1px solid var(--border-color);
|
|
1003
|
+
box-sizing: border-box;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
/* Grup Başlığı Hücreleri */
|
|
1007
|
+
.group-header-row {
|
|
1008
|
+
display: flex;
|
|
1009
|
+
height: var(--cell-height);
|
|
1010
|
+
background-color: var(--group-header-background-color);
|
|
1011
|
+
color: var(--resource-text-color);
|
|
1012
|
+
font-weight: bold;
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
.group-header-cell {
|
|
1016
|
+
flex: 1;
|
|
1017
|
+
border: 1px solid var(--border-color);
|
|
1018
|
+
text-align: center;
|
|
1019
|
+
background-color: var(--group-header-background-color);
|
|
1020
|
+
color: var(--resource-text-color);
|
|
1021
|
+
height: var(--cell-height);
|
|
1022
|
+
display: flex;
|
|
1023
|
+
align-items: center;
|
|
1024
|
+
justify-content: center;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
/* Resource Grupları */
|
|
1028
|
+
.resource-group {
|
|
1029
|
+
display: flex;
|
|
1030
|
+
flex-direction: column;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
/* Resource Grup Header */
|
|
1034
|
+
.resource-group-header {
|
|
1035
|
+
background-color: var(--group-header-background-color);
|
|
1036
|
+
color: var(--resource-text-color);
|
|
1037
|
+
font-weight: bold;
|
|
1038
|
+
height: var(--cell-height);
|
|
1039
|
+
box-sizing: border-box;
|
|
1040
|
+
display: flex;
|
|
1041
|
+
align-items: center;
|
|
1042
|
+
justify-content: space-between;
|
|
1043
|
+
padding: 0 0px;
|
|
1044
|
+
cursor: pointer;
|
|
1045
|
+
border: 1px solid var(--border-color);
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
/* Resource Hücreleri */
|
|
1049
|
+
.resource-cell {
|
|
1050
|
+
padding: 0;
|
|
1051
|
+
text-align: left;
|
|
1052
|
+
background-color: var(--resource-background-color);
|
|
1053
|
+
color: var(--resource-text-color);
|
|
1054
|
+
height: var(--cell-height);
|
|
1055
|
+
display: flex;
|
|
1056
|
+
align-items: center;
|
|
1057
|
+
border: 0.3px solid var(--border-color);
|
|
1058
|
+
box-sizing: border-box;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
/* Sağ Kısım: Timeline */
|
|
1062
|
+
.timeline-scrollable-container {
|
|
1063
|
+
flex: 1;
|
|
1064
|
+
overflow-x: auto;
|
|
1065
|
+
overflow-y: hidden;
|
|
1066
|
+
display: flex;
|
|
1067
|
+
flex-direction: column;
|
|
1068
|
+
position: relative;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
/* Header ve Content Wrapper */
|
|
1072
|
+
.timeline-header-content-wrapper {
|
|
1073
|
+
display: flex;
|
|
1074
|
+
flex-direction: column;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
/* Timeline Header */
|
|
1078
|
+
.timeline-header {
|
|
1079
|
+
display: flex;
|
|
1080
|
+
background-color: var(--timeline-header-background-color);
|
|
1081
|
+
color: var(--header-text-color);
|
|
1082
|
+
position: sticky;
|
|
1083
|
+
top: 0;
|
|
1084
|
+
z-index: 2;
|
|
1085
|
+
height: var(--header-height);
|
|
1086
|
+
overflow: hidden;
|
|
1087
|
+
box-sizing: border-box;
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
/* Timeline Content */
|
|
1091
|
+
.timeline-content {
|
|
1092
|
+
display: flex;
|
|
1093
|
+
flex-direction: column;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
/* Grup Container */
|
|
1097
|
+
.group-container {
|
|
1098
|
+
display: flex;
|
|
1099
|
+
flex-direction: column;
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
/* Resource Satırları */
|
|
1103
|
+
.resource-row {
|
|
1104
|
+
display: flex;
|
|
1105
|
+
box-sizing: border-box;
|
|
1106
|
+
position: relative;
|
|
1107
|
+
height: var(--cell-height);
|
|
1108
|
+
border: 1px solid var(--border-color);
|
|
1109
|
+
margin-top: -1px;
|
|
1110
|
+
overflow: hidden;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
/* Timeline Hücreleri */
|
|
1114
|
+
.timeline-cell {
|
|
1115
|
+
flex: 1;
|
|
1116
|
+
border: 1px solid var(--timeline-cell-border-color);
|
|
1117
|
+
height: 100%;
|
|
1118
|
+
box-sizing: border-box;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
/* Hücre Seçili Durumu */
|
|
1122
|
+
.timeline-cell.selected {
|
|
1123
|
+
background-color: rgba(25, 118, 210, 0.2); /* satır içi/hover */
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
/* Event Stilleri */
|
|
1127
|
+
.event {
|
|
1128
|
+
position: absolute;
|
|
1129
|
+
background-color: var(--timeline-event-background-color);
|
|
1130
|
+
color: var(--timeline-event-text-color);
|
|
1131
|
+
font-size: 12px;
|
|
1132
|
+
padding: 2px 5px;
|
|
1133
|
+
border-radius: 4px;
|
|
1134
|
+
text-align: left;
|
|
1135
|
+
display: flex;
|
|
1136
|
+
flex-direction: column;
|
|
1137
|
+
justify-content: center;
|
|
1138
|
+
box-sizing: border-box;
|
|
1139
|
+
z-index: 10;
|
|
1140
|
+
overflow: hidden;
|
|
1141
|
+
text-overflow: ellipsis;
|
|
1142
|
+
white-space: nowrap;
|
|
1143
|
+
border: 1px solid var(--timeline-event-border-color);
|
|
1144
|
+
cursor: pointer;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1147
|
+
/* Event Time Stili */
|
|
1148
|
+
.event-time {
|
|
1149
|
+
font-size: 10px;
|
|
1150
|
+
margin-top: 2px;
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
/* Scrollbar için */
|
|
1154
|
+
.timeline-scrollable-container::-webkit-scrollbar {
|
|
1155
|
+
height: 10px;
|
|
1156
|
+
}
|
|
1157
|
+
|
|
1158
|
+
.timeline-scrollable-container::-webkit-scrollbar-thumb {
|
|
1159
|
+
background: var(--scrollbar-thumb-background);
|
|
1160
|
+
border-radius: 5px;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
.timeline-scrollable-container::-webkit-scrollbar-thumb:hover {
|
|
1164
|
+
background: var(--scrollbar-thumb-hover-background);
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
.resources-header {
|
|
1168
|
+
background-color: var(--header-background-color);
|
|
1169
|
+
color: var(--resource-text-color);
|
|
1170
|
+
text-align: center;
|
|
1171
|
+
width: var(--resource-width);
|
|
1172
|
+
font-weight: bold;
|
|
1173
|
+
display: flex;
|
|
1174
|
+
flex-direction: column;
|
|
1175
|
+
justify-content: center;
|
|
1176
|
+
align-items: center;
|
|
1177
|
+
height: 80px;
|
|
1178
|
+
border-right: 1px solid var(--border-color);
|
|
1179
|
+
box-sizing: border-box;
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
/* TimelineHeader Container */
|
|
1183
|
+
.timeline-header-container {
|
|
1184
|
+
flex: 1;
|
|
1185
|
+
display: flex;
|
|
1186
|
+
flex-direction: column;
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
/* Ay + Yıl satırı */
|
|
1190
|
+
.timeline-header-month-row {
|
|
1191
|
+
display: flex;
|
|
1192
|
+
background-color: var(--header-background-color);
|
|
1193
|
+
color: var(--header-text-color);
|
|
1194
|
+
font-weight: bold;
|
|
1195
|
+
font-size: 16px;
|
|
1196
|
+
height: 40px;
|
|
1197
|
+
line-height: 40px;
|
|
1198
|
+
border-bottom: 1px solid var(--border-color);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
/* Ay + Yıl hücreleri */
|
|
1202
|
+
.timeline-header-month-cell {
|
|
1203
|
+
text-align: center;
|
|
1204
|
+
display: flex;
|
|
1205
|
+
align-items: center;
|
|
1206
|
+
justify-content: center;
|
|
1207
|
+
/* border-right => dynamic, inline style if needed */
|
|
1208
|
+
box-sizing: border-box;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
/* Günlük Hücreler (tarih satırı) */
|
|
1212
|
+
.timeline-header-day-row {
|
|
1213
|
+
display: flex;
|
|
1214
|
+
background-color: var(--timeline-header-background-color);
|
|
1215
|
+
color: var(--header-text-color);
|
|
1216
|
+
/* border-bottom: 1px solid var(--border-color); if needed */
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
/* Günlük hücre (her gün) */
|
|
1220
|
+
.timeline-header-day-cell {
|
|
1221
|
+
height: 40px;
|
|
1222
|
+
line-height: 40px;
|
|
1223
|
+
font-size: 14px;
|
|
1224
|
+
white-space: nowrap;
|
|
1225
|
+
overflow: hidden;
|
|
1226
|
+
text-overflow: ellipsis;
|
|
1227
|
+
text-align: center;
|
|
1228
|
+
box-sizing: border-box;
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
/* src/components/Timeline/Timeline.css */
|
|
1233
|
+
/* Ekleme: MasterHeader stili */
|
|
1234
|
+
|
|
1235
|
+
/* Kapsayıcı */
|
|
1236
|
+
.master-header-container {
|
|
1237
|
+
display: flex;
|
|
1238
|
+
align-items: center;
|
|
1239
|
+
justify-content: space-between; /* Butonlar solda, select sağda */
|
|
1240
|
+
padding: 10px;
|
|
1241
|
+
background-color: var(--header-background-color);
|
|
1242
|
+
color: var(--header-text-color);
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
.master-header-buttons {
|
|
1246
|
+
display: flex; /* Yan yana dizilim */
|
|
1247
|
+
align-items: center; /* Dikey hizalama */
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
.master-header-btn {
|
|
1251
|
+
background-color: transparent;
|
|
1252
|
+
color: var(--header-text-color);
|
|
1253
|
+
border: 1px solid var(--border-color);
|
|
1254
|
+
border-radius: 4px;
|
|
1255
|
+
padding: 6px 12px;
|
|
1256
|
+
margin-right: 10px; /* Butonlar arasında mesafe */
|
|
1257
|
+
cursor: pointer;
|
|
1258
|
+
font-size: 14px;
|
|
1259
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
.master-header-btn:hover {
|
|
1263
|
+
background-color: rgba(25, 118, 210, 0.2); /* Açık tema hover */
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
.dark-mode .master-header-btn:hover {
|
|
1267
|
+
background-color: rgba(76, 175, 80, 0.2); /* Koyu tema hover */
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
.master-header-btn:focus {
|
|
1271
|
+
outline: none;
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
|
|
1276
|
+
/* Tarih seçici (Date Picker) */
|
|
1277
|
+
.master-header-date-picker {
|
|
1278
|
+
background-color: transparent;
|
|
1279
|
+
color: var(--header-text-color);
|
|
1280
|
+
border: 1px solid var(--border-color);
|
|
1281
|
+
border-radius: 4px;
|
|
1282
|
+
padding: 5px 12px;
|
|
1283
|
+
margin-right: 10px; /* Butonlar arasında mesafe */
|
|
1284
|
+
cursor: pointer;
|
|
1285
|
+
font-size: 14px;
|
|
1286
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
1287
|
+
}
|
|
1288
|
+
|
|
1289
|
+
.master-header-date-picker:hover {
|
|
1290
|
+
background-color: rgba(25, 118, 210, 0.2); /* Açık tema hover */
|
|
1291
|
+
}
|
|
1292
|
+
|
|
1293
|
+
.dark-mode .master-header-date-picker:hover {
|
|
1294
|
+
background-color: rgba(76, 175, 80, 0.2); /* Koyu tema hover */
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
.master-header-date-picker:focus {
|
|
1298
|
+
outline: none;
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
/* Select */
|
|
1302
|
+
.master-header-select {
|
|
1303
|
+
margin-left: auto; /* Sağa yaslamak için */
|
|
1304
|
+
background-color: transparent;
|
|
1305
|
+
color: var(--header-text-color);
|
|
1306
|
+
border: 1px solid var(--border-color);
|
|
1307
|
+
border-radius: 4px;
|
|
1308
|
+
padding: 4px 8px;
|
|
1309
|
+
font-size: 14px;
|
|
1310
|
+
cursor: pointer;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
.master-header-select:focus {
|
|
1314
|
+
outline: none;
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
/* Flatpickr Takvim Kutusu */
|
|
1318
|
+
.flatpickr-calendar {
|
|
1319
|
+
background-color: var(--background-color);
|
|
1320
|
+
color: var(--text-color);
|
|
1321
|
+
border: 1px solid var(--border-color);
|
|
1322
|
+
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); /* Gölge efekti */
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
/* Flatpickr Günü */
|
|
1327
|
+
.flatpickr-day {
|
|
1328
|
+
background-color: var(--background-color); /* Arka plan rengi */
|
|
1329
|
+
color: var(--text-color); /* Yazı rengi */
|
|
1330
|
+
border-radius: 4px; /* Köşeleri yuvarlat */
|
|
1331
|
+
cursor: pointer;
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
.flatpickr-day:hover {
|
|
1335
|
+
background-color: rgba(25, 118, 210, 0.2); /* Hover efekti */
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
.dark-mode .flatpickr-day:hover {
|
|
1339
|
+
background-color: rgba(76, 175, 80, 0.2); /* Koyu tema hover efekti */
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
/* Seçili Gün */
|
|
1343
|
+
.flatpickr-day.selected {
|
|
1344
|
+
background-color: #4caf50; /* Seçili gün rengi */
|
|
1345
|
+
color: white; /* Seçili gün yazı rengi */
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
/* Flatpickr Ay ve Yıl */
|
|
1349
|
+
.flatpickr-months .flatpickr-month {
|
|
1350
|
+
background-color: var(--background-color);
|
|
1351
|
+
color: var(--text-color);
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
/* Flatpickr Ay İleri ve Geri Düğmeleri */
|
|
1355
|
+
.flatpickr-prev-month, .flatpickr-next-month {
|
|
1356
|
+
color: var(--text-color);
|
|
1357
|
+
cursor: pointer;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
/* Koyu Tema Örnekleri */
|
|
1361
|
+
.dark-mode .flatpickr-calendar {
|
|
1362
|
+
background-color: #1f2937; /* Koyu tema arka plan */
|
|
1363
|
+
color: #ffffff; /* Koyu tema yazı rengi */
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
.dark-mode .flatpickr-day.selected {
|
|
1367
|
+
background-color: #4caf50;
|
|
1368
|
+
color: white;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
/* Container */
|
|
1373
|
+
.timeline-content-container {
|
|
1374
|
+
position: relative;
|
|
1375
|
+
width: 100%;
|
|
1376
|
+
height: auto; /* or as needed */
|
|
1377
|
+
display: flex;
|
|
1378
|
+
flex-direction: column;
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
/* Group container */
|
|
1382
|
+
.timeline-group-container {
|
|
1383
|
+
margin-bottom: 0px;
|
|
1384
|
+
display: flex;
|
|
1385
|
+
flex-direction: column;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
/* Group header row */
|
|
1389
|
+
.timeline-group-header-row {
|
|
1390
|
+
display: flex;
|
|
1391
|
+
margin-top: -0.08rem;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
.timeline-group-header-cell {
|
|
1395
|
+
flex: 1;
|
|
1396
|
+
height: 2.58rem;
|
|
1397
|
+
background-color: var(--group-header-background-color);
|
|
1398
|
+
border: 1px solid var(--border-color);
|
|
1399
|
+
|
|
1400
|
+
box-sizing: border-box;
|
|
1401
|
+
display: flex;
|
|
1402
|
+
align-items: center;
|
|
1403
|
+
justify-content: center;
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
/* Resource row */
|
|
1407
|
+
.timeline-resource-row {
|
|
1408
|
+
display: flex;
|
|
1409
|
+
position: relative;
|
|
1410
|
+
height: var(--cell-height, 40px);
|
|
1411
|
+
border: 1px solid var(--border-color);
|
|
1412
|
+
box-sizing: border-box;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
/* Each day cell */
|
|
1416
|
+
.timeline-cell {
|
|
1417
|
+
flex: 1;
|
|
1418
|
+
height: 100%;
|
|
1419
|
+
position: relative;
|
|
1420
|
+
border-left: 1px solid var(--border-color);
|
|
1421
|
+
border-right: 1px solid var(--border-color);
|
|
1422
|
+
box-sizing: border-box;
|
|
1423
|
+
cursor: pointer;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
/* "selected" day cell */
|
|
1427
|
+
.timeline-cell.selected {
|
|
1428
|
+
background-color: var(--timeline-cell-selected-bg, rgba(25,118,210,0.2));
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
/* Event */
|
|
1432
|
+
.timeline-event {
|
|
1433
|
+
position: absolute;
|
|
1434
|
+
background-color: var(--timeline-event-background-color, #0093ce);
|
|
1435
|
+
color: var(--timeline-event-text-color, #fff);
|
|
1436
|
+
font-size: 14px;
|
|
1437
|
+
padding: 5px;
|
|
1438
|
+
border-radius: 20px;
|
|
1439
|
+
box-sizing: border-box;
|
|
1440
|
+
z-index: 10;
|
|
1441
|
+
overflow: hidden;
|
|
1442
|
+
text-overflow: ellipsis;
|
|
1443
|
+
white-space: nowrap;
|
|
1444
|
+
border: 1px solid var(--timeline-event-border-color, #fff);
|
|
1445
|
+
top: 5px; /* or a variable offset if you want */
|
|
1446
|
+
/* "left" and "width" are inline from JS */
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1449
|
+
/* Extend handle */
|
|
1450
|
+
.timeline-event-extend-handle {
|
|
1451
|
+
position: absolute;
|
|
1452
|
+
right: 0;
|
|
1453
|
+
top: 0;
|
|
1454
|
+
width: 10px;
|
|
1455
|
+
height: 100%;
|
|
1456
|
+
background-color: rgba(0,0,0,0.2);
|
|
1457
|
+
cursor: col-resize;
|
|
1458
|
+
z-index: 20;
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
/* Temp event (while creating) */
|
|
1462
|
+
.timeline-temp-event {
|
|
1463
|
+
position: absolute;
|
|
1464
|
+
background-color: var(--timeline-new-event-background-color, #0093ce);
|
|
1465
|
+
color: var(--timeline-new-event-text-color, #fff);
|
|
1466
|
+
opacity: 0.7;
|
|
1467
|
+
border-radius: 20px;
|
|
1468
|
+
z-index: 9;
|
|
1469
|
+
display: flex;
|
|
1470
|
+
align-items: center;
|
|
1471
|
+
justify-content: center;
|
|
1472
|
+
font-size: 14px;
|
|
1473
|
+
/* "left"/"width" from JS: " ...calculatePosition(tempEvent, dates)" */
|
|
1474
|
+
top: 5px;
|
|
1475
|
+
}
|
|
1476
|
+
`, ""]);
|
|
1477
|
+
// Exports
|
|
1478
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
|
1479
|
+
|
|
1480
|
+
|
|
1481
|
+
/***/ }),
|
|
1482
|
+
|
|
1483
|
+
/***/ 314:
|
|
1484
|
+
/***/ ((module) => {
|
|
1485
|
+
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
/*
|
|
1489
|
+
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
1490
|
+
Author Tobias Koppers @sokra
|
|
1491
|
+
*/
|
|
1492
|
+
module.exports = function (cssWithMappingToString) {
|
|
1493
|
+
var list = [];
|
|
1494
|
+
|
|
1495
|
+
// return the list of modules as css string
|
|
1496
|
+
list.toString = function toString() {
|
|
1497
|
+
return this.map(function (item) {
|
|
1498
|
+
var content = "";
|
|
1499
|
+
var needLayer = typeof item[5] !== "undefined";
|
|
1500
|
+
if (item[4]) {
|
|
1501
|
+
content += "@supports (".concat(item[4], ") {");
|
|
1502
|
+
}
|
|
1503
|
+
if (item[2]) {
|
|
1504
|
+
content += "@media ".concat(item[2], " {");
|
|
1505
|
+
}
|
|
1506
|
+
if (needLayer) {
|
|
1507
|
+
content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
|
|
1508
|
+
}
|
|
1509
|
+
content += cssWithMappingToString(item);
|
|
1510
|
+
if (needLayer) {
|
|
1511
|
+
content += "}";
|
|
1512
|
+
}
|
|
1513
|
+
if (item[2]) {
|
|
1514
|
+
content += "}";
|
|
1515
|
+
}
|
|
1516
|
+
if (item[4]) {
|
|
1517
|
+
content += "}";
|
|
1518
|
+
}
|
|
1519
|
+
return content;
|
|
1520
|
+
}).join("");
|
|
1521
|
+
};
|
|
1522
|
+
|
|
1523
|
+
// import a list of modules into the list
|
|
1524
|
+
list.i = function i(modules, media, dedupe, supports, layer) {
|
|
1525
|
+
if (typeof modules === "string") {
|
|
1526
|
+
modules = [[null, modules, undefined]];
|
|
1527
|
+
}
|
|
1528
|
+
var alreadyImportedModules = {};
|
|
1529
|
+
if (dedupe) {
|
|
1530
|
+
for (var k = 0; k < this.length; k++) {
|
|
1531
|
+
var id = this[k][0];
|
|
1532
|
+
if (id != null) {
|
|
1533
|
+
alreadyImportedModules[id] = true;
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
1536
|
+
}
|
|
1537
|
+
for (var _k = 0; _k < modules.length; _k++) {
|
|
1538
|
+
var item = [].concat(modules[_k]);
|
|
1539
|
+
if (dedupe && alreadyImportedModules[item[0]]) {
|
|
1540
|
+
continue;
|
|
1541
|
+
}
|
|
1542
|
+
if (typeof layer !== "undefined") {
|
|
1543
|
+
if (typeof item[5] === "undefined") {
|
|
1544
|
+
item[5] = layer;
|
|
1545
|
+
} else {
|
|
1546
|
+
item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
|
|
1547
|
+
item[5] = layer;
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
if (media) {
|
|
1551
|
+
if (!item[2]) {
|
|
1552
|
+
item[2] = media;
|
|
1553
|
+
} else {
|
|
1554
|
+
item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
|
|
1555
|
+
item[2] = media;
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
if (supports) {
|
|
1559
|
+
if (!item[4]) {
|
|
1560
|
+
item[4] = "".concat(supports);
|
|
1561
|
+
} else {
|
|
1562
|
+
item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
|
|
1563
|
+
item[4] = supports;
|
|
1564
|
+
}
|
|
1565
|
+
}
|
|
1566
|
+
list.push(item);
|
|
1567
|
+
}
|
|
1568
|
+
};
|
|
1569
|
+
return list;
|
|
1570
|
+
};
|
|
1571
|
+
|
|
1572
|
+
/***/ }),
|
|
1573
|
+
|
|
1574
|
+
/***/ 601:
|
|
1575
|
+
/***/ ((module) => {
|
|
1576
|
+
|
|
1577
|
+
|
|
1578
|
+
|
|
1579
|
+
module.exports = function (i) {
|
|
1580
|
+
return i[1];
|
|
1581
|
+
};
|
|
1582
|
+
|
|
1583
|
+
/***/ }),
|
|
1584
|
+
|
|
1585
|
+
/***/ 72:
|
|
1586
|
+
/***/ ((module) => {
|
|
1587
|
+
|
|
1588
|
+
|
|
1589
|
+
|
|
1590
|
+
var stylesInDOM = [];
|
|
1591
|
+
function getIndexByIdentifier(identifier) {
|
|
1592
|
+
var result = -1;
|
|
1593
|
+
for (var i = 0; i < stylesInDOM.length; i++) {
|
|
1594
|
+
if (stylesInDOM[i].identifier === identifier) {
|
|
1595
|
+
result = i;
|
|
1596
|
+
break;
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1599
|
+
return result;
|
|
1600
|
+
}
|
|
1601
|
+
function modulesToDom(list, options) {
|
|
1602
|
+
var idCountMap = {};
|
|
1603
|
+
var identifiers = [];
|
|
1604
|
+
for (var i = 0; i < list.length; i++) {
|
|
1605
|
+
var item = list[i];
|
|
1606
|
+
var id = options.base ? item[0] + options.base : item[0];
|
|
1607
|
+
var count = idCountMap[id] || 0;
|
|
1608
|
+
var identifier = "".concat(id, " ").concat(count);
|
|
1609
|
+
idCountMap[id] = count + 1;
|
|
1610
|
+
var indexByIdentifier = getIndexByIdentifier(identifier);
|
|
1611
|
+
var obj = {
|
|
1612
|
+
css: item[1],
|
|
1613
|
+
media: item[2],
|
|
1614
|
+
sourceMap: item[3],
|
|
1615
|
+
supports: item[4],
|
|
1616
|
+
layer: item[5]
|
|
1617
|
+
};
|
|
1618
|
+
if (indexByIdentifier !== -1) {
|
|
1619
|
+
stylesInDOM[indexByIdentifier].references++;
|
|
1620
|
+
stylesInDOM[indexByIdentifier].updater(obj);
|
|
1621
|
+
} else {
|
|
1622
|
+
var updater = addElementStyle(obj, options);
|
|
1623
|
+
options.byIndex = i;
|
|
1624
|
+
stylesInDOM.splice(i, 0, {
|
|
1625
|
+
identifier: identifier,
|
|
1626
|
+
updater: updater,
|
|
1627
|
+
references: 1
|
|
1628
|
+
});
|
|
1629
|
+
}
|
|
1630
|
+
identifiers.push(identifier);
|
|
1631
|
+
}
|
|
1632
|
+
return identifiers;
|
|
1633
|
+
}
|
|
1634
|
+
function addElementStyle(obj, options) {
|
|
1635
|
+
var api = options.domAPI(options);
|
|
1636
|
+
api.update(obj);
|
|
1637
|
+
var updater = function updater(newObj) {
|
|
1638
|
+
if (newObj) {
|
|
1639
|
+
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
|
|
1640
|
+
return;
|
|
1641
|
+
}
|
|
1642
|
+
api.update(obj = newObj);
|
|
1643
|
+
} else {
|
|
1644
|
+
api.remove();
|
|
1645
|
+
}
|
|
1646
|
+
};
|
|
1647
|
+
return updater;
|
|
1648
|
+
}
|
|
1649
|
+
module.exports = function (list, options) {
|
|
1650
|
+
options = options || {};
|
|
1651
|
+
list = list || [];
|
|
1652
|
+
var lastIdentifiers = modulesToDom(list, options);
|
|
1653
|
+
return function update(newList) {
|
|
1654
|
+
newList = newList || [];
|
|
1655
|
+
for (var i = 0; i < lastIdentifiers.length; i++) {
|
|
1656
|
+
var identifier = lastIdentifiers[i];
|
|
1657
|
+
var index = getIndexByIdentifier(identifier);
|
|
1658
|
+
stylesInDOM[index].references--;
|
|
1659
|
+
}
|
|
1660
|
+
var newLastIdentifiers = modulesToDom(newList, options);
|
|
1661
|
+
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
|
|
1662
|
+
var _identifier = lastIdentifiers[_i];
|
|
1663
|
+
var _index = getIndexByIdentifier(_identifier);
|
|
1664
|
+
if (stylesInDOM[_index].references === 0) {
|
|
1665
|
+
stylesInDOM[_index].updater();
|
|
1666
|
+
stylesInDOM.splice(_index, 1);
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
lastIdentifiers = newLastIdentifiers;
|
|
1670
|
+
};
|
|
1671
|
+
};
|
|
1672
|
+
|
|
1673
|
+
/***/ }),
|
|
1674
|
+
|
|
1675
|
+
/***/ 659:
|
|
1676
|
+
/***/ ((module) => {
|
|
1677
|
+
|
|
1678
|
+
|
|
1679
|
+
|
|
1680
|
+
var memo = {};
|
|
1681
|
+
|
|
1682
|
+
/* istanbul ignore next */
|
|
1683
|
+
function getTarget(target) {
|
|
1684
|
+
if (typeof memo[target] === "undefined") {
|
|
1685
|
+
var styleTarget = document.querySelector(target);
|
|
1686
|
+
|
|
1687
|
+
// Special case to return head of iframe instead of iframe itself
|
|
1688
|
+
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
|
|
1689
|
+
try {
|
|
1690
|
+
// This will throw an exception if access to iframe is blocked
|
|
1691
|
+
// due to cross-origin restrictions
|
|
1692
|
+
styleTarget = styleTarget.contentDocument.head;
|
|
1693
|
+
} catch (e) {
|
|
1694
|
+
// istanbul ignore next
|
|
1695
|
+
styleTarget = null;
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
memo[target] = styleTarget;
|
|
1699
|
+
}
|
|
1700
|
+
return memo[target];
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
/* istanbul ignore next */
|
|
1704
|
+
function insertBySelector(insert, style) {
|
|
1705
|
+
var target = getTarget(insert);
|
|
1706
|
+
if (!target) {
|
|
1707
|
+
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
|
|
1708
|
+
}
|
|
1709
|
+
target.appendChild(style);
|
|
1710
|
+
}
|
|
1711
|
+
module.exports = insertBySelector;
|
|
1712
|
+
|
|
1713
|
+
/***/ }),
|
|
1714
|
+
|
|
1715
|
+
/***/ 540:
|
|
1716
|
+
/***/ ((module) => {
|
|
1717
|
+
|
|
1718
|
+
|
|
1719
|
+
|
|
1720
|
+
/* istanbul ignore next */
|
|
1721
|
+
function insertStyleElement(options) {
|
|
1722
|
+
var element = document.createElement("style");
|
|
1723
|
+
options.setAttributes(element, options.attributes);
|
|
1724
|
+
options.insert(element, options.options);
|
|
1725
|
+
return element;
|
|
1726
|
+
}
|
|
1727
|
+
module.exports = insertStyleElement;
|
|
1728
|
+
|
|
1729
|
+
/***/ }),
|
|
1730
|
+
|
|
1731
|
+
/***/ 56:
|
|
1732
|
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
1733
|
+
|
|
1734
|
+
|
|
1735
|
+
|
|
1736
|
+
/* istanbul ignore next */
|
|
1737
|
+
function setAttributesWithoutAttributes(styleElement) {
|
|
1738
|
+
var nonce = true ? __webpack_require__.nc : 0;
|
|
1739
|
+
if (nonce) {
|
|
1740
|
+
styleElement.setAttribute("nonce", nonce);
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
module.exports = setAttributesWithoutAttributes;
|
|
1744
|
+
|
|
1745
|
+
/***/ }),
|
|
1746
|
+
|
|
1747
|
+
/***/ 825:
|
|
1748
|
+
/***/ ((module) => {
|
|
1749
|
+
|
|
1750
|
+
|
|
1751
|
+
|
|
1752
|
+
/* istanbul ignore next */
|
|
1753
|
+
function apply(styleElement, options, obj) {
|
|
1754
|
+
var css = "";
|
|
1755
|
+
if (obj.supports) {
|
|
1756
|
+
css += "@supports (".concat(obj.supports, ") {");
|
|
1757
|
+
}
|
|
1758
|
+
if (obj.media) {
|
|
1759
|
+
css += "@media ".concat(obj.media, " {");
|
|
1760
|
+
}
|
|
1761
|
+
var needLayer = typeof obj.layer !== "undefined";
|
|
1762
|
+
if (needLayer) {
|
|
1763
|
+
css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
|
|
1764
|
+
}
|
|
1765
|
+
css += obj.css;
|
|
1766
|
+
if (needLayer) {
|
|
1767
|
+
css += "}";
|
|
1768
|
+
}
|
|
1769
|
+
if (obj.media) {
|
|
1770
|
+
css += "}";
|
|
1771
|
+
}
|
|
1772
|
+
if (obj.supports) {
|
|
1773
|
+
css += "}";
|
|
1774
|
+
}
|
|
1775
|
+
var sourceMap = obj.sourceMap;
|
|
1776
|
+
if (sourceMap && typeof btoa !== "undefined") {
|
|
1777
|
+
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
// For old IE
|
|
1781
|
+
/* istanbul ignore if */
|
|
1782
|
+
options.styleTagTransform(css, styleElement, options.options);
|
|
1783
|
+
}
|
|
1784
|
+
function removeStyleElement(styleElement) {
|
|
1785
|
+
// istanbul ignore if
|
|
1786
|
+
if (styleElement.parentNode === null) {
|
|
1787
|
+
return false;
|
|
1788
|
+
}
|
|
1789
|
+
styleElement.parentNode.removeChild(styleElement);
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1792
|
+
/* istanbul ignore next */
|
|
1793
|
+
function domAPI(options) {
|
|
1794
|
+
if (typeof document === "undefined") {
|
|
1795
|
+
return {
|
|
1796
|
+
update: function update() {},
|
|
1797
|
+
remove: function remove() {}
|
|
1798
|
+
};
|
|
1799
|
+
}
|
|
1800
|
+
var styleElement = options.insertStyleElement(options);
|
|
1801
|
+
return {
|
|
1802
|
+
update: function update(obj) {
|
|
1803
|
+
apply(styleElement, options, obj);
|
|
1804
|
+
},
|
|
1805
|
+
remove: function remove() {
|
|
1806
|
+
removeStyleElement(styleElement);
|
|
1807
|
+
}
|
|
1808
|
+
};
|
|
1809
|
+
}
|
|
1810
|
+
module.exports = domAPI;
|
|
1811
|
+
|
|
1812
|
+
/***/ }),
|
|
1813
|
+
|
|
1814
|
+
/***/ 113:
|
|
1815
|
+
/***/ ((module) => {
|
|
1816
|
+
|
|
1817
|
+
|
|
1818
|
+
|
|
1819
|
+
/* istanbul ignore next */
|
|
1820
|
+
function styleTagTransform(css, styleElement) {
|
|
1821
|
+
if (styleElement.styleSheet) {
|
|
1822
|
+
styleElement.styleSheet.cssText = css;
|
|
1823
|
+
} else {
|
|
1824
|
+
while (styleElement.firstChild) {
|
|
1825
|
+
styleElement.removeChild(styleElement.firstChild);
|
|
1826
|
+
}
|
|
1827
|
+
styleElement.appendChild(document.createTextNode(css));
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
module.exports = styleTagTransform;
|
|
1831
|
+
|
|
1832
|
+
/***/ }),
|
|
1833
|
+
|
|
1834
|
+
/***/ 155:
|
|
1835
|
+
/***/ ((module) => {
|
|
1836
|
+
|
|
1837
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__155__;
|
|
1838
|
+
|
|
1839
|
+
/***/ })
|
|
1840
|
+
|
|
1841
|
+
/******/ });
|
|
1842
|
+
/************************************************************************/
|
|
1843
|
+
/******/ // The module cache
|
|
1844
|
+
/******/ var __webpack_module_cache__ = {};
|
|
1845
|
+
/******/
|
|
1846
|
+
/******/ // The require function
|
|
1847
|
+
/******/ function __webpack_require__(moduleId) {
|
|
1848
|
+
/******/ // Check if module is in cache
|
|
1849
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
1850
|
+
/******/ if (cachedModule !== undefined) {
|
|
1851
|
+
/******/ return cachedModule.exports;
|
|
1852
|
+
/******/ }
|
|
1853
|
+
/******/ // Create a new module (and put it into the cache)
|
|
1854
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
1855
|
+
/******/ id: moduleId,
|
|
1856
|
+
/******/ // no module.loaded needed
|
|
1857
|
+
/******/ exports: {}
|
|
1858
|
+
/******/ };
|
|
1859
|
+
/******/
|
|
1860
|
+
/******/ // Execute the module function
|
|
1861
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
1862
|
+
/******/
|
|
1863
|
+
/******/ // Return the exports of the module
|
|
1864
|
+
/******/ return module.exports;
|
|
1865
|
+
/******/ }
|
|
1866
|
+
/******/
|
|
1867
|
+
/************************************************************************/
|
|
1868
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
1869
|
+
/******/ (() => {
|
|
1870
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
1871
|
+
/******/ __webpack_require__.n = (module) => {
|
|
1872
|
+
/******/ var getter = module && module.__esModule ?
|
|
1873
|
+
/******/ () => (module['default']) :
|
|
1874
|
+
/******/ () => (module);
|
|
1875
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
1876
|
+
/******/ return getter;
|
|
1877
|
+
/******/ };
|
|
1878
|
+
/******/ })();
|
|
1879
|
+
/******/
|
|
1880
|
+
/******/ /* webpack/runtime/define property getters */
|
|
1881
|
+
/******/ (() => {
|
|
1882
|
+
/******/ // define getter functions for harmony exports
|
|
1883
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
1884
|
+
/******/ for(var key in definition) {
|
|
1885
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
1886
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
1887
|
+
/******/ }
|
|
1888
|
+
/******/ }
|
|
1889
|
+
/******/ };
|
|
1890
|
+
/******/ })();
|
|
1891
|
+
/******/
|
|
1892
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
1893
|
+
/******/ (() => {
|
|
1894
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
1895
|
+
/******/ })();
|
|
1896
|
+
/******/
|
|
1897
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
1898
|
+
/******/ (() => {
|
|
1899
|
+
/******/ // define __esModule on exports
|
|
1900
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
1901
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
1902
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
1903
|
+
/******/ }
|
|
1904
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
1905
|
+
/******/ };
|
|
1906
|
+
/******/ })();
|
|
1907
|
+
/******/
|
|
1908
|
+
/******/ /* webpack/runtime/nonce */
|
|
1909
|
+
/******/ (() => {
|
|
1910
|
+
/******/ __webpack_require__.nc = undefined;
|
|
1911
|
+
/******/ })();
|
|
1912
|
+
/******/
|
|
1913
|
+
/************************************************************************/
|
|
1914
|
+
var __webpack_exports__ = {};
|
|
1915
|
+
// ESM COMPAT FLAG
|
|
1916
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1917
|
+
|
|
1918
|
+
// EXPORTS
|
|
1919
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
1920
|
+
"default": () => (/* binding */ components_Timeline_Timeline)
|
|
1921
|
+
});
|
|
1922
|
+
|
|
1923
|
+
// EXTERNAL MODULE: external "react"
|
|
1924
|
+
var external_react_ = __webpack_require__(155);
|
|
1925
|
+
var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_);
|
|
1926
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
|
|
1927
|
+
var injectStylesIntoStyleTag = __webpack_require__(72);
|
|
1928
|
+
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
|
|
1929
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
|
|
1930
|
+
var styleDomAPI = __webpack_require__(825);
|
|
1931
|
+
var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI);
|
|
1932
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
|
|
1933
|
+
var insertBySelector = __webpack_require__(659);
|
|
1934
|
+
var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector);
|
|
1935
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
|
|
1936
|
+
var setAttributesWithoutAttributes = __webpack_require__(56);
|
|
1937
|
+
var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes);
|
|
1938
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
|
|
1939
|
+
var insertStyleElement = __webpack_require__(540);
|
|
1940
|
+
var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
|
|
1941
|
+
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
|
|
1942
|
+
var styleTagTransform = __webpack_require__(113);
|
|
1943
|
+
var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
|
|
1944
|
+
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./src/components/Timeline/Timeline.css
|
|
1945
|
+
var Timeline = __webpack_require__(27);
|
|
1946
|
+
;// ./src/components/Timeline/Timeline.css
|
|
1947
|
+
|
|
1948
|
+
|
|
1949
|
+
|
|
1950
|
+
|
|
1951
|
+
|
|
1952
|
+
|
|
1953
|
+
|
|
1954
|
+
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
|
|
1958
|
+
var options = {};
|
|
1959
|
+
|
|
1960
|
+
options.styleTagTransform = (styleTagTransform_default());
|
|
1961
|
+
options.setAttributes = (setAttributesWithoutAttributes_default());
|
|
1962
|
+
options.insert = insertBySelector_default().bind(null, "head");
|
|
1963
|
+
options.domAPI = (styleDomAPI_default());
|
|
1964
|
+
options.insertStyleElement = (insertStyleElement_default());
|
|
1965
|
+
|
|
1966
|
+
var update = injectStylesIntoStyleTag_default()(Timeline/* default */.A, options);
|
|
1967
|
+
|
|
1968
|
+
|
|
1969
|
+
|
|
1970
|
+
|
|
1971
|
+
/* harmony default export */ const Timeline_Timeline = (Timeline/* default */.A && Timeline/* default */.A.locals ? Timeline/* default */.A.locals : undefined);
|
|
1972
|
+
|
|
1973
|
+
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/flatpickr/dist/themes/material_green.css
|
|
1974
|
+
var material_green = __webpack_require__(941);
|
|
1975
|
+
;// ./node_modules/flatpickr/dist/themes/material_green.css
|
|
1976
|
+
|
|
1977
|
+
|
|
1978
|
+
|
|
1979
|
+
|
|
1980
|
+
|
|
1981
|
+
|
|
1982
|
+
|
|
1983
|
+
|
|
1984
|
+
|
|
1985
|
+
|
|
1986
|
+
|
|
1987
|
+
var material_green_options = {};
|
|
1988
|
+
|
|
1989
|
+
material_green_options.styleTagTransform = (styleTagTransform_default());
|
|
1990
|
+
material_green_options.setAttributes = (setAttributesWithoutAttributes_default());
|
|
1991
|
+
material_green_options.insert = insertBySelector_default().bind(null, "head");
|
|
1992
|
+
material_green_options.domAPI = (styleDomAPI_default());
|
|
1993
|
+
material_green_options.insertStyleElement = (insertStyleElement_default());
|
|
1994
|
+
|
|
1995
|
+
var material_green_update = injectStylesIntoStyleTag_default()(material_green/* default */.A, material_green_options);
|
|
1996
|
+
|
|
1997
|
+
|
|
1998
|
+
|
|
1999
|
+
|
|
2000
|
+
/* harmony default export */ const themes_material_green = (material_green/* default */.A && material_green/* default */.A.locals ? material_green/* default */.A.locals : undefined);
|
|
2001
|
+
|
|
2002
|
+
;// ./src/components/Timeline/MasterHeader.js
|
|
2003
|
+
|
|
2004
|
+
// veya MasterHeader.css, eğer ayrı dosyaya koyacaksan
|
|
2005
|
+
// Flatpickr Tema
|
|
2006
|
+
|
|
2007
|
+
const MasterHeader = _ref => {
|
|
2008
|
+
let {
|
|
2009
|
+
selectedDate,
|
|
2010
|
+
onDateSelect,
|
|
2011
|
+
onToday,
|
|
2012
|
+
onAdvance,
|
|
2013
|
+
onRetreat,
|
|
2014
|
+
onMonthAdvance,
|
|
2015
|
+
onMonthRetreat,
|
|
2016
|
+
dayRange,
|
|
2017
|
+
setDayRange
|
|
2018
|
+
} = _ref;
|
|
2019
|
+
const formattedDate = new Date(selectedDate.getTime() + 24 * 60 * 60 * 1000 - selectedDate.getTimezoneOffset() * 60000).toISOString().split("T")[0]; // YYYY-MM-DD formatı
|
|
2020
|
+
|
|
2021
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2022
|
+
className: "master-header-container"
|
|
2023
|
+
}, /*#__PURE__*/external_react_default().createElement("div", {
|
|
2024
|
+
className: "master-header-buttons"
|
|
2025
|
+
}, /*#__PURE__*/external_react_default().createElement("button", {
|
|
2026
|
+
className: "master-header-btn",
|
|
2027
|
+
onClick: onMonthRetreat
|
|
2028
|
+
}, "1 Ay Geri"), /*#__PURE__*/external_react_default().createElement("button", {
|
|
2029
|
+
className: "master-header-btn",
|
|
2030
|
+
onClick: onRetreat
|
|
2031
|
+
}, "5 G\xFCn Geri"), /*#__PURE__*/external_react_default().createElement("input", {
|
|
2032
|
+
type: "date",
|
|
2033
|
+
className: "master-header-date-picker",
|
|
2034
|
+
value: formattedDate // Seçili tarih burada gösteriliyor
|
|
2035
|
+
,
|
|
2036
|
+
onChange: e => onDateSelect(e.target.value) // Tarih seçimi
|
|
2037
|
+
,
|
|
2038
|
+
onKeyDown: e => e.preventDefault() // Manuel girişleri engelle
|
|
2039
|
+
}), /*#__PURE__*/external_react_default().createElement("button", {
|
|
2040
|
+
className: "master-header-btn",
|
|
2041
|
+
onClick: onAdvance
|
|
2042
|
+
}, "5 G\xFCn \u0130leri"), /*#__PURE__*/external_react_default().createElement("button", {
|
|
2043
|
+
className: "master-header-btn",
|
|
2044
|
+
onClick: onMonthAdvance
|
|
2045
|
+
}, "1 Ay \u0130leri"), /*#__PURE__*/external_react_default().createElement("button", {
|
|
2046
|
+
className: "master-header-btn",
|
|
2047
|
+
onClick: onToday
|
|
2048
|
+
}, "Bug\xFCn")), /*#__PURE__*/external_react_default().createElement("select", {
|
|
2049
|
+
className: "master-header-select",
|
|
2050
|
+
value: dayRange,
|
|
2051
|
+
onChange: e => setDayRange(parseInt(e.target.value, 10))
|
|
2052
|
+
}, /*#__PURE__*/external_react_default().createElement("option", {
|
|
2053
|
+
value: 30
|
|
2054
|
+
}, "30 G\xFCn"), /*#__PURE__*/external_react_default().createElement("option", {
|
|
2055
|
+
value: 60
|
|
2056
|
+
}, "60 G\xFCn"), /*#__PURE__*/external_react_default().createElement("option", {
|
|
2057
|
+
value: 90
|
|
2058
|
+
}, "90 G\xFCn")));
|
|
2059
|
+
};
|
|
2060
|
+
/* harmony default export */ const Timeline_MasterHeader = (MasterHeader);
|
|
2061
|
+
;// ./src/components/Timeline/ResourcesHeader.js
|
|
2062
|
+
// ResourcesHeader.js
|
|
2063
|
+
|
|
2064
|
+
|
|
2065
|
+
const ResourcesHeader = _ref => {
|
|
2066
|
+
let {
|
|
2067
|
+
content
|
|
2068
|
+
} = _ref;
|
|
2069
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2070
|
+
className: "resources-header"
|
|
2071
|
+
}, content);
|
|
2072
|
+
};
|
|
2073
|
+
/* harmony default export */ const Timeline_ResourcesHeader = (ResourcesHeader);
|
|
2074
|
+
;// ./src/components/Timeline/Resources.js
|
|
2075
|
+
|
|
2076
|
+
const Resources = _ref => {
|
|
2077
|
+
let {
|
|
2078
|
+
groupedResources = [],
|
|
2079
|
+
// Kaynakların listesi
|
|
2080
|
+
collapsedGroups = {},
|
|
2081
|
+
// Grupların açık/kapalı durumunu tutan nesne
|
|
2082
|
+
toggleGroupCollapse,
|
|
2083
|
+
// Grupları açma/kapama fonksiyonu
|
|
2084
|
+
resourceSettings = {
|
|
2085
|
+
showIdAsName: false,
|
|
2086
|
+
// Varsayılan: `name` varsa onu göster, yoksa `id`
|
|
2087
|
+
isGrouped: true,
|
|
2088
|
+
// Varsayılan: Gruplama açık
|
|
2089
|
+
isCollapsible: true // Varsayılan: Gruplar açılıp kapanabilir
|
|
2090
|
+
}
|
|
2091
|
+
} = _ref;
|
|
2092
|
+
const {
|
|
2093
|
+
showIdAsName,
|
|
2094
|
+
isGrouped,
|
|
2095
|
+
isCollapsible
|
|
2096
|
+
} = resourceSettings;
|
|
2097
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2098
|
+
className: "timeline-resources"
|
|
2099
|
+
}, isGrouped ?
|
|
2100
|
+
// Gruplama aktif
|
|
2101
|
+
groupedResources.map((group, groupIndex) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2102
|
+
key: groupIndex,
|
|
2103
|
+
className: "resource-group"
|
|
2104
|
+
}, /*#__PURE__*/external_react_default().createElement("div", {
|
|
2105
|
+
className: "resource-group-header",
|
|
2106
|
+
onClick: () => isCollapsible && toggleGroupCollapse(group.groupName)
|
|
2107
|
+
}, group.groupName, " ", isCollapsible && (collapsedGroups[group.groupName] ? "▲" : "▼")), !collapsedGroups[group.groupName] && group.resources.map((resource, resourceIndex) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2108
|
+
key: resourceIndex,
|
|
2109
|
+
className: "resource-cell"
|
|
2110
|
+
}, showIdAsName ? resource.id : resource.name || resource.id)))) :
|
|
2111
|
+
// Gruplama yok
|
|
2112
|
+
groupedResources.flatMap(group => group.resources).map((resource, resourceIndex) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2113
|
+
key: resourceIndex,
|
|
2114
|
+
className: "resource-cell"
|
|
2115
|
+
}, showIdAsName ? resource.id : resource.name || resource.id)));
|
|
2116
|
+
};
|
|
2117
|
+
/* harmony default export */ const Timeline_Resources = (Resources);
|
|
2118
|
+
;// ./src/components/Timeline/TimelineHeader.js
|
|
2119
|
+
|
|
2120
|
+
// CSS dosyasını import etmeyi unutma
|
|
2121
|
+
|
|
2122
|
+
const TimelineHeader = _ref => {
|
|
2123
|
+
let {
|
|
2124
|
+
dates,
|
|
2125
|
+
monthHeaders
|
|
2126
|
+
} = _ref;
|
|
2127
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2128
|
+
className: "timeline-header-container"
|
|
2129
|
+
}, /*#__PURE__*/external_react_default().createElement("div", {
|
|
2130
|
+
className: "timeline-header-month-row"
|
|
2131
|
+
}, monthHeaders.map((monthHeader, index) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2132
|
+
key: index,
|
|
2133
|
+
className: "timeline-header-month-cell",
|
|
2134
|
+
style: {
|
|
2135
|
+
flex: monthHeader.endIndex - monthHeader.startIndex + 1,
|
|
2136
|
+
borderRight: index < monthHeaders.length - 1 ? "1px solid var(--border-color)" : "none"
|
|
2137
|
+
}
|
|
2138
|
+
}, monthHeader.monthName, " ", monthHeader.year))), /*#__PURE__*/external_react_default().createElement("div", {
|
|
2139
|
+
className: "timeline-header-day-row"
|
|
2140
|
+
}, dates.map((date, index) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2141
|
+
key: index,
|
|
2142
|
+
className: "timeline-header-day-cell",
|
|
2143
|
+
style: {
|
|
2144
|
+
flex: 1,
|
|
2145
|
+
borderRight: index < dates.length - 1 ? "1px solid var(--border-color)" : "none"
|
|
2146
|
+
}
|
|
2147
|
+
}, date.display))));
|
|
2148
|
+
};
|
|
2149
|
+
/* harmony default export */ const Timeline_TimelineHeader = (TimelineHeader);
|
|
2150
|
+
;// ./src/utils/dateUtils.js
|
|
2151
|
+
// src/utils/dateUtils.js
|
|
2152
|
+
|
|
2153
|
+
/**
|
|
2154
|
+
* "dd/mm/yyyy" formatındaki bir tarih string'ini Date objesine dönüştürür.
|
|
2155
|
+
* Eğer dateInput bir string değilse, direkt Date objesini döndürür.
|
|
2156
|
+
* @param {string | Object | Date} dateInput - "dd/mm/yyyy" formatında tarih stringi veya {fullDate: Date, display: string} objesi veya Date objesi.
|
|
2157
|
+
* @returns {Date} - Date objesi.
|
|
2158
|
+
*/
|
|
2159
|
+
const parseDate = dateInput => {
|
|
2160
|
+
if (dateInput instanceof Date) {
|
|
2161
|
+
return dateInput;
|
|
2162
|
+
}
|
|
2163
|
+
if (typeof dateInput === 'string') {
|
|
2164
|
+
const [day, month, year] = dateInput.split("/").map(Number);
|
|
2165
|
+
return new Date(year, month - 1, day);
|
|
2166
|
+
} else if (typeof dateInput === 'object' && dateInput.fullDate instanceof Date) {
|
|
2167
|
+
return new Date(dateInput.fullDate.getTime() + dateInput.fullDate.getTimezoneOffset() * 60000);
|
|
2168
|
+
} else {
|
|
2169
|
+
console.error("parseDate received invalid input:", dateInput);
|
|
2170
|
+
return new Date(); // veya hata fırlat
|
|
2171
|
+
}
|
|
2172
|
+
};
|
|
2173
|
+
|
|
2174
|
+
/**
|
|
2175
|
+
* Bir tarihin belirli bir aralık içinde olup olmadığını kontrol eder.
|
|
2176
|
+
* @param {string | Object | Date} date - "dd/mm/yyyy" formatında tarih stringi, {fullDate: Date, display: string} objesi veya Date objesi.
|
|
2177
|
+
* @param {string | Object | Date} startDate - "dd/mm/yyyy" formatında başlangıç tarihi stringi, {fullDate: Date, display: string} objesi veya Date objesi.
|
|
2178
|
+
* @param {string | Object | Date} endDate - "dd/mm/yyyy" formatında bitiş tarihi stringi, {fullDate: Date, display: string} objesi veya Date objesi.
|
|
2179
|
+
* @returns {boolean} - Tarih aralık içinde ise true, değilse false.
|
|
2180
|
+
*/
|
|
2181
|
+
const isDateInRange = (date, startDate, endDate) => {
|
|
2182
|
+
const d = parseDate(date);
|
|
2183
|
+
const start = parseDate(startDate);
|
|
2184
|
+
const end = parseDate(endDate);
|
|
2185
|
+
return d >= start && d <= end;
|
|
2186
|
+
};
|
|
2187
|
+
;// ./src/hooks/useDragAndDrop.js
|
|
2188
|
+
// src/hooks/useDragAndDrop.js
|
|
2189
|
+
|
|
2190
|
+
// Named import
|
|
2191
|
+
|
|
2192
|
+
const useDragAndDrop = function () {
|
|
2193
|
+
let initialEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
2194
|
+
const [isDragging, setIsDragging] = (0,external_react_.useState)(false);
|
|
2195
|
+
const [dragStart, setDragStart] = (0,external_react_.useState)(null);
|
|
2196
|
+
const [dragEnd, setDragEnd] = (0,external_react_.useState)(null);
|
|
2197
|
+
const [events, setEvents] = (0,external_react_.useState)(initialEvents);
|
|
2198
|
+
|
|
2199
|
+
// Sürükleme başlat
|
|
2200
|
+
const startDrag = (resourceId, date) => {
|
|
2201
|
+
setIsDragging(true);
|
|
2202
|
+
setDragStart({
|
|
2203
|
+
resourceId,
|
|
2204
|
+
date
|
|
2205
|
+
});
|
|
2206
|
+
setDragEnd({
|
|
2207
|
+
resourceId,
|
|
2208
|
+
date
|
|
2209
|
+
});
|
|
2210
|
+
};
|
|
2211
|
+
|
|
2212
|
+
// Sürükleme hareketi
|
|
2213
|
+
const updateDrag = (resourceId, date) => {
|
|
2214
|
+
if (!isDragging) return;
|
|
2215
|
+
setDragEnd({
|
|
2216
|
+
resourceId,
|
|
2217
|
+
date
|
|
2218
|
+
});
|
|
2219
|
+
};
|
|
2220
|
+
|
|
2221
|
+
// Sürükleme bitişi
|
|
2222
|
+
const endDrag = dates => {
|
|
2223
|
+
if (!isDragging || !dragStart || !dragEnd) return;
|
|
2224
|
+
if (dragStart.resourceId !== dragEnd.resourceId) {
|
|
2225
|
+
resetDrag();
|
|
2226
|
+
return;
|
|
2227
|
+
}
|
|
2228
|
+
const startDateIndex = dates.findIndex(d => parseDate(d.fullDate).toDateString() === parseDate(dragStart.date.fullDate).toDateString());
|
|
2229
|
+
const endDateIndex = dates.findIndex(d => parseDate(d.fullDate).toDateString() === parseDate(dragEnd.date.fullDate).toDateString());
|
|
2230
|
+
if (startDateIndex === -1 || endDateIndex === -1) {
|
|
2231
|
+
resetDrag();
|
|
2232
|
+
return;
|
|
2233
|
+
}
|
|
2234
|
+
const sortedStartIndex = Math.min(startDateIndex, endDateIndex);
|
|
2235
|
+
const sortedEndIndex = Math.max(startDateIndex, endDateIndex);
|
|
2236
|
+
const startDate = dates[sortedStartIndex].fullDate;
|
|
2237
|
+
const endDate = dates[sortedEndIndex].fullDate;
|
|
2238
|
+
const newEvent = {
|
|
2239
|
+
id: Date.now(),
|
|
2240
|
+
title: "Yeni Etkinlik",
|
|
2241
|
+
resourceId: dragStart.resourceId,
|
|
2242
|
+
startDate: startDate,
|
|
2243
|
+
endDate: endDate,
|
|
2244
|
+
color: "#ff7f50"
|
|
2245
|
+
};
|
|
2246
|
+
setEvents(prev => [...prev, newEvent]);
|
|
2247
|
+
resetDrag();
|
|
2248
|
+
};
|
|
2249
|
+
const resetDrag = () => {
|
|
2250
|
+
setIsDragging(false);
|
|
2251
|
+
setDragStart(null);
|
|
2252
|
+
setDragEnd(null);
|
|
2253
|
+
};
|
|
2254
|
+
return {
|
|
2255
|
+
events,
|
|
2256
|
+
isDragging,
|
|
2257
|
+
dragStart,
|
|
2258
|
+
dragEnd,
|
|
2259
|
+
startDrag,
|
|
2260
|
+
updateDrag,
|
|
2261
|
+
endDrag,
|
|
2262
|
+
setEvents
|
|
2263
|
+
};
|
|
2264
|
+
};
|
|
2265
|
+
/* harmony default export */ const hooks_useDragAndDrop = (useDragAndDrop);
|
|
2266
|
+
;// ./src/hooks/useEventDragDrop.js
|
|
2267
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2268
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2269
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2270
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
2271
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
2272
|
+
|
|
2273
|
+
const useEventDragDrop = (events, setEvents, setDropInfo) => {
|
|
2274
|
+
const [draggingEvent, setDraggingEvent] = (0,external_react_.useState)(null);
|
|
2275
|
+
const [dragOffset, setDragOffset] = (0,external_react_.useState)(0);
|
|
2276
|
+
const [mode, setMode] = (0,external_react_.useState)(null); // "drag" veya "extend"
|
|
2277
|
+
|
|
2278
|
+
const handleDragStart = (event, eventId) => {
|
|
2279
|
+
if (mode === "extend") return; // Uzatma modundaysa taşıma işlemini başlatma
|
|
2280
|
+
|
|
2281
|
+
event.stopPropagation();
|
|
2282
|
+
const eventElement = event.target;
|
|
2283
|
+
const eventRect = eventElement.getBoundingClientRect();
|
|
2284
|
+
const offset = event.clientX - eventRect.left;
|
|
2285
|
+
setDraggingEvent(eventId);
|
|
2286
|
+
setDragOffset(offset);
|
|
2287
|
+
setMode("drag"); // Modu taşıma olarak ayarla
|
|
2288
|
+
|
|
2289
|
+
const draggedEvent = events.find(evt => evt.id === eventId);
|
|
2290
|
+
if (draggedEvent) {
|
|
2291
|
+
console.log("Dragging Event Start:", draggedEvent.startDate);
|
|
2292
|
+
console.log("Dragging Event End:", draggedEvent.endDate);
|
|
2293
|
+
}
|
|
2294
|
+
};
|
|
2295
|
+
const handleExtendStart = (event, eventId) => {
|
|
2296
|
+
event.stopPropagation();
|
|
2297
|
+
setDraggingEvent(eventId);
|
|
2298
|
+
setMode("extend"); // Modu uzatma olarak ayarla
|
|
2299
|
+
};
|
|
2300
|
+
const handleDragOver = event => {
|
|
2301
|
+
event.preventDefault();
|
|
2302
|
+
};
|
|
2303
|
+
const handleDrop = (event, resourceId, targetDate) => {
|
|
2304
|
+
event.preventDefault();
|
|
2305
|
+
if (mode === "drag" && draggingEvent) {
|
|
2306
|
+
const draggedEvent = events.find(evt => evt.id === draggingEvent);
|
|
2307
|
+
if (draggedEvent) {
|
|
2308
|
+
const duration = draggedEvent.endDate - draggedEvent.startDate;
|
|
2309
|
+
const cellWidth = event.target.offsetWidth || 30;
|
|
2310
|
+
const offsetDays = Math.floor(dragOffset / cellWidth);
|
|
2311
|
+
const newStartDate = new Date(targetDate.getTime() - offsetDays * 24 * 60 * 60 * 1000);
|
|
2312
|
+
const newEndDate = new Date(newStartDate.getTime() + duration);
|
|
2313
|
+
|
|
2314
|
+
// Callback kontrolü ve loglama
|
|
2315
|
+
if (setDropInfo) {
|
|
2316
|
+
console.log("setDropInfo is being called with:", {
|
|
2317
|
+
id: draggingEvent,
|
|
2318
|
+
newResourceId: resourceId,
|
|
2319
|
+
newStartDate,
|
|
2320
|
+
newEndDate
|
|
2321
|
+
});
|
|
2322
|
+
setDropInfo({
|
|
2323
|
+
id: draggingEvent,
|
|
2324
|
+
newResourceId: resourceId,
|
|
2325
|
+
newStartDate,
|
|
2326
|
+
newEndDate
|
|
2327
|
+
});
|
|
2328
|
+
}
|
|
2329
|
+
|
|
2330
|
+
// Event güncellemesi
|
|
2331
|
+
setEvents(prevEvents => prevEvents.map(evt => evt.id === draggingEvent ? _objectSpread(_objectSpread({}, evt), {}, {
|
|
2332
|
+
resourceId,
|
|
2333
|
+
startDate: newStartDate,
|
|
2334
|
+
endDate: newEndDate
|
|
2335
|
+
}) : evt));
|
|
2336
|
+
}
|
|
2337
|
+
}
|
|
2338
|
+
setDraggingEvent(null);
|
|
2339
|
+
setDragOffset(0);
|
|
2340
|
+
setMode(null);
|
|
2341
|
+
};
|
|
2342
|
+
const handleExtend = (event, eventId, newEndDate) => {
|
|
2343
|
+
if (mode !== "extend" || draggingEvent !== eventId) return;
|
|
2344
|
+
setEvents(prevEvents => prevEvents.map(evt => evt.id === eventId ? _objectSpread(_objectSpread({}, evt), {}, {
|
|
2345
|
+
endDate: newEndDate
|
|
2346
|
+
}) : evt));
|
|
2347
|
+
console.log("Extended Event ID:", eventId, "New End Date:", newEndDate);
|
|
2348
|
+
setDraggingEvent(null);
|
|
2349
|
+
setMode(null);
|
|
2350
|
+
};
|
|
2351
|
+
const handleDragEnd = () => {
|
|
2352
|
+
setDraggingEvent(null);
|
|
2353
|
+
setDragOffset(0);
|
|
2354
|
+
setMode(null);
|
|
2355
|
+
};
|
|
2356
|
+
return {
|
|
2357
|
+
handleDragStart,
|
|
2358
|
+
handleExtendStart,
|
|
2359
|
+
handleDragOver,
|
|
2360
|
+
handleDrop,
|
|
2361
|
+
handleExtend,
|
|
2362
|
+
handleDragEnd
|
|
2363
|
+
};
|
|
2364
|
+
};
|
|
2365
|
+
/* harmony default export */ const hooks_useEventDragDrop = (useEventDragDrop);
|
|
2366
|
+
;// ./src/components/Timeline/Indicator.js
|
|
2367
|
+
|
|
2368
|
+
const Indicator = _ref => {
|
|
2369
|
+
let {
|
|
2370
|
+
todayIndex,
|
|
2371
|
+
totalDays
|
|
2372
|
+
} = _ref;
|
|
2373
|
+
if (todayIndex < 0 || todayIndex >= totalDays) {
|
|
2374
|
+
console.log("Indicator not visible: Out of bounds");
|
|
2375
|
+
return null; // Bugün timeline dışında ise çizgiyi gösterme
|
|
2376
|
+
}
|
|
2377
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2378
|
+
style: {
|
|
2379
|
+
position: "absolute",
|
|
2380
|
+
top: 0,
|
|
2381
|
+
left: "calc(".concat((todayIndex + 0.5) / totalDays, " * 100%)"),
|
|
2382
|
+
// Günün ortasına yerleştirmek için +0.5
|
|
2383
|
+
width: "2px",
|
|
2384
|
+
height: "100%",
|
|
2385
|
+
backgroundColor: "transparent",
|
|
2386
|
+
zIndex: 5,
|
|
2387
|
+
borderStyle: "dashed",
|
|
2388
|
+
// Kesikli çizgi için
|
|
2389
|
+
borderWidth: "0 0 0 2px",
|
|
2390
|
+
// Sadece sol tarafa kesikli çizgi
|
|
2391
|
+
borderColor: "red"
|
|
2392
|
+
}
|
|
2393
|
+
});
|
|
2394
|
+
};
|
|
2395
|
+
/* harmony default export */ const Timeline_Indicator = (Indicator);
|
|
2396
|
+
;// ./src/hooks/useExtendEvent.js
|
|
2397
|
+
function useExtendEvent_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2398
|
+
function useExtendEvent_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? useExtendEvent_ownKeys(Object(t), !0).forEach(function (r) { useExtendEvent_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : useExtendEvent_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2399
|
+
function useExtendEvent_defineProperty(e, r, t) { return (r = useExtendEvent_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2400
|
+
function useExtendEvent_toPropertyKey(t) { var i = useExtendEvent_toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
2401
|
+
function useExtendEvent_toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
2402
|
+
|
|
2403
|
+
const useExtendEvent = (events, setEvents) => {
|
|
2404
|
+
/**
|
|
2405
|
+
* Etkinliği uzatmak veya kısaltmak için kullanılan işlev.
|
|
2406
|
+
* @param {number} eventId - Güncellenmesi gereken etkinliğin ID'si.
|
|
2407
|
+
* @param {Date} newEndDate - Etkinliğin yeni bitiş tarihi.
|
|
2408
|
+
*/
|
|
2409
|
+
const extendEvent = (0,external_react_.useCallback)((eventId, newEndDate) => {
|
|
2410
|
+
setEvents(prevEvents => prevEvents.map(event => event.id === eventId ? useExtendEvent_objectSpread(useExtendEvent_objectSpread({}, event), {}, {
|
|
2411
|
+
endDate: newEndDate // Yeni bitiş tarihini günceller
|
|
2412
|
+
}) : event // Diğer etkinlikler aynı kalır
|
|
2413
|
+
));
|
|
2414
|
+
}, [setEvents]);
|
|
2415
|
+
return {
|
|
2416
|
+
extendEvent
|
|
2417
|
+
};
|
|
2418
|
+
};
|
|
2419
|
+
/* harmony default export */ const hooks_useExtendEvent = (useExtendEvent);
|
|
2420
|
+
;// ./src/components/Timeline/TimelineContent.js
|
|
2421
|
+
function TimelineContent_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2422
|
+
function TimelineContent_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? TimelineContent_ownKeys(Object(t), !0).forEach(function (r) { TimelineContent_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : TimelineContent_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
2423
|
+
function TimelineContent_defineProperty(e, r, t) { return (r = TimelineContent_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2424
|
+
function TimelineContent_toPropertyKey(t) { var i = TimelineContent_toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
2425
|
+
function TimelineContent_toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
2426
|
+
|
|
2427
|
+
|
|
2428
|
+
|
|
2429
|
+
|
|
2430
|
+
|
|
2431
|
+
|
|
2432
|
+
// import "./Timeline.css"; // varsayalım "Timeline.css" globalde import ediliyor
|
|
2433
|
+
|
|
2434
|
+
const TimelineContent = _ref => {
|
|
2435
|
+
let {
|
|
2436
|
+
groupedResources,
|
|
2437
|
+
dates,
|
|
2438
|
+
collapsedGroups,
|
|
2439
|
+
events,
|
|
2440
|
+
setEvents,
|
|
2441
|
+
onEventClick,
|
|
2442
|
+
todayIndex,
|
|
2443
|
+
indicatorOn,
|
|
2444
|
+
resourceSettings,
|
|
2445
|
+
setDropInfo,
|
|
2446
|
+
eventsDragOn = true,
|
|
2447
|
+
eventsExtendOn = true,
|
|
2448
|
+
createNewEventOn = true,
|
|
2449
|
+
onExtendInfo,
|
|
2450
|
+
onCreateEventInfo,
|
|
2451
|
+
onEventRightClick,
|
|
2452
|
+
eventTooltipOn = true,
|
|
2453
|
+
tooltipComponent: TooltipComponent,
|
|
2454
|
+
tempEventStyle = {},
|
|
2455
|
+
eventStyleResolver = () => ({})
|
|
2456
|
+
} = _ref;
|
|
2457
|
+
// ------------------- HOOKS & STATE -------------------
|
|
2458
|
+
const containerRef = (0,external_react_.useRef)(null);
|
|
2459
|
+
|
|
2460
|
+
// Drag
|
|
2461
|
+
const {
|
|
2462
|
+
isDragging,
|
|
2463
|
+
dragStart,
|
|
2464
|
+
dragEnd
|
|
2465
|
+
} = hooks_useDragAndDrop(events, setEvents);
|
|
2466
|
+
const {
|
|
2467
|
+
handleDragStart,
|
|
2468
|
+
handleDragOver,
|
|
2469
|
+
handleDrop,
|
|
2470
|
+
handleDragEnd
|
|
2471
|
+
} = hooks_useEventDragDrop(events, setEvents, setDropInfo // Doğrudan setDropInfo'yu geçiriyoruz
|
|
2472
|
+
);
|
|
2473
|
+
|
|
2474
|
+
// Extend
|
|
2475
|
+
const {
|
|
2476
|
+
extendEvent
|
|
2477
|
+
} = hooks_useExtendEvent(events, setEvents);
|
|
2478
|
+
const [mode, setMode] = (0,external_react_.useState)(null); // null | "extend"
|
|
2479
|
+
const [extendingEvent, setExtendingEvent] = (0,external_react_.useState)(null);
|
|
2480
|
+
const [originalEndDate, setOriginalEndDate] = (0,external_react_.useState)(null);
|
|
2481
|
+
const [startMouseX, setStartMouseX] = (0,external_react_.useState)(null);
|
|
2482
|
+
|
|
2483
|
+
// Create new event
|
|
2484
|
+
const [isCreating, setIsCreating] = (0,external_react_.useState)(false);
|
|
2485
|
+
const [tempEvent, setTempEvent] = (0,external_react_.useState)(null);
|
|
2486
|
+
|
|
2487
|
+
// Tooltip
|
|
2488
|
+
const [selectedEvent, setSelectedEvent] = (0,external_react_.useState)(null);
|
|
2489
|
+
const [tooltipPosition, setTooltipPosition] = (0,external_react_.useState)({
|
|
2490
|
+
top: 0,
|
|
2491
|
+
left: 0
|
|
2492
|
+
});
|
|
2493
|
+
const totalDays = dates.length;
|
|
2494
|
+
|
|
2495
|
+
// ------------------- Tooltip Logic -------------------
|
|
2496
|
+
const handleEventClickInternal = (event, e) => {
|
|
2497
|
+
e.stopPropagation();
|
|
2498
|
+
// Eğer mod "extend" ise tooltip'i açma
|
|
2499
|
+
if (mode === "extend") {
|
|
2500
|
+
return;
|
|
2501
|
+
}
|
|
2502
|
+
|
|
2503
|
+
// Harici callback
|
|
2504
|
+
if (onEventClick) onEventClick(event, e);
|
|
2505
|
+
|
|
2506
|
+
// Tooltip göstermek
|
|
2507
|
+
const eventElement = e.currentTarget;
|
|
2508
|
+
if (eventElement) {
|
|
2509
|
+
const rect = eventElement.getBoundingClientRect();
|
|
2510
|
+
setTooltipPosition({
|
|
2511
|
+
top: rect.top + window.scrollY,
|
|
2512
|
+
left: rect.left + rect.width / 2 + window.scrollX
|
|
2513
|
+
});
|
|
2514
|
+
setSelectedEvent(event);
|
|
2515
|
+
}
|
|
2516
|
+
};
|
|
2517
|
+
const handleCloseTooltip = () => {
|
|
2518
|
+
setSelectedEvent(null);
|
|
2519
|
+
};
|
|
2520
|
+
|
|
2521
|
+
// ------------------- Create New Event -------------------
|
|
2522
|
+
const handleCellClick = (resourceId, date) => {
|
|
2523
|
+
if (!createNewEventOn) return; // create devrede değilse
|
|
2524
|
+
|
|
2525
|
+
const startDate = parseDate(date.fullDate);
|
|
2526
|
+
const newEvent = {
|
|
2527
|
+
id: Date.now(),
|
|
2528
|
+
title: "1 Gece",
|
|
2529
|
+
startDate,
|
|
2530
|
+
endDate: new Date(startDate.getTime() + 24 * 60 * 60 * 1000),
|
|
2531
|
+
resourceId,
|
|
2532
|
+
// color => var(--timeline-new-event-background-color) => => Sonra inline style yerine className
|
|
2533
|
+
color: "" // Bunu .css’te "var(--timeline-new-event-background-color)" atayabilirsin
|
|
2534
|
+
};
|
|
2535
|
+
setTempEvent(newEvent);
|
|
2536
|
+
setIsCreating(true);
|
|
2537
|
+
};
|
|
2538
|
+
(0,external_react_.useEffect)(() => {
|
|
2539
|
+
if (!createNewEventOn) return;
|
|
2540
|
+
if (!isCreating) return;
|
|
2541
|
+
if (mode === "extend") {
|
|
2542
|
+
console.log(">>> 'extend' mode, skip new event creation");
|
|
2543
|
+
return;
|
|
2544
|
+
}
|
|
2545
|
+
const handleMouseMove = e => {
|
|
2546
|
+
if (!isCreating || !tempEvent) return;
|
|
2547
|
+
const cell = document.elementFromPoint(e.clientX, e.clientY);
|
|
2548
|
+
const cellW = (cell === null || cell === void 0 ? void 0 : cell.offsetWidth) || 30;
|
|
2549
|
+
const startX = tempEvent.startX || e.clientX;
|
|
2550
|
+
const deltaX = e.clientX - startX;
|
|
2551
|
+
const daysToAdd = Math.max(1, Math.floor(deltaX / cellW));
|
|
2552
|
+
const newEndDate = new Date(tempEvent.startDate.getTime());
|
|
2553
|
+
newEndDate.setDate(newEndDate.getDate() + daysToAdd);
|
|
2554
|
+
setTempEvent(TimelineContent_objectSpread(TimelineContent_objectSpread({}, tempEvent), {}, {
|
|
2555
|
+
endDate: newEndDate,
|
|
2556
|
+
startX: startX,
|
|
2557
|
+
title: "".concat(daysToAdd, " Gece")
|
|
2558
|
+
}));
|
|
2559
|
+
};
|
|
2560
|
+
const handleMouseUp = () => {
|
|
2561
|
+
if (isCreating && tempEvent) {
|
|
2562
|
+
setEvents([...events, tempEvent]);
|
|
2563
|
+
if (onCreateEventInfo) {
|
|
2564
|
+
onCreateEventInfo(tempEvent);
|
|
2565
|
+
}
|
|
2566
|
+
}
|
|
2567
|
+
setTempEvent(null);
|
|
2568
|
+
setIsCreating(false);
|
|
2569
|
+
};
|
|
2570
|
+
window.addEventListener("mousemove", handleMouseMove);
|
|
2571
|
+
window.addEventListener("mouseup", handleMouseUp);
|
|
2572
|
+
return () => {
|
|
2573
|
+
window.removeEventListener("mousemove", handleMouseMove);
|
|
2574
|
+
window.removeEventListener("mouseup", handleMouseUp);
|
|
2575
|
+
};
|
|
2576
|
+
}, [createNewEventOn, isCreating, mode, tempEvent, events, onCreateEventInfo, setEvents]);
|
|
2577
|
+
|
|
2578
|
+
// ------------------- Drag Logic -------------------
|
|
2579
|
+
const handleDragStartSafe = (e, eventId) => {
|
|
2580
|
+
if (!eventsDragOn) {
|
|
2581
|
+
e.preventDefault();
|
|
2582
|
+
return;
|
|
2583
|
+
}
|
|
2584
|
+
handleDragStart(e, eventId);
|
|
2585
|
+
};
|
|
2586
|
+
const handleDragEndSafe = e => {
|
|
2587
|
+
if (!eventsDragOn) {
|
|
2588
|
+
e.preventDefault();
|
|
2589
|
+
return;
|
|
2590
|
+
}
|
|
2591
|
+
handleDragEnd();
|
|
2592
|
+
};
|
|
2593
|
+
|
|
2594
|
+
// ------------------- Extend Logic -------------------
|
|
2595
|
+
const handleMouseDownExtend = (mouseEvent, event) => {
|
|
2596
|
+
if (!eventsExtendOn) return;
|
|
2597
|
+
mouseEvent.stopPropagation();
|
|
2598
|
+
console.log(">>> Extend start ID:", event.id);
|
|
2599
|
+
setMode("extend");
|
|
2600
|
+
setExtendingEvent(event);
|
|
2601
|
+
setOriginalEndDate(event.endDate);
|
|
2602
|
+
setStartMouseX(mouseEvent.clientX);
|
|
2603
|
+
};
|
|
2604
|
+
const handleMouseMoveExtend = e => {
|
|
2605
|
+
if (mode !== "extend" || !extendingEvent) return;
|
|
2606
|
+
if (!eventsExtendOn) return;
|
|
2607
|
+
const currentMouseX = e.clientX;
|
|
2608
|
+
const deltaX = currentMouseX - (startMouseX !== null && startMouseX !== void 0 ? startMouseX : 0);
|
|
2609
|
+
const cellW = 30;
|
|
2610
|
+
const daysToAdd = Math.floor(deltaX / cellW);
|
|
2611
|
+
const newEndDate = new Date((originalEndDate !== null && originalEndDate !== void 0 ? originalEndDate : new Date()).getTime());
|
|
2612
|
+
newEndDate.setDate(newEndDate.getDate() + daysToAdd);
|
|
2613
|
+
console.log(">>> Extending ID:", extendingEvent.id, "=>", newEndDate);
|
|
2614
|
+
setEvents(prev => prev.map(evt => evt.id === extendingEvent.id ? TimelineContent_objectSpread(TimelineContent_objectSpread({}, evt), {}, {
|
|
2615
|
+
endDate: newEndDate
|
|
2616
|
+
}) : evt));
|
|
2617
|
+
};
|
|
2618
|
+
const handleMouseUpExtend = () => {
|
|
2619
|
+
console.log(">>> Extend finished ID:", extendingEvent === null || extendingEvent === void 0 ? void 0 : extendingEvent.id);
|
|
2620
|
+
if (onExtendInfo && extendingEvent) {
|
|
2621
|
+
// callback
|
|
2622
|
+
const updatedEvent = events.find(ev => ev.id === extendingEvent.id);
|
|
2623
|
+
if (updatedEvent) {
|
|
2624
|
+
onExtendInfo({
|
|
2625
|
+
eventId: extendingEvent.id,
|
|
2626
|
+
newEndDate: updatedEvent.endDate
|
|
2627
|
+
});
|
|
2628
|
+
}
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
// Tooltip açılmasını engellemek için modun null olmasını geciktiriyoruz
|
|
2632
|
+
setTimeout(() => {
|
|
2633
|
+
setMode(null);
|
|
2634
|
+
}, 100); // 100ms gecikme
|
|
2635
|
+
setExtendingEvent(null);
|
|
2636
|
+
setOriginalEndDate(null);
|
|
2637
|
+
setStartMouseX(null);
|
|
2638
|
+
};
|
|
2639
|
+
(0,external_react_.useEffect)(() => {
|
|
2640
|
+
if (mode === "extend") {
|
|
2641
|
+
const onMove = e => handleMouseMoveExtend(e);
|
|
2642
|
+
const onUp = () => handleMouseUpExtend();
|
|
2643
|
+
document.addEventListener("mousemove", onMove);
|
|
2644
|
+
document.addEventListener("mouseup", onUp);
|
|
2645
|
+
return () => {
|
|
2646
|
+
document.removeEventListener("mousemove", onMove);
|
|
2647
|
+
document.removeEventListener("mouseup", onUp);
|
|
2648
|
+
};
|
|
2649
|
+
}
|
|
2650
|
+
}, [mode, extendingEvent, eventsExtendOn, originalEndDate, startMouseX]);
|
|
2651
|
+
|
|
2652
|
+
// ------------------- Right Click (context) -------------------
|
|
2653
|
+
const handleRightClickEvent = (evt, reactEvent) => {
|
|
2654
|
+
reactEvent.preventDefault();
|
|
2655
|
+
if (onEventRightClick) onEventRightClick(evt, reactEvent);
|
|
2656
|
+
};
|
|
2657
|
+
|
|
2658
|
+
// ------------------- Helper isCellSelected -------------------
|
|
2659
|
+
const isCellSelected = (resourceId, date) => {
|
|
2660
|
+
if (!dragStart || !dragEnd) return false;
|
|
2661
|
+
if (resourceId !== dragStart.resourceId) return false;
|
|
2662
|
+
const startIndex = dates.findIndex(d => parseDate(d.fullDate).getTime() === parseDate(dragStart.date).getTime());
|
|
2663
|
+
const endIndex = dates.findIndex(d => parseDate(d.fullDate).getTime() === parseDate(dragEnd.date).getTime());
|
|
2664
|
+
const currentIndex = dates.findIndex(d => parseDate(d.fullDate).getTime() === parseDate(date.fullDate).getTime());
|
|
2665
|
+
if (startIndex === -1 || endIndex === -1 || currentIndex === -1) return false;
|
|
2666
|
+
return currentIndex >= Math.min(startIndex, endIndex) && currentIndex <= Math.max(startIndex, endIndex);
|
|
2667
|
+
};
|
|
2668
|
+
|
|
2669
|
+
// ------------------- calculatePosition -------------------
|
|
2670
|
+
const calculatePosition = (ev, dateArr) => {
|
|
2671
|
+
const startDate = parseDate(ev.startDate);
|
|
2672
|
+
const endDate = parseDate(ev.endDate);
|
|
2673
|
+
const startIndex = dateArr.findIndex(d => parseDate(d.fullDate).toDateString() === startDate.toDateString());
|
|
2674
|
+
const endIndex = dateArr.findIndex(d => parseDate(d.fullDate).toDateString() === endDate.toDateString());
|
|
2675
|
+
const totalDays = dateArr.length;
|
|
2676
|
+
if (startIndex < 0 && endIndex < 0) {
|
|
2677
|
+
return {
|
|
2678
|
+
isVisible: false,
|
|
2679
|
+
left: 0,
|
|
2680
|
+
width: 0,
|
|
2681
|
+
isPartialStart: false,
|
|
2682
|
+
isPartialEnd: false
|
|
2683
|
+
};
|
|
2684
|
+
}
|
|
2685
|
+
if (startIndex >= totalDays && endIndex >= totalDays) {
|
|
2686
|
+
return {
|
|
2687
|
+
isVisible: false,
|
|
2688
|
+
left: 0,
|
|
2689
|
+
width: 0,
|
|
2690
|
+
isPartialStart: false,
|
|
2691
|
+
isPartialEnd: false
|
|
2692
|
+
};
|
|
2693
|
+
}
|
|
2694
|
+
const effectiveStartIndex = Math.max(startIndex, 0);
|
|
2695
|
+
const effectiveEndIndex = Math.min(endIndex, totalDays - 1);
|
|
2696
|
+
const isPartialStart = startIndex < 0;
|
|
2697
|
+
const isPartialEnd = endIndex >= totalDays;
|
|
2698
|
+
const leftPercentage = (effectiveStartIndex + (isPartialStart ? 0 : 0.5)) / totalDays * 100;
|
|
2699
|
+
const rightPercentage = (effectiveEndIndex + (isPartialEnd ? 1 : 0.5)) / totalDays * 100;
|
|
2700
|
+
const widthPercentage = rightPercentage - leftPercentage;
|
|
2701
|
+
return {
|
|
2702
|
+
isVisible: true,
|
|
2703
|
+
left: "".concat(leftPercentage, "%"),
|
|
2704
|
+
width: "".concat(widthPercentage, "%"),
|
|
2705
|
+
isPartialStart,
|
|
2706
|
+
isPartialEnd
|
|
2707
|
+
};
|
|
2708
|
+
};
|
|
2709
|
+
|
|
2710
|
+
// ------------------- RENDER -------------------
|
|
2711
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2712
|
+
ref: containerRef,
|
|
2713
|
+
className: "timeline-content-container" // Yeni class, stilini timeline.css'e ekleyebilirsin
|
|
2714
|
+
}, indicatorOn && /*#__PURE__*/external_react_default().createElement(Timeline_Indicator, {
|
|
2715
|
+
todayIndex: todayIndex,
|
|
2716
|
+
totalDays: totalDays
|
|
2717
|
+
}), groupedResources.map((group, groupIndex) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2718
|
+
key: groupIndex,
|
|
2719
|
+
className: "timeline-group-container"
|
|
2720
|
+
}, resourceSettings.isGrouped && /*#__PURE__*/external_react_default().createElement("div", {
|
|
2721
|
+
className: "timeline-group-header-row"
|
|
2722
|
+
}, dates.map((dateObj, colIndex) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2723
|
+
key: "group-header-".concat(groupIndex, "-").concat(colIndex),
|
|
2724
|
+
className: "timeline-group-header-cell"
|
|
2725
|
+
}))), !collapsedGroups[group.groupName] && group.resources.map((resource, rowIndex) => {
|
|
2726
|
+
const resourceEvents = events.filter(ev => ev.resourceId === resource.id);
|
|
2727
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2728
|
+
key: resource.id,
|
|
2729
|
+
className: "timeline-resource-row"
|
|
2730
|
+
}, resourceEvents.map(event => {
|
|
2731
|
+
const {
|
|
2732
|
+
isVisible,
|
|
2733
|
+
left,
|
|
2734
|
+
width,
|
|
2735
|
+
isPartialStart,
|
|
2736
|
+
isPartialEnd
|
|
2737
|
+
} = calculatePosition(event, dates);
|
|
2738
|
+
if (!isVisible) return null;
|
|
2739
|
+
|
|
2740
|
+
// Kullanıcıdan gelen stil
|
|
2741
|
+
const eventStyle = eventStyleResolver ? eventStyleResolver(event) : {};
|
|
2742
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2743
|
+
key: event.id,
|
|
2744
|
+
className: "timeline-event",
|
|
2745
|
+
draggable: mode !== "extend" && eventsDragOn,
|
|
2746
|
+
onDragStart: e => {
|
|
2747
|
+
if (mode === "extend") {
|
|
2748
|
+
e.preventDefault();
|
|
2749
|
+
return;
|
|
2750
|
+
}
|
|
2751
|
+
handleDragStartSafe(e, event.id);
|
|
2752
|
+
},
|
|
2753
|
+
onDragEnd: e => {
|
|
2754
|
+
if (mode === "extend") {
|
|
2755
|
+
e.preventDefault();
|
|
2756
|
+
return;
|
|
2757
|
+
}
|
|
2758
|
+
handleDragEndSafe(e);
|
|
2759
|
+
},
|
|
2760
|
+
onContextMenu: reactEvent => handleRightClickEvent(event, reactEvent),
|
|
2761
|
+
onClick: ev => handleEventClickInternal(event, ev),
|
|
2762
|
+
style: TimelineContent_objectSpread({
|
|
2763
|
+
left,
|
|
2764
|
+
width,
|
|
2765
|
+
top: "5px",
|
|
2766
|
+
borderTopLeftRadius: isPartialStart ? "0px" : "20px",
|
|
2767
|
+
borderBottomLeftRadius: isPartialStart ? "0px" : "20px",
|
|
2768
|
+
borderTopRightRadius: isPartialEnd ? "0px" : "20px",
|
|
2769
|
+
borderBottomRightRadius: isPartialEnd ? "0px" : "20px",
|
|
2770
|
+
cursor: mode === "extend" ? "col-resize" : "grab"
|
|
2771
|
+
}, eventStyle)
|
|
2772
|
+
}, event.title, eventsExtendOn && /*#__PURE__*/external_react_default().createElement("div", {
|
|
2773
|
+
className: "timeline-event-extend-handle",
|
|
2774
|
+
onMouseDown: mouseEvent => {
|
|
2775
|
+
mouseEvent.stopPropagation();
|
|
2776
|
+
handleMouseDownExtend(mouseEvent, event);
|
|
2777
|
+
}
|
|
2778
|
+
}));
|
|
2779
|
+
}), tempEvent && tempEvent.resourceId === resource.id && /*#__PURE__*/external_react_default().createElement("div", {
|
|
2780
|
+
className: "timeline-temp-event",
|
|
2781
|
+
style: TimelineContent_objectSpread(TimelineContent_objectSpread({}, calculatePosition(tempEvent, dates)), tempEventStyle)
|
|
2782
|
+
}, tempEvent.title), dates.map((dateObj, colIndex) => /*#__PURE__*/external_react_default().createElement("div", {
|
|
2783
|
+
key: "cell-".concat(groupIndex, "-").concat(rowIndex, "-").concat(colIndex),
|
|
2784
|
+
className: "timeline-cell ".concat(isCellSelected(resource.id, dateObj) ? "selected" : ""),
|
|
2785
|
+
"data-date": JSON.stringify(dateObj),
|
|
2786
|
+
"data-resource-id": resource.id,
|
|
2787
|
+
onMouseDown: () => handleCellClick(resource.id, dateObj),
|
|
2788
|
+
onDragOver: e => handleDragOver(e),
|
|
2789
|
+
onDrop: e => handleDrop(e, resource.id, parseDate(dateObj.fullDate))
|
|
2790
|
+
})));
|
|
2791
|
+
}))), eventTooltipOn && selectedEvent && TooltipComponent && mode !== "extend" && /*#__PURE__*/external_react_default().createElement(TooltipComponent, {
|
|
2792
|
+
event: selectedEvent,
|
|
2793
|
+
position: tooltipPosition,
|
|
2794
|
+
onClose: handleCloseTooltip
|
|
2795
|
+
}));
|
|
2796
|
+
};
|
|
2797
|
+
/* harmony default export */ const Timeline_TimelineContent = (TimelineContent);
|
|
2798
|
+
;// ./src/components/Timeline/EventTooltip.js
|
|
2799
|
+
// src/components/Timeline/EventTooltip.js
|
|
2800
|
+
|
|
2801
|
+
const EventTooltip = _ref => {
|
|
2802
|
+
let {
|
|
2803
|
+
event,
|
|
2804
|
+
position = {
|
|
2805
|
+
top: 0,
|
|
2806
|
+
left: 0
|
|
2807
|
+
},
|
|
2808
|
+
onClose,
|
|
2809
|
+
onEdit,
|
|
2810
|
+
onDelete
|
|
2811
|
+
} = _ref;
|
|
2812
|
+
if (!event) return null;
|
|
2813
|
+
const {
|
|
2814
|
+
top,
|
|
2815
|
+
left
|
|
2816
|
+
} = position;
|
|
2817
|
+
|
|
2818
|
+
// Rezervasyon durumuna göre renk belirleme
|
|
2819
|
+
const getStatusColor = status => {
|
|
2820
|
+
switch (status) {
|
|
2821
|
+
case "Confirmed":
|
|
2822
|
+
return "#4caf50";
|
|
2823
|
+
// Yeşil
|
|
2824
|
+
case "Pending":
|
|
2825
|
+
return "#ff9800";
|
|
2826
|
+
// Turuncu
|
|
2827
|
+
case "Cancelled":
|
|
2828
|
+
return "#f44336";
|
|
2829
|
+
// Kırmızı
|
|
2830
|
+
case "Completed":
|
|
2831
|
+
return "#2196f3";
|
|
2832
|
+
// Mavi
|
|
2833
|
+
default:
|
|
2834
|
+
return "#9e9e9e";
|
|
2835
|
+
// Gri
|
|
2836
|
+
}
|
|
2837
|
+
};
|
|
2838
|
+
const statusColor = getStatusColor(event.status);
|
|
2839
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
2840
|
+
style: {
|
|
2841
|
+
position: "absolute",
|
|
2842
|
+
top: top - 200,
|
|
2843
|
+
// Tooltip'in biraz yukarıda görünmesi için
|
|
2844
|
+
left: left + 70,
|
|
2845
|
+
transform: "translateX(-50%)",
|
|
2846
|
+
backgroundColor: "#ffffff",
|
|
2847
|
+
color: "#333333",
|
|
2848
|
+
borderRadius: "10px",
|
|
2849
|
+
boxShadow: "0 8px 16px rgba(0, 0, 0, 0.2)",
|
|
2850
|
+
fontSize: "16px",
|
|
2851
|
+
zIndex: 1000,
|
|
2852
|
+
pointerEvents: "auto",
|
|
2853
|
+
// Tooltip'in tıklanabilir olmasını sağlar
|
|
2854
|
+
whiteSpace: "normal",
|
|
2855
|
+
maxWidth: "400px",
|
|
2856
|
+
width: "100%",
|
|
2857
|
+
transition: "opacity 0.3s ease, transform 0.3s ease"
|
|
2858
|
+
}
|
|
2859
|
+
}, onClose && /*#__PURE__*/external_react_default().createElement("button", {
|
|
2860
|
+
onClick: onClose,
|
|
2861
|
+
style: {
|
|
2862
|
+
position: "absolute",
|
|
2863
|
+
top: "10px",
|
|
2864
|
+
right: "15px",
|
|
2865
|
+
background: "transparent",
|
|
2866
|
+
border: "none",
|
|
2867
|
+
color: "#aaa",
|
|
2868
|
+
fontSize: "24px",
|
|
2869
|
+
cursor: "pointer",
|
|
2870
|
+
transition: "color 0.2s"
|
|
2871
|
+
},
|
|
2872
|
+
"aria-label": "Kapat",
|
|
2873
|
+
onMouseOver: e => e.target.style.color = "#000",
|
|
2874
|
+
onMouseOut: e => e.target.style.color = "#aaa"
|
|
2875
|
+
}, "\xD7"), /*#__PURE__*/external_react_default().createElement("div", {
|
|
2876
|
+
style: {
|
|
2877
|
+
backgroundColor: statusColor,
|
|
2878
|
+
color: "#ffffff",
|
|
2879
|
+
padding: "15px 20px",
|
|
2880
|
+
borderTopLeftRadius: "10px",
|
|
2881
|
+
borderTopRightRadius: "10px",
|
|
2882
|
+
display: "flex",
|
|
2883
|
+
flexDirection: "column",
|
|
2884
|
+
gap: "5px"
|
|
2885
|
+
}
|
|
2886
|
+
}, /*#__PURE__*/external_react_default().createElement("div", {
|
|
2887
|
+
style: {
|
|
2888
|
+
fontWeight: "bold",
|
|
2889
|
+
fontSize: "18px"
|
|
2890
|
+
}
|
|
2891
|
+
}, event.title), /*#__PURE__*/external_react_default().createElement("div", {
|
|
2892
|
+
style: {
|
|
2893
|
+
fontSize: "14px"
|
|
2894
|
+
}
|
|
2895
|
+
}, "Rezervasyon ID: ", event.reservationId)), /*#__PURE__*/external_react_default().createElement("div", {
|
|
2896
|
+
style: {
|
|
2897
|
+
padding: "20px",
|
|
2898
|
+
display: "flex",
|
|
2899
|
+
flexDirection: "column",
|
|
2900
|
+
gap: "15px"
|
|
2901
|
+
}
|
|
2902
|
+
}, Array.isArray(event.guestNames) && /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "Misafirler:"), " ", event.guestNames.join(", ")), /*#__PURE__*/external_react_default().createElement("div", {
|
|
2903
|
+
style: {
|
|
2904
|
+
display: "flex",
|
|
2905
|
+
justifyContent: "space-between",
|
|
2906
|
+
marginBottom: "10px"
|
|
2907
|
+
}
|
|
2908
|
+
}, /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "Giri\u015F:"), " ", new Date(event.startDate).toLocaleDateString()), /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "\xC7\u0131k\u0131\u015F:"), " ", new Date(event.endDate).toLocaleDateString())), (event.totalAmount !== undefined || event.amountPaid !== undefined) && /*#__PURE__*/external_react_default().createElement("div", {
|
|
2909
|
+
style: {
|
|
2910
|
+
display: "flex",
|
|
2911
|
+
justifyContent: "space-between",
|
|
2912
|
+
marginBottom: "10px"
|
|
2913
|
+
}
|
|
2914
|
+
}, event.amountPaid !== undefined && /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "\xD6denen Miktar:"), " $", event.amountPaid.toFixed(2)), event.totalAmount !== undefined && /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "Toplam Bor\xE7:"), " $", event.totalAmount.toFixed(2))), event.status && /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "Durum:"), " ", event.status), event.note && /*#__PURE__*/external_react_default().createElement("div", null, /*#__PURE__*/external_react_default().createElement("strong", null, "Not:"), " ", event.note)), /*#__PURE__*/external_react_default().createElement("div", {
|
|
2915
|
+
style: {
|
|
2916
|
+
padding: "15px 20px",
|
|
2917
|
+
borderTop: "1px solid #ddd",
|
|
2918
|
+
display: "flex",
|
|
2919
|
+
justifyContent: "flex-end",
|
|
2920
|
+
gap: "10px",
|
|
2921
|
+
borderBottomLeftRadius: "10px",
|
|
2922
|
+
borderBottomRightRadius: "10px"
|
|
2923
|
+
}
|
|
2924
|
+
}, onEdit && /*#__PURE__*/external_react_default().createElement("button", {
|
|
2925
|
+
onClick: () => onEdit(event),
|
|
2926
|
+
style: {
|
|
2927
|
+
padding: "8px 16px",
|
|
2928
|
+
backgroundColor: "#2196f3",
|
|
2929
|
+
color: "#ffffff",
|
|
2930
|
+
border: "none",
|
|
2931
|
+
borderRadius: "4px",
|
|
2932
|
+
cursor: "pointer",
|
|
2933
|
+
fontSize: "14px",
|
|
2934
|
+
display: "flex",
|
|
2935
|
+
alignItems: "center",
|
|
2936
|
+
gap: "5px",
|
|
2937
|
+
transition: "background-color 0.2s"
|
|
2938
|
+
},
|
|
2939
|
+
onMouseOver: e => e.target.style.backgroundColor = "#1976d2",
|
|
2940
|
+
onMouseOut: e => e.target.style.backgroundColor = "#2196f3"
|
|
2941
|
+
}, /*#__PURE__*/external_react_default().createElement("span", {
|
|
2942
|
+
role: "img",
|
|
2943
|
+
"aria-label": "D\xFCzenle"
|
|
2944
|
+
}, "\u270F\uFE0F"), "D\xFCzenle"), onDelete && /*#__PURE__*/external_react_default().createElement("button", {
|
|
2945
|
+
onClick: () => onDelete(event.id),
|
|
2946
|
+
style: {
|
|
2947
|
+
padding: "8px 16px",
|
|
2948
|
+
backgroundColor: "#f44336",
|
|
2949
|
+
color: "#ffffff",
|
|
2950
|
+
border: "none",
|
|
2951
|
+
borderRadius: "4px",
|
|
2952
|
+
cursor: "pointer",
|
|
2953
|
+
fontSize: "14px",
|
|
2954
|
+
display: "flex",
|
|
2955
|
+
alignItems: "center",
|
|
2956
|
+
gap: "5px",
|
|
2957
|
+
transition: "background-color 0.2s"
|
|
2958
|
+
},
|
|
2959
|
+
onMouseOver: e => e.target.style.backgroundColor = "#d32f2f",
|
|
2960
|
+
onMouseOut: e => e.target.style.backgroundColor = "#f44336"
|
|
2961
|
+
}, /*#__PURE__*/external_react_default().createElement("span", {
|
|
2962
|
+
role: "img",
|
|
2963
|
+
"aria-label": "Sil"
|
|
2964
|
+
}, "\uD83D\uDDD1\uFE0F"), "Sil")));
|
|
2965
|
+
};
|
|
2966
|
+
/* harmony default export */ const Timeline_EventTooltip = (EventTooltip);
|
|
2967
|
+
;// ./src/utils/timelineUtils.js
|
|
2968
|
+
// src/utils/timelineUtils.js
|
|
2969
|
+
|
|
2970
|
+
const generateTimelineData = (startYear, endYear) => {
|
|
2971
|
+
const dayNames = ["Paz", "Pzt", "Sal", "Çar", "Per", "Cum", "Cmt"];
|
|
2972
|
+
const monthNames = ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"];
|
|
2973
|
+
const dates = [];
|
|
2974
|
+
const monthHeaders = [];
|
|
2975
|
+
for (let year = startYear; year <= endYear; year++) {
|
|
2976
|
+
for (let month = 1; month <= 12; month++) {
|
|
2977
|
+
const daysInMonth = new Date(year, month, 0).getDate();
|
|
2978
|
+
const startIndex = dates.length;
|
|
2979
|
+
for (let day = 1; day <= daysInMonth; day++) {
|
|
2980
|
+
const date = new Date(year, month - 1, day);
|
|
2981
|
+
const dayName = dayNames[date.getDay()];
|
|
2982
|
+
dates.push({
|
|
2983
|
+
fullDate: date,
|
|
2984
|
+
display: "".concat(day, " ").concat(dayName)
|
|
2985
|
+
});
|
|
2986
|
+
}
|
|
2987
|
+
const endIndex = dates.length - 1;
|
|
2988
|
+
monthHeaders.push({
|
|
2989
|
+
monthName: monthNames[month - 1],
|
|
2990
|
+
year,
|
|
2991
|
+
startIndex,
|
|
2992
|
+
endIndex,
|
|
2993
|
+
totalDays: endIndex - startIndex + 1
|
|
2994
|
+
});
|
|
2995
|
+
}
|
|
2996
|
+
}
|
|
2997
|
+
return {
|
|
2998
|
+
dates,
|
|
2999
|
+
monthHeaders
|
|
3000
|
+
};
|
|
3001
|
+
};
|
|
3002
|
+
;// ./src/components/Timeline/Timeline.js
|
|
3003
|
+
function Timeline_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3004
|
+
function Timeline_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Timeline_ownKeys(Object(t), !0).forEach(function (r) { Timeline_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Timeline_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3005
|
+
function Timeline_defineProperty(e, r, t) { return (r = Timeline_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
3006
|
+
function Timeline_toPropertyKey(t) { var i = Timeline_toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3007
|
+
function Timeline_toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
3008
|
+
|
|
3009
|
+
|
|
3010
|
+
|
|
3011
|
+
|
|
3012
|
+
|
|
3013
|
+
|
|
3014
|
+
|
|
3015
|
+
|
|
3016
|
+
|
|
3017
|
+
const Timeline_Timeline_Timeline = _ref => {
|
|
3018
|
+
let {
|
|
3019
|
+
resources,
|
|
3020
|
+
programDate = null,
|
|
3021
|
+
events = [],
|
|
3022
|
+
resourceSettings = {
|
|
3023
|
+
showIdAsName: false,
|
|
3024
|
+
isGrouped: true,
|
|
3025
|
+
isCollapsible: true
|
|
3026
|
+
},
|
|
3027
|
+
indicatorOn = false,
|
|
3028
|
+
dropInfo,
|
|
3029
|
+
setDropInfo,
|
|
3030
|
+
masterHeaderView = true,
|
|
3031
|
+
resourceHeaderContent = "Akfa Timeline",
|
|
3032
|
+
eventsDragOn = true,
|
|
3033
|
+
eventsExtendOn = true,
|
|
3034
|
+
createNewEventOn = true,
|
|
3035
|
+
onDragInfo,
|
|
3036
|
+
onExtendInfo,
|
|
3037
|
+
onCreateEventInfo,
|
|
3038
|
+
// İsteğe bağlı event tıklama callback'leri
|
|
3039
|
+
onEventClick,
|
|
3040
|
+
onEventRightClick,
|
|
3041
|
+
// Yatay scroll özelliği aç/kapa
|
|
3042
|
+
horizontalScrollOn = false,
|
|
3043
|
+
// Varsayılan false
|
|
3044
|
+
|
|
3045
|
+
dayRange = 30,
|
|
3046
|
+
setDayRange,
|
|
3047
|
+
themeType = "light",
|
|
3048
|
+
// Tema bilgisi varsayılan olarak light
|
|
3049
|
+
|
|
3050
|
+
eventTooltipOn = true,
|
|
3051
|
+
tooltipComponent: TooltipComponent,
|
|
3052
|
+
// Özelleştirilebilir Tooltip bileşeni
|
|
3053
|
+
tempEventStyle = {},
|
|
3054
|
+
eventStyleResolver = () => ({}),
|
|
3055
|
+
onToday,
|
|
3056
|
+
onAdvance,
|
|
3057
|
+
onRetreat,
|
|
3058
|
+
onMonthAdvance,
|
|
3059
|
+
onMonthRetreat
|
|
3060
|
+
} = _ref;
|
|
3061
|
+
// ---------------------------------------------------------
|
|
3062
|
+
// 1) timelineData oluştur (dates, monthHeaders vs.)
|
|
3063
|
+
// ---------------------------------------------------------
|
|
3064
|
+
const timelineData = generateTimelineData(2020, 2030); // 10 yıllık veri
|
|
3065
|
+
const {
|
|
3066
|
+
dates,
|
|
3067
|
+
monthHeaders
|
|
3068
|
+
} = timelineData;
|
|
3069
|
+
const [selectedDate, setSelectedDate] = (0,external_react_.useState)(() => {
|
|
3070
|
+
const date = programDate ? new Date(programDate) : new Date();
|
|
3071
|
+
date.setDate(date.getDate() - 3); // Program tarihinden 3 gün öncesini al
|
|
3072
|
+
return date;
|
|
3073
|
+
});
|
|
3074
|
+
|
|
3075
|
+
// ---------------------------------------------------------
|
|
3076
|
+
// 2) local state
|
|
3077
|
+
// ---------------------------------------------------------
|
|
3078
|
+
const [collapsedGroups, setCollapsedGroups] = (0,external_react_.useState)({});
|
|
3079
|
+
const [localEvents, setLocalEvents] = (0,external_react_.useState)(events);
|
|
3080
|
+
const [selectedEvent, setSelectedEvent] = (0,external_react_.useState)(null);
|
|
3081
|
+
const [tooltipPosition, setTooltipPosition] = (0,external_react_.useState)({
|
|
3082
|
+
top: 0,
|
|
3083
|
+
left: 0
|
|
3084
|
+
});
|
|
3085
|
+
|
|
3086
|
+
// dayRange = ekranda göstermeyi istediğimiz gün/hücre sayısı (ör. 30 gün)
|
|
3087
|
+
|
|
3088
|
+
const [isDarkMode, setIsDarkMode] = (0,external_react_.useState)(themeType === "dark");
|
|
3089
|
+
(0,external_react_.useEffect)(() => {
|
|
3090
|
+
if (themeType !== undefined) {
|
|
3091
|
+
setIsDarkMode(themeType === "dark");
|
|
3092
|
+
}
|
|
3093
|
+
}, [themeType]);
|
|
3094
|
+
const toggleDarkMode = () => {
|
|
3095
|
+
setIsDarkMode(prev => !prev);
|
|
3096
|
+
};
|
|
3097
|
+
// ---------------------------------------------------------
|
|
3098
|
+
// 3) Sabit hücre genişliği (örneğin 56.95 px)
|
|
3099
|
+
// Container genişliği = dayRange * cellWidth
|
|
3100
|
+
// ---------------------------------------------------------
|
|
3101
|
+
const cellWidth = 56.95; // her gün/hücre ~57 piksel
|
|
3102
|
+
const containerWidth = dayRange * cellWidth;
|
|
3103
|
+
// örneğin dayRange=30 => containerWidth=30*56.95=1708.5 px
|
|
3104
|
+
|
|
3105
|
+
// ---------------------------------------------------------
|
|
3106
|
+
// 4) Event Tooltip logic
|
|
3107
|
+
// ---------------------------------------------------------
|
|
3108
|
+
const handleEventClick = (event, e) => {
|
|
3109
|
+
// Harici onEventClick callback'i varsa, önce onu tetikleyelim
|
|
3110
|
+
if (onEventClick) {
|
|
3111
|
+
onEventClick(event, e);
|
|
3112
|
+
}
|
|
3113
|
+
// Ardından tooltip göstermek istiyorsak:
|
|
3114
|
+
const eventElement = e.currentTarget;
|
|
3115
|
+
if (eventElement) {
|
|
3116
|
+
const rect = eventElement.getBoundingClientRect();
|
|
3117
|
+
setTooltipPosition({
|
|
3118
|
+
top: rect.top + window.scrollY,
|
|
3119
|
+
left: rect.left + rect.width / 2 + window.scrollX
|
|
3120
|
+
});
|
|
3121
|
+
setSelectedEvent(event);
|
|
3122
|
+
}
|
|
3123
|
+
};
|
|
3124
|
+
const handleCloseTooltip = () => {
|
|
3125
|
+
setSelectedEvent(null);
|
|
3126
|
+
};
|
|
3127
|
+
|
|
3128
|
+
// ---------------------------------------------------------
|
|
3129
|
+
// 5) Tarih filtreleme => filteredDates
|
|
3130
|
+
// ---------------------------------------------------------
|
|
3131
|
+
const startIndex = dates.findIndex(d => d.fullDate >= selectedDate);
|
|
3132
|
+
const endIndex = startIndex + dayRange;
|
|
3133
|
+
const filteredDates = startIndex !== -1 ? dates.slice(startIndex, Math.min(endIndex, dates.length)) : [];
|
|
3134
|
+
const today = programDate ? new Date(programDate) : new Date();
|
|
3135
|
+
const todayIndex = filteredDates.findIndex(d => new Date(d.fullDate).toDateString() === today.toDateString());
|
|
3136
|
+
const totalDays = filteredDates.length;
|
|
3137
|
+
|
|
3138
|
+
// ---------------------------------------------------------
|
|
3139
|
+
// 6) Grupları aç/kapa
|
|
3140
|
+
// ---------------------------------------------------------
|
|
3141
|
+
const toggleGroupCollapse = groupName => {
|
|
3142
|
+
setCollapsedGroups(prev => Timeline_objectSpread(Timeline_objectSpread({}, prev), {}, {
|
|
3143
|
+
[groupName]: !prev[groupName]
|
|
3144
|
+
}));
|
|
3145
|
+
};
|
|
3146
|
+
|
|
3147
|
+
// ---------------------------------------------------------
|
|
3148
|
+
// 7) Navigation fonksiyonları
|
|
3149
|
+
// --------------------------------------------------------- const { dates, monthHeaders } = timelineData;
|
|
3150
|
+
|
|
3151
|
+
const handleDateChange = newDate => {
|
|
3152
|
+
setSelectedDate(new Date(newDate));
|
|
3153
|
+
};
|
|
3154
|
+
const handleToday = () => {
|
|
3155
|
+
const today = new Date();
|
|
3156
|
+
today.setDate(today.getDate() - 3); // Bugünden 3 gün öncesini ayarla
|
|
3157
|
+
setSelectedDate(today);
|
|
3158
|
+
};
|
|
3159
|
+
const handleAdvance = () => {
|
|
3160
|
+
setSelectedDate(prev => new Date(prev.getTime() + 5 * 24 * 60 * 60 * 1000));
|
|
3161
|
+
};
|
|
3162
|
+
const handleRetreat = () => {
|
|
3163
|
+
setSelectedDate(prev => new Date(prev.getTime() - 5 * 24 * 60 * 60 * 1000));
|
|
3164
|
+
};
|
|
3165
|
+
const handleMonthAdvance = () => {
|
|
3166
|
+
setSelectedDate(prev => {
|
|
3167
|
+
const newDate = new Date(prev);
|
|
3168
|
+
newDate.setMonth(newDate.getMonth() + 1);
|
|
3169
|
+
return newDate;
|
|
3170
|
+
});
|
|
3171
|
+
};
|
|
3172
|
+
const handleMonthRetreat = () => {
|
|
3173
|
+
setSelectedDate(prev => {
|
|
3174
|
+
const newDate = new Date(prev);
|
|
3175
|
+
newDate.setMonth(newDate.getMonth() - 1);
|
|
3176
|
+
return newDate;
|
|
3177
|
+
});
|
|
3178
|
+
};
|
|
3179
|
+
|
|
3180
|
+
// ---------------------------------------------------------
|
|
3181
|
+
// 8) Dark Mode
|
|
3182
|
+
// ---------------------------------------------------------
|
|
3183
|
+
|
|
3184
|
+
// ---------------------------------------------------------
|
|
3185
|
+
// 9) Ay başlıklarını filtrele
|
|
3186
|
+
// ---------------------------------------------------------
|
|
3187
|
+
const filteredMonthHeaders = monthHeaders.map(header => {
|
|
3188
|
+
const adjustedStartIndex = Math.max(header.startIndex, startIndex);
|
|
3189
|
+
const adjustedEndIndex = Math.min(header.endIndex, endIndex - 1);
|
|
3190
|
+
return Timeline_objectSpread(Timeline_objectSpread({}, header), {}, {
|
|
3191
|
+
startIndex: adjustedStartIndex,
|
|
3192
|
+
endIndex: adjustedEndIndex
|
|
3193
|
+
});
|
|
3194
|
+
}).filter(header => header.startIndex <= header.endIndex);
|
|
3195
|
+
|
|
3196
|
+
// ---------------------------------------------------------
|
|
3197
|
+
// 10) Return
|
|
3198
|
+
// ---------------------------------------------------------
|
|
3199
|
+
return /*#__PURE__*/external_react_default().createElement("div", {
|
|
3200
|
+
className: "timeline-container ".concat(isDarkMode ? "dark-mode" : "")
|
|
3201
|
+
}, masterHeaderView && /*#__PURE__*/external_react_default().createElement("div", {
|
|
3202
|
+
className: "timeline-master-header"
|
|
3203
|
+
}, /*#__PURE__*/external_react_default().createElement(Timeline_MasterHeader, {
|
|
3204
|
+
selectedDate: selectedDate // Seçili tarihi gönder
|
|
3205
|
+
,
|
|
3206
|
+
onDateSelect: handleDateChange,
|
|
3207
|
+
onToday: handleToday,
|
|
3208
|
+
onAdvance: handleAdvance,
|
|
3209
|
+
onRetreat: handleRetreat,
|
|
3210
|
+
onMonthAdvance: handleMonthAdvance,
|
|
3211
|
+
onMonthRetreat: handleMonthRetreat,
|
|
3212
|
+
dayRange: dayRange,
|
|
3213
|
+
setDayRange: setDayRange
|
|
3214
|
+
})), /*#__PURE__*/external_react_default().createElement("div", {
|
|
3215
|
+
className: "timeline-body"
|
|
3216
|
+
}, /*#__PURE__*/external_react_default().createElement("div", {
|
|
3217
|
+
className: "timeline-resources-container",
|
|
3218
|
+
style: {
|
|
3219
|
+
overflow: "hidden"
|
|
3220
|
+
}
|
|
3221
|
+
}, /*#__PURE__*/external_react_default().createElement(Timeline_ResourcesHeader, {
|
|
3222
|
+
content: resourceHeaderContent
|
|
3223
|
+
}), /*#__PURE__*/external_react_default().createElement(Timeline_Resources, {
|
|
3224
|
+
groupedResources: resources,
|
|
3225
|
+
toggleGroupCollapse: toggleGroupCollapse,
|
|
3226
|
+
collapsedGroups: collapsedGroups,
|
|
3227
|
+
resourceSettings: resourceSettings
|
|
3228
|
+
})), /*#__PURE__*/external_react_default().createElement("div", {
|
|
3229
|
+
className: "timeline-scrollable-container",
|
|
3230
|
+
style: {
|
|
3231
|
+
overflowX: horizontalScrollOn ? "auto" : "hidden"
|
|
3232
|
+
}
|
|
3233
|
+
}, /*#__PURE__*/external_react_default().createElement("div", {
|
|
3234
|
+
className: "timeline-header-content-wrapper",
|
|
3235
|
+
style: {
|
|
3236
|
+
width: horizontalScrollOn ? "".concat(containerWidth, "px") : "100%"
|
|
3237
|
+
}
|
|
3238
|
+
}, /*#__PURE__*/external_react_default().createElement(Timeline_TimelineHeader, {
|
|
3239
|
+
dates: filteredDates,
|
|
3240
|
+
monthHeaders: filteredMonthHeaders
|
|
3241
|
+
}), /*#__PURE__*/external_react_default().createElement(Timeline_TimelineContent, {
|
|
3242
|
+
groupedResources: resources,
|
|
3243
|
+
dates: filteredDates,
|
|
3244
|
+
collapsedGroups: collapsedGroups,
|
|
3245
|
+
events: localEvents,
|
|
3246
|
+
setEvents: setLocalEvents,
|
|
3247
|
+
onEventClick: onEventClick,
|
|
3248
|
+
todayIndex: filteredDates.findIndex(d => new Date(d.fullDate).toDateString() === new Date().toDateString()),
|
|
3249
|
+
indicatorOn: indicatorOn,
|
|
3250
|
+
resourceSettings: resourceSettings,
|
|
3251
|
+
toggleGroupCollapse: toggleGroupCollapse,
|
|
3252
|
+
setDropInfo: setDropInfo,
|
|
3253
|
+
eventsDragOn: eventsDragOn,
|
|
3254
|
+
eventsExtendOn: eventsExtendOn,
|
|
3255
|
+
createNewEventOn: createNewEventOn,
|
|
3256
|
+
onDragInfo: onDragInfo,
|
|
3257
|
+
onExtendInfo: onExtendInfo,
|
|
3258
|
+
onCreateEventInfo: onCreateEventInfo,
|
|
3259
|
+
onEventRightClick: onEventRightClick,
|
|
3260
|
+
eventTooltipOn: eventTooltipOn // Tooltip kontrolü
|
|
3261
|
+
,
|
|
3262
|
+
tooltipComponent: TooltipComponent // Özelleştirilebilir Tooltip bileşeni
|
|
3263
|
+
,
|
|
3264
|
+
tempEventStyle: tempEventStyle,
|
|
3265
|
+
eventStyleResolver: eventStyleResolver
|
|
3266
|
+
}), selectedEvent && /*#__PURE__*/external_react_default().createElement(Timeline_EventTooltip, {
|
|
3267
|
+
event: selectedEvent,
|
|
3268
|
+
position: tooltipPosition,
|
|
3269
|
+
onClose: handleCloseTooltip,
|
|
3270
|
+
onDelete: eventId => setLocalEvents(prev => prev.filter(e => e.id !== eventId))
|
|
3271
|
+
})))));
|
|
3272
|
+
};
|
|
3273
|
+
/* harmony default export */ const components_Timeline_Timeline = (Timeline_Timeline_Timeline);
|
|
3274
|
+
/******/ return __webpack_exports__;
|
|
3275
|
+
/******/ })()
|
|
3276
|
+
;
|
|
3277
|
+
});
|