{"version":3,"sources":["webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/components sync ^\\.\\/.*$","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///./app/javascript/controllers/canvas_controller.js","webpack:///./app/javascript/controllers/context_controller.js","webpack:///./app/javascript/controllers/dragula_controller.js","webpack:///./app/javascript/controllers/mdp_controller.js","webpack:///./app/javascript/controllers/mirror_controller.js","webpack:///./app/javascript/controllers/search_controller.js","webpack:///./app/javascript/controllers/task_controller.js","webpack:///./app/javascript/controllers/tasks_controller.js","webpack:///./app/javascript/controllers/taskz_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/components/Hello/index.jsx","webpack:///./app/javascript/components/MetricAutocomplete/index.jsx","webpack:///./app/javascript/components/NuUploader/index.js","webpack:///./app/javascript/components/TodoEditor/index.jsx","webpack:///./app/javascript/components/Uploader/index.js"],"names":["channels","require","keys","forEach","webpackEmptyContext","req","e","Error","code","resolve","module","exports","id","map","webpackContext","webpackContextResolve","__webpack_require__","o","Object","_default","_Controller","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","key","value","_this","console","log","c","bootstrap","this","element","closest","openValue","show","valueTarget","addEventListener","preventDefault","notesTarget","focus","target","selectionStart","selector","concat","metricIdValue","hiddenInput","document","querySelector","parentMetricDataPoint","targetInput","buttonTarget","length","Controller","targets","values","open","String","metricId","Number","Modal","getOrCreateInstance","getElementById","event","modal","drake","dragula","copy","moves","el","container","handle","classList","contains","querySelectorAll","containers","push","on","source","sibling","task_id","dataset","taskIdValue","date","form","requestSubmit","keysPressed","len","touchedValue","setSelectionRange","metricidValue","dateValue","currentTarget","click","myself","metricDataPoints","findSiblingElement","canvas","toggle","focusTarget","strLength","$","each","index","tabIndex","parseInt","nodeList","currentElement","direction","elementsArray","Array","from","currentIndex","indexOf","metricid","touched","onclick","style","display","inputTarget","window","Turbo","Keys","_this$element","_window$domSlider","domSlider","slideUp","slideToggle","slideDown","allTargets","nameTarget","timeTarget","bodyTarget","mdpTarget","lastTaskId","myId","selectElementContents","focused","setInterval","activeElement","slideSpeed","innerText","keyCode","which","blur","isAtTextEnd","previous","previousElementSibling","setEndOfContenteditable","parentElement","_e$currentTarget$clos","pos","getHTMLCaretPosition","prevCategory","name","_e$currentTarget$clos2","nextTaskName","nextElementSibling","nextCategory","nameHiddenTarget","bodyHiddenTarget","timeHiddenTarget","range","createRange","selectNodeContents","sel","getSelection","removeAllRanges","addRange","contentEditableElement","selection","collapse","body","createTextRange","moveToElementText","select","node","preCaretRange","tmp","textPosition","getRangeAt","cloneRange","createElement","setEnd","endContainer","endOffset","appendChild","cloneContents","innerHTML","htmlContent","textIndex","htmlIndex","insideHtml","htmlBeginChars","htmlEndChars","charAt","offset","focusOffset","modify","_regeneratorRuntime","t","r","prototype","n","hasOwnProperty","defineProperty","i","Symbol","a","iterator","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","then","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","slice","stop","rval","complete","finish","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","err","undefined","instance","Constructor","_defineProperties","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","input","hint","prim","toPrimitive","res","_toPrimitive","_setPrototypeOf","bind","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","subClass","superClass","_header_key_press","_callee","old_category","new_category","_context","tasksCategoryValue","RemoteForm","action","params","connect","submit","disconnect","_x","useMeta","category","position","x","csrf","getAttribute","left","accepts","textContent","task_bodies","taskBody","removeEventListener","headerTarget","_ondrop","item","interact","draggable","manualStart","autoScroll","onstart","dragStart","onmove","dragMove","onend","dragEnd","dropzone","accept","overlap","ondropactivate","add","ondragenter","draggableElement","relatedTarget","ondragleave","remove","ondrop","_callee2","targetCategory","sourceData","from_date","url","_context2","taskCategoryValue","_x2","ondropdeactivate","day","_ondrop2","_callee3","targetDate","taskId","_context3","_x3","dragging","base","setDragGhost","cursors","interaction","ghost","text","className","assign","append","rect","getBoundingClientRect","clientX","clientY","top","start","interactable","removeDragGhost","dx","dy","transform","options","_this$options$params","_this2","scrollTop","scrollingElement","_i","_Object$entries","entries","_ref2","_slicedToArray","turboDisabled","scrollTo","once","get","getMeta","_defineProperty","_method","csrfParamName","csrfToken","railsParams","_toConsumableArray","inputs","meta","content","_len","_key","task_ids","taskElement","addHiddenField","removeHiddenField","application","Application","context","load","definitionsFromContext","register","Hotkeys","componentRequireContext","ReactRailsUJS","useContext","Rails","ActiveStorage","Hello","_useState2","useState","count","setCount","handleKeyDown","items","React","autoFocus","onKeyDown","Fragment","onClick","defaultProps","ReactDOM","render","getSuggestions","data","inputValue","trim","toLowerCase","inputLength","filter","getSuggestionValue","suggestion","renderSuggestion","MetricAutocomplete","_React$Component","onChange","_ref","newValue","setState","onSuggestionsFetchRequested","suggestions","onSuggestionsClearRequested","state","_this$state","inputProps","placeholder","width","borderRadius","Autosuggest","Component","NuUploader","prefix","parent_id","parent","onDrop","useCallback","files","file","uploadFile","DirectUpload","blob","hiddenField","setAttribute","signed_id","_useDropzone","useDropzone","acceptedFiles","getRootProps","getInputProps","isDragActive","path","size","zIndex","backgroundColor","multiple","padding","Task","task","_task$tasks","tasks","onSubmit","onTab","onBack","_subs","subtask","marginLeft","object","alert","stopPropagation","TodoEditor","_useState4","setData","addNewTask","newTask","child","_data","pIndex","findIndex","find","splice","myIndex","_newList","_data$i","subtasks","_tasks","Uploader"],"mappings":"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","file":"js/application-359f69cc75e584fb689f.chunk.js","sourcesContent":["// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 168;","var map = {\n\t\"./Hello\": 53,\n\t\"./Hello/\": 53,\n\t\"./Hello/index\": 53,\n\t\"./Hello/index.jsx\": 53,\n\t\"./MetricAutocomplete\": 54,\n\t\"./MetricAutocomplete/\": 54,\n\t\"./MetricAutocomplete/index\": 54,\n\t\"./MetricAutocomplete/index.jsx\": 54,\n\t\"./NuUploader\": 55,\n\t\"./NuUploader/\": 55,\n\t\"./NuUploader/index\": 55,\n\t\"./NuUploader/index.js\": 55,\n\t\"./TodoEditor\": 56,\n\t\"./TodoEditor/\": 56,\n\t\"./TodoEditor/index\": 56,\n\t\"./TodoEditor/index.jsx\": 56,\n\t\"./Uploader\": 57,\n\t\"./Uploader/\": 57,\n\t\"./Uploader/index\": 57,\n\t\"./Uploader/index.js\": 57\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 170;","var map = {\n\t\"./canvas_controller.js\": 194,\n\t\"./context_controller.js\": 195,\n\t\"./dragula_controller.js\": 196,\n\t\"./mdp_controller.js\": 197,\n\t\"./mirror_controller.js\": 198,\n\t\"./search_controller.js\": 199,\n\t\"./task_controller.js\": 200,\n\t\"./tasks_controller.js\": 201,\n\t\"./taskz_controller.js\": 203\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 193;","import { Controller } from \"stimulus\";\nimport * as bootstrap from \"bootstrap\";\n\nexport default class extends Controller {\n static targets = [\"value\", \"notes\", \"button\"];\n\n static values = {\n open: String,\n metricId: Number,\n };\n\n connect() {\n console.log(\"Connected to [CanvasController]\");\n const c = new bootstrap.Offcanvas(this.element.closest(\".offcanvas\"));\n console.log(this.openValue);\n if (this.openValue !== \"false\") {\n c.show();\n }\n\n this.valueTarget.addEventListener(\"keydown\", (e) => {\n if (e.key === \"ArrowDown\") {\n // Only prevent default if actually handling the event\n e.preventDefault();\n this.notesTarget.focus();\n }\n });\n\n // Event listener for ArrowLeft at the beginning of the text field\n this.valueTarget.addEventListener(\"keydown\", (e) => {\n if (e.key === \"ArrowLeft\" && e.target.selectionStart === 0) {\n e.preventDefault();\n\n // Select the .metric_data_point with the specific hidden metric_id value\n const selector = `.metric_data_point input[type='hidden'][id='metric_id'][value='${this.metricIdValue}']`;\n const hiddenInput = document.querySelector(selector);\n\n if (hiddenInput) {\n // Navigate to the closest .metric_data_point parent and find the target input\n const parentMetricDataPoint =\n hiddenInput.closest(\".metric_data_point\");\n if (parentMetricDataPoint) {\n const targetInput = parentMetricDataPoint.querySelector(\n 'input[type=\"text\"][id=\"metric_data_point_string_value\"]'\n );\n if (targetInput) {\n targetInput.focus();\n }\n }\n }\n }\n });\n\n this.buttonTarget.addEventListener(\"keydown\", (e) => {\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n\n // Select the .metric_data_point with the specific hidden metric_id value\n const selector = `.metric_data_point input[type='hidden'][id='metric_id'][value='${this.metricIdValue}']`;\n const hiddenInput = document.querySelector(selector);\n\n if (hiddenInput) {\n // Navigate to the closest .metric_data_point parent and find the target input\n const parentMetricDataPoint =\n hiddenInput.closest(\".metric_data_point\");\n if (parentMetricDataPoint) {\n const targetInput = parentMetricDataPoint.querySelector(\n 'input[type=\"text\"][id=\"metric_data_point_string_value\"]'\n );\n if (targetInput) {\n targetInput.focus();\n }\n }\n }\n }\n });\n\n this.buttonTarget.addEventListener(\"keydown\", (e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n this.notesTarget.focus();\n }\n });\n\n this.notesTarget.addEventListener(\"keydown\", (e) => {\n if (e.key === \"ArrowUp\" && this.notesTarget.selectionStart === 0) {\n // Focus on the valueTarget if cursor is at the beginning and ArrowUp is pressed\n e.preventDefault();\n this.valueTarget.focus();\n } else if (\n e.key === \"ArrowDown\" &&\n this.notesTarget.selectionStart === this.notesTarget.value.length\n ) {\n // Focus on the buttonTarget if cursor is at the end and ArrowDown is pressed\n e.preventDefault();\n this.buttonTarget.focus();\n }\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport { Modal } from \"bootstrap\";\n\nexport default class extends Controller {\n connect() {\n console.log(`Connected to [ContextController]`, this.element);\n\n const modal = Modal.getOrCreateInstance(\n document.getElementById(\"taskModal\")\n );\n modal.show();\n }\n\n openContext(event) {\n event.preventDefault();\n\n const modal = Modal.getOrCreateInstance(\n document.getElementById(\"taskModal\")\n );\n modal.show();\n\n // Your custom logic for the openContext action\n console.log(\"openContext action triggered\", modal);\n }\n}\n","import { Controller } from \"stimulus\";\nimport Sortable from \"sortablejs\";\nimport Rails from \"@rails/ujs\";\nimport dragula from \"dragula/dist/dragula\";\n\nexport default class extends Controller {\n connect() {\n const drake = dragula({\n copy: true,\n moves: function (el, container, handle) {\n return handle.classList.contains(\"handle\");\n },\n });\n\n console.log(\"Connected to [Dragula]\");\n\n document.querySelectorAll(\".task_container\").forEach((el) => {\n drake.containers.push(el);\n });\n\n document.querySelectorAll(\".day_div\").forEach((el) => {\n drake.containers.push(el);\n });\n\n drake.on(\"drop\", (el, target, source, sibling) => {\n try {\n const task_id = el.querySelector(\".task\").dataset.taskIdValue;\n const date = target.dataset.date;\n\n const form = document.querySelector(\"#move_to_date_form\");\n form.querySelector(\"#task_id\").value = task_id;\n form.querySelector(\"#date\").value = date;\n form.requestSubmit();\n } catch (e) {\n console.log(\"Failed drop\");\n }\n });\n drake.on(\"drag\", (el, target, source, sibling) => {\n // el.innerHTML = \"[ TASK ]\";\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport * as bootstrap from \"bootstrap\";\nimport * as Turbo from \"@hotwired/turbo\";\n\nconst Keys = {\n UP: 38,\n DOWN: 40,\n ENTER: 13,\n TAB: 9,\n BACKSPACE: 8,\n RIGHT: 39,\n LEFT: 37,\n};\n\nexport default class extends Controller {\n static targets = [\"value\", \"focus\"];\n static values = {\n metricid: Number,\n date: String,\n touched: String,\n };\n\n connect() {\n this.keysPressed = {};\n\n // this.valueTarget.focus();\n const len = this.valueTarget.value.length;\n if (this.touchedValue !== \"\") {\n this.valueTarget.focus();\n this.valueTarget.setSelectionRange(len, len);\n }\n\n this.valueTarget.addEventListener(\"focus\", (e) => {\n console.log(\n \"load canvas for \" + this.metricidValue + \" and \" + this.dateValue\n );\n\n e.currentTarget.closest(\"tr\").querySelector(\"a\").click();\n // Turbo.visit(\"/users/1/calendar/5/10/2021/metrics/6\", {\n // action: \"replace\",\n // });\n });\n\n this.form = this.element.querySelector(\"form\");\n this.valueTarget.addEventListener(\"keydown\", (e) => {\n this.keysPressed[e.key] = true;\n const myself = e.target.closest(\".metric_data_point\");\n\n const metricDataPoints = document\n .getElementById(\"daily_metrics\")\n .querySelectorAll(\".metric_data_point\");\n\n if (e.key == \"ArrowUp\") {\n const prevElement = findSiblingElement(\n metricDataPoints,\n myself,\n \"previous\"\n );\n prevElement.querySelector(\"#metric_data_point_string_value\").focus();\n }\n\n if (e.key == \"ArrowDown\") {\n const prevElement = findSiblingElement(\n metricDataPoints,\n myself,\n \"next\"\n );\n prevElement.querySelector(\"#metric_data_point_string_value\").focus();\n }\n\n // zip over\n if (\n e.key === \"ArrowRight\" &&\n e.target.selectionStart == e.target.value.length\n ) {\n document.getElementById(\"metric_data_point_string_value\").focus();\n e.preventDefault();\n }\n\n // Show/hide overlay\n if (this.keysPressed[\"Shift\"] && e.key === \"Enter\") {\n e.preventDefault();\n console.log(\"OVERLAY\");\n\n const canvas = document.querySelector(\"#offcanvasRight\");\n canvas.classList.toggle(\"show\");\n\n canvas.addEventListener(\"hidden.bs.offcanvas\", () => {\n this.valueTarget.focus();\n });\n }\n });\n\n this.valueTarget.addEventListener(\"keyup\", (e) => {\n delete this.keysPressed[e.key];\n });\n\n if (this.focusTarget && this.focusTarget.value) {\n const element = this.valueTarget;\n const strLength = element.value.length * 2;\n element.focus();\n element.setSelectionRange(strLength, strLength);\n }\n\n $(\"[data-mdp-target='value']\").each((index, element) => {\n element.tabIndex = parseInt(index + 1);\n });\n }\n}\n\nfunction findSiblingElement(nodeList, currentElement, direction) {\n // Convert NodeList to Array for easier index manipulation\n let elementsArray = Array.from(nodeList);\n let currentIndex = elementsArray.indexOf(currentElement);\n\n console.log(elementsArray);\n console.log(currentIndex);\n\n if (direction === \"next\") {\n // Return next element or null if current is the last\n return currentIndex >= 0 && currentIndex < elementsArray.length - 1\n ? elementsArray[currentIndex + 1]\n : null;\n } else if (direction === \"previous\") {\n // Return previous element or null if current is the first\n return currentIndex > 0 ? elementsArray[currentIndex - 1] : null;\n } else {\n // Invalid direction\n return null;\n }\n}\n","import { Controller } from \"stimulus\";\nimport * as bootstrap from \"bootstrap\";\n\nexport default class extends Controller {\n // static values = {\n // open: String,\n // };\n connect() {\n console.log(\"Connected to [MirrorController]\");\n\n this.element.onclick = () => {\n this.toggle();\n };\n }\n\n toggle() {\n this.element.style.display =\n this.element.style.display === \"none\" ? \"block\" : \"none\";\n }\n}\n","import { Controller } from \"stimulus\";\n\nconst Keys = {\n UP: 38,\n DOWN: 40,\n ENTER: 13,\n TAB: 9,\n BACKSPACE: 8,\n RIGHT: 39,\n LEFT: 37,\n};\n\nexport default class extends Controller {\n static targets = [\"input\", \"query\", \"results\"];\n\n connect() {\n console.log(\"Connected to [SearchController]\");\n\n this.form = this.element.querySelector(\"form\");\n\n this.inputTarget.addEventListener(\"keyup\", (e) => {\n this.form.querySelector(\"#query\").value = this.inputTarget.value;\n this.form.requestSubmit();\n });\n }\n}\n","import { Controller } from \"stimulus\";\nimport { post } from \"@rails/request.js\";\nimport { Turbo } from \"@hotwired/turbo-rails\";\nwindow.Turbo = Turbo;\n\n// import { useMeta } from \"stimulus-use\";\n// import \"@interactjs/auto-start\";\n// import \"@interactjs/actions/drag\";\n// import \"@interactjs/actions/drop\";\n// import \"@interactjs/actions/resize\";\n// import \"@interactjs/modifiers\";\n// import \"@interactjs/dev-tools\";\n// import interact from \"@interactjs/interact\";\nimport Sortable from \"sortablejs\";\nimport Rails from \"@rails/ujs\";\n\nconst Keys = {\n UP: 38,\n DOWN: 40,\n ENTER: 13,\n TAB: 9,\n BACKSPACE: 8,\n RIGHT: 39,\n LEFT: 37,\n ADAM: \"wtf\",\n};\n\nexport default class extends Controller {\n static targets = [\n \"name\",\n \"nameHidden\",\n \"time\",\n \"timeHidden\",\n \"body\",\n \"bodyHidden\",\n \"mdp\",\n \"mdpHidden\",\n ];\n\n connect() {\n // useMeta(this);\n const { slideToggle, slideUp, slideDown } = window.domSlider;\n console.log(`Connected to [TaskController]`);\n\n const allTargets = [\n this.nameTarget,\n this.timeTarget,\n this.bodyTarget,\n this.mdpTarget,\n ];\n\n console.log(allTargets);\n\n this.form = this.element.querySelector(\"form.task_form\");\n const lastTaskId = document.querySelector(\"#last_created_task_id\").value;\n const myId = this.element?.dataset?.taskIdValue;\n\n // console.log(lastTaskId + \" vs \" + myId);\n if (lastTaskId === myId || parseInt(myId) > parseInt(lastTaskId)) {\n this.nameTarget.focus();\n selectElementContents(this.nameTarget);\n document.querySelector(\"#last_created_task_id\").value = \"\";\n }\n\n this.focused = [];\n\n // this.addTarget.addEventListener(\"click\", (e) => {\n // e.preventDefault();\n // const data = { a: 1 };\n // console.log(\"ADD TARGET\");\n // post(\"/users/1/tasks/\" + myId + \"/add_metric_data_point\", {\n // body: data,\n // responseKind: \"turbo-stream\",\n // });\n // });\n\n setInterval(() => {\n if (\n document.activeElement === this.nameTarget ||\n document.activeElement === this.timeTarget ||\n document.activeElement === this.bodyTarget ||\n document.activeElement === this.mdpTarget\n ) {\n slideDown({\n element: this.timeTarget,\n slideSpeed: 100,\n });\n\n slideDown({\n element: this.bodyTarget,\n slideSpeed: 100,\n });\n\n slideDown({\n element: this.mdpTarget,\n slideSpeed: 100,\n });\n } else {\n if (this.bodyTarget.innerText === \"\") {\n slideUp({\n element: this.bodyTarget,\n slideSpeed: 100,\n });\n }\n if (this.timeTarget.innerText === \"\") {\n slideUp({\n element: this.timeTarget,\n slideSpeed: 100,\n });\n }\n\n if (this.mdpTarget.innerText === \"Add Metric\") {\n slideUp({\n element: this.mdpTarget,\n slideSpeed: 100,\n });\n }\n }\n }, 100);\n\n [this.nameTarget, this.timeTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.ENTER) {\n e.preventDefault();\n this.form.requestSubmit();\n e.currentTarget.blur();\n }\n });\n });\n\n [this.nameTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.TAB || (key === Keys.RIGHT && isAtTextEnd())) {\n e.preventDefault();\n this.timeTarget.focus();\n selectElementContents(this.timeTarget);\n }\n });\n });\n\n [this.nameTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.BACKSPACE && e.currentTarget.innerText === \"\") {\n // select previous\n e.preventDefault();\n const previous = e.currentTarget\n .closest(\"turbo-frame\")\n .previousElementSibling.querySelector(\".task_name\");\n\n setEndOfContenteditable(previous);\n previous.focus();\n\n e.currentTarget.parentElement.parentElement.parentElement.parentElement\n .querySelector(\".delete_form\")\n .requestSubmit();\n }\n });\n });\n\n [this.nameTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.UP) {\n const pos = getHTMLCaretPosition(e.currentTarget);\n const previous = e.currentTarget\n .closest(\"turbo-frame\")\n ?.previousElementSibling?.querySelector(\".task_body\");\n\n const prevCategory =\n e.currentTarget.closest(\".tasks\").parentElement\n .previousElementSibling;\n\n console.log(pos);\n if (pos === 0 && previous) {\n e.preventDefault();\n\n setEndOfContenteditable(previous);\n previous.focus();\n } else if (pos === 0 && prevCategory) {\n prevCategory.querySelector(\".task_name\").focus();\n }\n }\n });\n });\n\n [this.nameTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.DOWN) {\n e.preventDefault();\n const body = e.currentTarget\n .closest(\"turbo-frame\")\n .querySelector(\".task_body\");\n\n body.focus();\n }\n });\n });\n\n [this.bodyTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.UP) {\n const pos = getHTMLCaretPosition(e.currentTarget);\n if (pos === 0) {\n e.preventDefault();\n const name = e.currentTarget\n .closest(\"turbo-frame\")\n .querySelector(\".task_name\");\n\n setEndOfContenteditable(name);\n name.focus();\n }\n }\n });\n });\n\n [this.bodyTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.DOWN) {\n const pos = getHTMLCaretPosition(e.currentTarget);\n if (isAtTextEnd) {\n const nextTaskName = e.currentTarget\n .closest(\"turbo-frame\")\n ?.nextElementSibling?.querySelector(\".task_name\");\n const nextCategory =\n e.currentTarget.closest(\".tasks\").parentElement\n .nextElementSibling;\n\n e.preventDefault();\n\n if (nextTaskName) {\n setEndOfContenteditable(nextTaskName);\n nextTaskName.focus();\n } else if (nextCategory) {\n nextCategory.querySelector(\".task_name\").focus();\n }\n }\n }\n });\n });\n\n [this.timeTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n if (key === Keys.TAB || key === Keys.DOWN) {\n e.preventDefault();\n this.bodyTarget.focus();\n selectElementContents(this.bodyTarget);\n }\n });\n });\n\n [this.timeTarget].forEach((target) => {\n target.addEventListener(\"keydown\", (e) => {\n var key = e.keyCode || e.which;\n const pos = getHTMLCaretPosition(e.currentTarget);\n\n if (pos === 0 && key === Keys.LEFT) {\n e.preventDefault();\n this.nameTarget.focus();\n setEndOfContenteditable(this.nameTarget);\n }\n });\n });\n\n allTargets.forEach((target) => {\n target.addEventListener(\"blur\", (e) => {\n this.nameHiddenTarget.value = this.nameTarget.innerText;\n this.bodyHiddenTarget.value = this.bodyTarget.innerText;\n this.timeHiddenTarget.value = this.timeTarget.innerText;\n\n this.form.requestSubmit();\n });\n });\n // Sortable.create(document.querySelector(\"#tasks_Personal_tasks_container\"), {\n // group: \"foo\",\n // animation: 100,\n // handle: \".handle\"\n // });\n }\n}\n\nfunction selectElementContents(el) {\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\nfunction setEndOfContenteditable(contentEditableElement) {\n var range, selection;\n if (document.createRange) {\n //Firefox, Chrome, Opera, Safari, IE 9+\n range = document.createRange(); //Create a range (a range is a like the selection but invisible)\n range.selectNodeContents(contentEditableElement); //Select the entire contents of the element with the range\n range.collapse(false); //collapse the range to the end point. false means collapse to end rather than the start\n selection = window.getSelection(); //get the selection object (allows you to change selection)\n selection.removeAllRanges(); //remove any selections already made\n selection.addRange(range); //make the range you have just created the visible selection\n } else if (document.selection) {\n //IE 8 and lower\n range = document.body.createTextRange(); //Create a range (a range is a like the selection but invisible)\n range.moveToElementText(contentEditableElement); //Select the entire contents of the element with the range\n range.collapse(false); //collapse the range to the end point. false means collapse to end rather than the start\n range.select(); //Select the range (make it the visible selection\n }\n}\n\n//\n// ================================================================\n//\n\n// class RemoteForm {\n// constructor(options) {\n// this.options = options;\n// this.options.params = this.options.params ?? {};\n//\n// this.element = document.createElement(\"form\");\n// this.element.action = this.action;\n// this.element.method = this.method;\n// this.element.target = this.target;\n// this.element.style.display = \"none\";\n// }\n//\n// // Actions\n//\n// connect() {\n// document.body.appendChild(this.element);\n// }\n//\n// disconnect() {\n// this.element.remove();\n// }\n//\n// submit() {\n// const scrollTop = document.scrollingElement.scrollTop;\n//\n// this.reset();\n//\n// for (const [key, value] of Object.entries(this.params)) {\n// this.append(key, value);\n// }\n//\n// return new Promise((resolve) => {\n// this.element.requestSubmit();\n//\n// if (this.turboDisabled) {\n// return resolve();\n// }\n//\n// this.element.addEventListener(\n// \"turbo:submit-end\",\n// () => {\n// document.scrollingElement.scrollTo(0, scrollTop);\n// resolve();\n// },\n// { once: true }\n// );\n// });\n// }\n//\n// set(name, value) {\n// this.options.params[name] = value;\n// return this;\n// }\n//\n// // Private\n//\n// get turboDisabled() {\n// return this.element.closest(\"[data-turbo=false]\") !== null;\n// }\n//\n// get action() {\n// return this.options.action;\n// }\n//\n// get method() {\n// return this.options.method === \"get\" ? \"get\" : \"post\";\n// }\n//\n// get target() {\n// return this.options.target;\n// }\n//\n// get csrfParamName() {\n// return getMeta(\"csrf-param\");\n// }\n//\n// get csrfToken() {\n// return getMeta(\"csrf-token\");\n// }\n//\n// get railsParams() {\n// if (this.options.method === \"get\") {\n// return {};\n// } else {\n// return {\n// _method: this.options.method,\n// [this.csrfParamName]: this.csrfToken,\n// };\n// }\n// }\n//\n// get params() {\n// return Object.assign({}, this.railsParams, this.options.params);\n// }\n//\n// get inputs() {\n// return [...this.element.querySelectorAll(\"input[type=hidden]\")];\n// }\n//\n// reset() {\n// this.inputs.forEach((input) => input.remove());\n// }\n//\n// append(name, value) {\n// const input = document.createElement(\"input\");\n//\n// input.type = \"hidden\";\n// input.name = name;\n// input.value = value;\n//\n// this.element.appendChild(input);\n// }\n// }\n//\n// function getMeta(name) {\n// const meta = document.querySelector(`meta[name=${name}]`);\n// return meta && meta.content;\n// }\n//\n// function reduceToParams(elements) {\n// return elements.reduce(\n// (hash, node) => Object.assign(hash, { [node.name]: node.value }),\n// {}\n// );\n// }\n//\n// function stopEverything(e) {\n// e.preventDefault();\n// e.stopPropagation();\n// e.stopImmediatePropagation();\n// }\n\nfunction getCaretPosition(node) {\n var range = window.getSelection().getRangeAt(0),\n preCaretRange = range.cloneRange(),\n caretPosition,\n tmp = document.createElement(\"div\");\n\n preCaretRange.selectNodeContents(node);\n preCaretRange.setEnd(range.endContainer, range.endOffset);\n tmp.appendChild(preCaretRange.cloneContents());\n caretPosition = tmp.innerHTML.length;\n return caretPosition;\n}\n\nfunction getHTMLCaretPosition(element) {\n var textPosition = getCaretPosition(element),\n htmlContent = element.innerHTML,\n textIndex = 0,\n htmlIndex = 0,\n insideHtml = false,\n htmlBeginChars = [\"&\", \"<\"],\n htmlEndChars = [\";\", \">\"];\n\n if (textPosition == 0) {\n return 0;\n }\n\n while (textIndex < textPosition) {\n htmlIndex++;\n\n // check if next character is html and if it is, iterate with htmlIndex to the next non-html character\n while (htmlBeginChars.indexOf(htmlContent.charAt(htmlIndex)) > -1) {\n // console.log('encountered HTML');\n // now iterate to the ending char\n insideHtml = true;\n\n while (insideHtml) {\n if (htmlEndChars.indexOf(htmlContent.charAt(htmlIndex)) > -1) {\n if (htmlContent.charAt(htmlIndex) == \";\") {\n htmlIndex--; // entity is char itself\n }\n // console.log('encountered end of HTML');\n insideHtml = false;\n }\n htmlIndex++;\n }\n }\n textIndex++;\n }\n\n //console.log(htmlIndex);\n //console.log(textPosition);\n // in htmlIndex is caret position inside html\n return htmlIndex;\n}\n\nfunction isAtTextEnd() {\n var sel = window.getSelection(),\n offset = sel.focusOffset;\n sel.modify(\"move\", \"forward\", \"character\");\n if (offset == sel.focusOffset) return true;\n else {\n sel.modify(\"move\", \"backward\", \"character\");\n return false;\n }\n}\n","import { Controller } from \"stimulus\";\nimport { useMeta } from \"stimulus-use\";\nimport \"@interactjs/auto-start\";\nimport \"@interactjs/actions/drag\";\nimport \"@interactjs/actions/drop\";\nimport \"@interactjs/actions/resize\";\nimport \"@interactjs/modifiers\";\nimport \"@interactjs/dev-tools\";\nimport interact from \"@interactjs/interact\";\nimport Rails from \"@rails/ujs\";\nimport Sortable from \"sortablejs\";\nimport dragula from \"dragula/dist/dragula\";\n\nexport default class extends Controller {\n static targets = [\"header\"];\n static values = {\n date: String,\n category: String,\n };\n\n change_header(event) {\n console.log(event);\n }\n\n async header_key_press(event) {\n console.log(\"KEY PRESS\");\n if (event.which === 13) {\n event.preventDefault();\n\n const date = this.dateValue;\n const old_category = event.target.dataset.tasksCategoryValue;\n const new_category = event.target.innerText;\n\n const url =\n \"/users/1/tasks/update_category?date=\" +\n date +\n \"&old_category=\" +\n old_category +\n \"&new_category=\" +\n new_category;\n\n // window.getSelection().removeAllRanges();\n const form = new RemoteForm({\n action: url,\n method: \"post\",\n target: \"dunno:\",\n params: \"\",\n });\n form.connect();\n await form.submit();\n form.disconnect();\n }\n }\n\n connect() {\n useMeta(this);\n this.category = this.element.querySelector(\"h5\");\n this.position = { x: 0, y: 0 };\n\n this.csrf = document\n .querySelector(\"meta[name='csrf-token']\")\n .getAttribute(\"content\");\n\n // ------------\n const left = \"#tasks_Personal_tasks_container\";\n const right = \"#tasks_Personal_tasks_container\";\n\n dragula([document.getElementById(left), document.getElementById(right)], {\n copy: function (el, source) {\n return source === document.getElementById(left);\n },\n accepts: function (el, target) {\n return target !== document.getElementById(left);\n },\n });\n\n console.log(dragula);\n\n // -------------\n\n console.log(\n `Connected to [TasksController] for ${this.category.textContent}`\n );\n\n const method = (e) => {\n const form = this.element.querySelector(\"form\");\n const key = e.keyCode || e.which;\n if (key === 9) {\n // debugger; NO\n e.preventDefault();\n form.requestSubmit();\n // const task_bodies = this.element.querySelectorAll(\".task_body\");\n // const last = task_bodies[task_bodies.length - 1];\n }\n };\n\n //debugger;\n\n setInterval(() => {\n const task_bodies = this.element.querySelectorAll(\".task_body\");\n task_bodies.forEach((taskBody, index) => {\n taskBody.removeEventListener(\"keydown\", method, true);\n\n if (index === task_bodies.length - 1) {\n taskBody.addEventListener(\"keydown\", method, true);\n }\n });\n }, 100);\n // debugger;\n\n // this.headerTarget.on(\"change\", () => {\n // alert(1);\n // });\n\n console.log(this.headerTarget);\n\n const position = { x: 0, y: 0 };\n\n const items = this.element.querySelectorAll(\"li\");\n items.forEach((item) => {\n interact(item).draggable({\n manualStart: false,\n autoScroll: { container: this.element },\n onstart: (e) => {\n this.dragStart(e);\n },\n onmove: (e) => {\n this.dragMove(e);\n },\n onend: (e) => {\n this.dragEnd(e);\n },\n });\n });\n\n interact(this.element).dropzone({\n // only accept elements matching this CSS selector\n accept: \".drop_image\",\n // Require a 75% element overlap for a drop to be possible\n overlap: 0.75,\n\n // listen for drop related events:\n\n ondropactivate: function (event) {\n // add active dropzone feedback\n // console.log(\"drop activate\");\n event.target.classList.add(\"drop-active\");\n },\n ondragenter: function (event) {\n console.log(\"drag enter\");\n\n var draggableElement = event.relatedTarget;\n var dropzoneElement = event.target;\n\n // feedback the possibility of a drop\n dropzoneElement.classList.toggle(\"drop-target\");\n draggableElement.classList.add(\"can-drop\");\n //draggableElement.textContent = \"Dragged in\";\n },\n ondragleave: function (event) {\n // console.log(\"drag leave\");\n\n // remove the drop feedback style\n event.target.classList.remove(\"drop-target\");\n event.relatedTarget.classList.remove(\"can-drop\");\n //event.relatedTarget.textContent = \"Dragged out\";\n },\n ondrop: async function (event) {\n const targetCategory = event.target.querySelector(\"h5\").textContent;\n const sourceData = event.relatedTarget.dataset;\n\n console.log(\n \"Move \" +\n sourceData.taskIdValue +\n \" from \" +\n sourceData.taskCategoryValue +\n \" to \" +\n targetCategory\n );\n\n const csrf = document\n .querySelector(\"meta[name='csrf-token']\")\n .getAttribute(\"content\");\n\n const from_date =\n document.querySelector(\".calendar_date\").dataset.dateValue;\n const url =\n \"/users/1/tasks/\" +\n sourceData.taskIdValue +\n \"/move_to_category?target_category=\" +\n targetCategory +\n \"&from_date=\" +\n from_date;\n\n const form = new RemoteForm({\n action: url,\n method: \"post\",\n target: \"dunno:\",\n params: \"\",\n });\n\n console.log(form);\n form.connect();\n\n await form.submit();\n // this.dispatch(\"success\");\n form.disconnect();\n },\n ondropdeactivate: function (event) {\n // console.log(\"drop deactivate\");\n\n // remove active dropzone feedback\n event.target.classList.remove(\"drop-active\");\n event.target.classList.remove(\"drop-target\");\n },\n });\n\n document.querySelectorAll(\".day\").forEach((day) => {\n interact(day).dropzone({\n // only accept elements matching this CSS selector\n accept: \".drop_image\",\n // Require a 75% element overlap for a drop to be possible\n overlap: 0.1,\n\n // listen for drop related events:\n\n ondropactivate: function (event) {},\n ondragenter: function (event) {},\n ondragleave: function (event) {},\n ondrop: async function (event) {\n const targetDate =\n event.target.querySelector(\".day-drop\").dataset.dateValue;\n const taskId = event.relatedTarget.dataset.taskIdValue;\n const from_date =\n document.querySelector(\".calendar_date\").dataset.dateValue;\n\n const csrf = document\n .querySelector(\"meta[name='csrf-token']\")\n .getAttribute(\"content\");\n\n const url =\n \"/users/1/tasks/\" +\n taskId +\n \"/move_to_date_drag_drop?target_date=\" +\n targetDate +\n \"&from_date=\" +\n from_date;\n\n const form = new RemoteForm({\n action: url,\n method: \"post\",\n target: \"dunno:\",\n params: \"\",\n });\n\n console.log(form);\n form.connect();\n\n await form.submit();\n // this.dispatch(\"success\");\n form.disconnect();\n\n console.log(\"DROPPED INTO DAY\");\n },\n ondropdeactivate: function (event) {},\n });\n });\n }\n\n dragStart(event) {\n if (this.dragging) {\n return false;\n }\n this.dragging = true;\n const base = event.target;\n this.setDragGhost(event, base);\n }\n\n setDragGhost(event, base) {\n const cursors = this.element.querySelector(\".cursors\");\n const interaction = event.interaction;\n const ghost = document.createElement(\"div\");\n const text = base.querySelector(\".task_name_link\").innerText;\n ghost.className = \"drop_image\";\n ghost.innerHTML = text;\n Object.assign(ghost.dataset, base.dataset);\n cursors.append(ghost);\n const rect = base.getBoundingClientRect();\n this.position = {\n x: event.clientX - rect.left,\n y: event.clientY - rect.top,\n };\n\n interaction.start({ name: \"drag\" }, event.interactable, ghost);\n }\n\n removeDragGhost() {\n const cursors = this.element.querySelector(\".cursors\");\n cursors.innerHTML = \"\";\n // cursors.style.top = \"0px\";\n // cursors.style.left = \"-5000px\";\n // cursors.style.zIndex = 0;\n }\n\n dragEnd(event) {\n this.position = { x: 0, y: 0 };\n this.removeDragGhost();\n this.dragging = false;\n }\n\n dragMove(event) {\n const cursors = this.element.querySelector(\".cursors\");\n\n this.position.x += event.dx;\n this.position.y += event.dy;\n\n // // set position\n // cursors.style.top = this.position.x + \"px\";\n // cursors.style.left = this.position.y + \"px\";\n // cursors.style.zIndex = 999999;\n //\n // position.x += event.dx;\n // position.y += event.dy;\n\n cursors.style.transform = `translate(${this.position.x}px, ${this.position.y}px)`;\n }\n}\n\nclass RemoteForm {\n constructor(options) {\n this.options = options;\n this.options.params = this.options.params ?? {};\n\n this.element = document.createElement(\"form\");\n this.element.action = this.action;\n this.element.method = this.method;\n this.element.target = this.target;\n this.element.style.display = \"none\";\n }\n\n // Actions\n\n connect() {\n document.body.appendChild(this.element);\n }\n\n disconnect() {\n this.element.remove();\n }\n\n submit() {\n const scrollTop = document.scrollingElement.scrollTop;\n\n this.reset();\n\n for (const [key, value] of Object.entries(this.params)) {\n this.append(key, value);\n }\n\n return new Promise((resolve) => {\n this.element.requestSubmit();\n\n if (this.turboDisabled) {\n return resolve();\n }\n\n this.element.addEventListener(\n \"turbo:submit-end\",\n () => {\n document.scrollingElement.scrollTo(0, scrollTop);\n resolve();\n },\n { once: true }\n );\n });\n }\n\n set(name, value) {\n this.options.params[name] = value;\n return this;\n }\n\n // Private\n\n get turboDisabled() {\n return this.element.closest(\"[data-turbo=false]\") !== null;\n }\n\n get action() {\n return this.options.action;\n }\n\n get method() {\n return this.options.method === \"get\" ? \"get\" : \"post\";\n }\n\n get target() {\n return this.options.target;\n }\n\n get csrfParamName() {\n return getMeta(\"csrf-param\");\n }\n\n get csrfToken() {\n return getMeta(\"csrf-token\");\n }\n\n get railsParams() {\n if (this.options.method === \"get\") {\n return {};\n } else {\n return {\n _method: this.options.method,\n [this.csrfParamName]: this.csrfToken,\n };\n }\n }\n\n get params() {\n return Object.assign({}, this.railsParams, this.options.params);\n }\n\n get inputs() {\n return [...this.element.querySelectorAll(\"input[type=hidden]\")];\n }\n\n reset() {\n this.inputs.forEach((input) => input.remove());\n }\n\n append(name, value) {\n const input = document.createElement(\"input\");\n\n input.type = \"hidden\";\n input.name = name;\n input.value = value;\n\n this.element.appendChild(input);\n }\n}\n\nfunction getMeta(name) {\n const meta = document.querySelector(`meta[name=${name}]`);\n return meta && meta.content;\n}\n\nfunction reduceToParams(elements) {\n return elements.reduce(\n (hash, node) => Object.assign(hash, { [node.name]: node.value }),\n {}\n );\n}\n\nfunction stopEverything(e) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n}\n","import { Controller } from \"stimulus\";\nimport { Modal } from \"bootstrap\";\n\nexport default class extends Controller {\n task_ids = [];\n\n connect() {\n console.log(`Connected to [TaskzController]`, this.element);\n }\n\n selectTask(event) {\n const element = event.currentTarget;\n const taskId = element.getAttribute(\"data-task_id\");\n\n // Find the nearest ancestor with the class .task\n const taskElement = element.closest(\".task\");\n\n // Toggle class on the ancestor\n if (taskElement) {\n taskElement.classList.toggle(\"task-selected\");\n }\n\n // Toggle class to visually show selection on the current element\n element.classList.toggle(\"task_selected\");\n\n if (element.classList.contains(\"task_selected\")) {\n this.addHiddenField(taskId);\n } else {\n this.removeHiddenField(taskId);\n }\n }\n\n addHiddenField(taskId) {\n const form = document.getElementById(\"bulk-form\");\n const input = document.createElement(\"input\");\n input.type = \"hidden\";\n input.name = \"task_ids[]\";\n input.value = taskId;\n form.appendChild(input);\n }\n\n removeHiddenField(taskId) {\n const form = document.getElementById(\"bulk-form\");\n const hiddenInputs = form.querySelectorAll(\n `input[name=\"task_ids[]\"][value=\"${taskId}\"]`\n );\n hiddenInputs.forEach((input) => input.remove());\n }\n}\n","// Load all the controllers within this directory and all subdirectories.\n// Controller files must be named *_controller.js.\n\nimport { Application } from \"stimulus\";\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\";\nimport Hotkeys from \"stimulus-hotkeys\";\n\nconst application = Application.start();\nconst context = require.context(\"controllers\", true, /_controller\\.js$/);\napplication.load(definitionsFromContext(context));\napplication.register(\"hotkeys\", Hotkeys);\n","import Rails from \"@rails/ujs\";\n\nimport Autocomplete from \"react-autocomplete\";\nimport { Turbo, cable } from \"@hotwired/turbo-rails\";\nimport * as ActiveStorage from \"@rails/activestorage\";\nimport \"channels\";\nimport \"@fortawesome/fontawesome-free/css/all\";\nimport dragula from \"dragula/dist/dragula\";\n\n// import { Draggable } from \"@shopify/draggable\";\n\n// --\n// REACT\n// --\nconst componentRequireContext = require.context(\"components\", true);\nimport ReactRailsUJS from \"react_ujs\";\nReactRailsUJS.useContext(componentRequireContext);\n\nRails.start();\nActiveStorage.start();\n\nrequire(\"bootstrap\");\n\nimport \"controllers\";\n\n// const draggable = new Draggable.Draggable(document.querySelectorAll(\".tasks\"), {\n// draggable: \".task\",\n// });\n//\n// draggable.on(\"drag:start\", () => console.log(\"drag:start\"));\n// draggable.on(\"drag:move\", () => console.log(\"drag:move\"));\n// draggable.on(\"drag:stop\", () => console.log(\"drag:stop\"));\n","// Run this example by adding <%= javascript_pack_tag 'hello_react' %> to the head of your layout file,\n// like app/views/layouts/application.html.erb. All it does is render
Hello React
at the bottom\n// of the page.\n\nimport React, { useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\n\nconst Hello = (props) => {\n const [count, setCount] = useState(1);\n\n const handleKeyDown = (event) => {\n if (event.key === \"Enter\") {\n setCount(count + 1);\n }\n };\n\n const items = [];\n\n for (let i = 0; i < count; i++) {\n items.push(\n
\n \n \n
\n );\n }\n\n return (\n <>\n {\n // alert(\"ADAM 123\");\n }}\n >\n Hello {props.name} ADAM xxx thats faster!!!\n
\n
{count}
\n {items}\n
\n \n \n );\n};\n\nHello.defaultProps = {\n name: \"David\",\n};\n\nHello.propTypes = {\n name: PropTypes.string,\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n ReactDOM.render(\n ,\n document.body.appendChild(document.createElement(\"div\"))\n );\n});\n\nexport default Hello;\n","// Run this example by adding <%= javascript_pack_tag 'hello_react' %> to the head of your layout file,\n// like app/views/layouts/application.html.erb. All it does is render
Hello React
at the bottom\n// of the page.\n\nimport React, { useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\n\nimport Autosuggest from \"react-autosuggest\";\n\n// Teach Autosuggest how to calculate suggestions for any given input value.\nconst getSuggestions = (data, value) => {\n const inputValue = value.trim().toLowerCase();\n const inputLength = inputValue.length;\n\n return inputLength === 0\n ? []\n : data.filter((d) => {\n console.log(d);\n return d.name.toLowerCase().slice(0, inputLength) === inputValue;\n });\n};\n\n// When suggestion is clicked, Autosuggest needs to populate the input\n// based on the clicked suggestion. Teach Autosuggest how to calculate the\n// input value for every given suggestion.\nconst getSuggestionValue = (suggestion) => suggestion.data;\n\n// Use your imagination to render suggestions.\nconst renderSuggestion = (suggestion) =>
{suggestion.data}
;\n\nclass MetricAutocomplete extends React.Component {\n constructor(props) {\n super();\n\n console.log(props);\n\n // Autosuggest is a controlled component.\n // This means that you need to provide an input value\n // and an onChange handler that updates this value (see below).\n // Suggestions also need to be provided to the Autosuggest,\n // and they are initially empty because the Autosuggest is closed.\n this.state = {\n value: \"\",\n data: props.data,\n suggestions: [],\n };\n }\n\n onChange = (event, { newValue }) => {\n this.setState({\n value: newValue,\n });\n };\n\n // Autosuggest will call this function every time you need to update suggestions.\n // You already implemented this logic above, so just use it.\n onSuggestionsFetchRequested = ({ value }) => {\n this.setState({\n suggestions: getSuggestions(this.props.data, value),\n });\n };\n\n // Autosuggest will call this function every time you need to clear suggestions.\n onSuggestionsClearRequested = () => {\n this.setState({\n suggestions: [],\n });\n };\n\n render() {\n const { value, suggestions } = this.state;\n\n // Autosuggest will pass through all these props to the input.\n const inputProps = {\n name: \"data\",\n placeholder: \"Type metric\",\n value,\n onChange: this.onChange,\n style: { width: \"100px\", borderRadius: \"8px\" },\n };\n\n // Finally, render it!\n return (\n \n );\n }\n}\n\nexport default MetricAutocomplete;\n","import React, { useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useDropzone } from \"react-dropzone\";\nimport { DirectUpload } from \"@rails/activestorage\";\n\nconst NuUploader = ({ prefix, parent_id }) => {\n const parent = document.querySelector(`#${parent_id}`);\n\n const onDrop = useCallback((files) => {\n Array.from(files).forEach((file) => uploadFile(file));\n }, []);\n\n const uploadFile = (file) => {\n const url = \"/rails/active_storage/direct_uploads\";\n const upload = new DirectUpload(file, url);\n\n upload.create((error, blob) => {\n if (error) {\n console.log(error);\n } else {\n const hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"value\", blob.signed_id);\n hiddenField.name = `${prefix}[attachments][]`; // input.name;\n parent.appendChild(hiddenField);\n console.log(hiddenField);\n }\n });\n };\n\n const {\n acceptedFiles,\n getRootProps,\n getInputProps,\n isDragActive,\n } = useDropzone({ onDrop });\n\n const files = acceptedFiles.map((file) => (\n
  • \n {file.path} - {file.size} bytes\n
  • \n ));\n //\n // document.querySelector(\"#btn_upload_attachments\").style.display =\n // acceptedFiles.length === 0 ? \"none\" : \"block\";\n\n return (\n \n
    \n \n {isDragActive ? (\n

    Drop the files here ...

    \n ) : (\n

    Drag 'n' drop some files here, or click to select files

    \n )}\n
    \n {files.length > 0 && (\n
    \n \n
    \n )}\n \n );\n};\n\nNuUploader.propTypes = {};\nNuUploader.defaultProps = {};\n\nexport default NuUploader;\n","// Run this example by adding <%= javascript_pack_tag 'hello_react' %> to the head of your layout file,\n// like app/views/layouts/application.html.erb. All it does is render
    Hello React
    at the bottom\n// of the page.\n\nimport React, { useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\n\n// https://stackoverflow.com/questions/46003422/how-to-render-react-component-into-itself-in-a-recursive-way\n\nconst Task = (task) => {\n const { id, name, tasks = [], onSubmit, onTab, onBack } = task;\n\n const handleKeyDown = (event) => {\n if (event.key === \"Enter\") {\n onSubmit();\n } else if (event.key === \"Tab\") {\n event.preventDefault();\n onTab(task);\n } else if (event.key === \"Backspace\") {\n event.preventDefault();\n event.stopPropagation();\n onBack();\n }\n };\n\n const onChange = () => {};\n const _subs = [];\n tasks.forEach((subtask, i) => {\n _subs.push(\n
    \n {\n alert(\"sub add\");\n }}\n tasks={[]}\n parent={task}\n onTab={() => {}}\n onBack={() => onBack(subtask, task)}\n />\n
    \n );\n });\n\n return (\n
    \n \n \n \n {id} / {tasks?.length || 0}\n \n\n {_subs}\n
    \n );\n};\n\nconst TodoEditor = (props) => {\n const [count, setCount] = useState(1);\n\n const [data, setData] = useState([\n { id: 1, name: \"Something here #1\" },\n { id: 2, name: \"Something here #2\" },\n {\n id: 3,\n name: \"Something here #3\",\n tasks: [\n {\n id: \"3a\",\n name: \"Subtask #1\",\n },\n {\n id: \"4a\",\n name: \"Subtask #2\",\n },\n ],\n },\n { id: 5, name: \"Something here #5\" },\n ]);\n\n const addNewTask = () => {\n const newTask = { id: data.length + 1, name: \"\" };\n setData([...data, newTask]);\n };\n\n const items = [];\n\n const onBack = (child, parent, self) => {\n if (parent) {\n //const myIndex = parent.tasks.findIndex((t) => t.id === child.id);\n // remove me from parent tasks\n // let _newList = parent.tasks.filter((item) => item !== child);\n\n const _data = data;\n\n //console.log(_data[2]);\n\n //_data[2].tasks = [];\n //console.log(_data[2]);\n\n const pIndex = _data.findIndex((t) => t.id === parent.id);\n const p = _data.find((t) => t.id === parent.id);\n const c = p.tasks.find((t) => t.id === child.id);\n // alert(p);\n p.tasks = p.tasks.filter((t) => t.id !== child.id);\n\n _data.splice(pIndex + 1, 0, c);\n\n //parent.tasks = [];\n\n //_data.updated = new Date();\n // parent.tasks = _newList;\n // alert(_data);\n setData([..._data]);\n }\n };\n\n const onTab = (task) => {\n if (!task.parent) {\n // let _tasks = data;\n // const self = task;\n // const parent = self.parent;\n //\n // alert(self.id);\n // alert(parent.id);\n\n // alert(task);\n\n console.log(data);\n console.log(\"----\");\n console.log(task.object);\n\n const myIndex = data.findIndex((t) => t.id === task.id);\n\n const child = data[myIndex];\n const parent = data[myIndex - 1];\n\n if (parent) {\n const _newList = data.filter((item) => item !== child);\n\n if (!parent.tasks) {\n parent.tasks = [];\n console.log(\"CREATED PARENT TASK ARRAY\");\n } else {\n console.log(\"PARENT ALREADY HAD CHILDREN\");\n console.log(parent.tasks);\n }\n parent.tasks.push(child);\n\n setData(_newList);\n }\n\n //alert(prevIndex);\n\n // const _newList = _tasks.filter((item) => item !== child);\n //\n // parent.tasks = [child];\n //\n // setData(_newList);\n }\n };\n\n for (let i = 0; i < data.length; i++) {\n const task = data[i];\n\n const subtasks = data[i]?.tasks;\n\n items.push(\n \n );\n }\n\n return (\n <>\n {\n let _tasks = data;\n const child = data[1];\n const parent = data[0];\n\n const _newList = _tasks.filter((item) => item !== child);\n\n // if (!parent.tasks) {\n // parent.tasks = [];\n // }\n parent.tasks = [child];\n\n setData(_newList);\n }}\n >\n REARRANGE SUBTASK\n \n\n
    {items}
    \n \n );\n};\n\nTodoEditor.defaultProps = {\n name: \"David\",\n};\n\nTodoEditor.propTypes = {\n name: PropTypes.string,\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n ReactDOM.render(\n ,\n document.body.appendChild(document.createElement(\"div\"))\n );\n});\n\nexport default TodoEditor;\n","import React, { useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useDropzone } from \"react-dropzone\";\nimport { DirectUpload } from \"@rails/activestorage\";\n\nconst Uploader = () => {\n const input = document.querySelector(\"input[type=file]\");\n\n const onDrop = useCallback((files) => {\n // Do something with the files\n Array.from(files).forEach((file) => uploadFile(file));\n }, []);\n\n const uploadFile = (file) => {\n // your form needs the file_field direct_upload: true, which\n // provides data-direct-upload-url\n const url = \"/rails/active_storage/direct_uploads\"; // /attachments\"; //input.dataset.directUploadUrl;\n const upload = new DirectUpload(file, url);\n\n upload.create((error, blob) => {\n if (error) {\n // Handle the error\n console.log(error);\n } else {\n // Add an appropriately-named hidden input to the form with a\n // value of blob.signed_id so that the blob ids will be\n // transmitted in the normal upload flow\n const hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"value\", blob.signed_id);\n hiddenField.name = \"attachments[]\"; // input.name;\n document.querySelector(\"#rx\").appendChild(hiddenField);\n console.log(hiddenField);\n }\n });\n };\n\n const {\n acceptedFiles,\n getRootProps,\n getInputProps,\n isDragActive,\n } = useDropzone({ onDrop });\n\n const files = acceptedFiles.map((file) => (\n
  • \n {file.path} - {file.size} bytes\n
  • \n ));\n\n document.querySelector(\"#btn_upload_attachments\").style.display =\n acceptedFiles.length === 0 ? \"none\" : \"block\";\n\n return (\n \n
    \n \n {isDragActive ? (\n

    Drop the files here ...

    \n ) : (\n

    Drag 'n' drop some files here, or click to select files

    \n )}\n
    \n {files.length > 0 && (\n
    \n \n
    \n )}\n \n );\n};\n\nUploader.propTypes = {};\nUploader.defaultProps = {};\n\nexport default Uploader;\n"],"sourceRoot":""}