{"version":3,"file":"js/176-81a845e7786dc20ebc43.js","mappings":"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","sources":["webpack:///../components/burger/component_controller.js","webpack:///../components/accordion/component_controller.js","webpack:///../components/OQORO/form/file_field/component_controller.js","webpack:///../components/form/range/component_controller.js","webpack:///../components/tab/component_controller.js","webpack:///./controllers/admin/applications_controller.js","webpack:///../components/form/min_max_input/component_controller.js","webpack:///../components/omnibar/component_controller.js","webpack:///../components/MBA/gallery/component_controller.js","webpack:///./controllers/admin/interventions/form_controller.js","webpack:///../components/sidebar/component_controller.js","webpack:///./controllers/admin/keynest_collection_codes/form_controller.js","webpack:///../components/map_autocomplete/component_controller.js","webpack:///../components/scroller/component_controller.js","webpack:///../components/slideshow/component_controller.js","webpack:///../components/form/collection_select/component_controller.js","webpack:///../components/concerns/dialog_confirmable_controller.js","webpack:///../components/slider/component_controller.js","webpack:///../components/lightbox/component_controller.js","webpack:///./controllers/admin/city_managers_cities_controller.js","webpack:///../components/form/iban_input/component_controller.js","webpack:///../components/datagrid/component_controller.js","webpack:///../components/form/counter_field/component_controller.js","webpack:///../components/datatable/component_controller.js","webpack:///../components/admin_sidebar/component_controller.js","webpack:///../components/form/collection_check_buttons/component_controller.js","webpack:///../components/form/code_field/component_controller.js","webpack:///../components/card/component_controller.js","webpack:///./controllers/admin/addendums/clauses_form_controller.js","webpack:///./controllers/admin/inventories/form_controller.js","webpack:///./controllers/admin/keysets/form_controller.js","webpack:///./controllers/admin/tasks/form_controller.js","webpack:///../components/map/component_controller.js","webpack:///../components/OQORO/panel/component_controller.js","webpack:///../components/ sync ^.*(_controller%7Ccomponent)\\.js$","webpack:///./controllers/admin/properties/form_controller.js","webpack:///../components/clipboard/component_controller.js","webpack:///./controllers/admin/inventories/trame_controller.js","webpack:///../components/OQORO/autocomplete/component_controller.js","webpack:///../components/alert/component_controller.js","webpack:///./controllers/admin/index.js","webpack:///../components/form/phone_field/component_controller.js","webpack:///../../node_modules/moment/locale/ sync ^\\.\\/.*$","webpack:///./controllers/admin/ sync \\.js$","webpack:///./controllers/admin/calendar_event_actions_controller.js","webpack:///../components/form/fields_for/component_controller.js","webpack:///../components/agenda/component_controller.js","webpack:///../components/form/select_input/component_controller.js","webpack:///../components/form/component_controller.js","webpack:///../components/navbar/component_controller.js","webpack:///../components/MBA/form/file_field/component_controller.js","webpack:///../components/notification/component_controller.js","webpack:///../components/modal/component_controller.js","webpack:///./controllers/admin/properties/import_multiple_docs_controller.js","webpack:///../components/MBA/modal/component_controller.js","webpack:///../components/form/multiselect/component_controller.js","webpack:///../components/slide_over/component_controller.js","webpack:///../components/dropzone/component_controller.js","webpack:///../components/popover/component_controller.js","webpack:///./controllers/admin/properties/store_association_controller.js","webpack:///./controllers/admin/supervisor/city_managers/form_controller.js","webpack:///../components/form/event_field/component_controller.js","webpack:///../components/OQORO/drawer/component_controller.js","webpack:///../components/form/file_field/component_controller.js","webpack:///../components/MBA/form/toggle_field/component_controller.js","webpack:///../components/form/toggle_field/component_controller.js","webpack:///./controllers/admin/properties/photo_organizer_controller.js","webpack:///./controllers/admin/business_partners_controller.js","webpack:///../components/form/address_field/component_controller.js","webpack:///./controllers/admin/addendums/new_with_expenses_controller.js","webpack:///../components/admin/color_input/component_controller.js","webpack:///../components/read_more/component_controller.js","webpack:///./controllers/admin/zen_ticketings/form_controller.js","webpack:///./controllers/admin/leases/form_controller.js","webpack:///./controllers/admin/omnibar_controller.js","webpack:///./controllers/admin/tasks/datagrid_controller.js","webpack:///../components/dropdown/component_controller.js","webpack:///../components/OQORO/inputs/checkbox_button/component_controller.js","webpack:///../components/form/text_area/component_controller.js","webpack:///../components/admin/ sync ^.*(_controller%7Ccomponent)\\.js$","webpack:///../components/form/iban_field/component_controller.js","webpack:///../components/OQORO/tab/component_controller.js","webpack:///../components/MBA/tab/component_controller.js","webpack:///../components/form/number_input/component_controller.js","webpack:///./controllers/admin/lots/form_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"menu\", \"toggleMenuBtn\", \"appBody\"];\n static values = { name: String, open: Boolean };\n isBurgerMenuOpen = false;\n\n initialize() {\n this.preventScroll = this.preventScroll.bind(this);\n this.toggleMenu = this.toggleMenu.bind(this);\n }\n\n preventScroll = (e) => {\n e.preventDefault();\n };\n\n connect() {\n this.updateBurgerMenu();\n window.addEventListener(\"resize\", (window.onWindowResize = this.updateBurgerMenu.bind(this)));\n\n this.menuTarget.addEventListener(\"touchmove\", this.preventScroll);\n this.toggleMenuBtnTarget.addEventListener(\"click\", this.toggleMenu);\n this.bindTogglers();\n if (this.hasOpenValue && this.openValue) {\n this.toggleMenu();\n }\n }\n\n disconnect() {\n window.removeEventListener(\"resize\", window.onWindowResize);\n this.menuTarget.removeEventListener(\"touchmove\", this.preventScroll);\n this.unbindTogglers();\n }\n\n bindTogglers() {\n if (!this.nameValue) return;\n document.querySelectorAll(`[data-burger=${this.nameValue}]`).forEach((elem) => {\n elem.addEventListener(\"click\", this.toggleMenu);\n });\n }\n\n unbindTogglers() {\n if (!this.nameValue) return;\n document.querySelectorAll(`[data-burger=${this.nameValue}]`).forEach((elem) => {\n elem.removeEventListener(\"click\", this.toggleMenu);\n });\n }\n\n /* Burger Menu */\n toggleMenu(event) {\n if (event) event.preventDefault();\n this.menuTarget.classList.toggle(\"open\");\n this.isBurgerMenuOpen = !this.isBurgerMenuOpen;\n\n this.updateBurgerMenu();\n }\n\n close() {\n this.menuTarget.classList.remove(\"open\");\n this.isBurgerMenuOpen = false;\n window.scrollTo(0, 0);\n\n // Check if all modals are closed to re-enable body scroll\n const hasBurgersOpen = document.querySelectorAll(\".burger-menu.open\").length > 0;\n if (!hasBurgersOpen) {\n document.querySelector(\"body\").classList.remove(\"overflow-hidden\");\n document.querySelector(\".app-body\").classList.remove(\"overflow-hidden\");\n }\n }\n\n closeAll() {\n this.isBurgerMenuOpen = false;\n document.querySelectorAll(\".burger-menu.open\").forEach((e) => e.classList.remove(\"open\"));\n document.querySelector(\"body\").classList.remove(\"overflow-hidden\");\n document.querySelector(\".app-body\").classList.remove(\"overflow-hidden\");\n }\n updateBurgerMenu() {\n if (this.isBurgerMenuOpen) {\n document.querySelector(\"body\").classList.add(\"overflow-hidden\");\n document.querySelector(\".app-body\").classList.add(\"overflow-hidden\");\n } else {\n document.querySelector(\"body\").classList.remove(\"overflow-hidden\");\n document.querySelector(\".app-body\").classList.remove(\"overflow-hidden\");\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"toggler\", \"panel\"];\n static values = {name: String, scrollDownOnOpen: Boolean, initiallyOpen: Boolean};\n\n isOpen = false;\n\n initialize() {\n this.open = this.open.bind(this);\n this.toggle = this.toggle.bind(this);\n }\n\n connect() {\n this.bindTogglers();\n if (this.initiallyOpenValue) {\n this.open();\n }\n }\n\n bindTogglers() {\n if (!this.nameValue) return;\n document.querySelectorAll(`[data-accordion=\"${this.nameValue}\"]`).forEach(\n (elem) => {\n // const scrollTo = elem.dataset.modalScrollToId;\n elem.addEventListener(\n \"click\",\n this.toggle\n );\n }\n );\n }\n\n toggle(e) {\n if (e.target instanceof HTMLAnchorElement) {\n return;\n }\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n return this.isOpen ? this.close() : this.open();\n }\n\n open() {\n this.element.classList.add(\"open\");\n this.panelTarget.classList.add(\"open\");\n this.panelTarget.style.removeProperty(\"maxHeight\");\n this.isOpen = true;\n\n if (this.scrollDownOnOpenValue) {\n setTimeout(() => {\n window.scrollTo({top: document.body.scrollHeight, behavior: \"smooth\"});\n }, 300);\n }\n setTimeout(() => {\n this.panelTarget.style.overflow = \"visible\"\n }, 300);\n }\n\n close() {\n this.panelTarget.style.removeProperty(\"overflow\")\n this.element.classList.remove(\"open\");\n this.panelTarget.classList.remove(\"open\");\n this.panelTarget.style.maxHeight = null;\n this.isOpen = false;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"input\", \"button\"];\n static values = { filesList: String };\n\n filesList = null;\n form = null;\n\n files = [];\n\n initialize() {\n this.filesList = document.querySelector(`#${this.filesListValue}`);\n this.onInputChange = this.onInputChange.bind(this);\n this.clearFileInputValue = this.clearFileInputValue.bind(this);\n this.openDialog = this.openDialog.bind(this);\n this.form = this.element.closest(\"form\");\n }\n\n connect() {\n this.inputTarget.addEventListener(\"change\", this.onInputChange);\n this.form.addEventListener(\"reset\", this.clearFileInputValue);\n this.buttonTarget.addEventListener(\"click\", this.openDialog);\n }\n\n disconnect() {\n this.inputTarget.removeEventListener(\"change\", this.onInputChange);\n this.form.removeEventListener(\"reset\", this.clearFileInputValue);\n this.buttonTarget.removeEventListener(\"click\", this.openDialog);\n }\n\n openDialog(e) {\n e.preventDefault();\n e.stopPropagation();\n this.inputTarget.click();\n }\n\n clearFileInputValue() {\n this.inputTarget.value = null;\n this.files = [];\n this.updateFilePreview();\n }\n\n onInputChange(e) {\n e.stopPropagation();\n e.preventDefault();\n\n const fileList = this.inputTarget.files;\n this.files = this.files.concat(Array.from(fileList));\n this.updateFileInputValue();\n }\n\n updateFileInputValue() {\n var b = new DataTransfer();\n for (var i = 0, len = this.files.length; i < len; i++) b.items.add(this.files[i]);\n this.inputTarget.files = b.files;\n const fileList = this.inputTarget.files;\n this.updateFilePreview();\n }\n\n updateFilePreview() {\n this.filesList.innerHTML = \"\";\n\n this.files.forEach((file) => {\n let preview = document.createElement(\"div\");\n preview.classList.add(\"file-preview\");\n\n let mainContainer = document.createElement(\"div\");\n mainContainer.classList.add(\"main-container\");\n\n let fileName = document.createElement(\"span\");\n fileName.classList.add(\"file-name\");\n fileName.innerHTML = file.name;\n mainContainer.append(fileName);\n\n let confirmation = document.createElement(\"div\");\n confirmation.classList.add(\"confirmation\");\n confirmation.innerHTML =\n '\" +\n 'Pièce jointe téléchargée';\n mainContainer.append(confirmation);\n\n let docIcon = document.createElement(\"div\");\n docIcon.classList.add(\"doc-icon\");\n docIcon.innerHTML =\n '\";\n\n let deleteBtn = document.createElement(\"div\");\n deleteBtn.classList.add(\"delete-btn\");\n deleteBtn.innerHTML =\n '\";\n deleteBtn.addEventListener(\n \"click\",\n ((e) => {\n this.deleteFile(file);\n }).bind(this)\n );\n preview.append(docIcon);\n preview.append(mainContainer);\n preview.append(deleteBtn);\n this.filesList.append(preview);\n });\n }\n\n deleteFile(file) {\n let index = this.files.indexOf(file);\n if (index !== -1) {\n this.files.splice(index, 1);\n }\n this.updateFileInputValue();\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"fromInput\", \"toInput\"];\n static values = {min: Number, max: Number}\n\n changeFrom() {\n if (parseInt(this.fromInputTarget.value) > parseInt(this.toInputTarget.value)) {\n this.toInputTarget.value = this.fromInputTarget.value;\n this.changeTo();\n }\n if (this.hasMinValue && (parseInt(this.fromInputTarget.value) < this.minValue))\n this.fromInputTarget.value = this.minValue;\n if (this.hasMaxValue && (parseInt(this.fromInputTarget.value) > this.maxValue))\n this.fromInputTarget.value = this.maxValue;\n }\n\n changeTo() {\n if (parseInt(this.toInputTarget.value) < parseInt(this.fromInputTarget.value)) {\n this.fromInputTarget.value = this.toInputTarget.value;\n this.changeFrom();\n }\n if (this.hasMinValue && (parseInt(this.toInputTarget.value) < this.minValue))\n this.toInputTarget.value = this.minValue;\n if (this.hasMaxValue && (parseInt(this.toInputTarget.value) > this.maxValue))\n this.toInputTarget.value = this.maxValue;\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"tab\", \"panel\"]\n static values = {name: String}\n\n initialize() {\n this.element[this.identifier] = this;\n }\n\n connect() {\n this.initDisplay();\n this.dispatch(\"connected\", {bubbles: true});\n }\n\n initDisplay() {\n let activeTab = null\n // If active tab set in url, open tab\n const url = new URL(window.location)\n const tabName = url.searchParams.get(`tab-${this.nameValue}`)\n if (tabName) {\n activeTab = this.tabTargets.find(t => t.dataset.name == tabName)\n }\n // Else fallback to tab set with active true by default in html\n if (!activeTab)\n activeTab = this.tabTargets.find(t => t.classList.contains(\"active\"));\n // Else fallback to first tab\n if (!activeTab)\n activeTab = this.tabTargets[0];\n this.displayTab(activeTab);\n }\n\n selectTab(e) {\n const tab = e.currentTarget;\n if (tab.classList.contains(\"disabled\"))\n return false;\n this.displayTab(tab);\n }\n\n selectTabByName(tabName) {\n const tab = this.element.querySelector(`.tab[data-name=\"${tabName}\"]`);\n if (!tab || tab.classList.contains(\"disabled\"))\n return false;\n this.displayTab(tab);\n }\n\n displayTab(activeTab) {\n const tab = activeTab.dataset.name;\n this.tabTargets.filter(t => t.classList.contains(\"active\")).forEach(t => t.classList.remove(\"active\"));\n activeTab.classList.add(\"active\");\n const activePanel = this.panelTargets.find(p => p.dataset.tab == tab);\n this.panelTargets.forEach(p => p.classList.add(\"hidden\"));\n if (activePanel)\n activePanel.classList.remove(\"hidden\");\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [\"tenantAdminCommentInput\", \"landlordCommentInput\"]\n\n connect() {\n }\n generateLandlordComment() {\n let text = \"Bonjour,\\n\"\n this.tenantAdminCommentInputTargets.forEach(input => {\n text += input.value\n text += \"\\n\"\n })\n text += \"Qu'en pensez-vous ?\\n\"\n this.landlordCommentInputTarget.value = text\n }\n\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"inputMin\", \"inputMax\"]\n static values = {min: Number, max: Number}\n\n connect() {\n this.inputMinTarget.addEventListener(\"input\", ((e) => {\n this.onInput(e)\n this.onInputMin()\n }).bind(this))\n this.inputMinTarget.addEventListener(\"change\", (() => {\n this.onChangeMin()\n }).bind(this))\n this.inputMaxTarget.addEventListener(\"input\", ((e) => {\n this.onInput(e)\n }).bind(this))\n this.inputMaxTarget.addEventListener(\"change\", (() => {\n this.onChangeMax()\n }).bind(this))\n }\n\n onInput(e) {\n const val = e.currentTarget.value\n e.currentTarget.value = val.replace(/[^0-9]/g, '')\n }\n\n onInputMin() {\n const valMin = parseInt(this.inputMinTarget.value)\n const valMax = parseInt(this.inputMaxTarget.value)\n if (valMin > valMax) {\n this.inputMaxTarget.value = valMin\n this.onChangeMax()\n }\n }\n\n onInputMax() {\n const valMin = parseInt(this.inputMinTarget.value)\n const valMax = parseInt(this.inputMaxTarget.value)\n if (valMin > valMax) {\n this.inputMinTarget.value = valMax\n this.onChangeMin()\n }\n }\n\n onChangeMin() {\n const valMin = parseInt(this.inputMinTarget.value)\n const valMax = parseInt(this.inputMaxTarget.value)\n if (valMin > this.maxValue) {\n this.inputMinTarget.value = this.maxValue\n this.onInputMin()\n } else if (valMin < this.minValue) {\n this.inputMinTarget.value = this.minValue\n this.onInputMin()\n }\n }\n\n onChangeMax() {\n const valMin = parseInt(this.inputMinTarget.value)\n const valMax = parseInt(this.inputMaxTarget.value)\n if (valMin > valMax) {\n this.inputMinTarget.value = valMax\n this.onChangeMin()\n }\n if (valMax > this.maxValue) {\n this.inputMaxTarget.value = this.maxValue\n this.onInputMax()\n } else if (valMax < this.minValue) {\n this.inputMaxTarget.value = this.minValue\n this.onInputMax()\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"searchForm\",\n \"searchInput\",\n \"resultsList\",\n ];\n\n static values = {\n searchUrl: String,\n };\n\n #selectedResult = null;\n #selectedResultIndex = null;\n\n initialize() {\n this.onInputKeyDown = this.onInputKeyDown.bind(this);\n }\n\n connect() {\n this.searchInputTarget.addEventListener(\"keydown\", this.onInputKeyDown);\n }\n\n disconnect() {\n this.searchInputTarget.removeEventListener(\"keydown\", this.onInputKeyDown);\n }\n\n instantSearch() {\n this.searchFormTarget.requestSubmit();\n }\n\n onInputKeyDown(e) {\n const {key} = e;\n if (key == \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n if (this.#selectedResult) {\n this.#selectedResult.click();\n }\n }\n if (key == \"ArrowDown\") {\n this.selectNextResult(e);\n }\n if (key == \"ArrowUp\") {\n this.selectPrevResult(e);\n }\n }\n\n getNextResult() {\n\n }\n\n selectPrevResult(e) {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n if (!this.hasResultsListTarget) {\n return;\n }\n const results = this.resultsListTarget.querySelectorAll('.result');\n if (!results.length) {\n return;\n }\n if (!this.#selectedResult) {\n this.#selectedResultIndex = results.length - 1;\n this.#selectedResult = results[this.#selectedResultIndex];\n } else {\n this.#selectedResultIndex = this.#selectedResultIndex > 0 ? this.#selectedResultIndex - 1 : results.length - 1;\n this.#selectedResult = results[this.#selectedResultIndex];\n }\n if (this.#selectedResult) {\n results.forEach(r => {\n r.classList.remove(\"selected\");\n });\n this.#selectedResult.classList.add(\"selected\");\n }\n }\n\n selectNextResult(e) {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n if (!this.hasResultsListTarget) {\n return;\n }\n const results = this.resultsListTarget.querySelectorAll('.result');\n if (!results.length) {\n return;\n }\n if (!this.#selectedResult) {\n this.#selectedResultIndex = 0;\n this.#selectedResult = results[this.#selectedResultIndex];\n } else {\n this.#selectedResultIndex = this.#selectedResultIndex < results.length - 1 ? this.#selectedResultIndex + 1 : 0;\n this.#selectedResult = results[this.#selectedResultIndex];\n }\n if (this.#selectedResult) {\n results.forEach(r => {\n r.classList.remove(\"selected\");\n });\n this.#selectedResult.classList.add(\"selected\");\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"previewImg\", \"previewIframe\", \"currentIndex\", \"btnPrev\", \"btnNext\"];\n\n _files = [];\n _currentIndex = 0;\n _modalController = null;\n handleShortKeys = this.handleShortKeys.bind(this);\n touchStart = this.touchStart.bind(this);\n touchEnd = this.touchEnd.bind(this);\n touchstartX = 0;\n touchendX = 0;\n\n initialize() {\n this._modalController = this.element.closest(\"[data-controller*='MBA--modal--component']\")[\"MBA--modal--component\"];\n }\n\n connect() {\n // Load Files\n this._files = JSON.parse(this.element.dataset.files);\n\n const togglers = document.querySelectorAll(`[data-gallery=\"${this.element.id}\"][data-toggle=\"gallery\"]`);\n for (let i = 0; i < togglers.length; i++) {\n const toggler = togglers[i];\n const fileId = toggler.dataset.fileId;\n toggler.addEventListener(\"click\", (e) => {\n this.open(e, fileId);\n });\n }\n }\n\n checkDirection(e) {\n if (this.touchendX < this.touchstartX)\n this.next(e);\n if (this.touchendX > this.touchstartX)\n this.prev(e);\n }\n\n displayFile(e, fileId = null) {\n if (e && !fileId) {\n fileId = e.currentTarget.dataset.fileId;\n }\n const file = this._files.find((f) => f.id == fileId) || this._files[0];\n\n if (!file) return false;\n\n // Check file type\n let type = null;\n if (file.content_type.substr(0, 6) == \"image/\") type = \"image\";\n else if (file.content_type == \"application/pdf\") type = \"pdf\";\n else if (file.content_type == \"vr\") type = \"vr\";\n\n this.previewImgTarget.style.display = \"none\";\n this.previewIframeTarget.style.display = \"none\";\n\n this.previewImgTarget.src = \"\";\n this.previewIframeTarget.src = \"\";\n\n switch (type) {\n case \"image\":\n this.previewImgTarget.src = file.url;\n this.previewImgTarget.style.display = \"flex\";\n break;\n case \"pdf\":\n case \"vr\":\n this.previewIframeTarget.src = file.url;\n this.previewIframeTarget.style.display = \"flex\";\n break;\n }\n\n this._currentIndex = this._files.findIndex((f) => f.id == fileId);\n this.currentIndexTarget.innerText = this._currentIndex + 1;\n\n if (this._currentIndex >= this._files.length - 1) {\n this.btnNextTargets.forEach((t) => {\n t.setAttribute(\"disabled\", true);\n });\n } else {\n this.btnNextTargets.forEach((t) => {\n t.removeAttribute(\"disabled\");\n });\n }\n\n if (this._currentIndex <= 0) {\n this.btnPrevTargets.forEach((t) => {\n t.setAttribute(\"disabled\", true);\n });\n } else {\n this.btnPrevTargets.forEach((t) => {\n t.removeAttribute(\"disabled\", true);\n });\n }\n }\n\n prev(e) {\n e.stopPropagation();\n if (this._currentIndex <= 0) return false;\n this.displayFile(null, this._files[this._currentIndex - 1].id);\n }\n\n next(e) {\n e.stopPropagation();\n if (this._currentIndex >= this._files.length - 1) return false;\n this.displayFile(null, this._files[this._currentIndex + 1].id);\n }\n\n handleShortKeys(event) {\n switch (event.key) {\n case \"ArrowLeft\":\n this.prev(event);\n break;\n case \"ArrowRight\":\n this.next(event);\n break;\n }\n return;\n }\n\n touchStart(e) {\n this.touchstartX = e.changedTouches[0].screenX\n }\n\n touchEnd(e) {\n this.touchendX = e.changedTouches[0].screenX\n this.checkDirection(e)\n }\n\n open(e = null, fileId = null) {\n if (e) e.preventDefault();\n if (this._modalController) {\n this._modalController.open();\n }\n // Open specific file when opening gallery\n this.displayFile(null, fileId);\n window.addEventListener(\"keydown\", this.handleShortKeys);\n document.addEventListener('touchstart', this.touchStart);\n document.addEventListener('touchend', this.touchEnd);\n }\n\n close(e = null) {\n const isOpen = !!this.element.closest(\".modal__panel.open\")\n if (!isOpen)\n return\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n if (this._modalController) {\n this._modalController.close()\n }\n window.removeEventListener(\"keydown\", this.handleShortKeys);\n document.removeEventListener(\"touchstart\", this.touchStart);\n document.removeEventListener(\"touchend\", this.touchEnd);\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = []\n\n connect() {\n setTimeout(() => {\n this.updatePrestations()\n }, 10)\n }\n\n async updatePrestations() {\n let totalQuantity = 0\n let totalExtraCost = 0\n let totalDuration = 0\n let forfaitCost = 0\n let forfaitTravelExpense = 0\n\n const prestationForfait = this.element.querySelector(\".oq-form-group.prestation_forfait_id .oq-select\")[\"form--collection-select--component\"]\n const prestationForfaitId = prestationForfait?.value\n if (prestationForfaitId) {\n const data = await fetch(`/oqoro_admin/prestation_forfaits/${prestationForfaitId}`, {\n method: 'GET',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n },\n }).then(response => response.json())\n .then(data => {\n return data\n })\n forfaitCost = 1 * data.cost\n forfaitTravelExpense = 1 * data.travel_expense\n }\n const blocPrestations = this.element.querySelector(\".oq-form-group.intervention_prestations\")\n const groups = blocPrestations.querySelectorAll(\".nested-form-container\")\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i]\n let quantity = group.querySelector(\"input[name$='[quantity]']\").value\n quantity = (!isNaN(quantity) && quantity ? parseInt(quantity) : 0)\n totalQuantity += quantity\n const prestation = group.querySelector(\".oq-select\")[\"form--collection-select--component\"]\n const prestationId = prestation?.value\n if (prestationId) {\n const data = await fetch(`/oqoro_admin/prestations/${prestationId}`, {\n method: 'GET',\n headers: {\n \"Content-Type\": \"application/json\",\n \"Accept\": \"application/json\"\n },\n }).then(response => response.json())\n .then(data => {\n return data\n })\n totalDuration += (data.duration * quantity)\n totalExtraCost += (data.supply_cost * quantity)\n }\n }\n const label = blocPrestations.querySelector(\"&> label\")\n label.innerHTML = `Prestations (${totalQuantity})
- Durée estimée : ${totalDuration} min
- Coût extra fournitures : ${totalExtraCost} € TTC
- Forfait HT: ${forfaitCost} € (+ frais déplacement: ${forfaitTravelExpense} €)`\n }\n}","import { Controller } from \"@hotwired/stimulus\";\nimport Cookies from \"js-cookie\";\nexport default class extends Controller {\n\n initialize() {\n this.toggle = this.toggle.bind(this)\n }\n\n connect() {\n this.bindTogglers();\n const isOpen = this.element.classList.contains(\"open\") ? \"open\" : \"closed\"\n if (Cookies.get('admin-sidebar') != isOpen)\n this.toggle()\n }\n\n toggle(e) {\n if (e)\n e.preventDefault();\n this.element.classList.toggle(\"open\")\n const isOpen = this.element.classList.contains(\"open\") ? \"open\" : \"closed\"\n Cookies.set('admin-sidebar', isOpen, { sameSite: 'strict' })\n }\n\n bindTogglers() {\n document.querySelectorAll(`[data-toggle=\"sidebar\"]`).forEach(\n ((elem) => {\n elem.addEventListener(\n \"click\", this.toggle\n );\n })\n );\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"ownerInput\", \"ownerInputGroup\", \"ownerTypeInput\"]\n static values = {ownerUrls: Object}\n\n #ownerTypeController\n #ownerController\n connect() {\n }\n updateInputs() {\n if (this.ownerTypeValue) {\n this.ownerInputGroupTarget.classList.remove(\"hidden\")\n this.updateownerUrl()\n } else {\n this.ownerInputGroupTarget.classList.add(\"hidden\")\n this.ownerController?.clearValue()\n }\n }\n updateownerUrl() {\n if (!this.ownerController)\n return\n\n // On met a jour l url ajax si changement de type de responsable\n const url = this.ownerUrlsValue[this.ownerTypeValue]\n if (url != this.ownerController.ajaxUrl) {\n this.ownerController.clearValue()\n this.ownerController.setAjaxUrl(url)\n }\n }\n get ownerTypeValue() {\n this.#ownerTypeController ||= this.ownerTypeInputTarget[\"form--collection-select--component\"]\n return this.#ownerTypeController?.value\n }\n get ownerController() {\n this.#ownerController ||= this.ownerInputTarget[\"form--collection-select--component\"]\n return this.#ownerController\n }\n}","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"map\",\n \"autocompleteInput\",\n \"autocompleteList\",\n \"addressInput\",\n \"addressInputWrapper\",\n \"postcodeInput\",\n \"postcodeWrapper\",\n \"cityInput\",\n \"citySelectInput\",\n \"citySelectWrapper\",\n \"countryInput\",\n \"countrySelectInput\",\n \"countrySelectWrapper\",\n \"latInput\",\n \"lngInput\",\n \"bboxInput\",\n \"centerInput\",\n \"citySlugInput\",\n \"manualAddressTrigger\",\n \"selectAddressTrigger\",\n \"manuallySearchedInput\",\n ];\n\n static values = {\n location: String,\n queryTypes: Array,\n mapboxToken: String,\n mapContainerId: String,\n submitOnSelect: Boolean,\n searchApiUrl: String,\n searchInDatabase: Boolean,\n countriesScope: String,\n displayMap: Boolean,\n initialCenter: Array,\n editingViaManualSearch: Boolean,\n };\n\n mapboxgl = null;\n navKeys = [\"Enter\", \"ArrowUp\", \"ArrowDown\"];\n currentActiveElement = -1;\n address = null;\n _dropdownController = null;\n _form = null;\n inputTimer = null;\n\n initialize() {\n this._initialValue = this.hasAutocompleteInputTarget && this.autocompleteInputTarget.value;\n this.onInputEvent = this.onInputEvent.bind(this);\n this.onKeydownEvent = this.onKeydownEvent.bind(this);\n this.onClickEvent = this.onClickEvent.bind(this);\n this.onFormSubmit = this.onFormSubmit.bind(this);\n }\n\n connect() {\n import(\"!mapbox-gl\").then(\n ((mapboxgl) => {\n this.mapboxgl = mapboxgl.default;\n this.init();\n }).bind(this)\n );\n\n if (this.hasAutocompleteInputTarget) {\n this.autocompleteInputTarget.addEventListener(\"input\", this.onInputEvent);\n this.autocompleteInputTarget.addEventListener(\"keydown\", this.onKeydownEvent);\n this.autocompleteInputTarget.addEventListener(\"click\", this.onClickEvent);\n let dropdown = this.element.querySelector(\".dropdown__menu\")\n dropdown.style.top = `${this.autocompleteInputTarget.offsetHeight}px`;\n }\n\n this._form = this.element.closest(\"form\");\n if (this._form) this._form.addEventListener(\"submit\", this.onFormSubmit);\n\n this.initInputs();\n }\n\n disconnect() {\n this._form.removeEventListener(\"submit\", this.onFormSubmit);\n this.autocompleteInputTarget.removeEventListener(\"input\", this.onInputEvent);\n this.autocompleteInputTarget.removeEventListener(\"keydown\", this.onKeydownEvent);\n this.autocompleteInputTarget.removeEventListener(\"click\", this.onClickEvent);\n }\n\n init() {\n if (this.hasMapTarget && this.displayMapValue == true) {\n // Generate uniq container id\n this.mapTarget.id = this.mapContainerIdValue;\n this.mapboxgl.accessToken = this.mapboxTokenValue;\n this._map = new this.mapboxgl.Map({\n container: this.mapContainerIdValue,\n style: \"mapbox://styles/mapbox/streets-v11\",\n center: this.hasInitialCenterValue ? this.initialCenterValue : [2.2508, 47.1539],\n zoom: this.hasInitialCenterValue ? 13 : 4,\n });\n\n this._map.on(\n \"load\",\n (() => {\n this.resizeMap();\n const mapMarker = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n mapMarker.setAttribute(\"width\", \"48\");\n mapMarker.setAttribute(\"height\", \"48\");\n mapMarker.setAttribute(\"viewBox\", \"0 0 47.409 56\");\n mapMarker.innerHTML =\n '';\n this._marker = new this.mapboxgl.Marker({\n element: mapMarker,\n })\n .setLngLat([2.2508, 47.1539])\n .addTo(this._map);\n this._marker.getElement().style.visibility = \"hidden\";\n\n if (this.locationValue) {\n this.search(this.locationValue).then(\n ((results) => {\n if (results.length) this.selectResult(results[0]);\n }).bind(this)\n );\n }\n }).bind(this)\n );\n }\n if (this._initialValue) {\n // Initialize hidden fields if autocomplete is populated\n this.search(this._initialValue).then(\n ((results) => {\n if (results?.length && !this.autocompleteInputTarget.value.length) this.selectResult(results[0]);\n }).bind(this)\n );\n }\n }\n\n initInputs() {\n if (this.autocompleteInputTarget.dataset.editingViaManualSearch == false) {\n this.postcodeInputTarget.type = 'hidden'\n this.addressInputTarget.type = 'hidden'\n }\n }\n\n selectManualAddress() {\n // Display and reset manual address fields\n this.citySelectWrapperTarget.classList.remove(\"hidden\");\n this.countrySelectWrapperTarget.classList.remove(\"hidden\");\n this.postcodeWrapperTarget.classList.remove(\"hidden\");\n this.addressInputWrapperTarget.classList.remove(\"hidden\");\n this.selectAddressTriggerTarget.classList.remove(\"hidden\");\n this.postcodeInputTarget.type = 'text';\n this.addressInputTarget.type = 'text';\n\n // Hide and reset autocomplete address fields\n this.autocompleteInputTarget.value = null;\n this.autocompleteInputTarget.disabled = true;\n this.cityInputTarget.value = null;\n this.countryInputTarget.value = null;\n this.postcodeInputTarget.value = null;\n this.citySelectInputTarget[\"form--collection-select--component\"].clearValue();\n this.countrySelectInputTarget[\"form--collection-select--component\"].clearValue();\n if (!this.autocompleteInputTarget.classList.contains(\"hidden\")) {\n this.autocompleteInputTarget.classList.add(\"hidden\");\n }\n if (!this.manualAddressTriggerTarget.classList.contains(\"hidden\")) {\n this.manualAddressTriggerTarget.classList.add(\"hidden\");\n }\n\n this.manuallySearchedInputTarget.value = true;\n }\n\n selectListAddress() {\n // Display and reset autocomplete address fields\n this.citySelectInputTarget[\"form--collection-select--component\"].clearValue();\n this.countrySelectInputTarget[\"form--collection-select--component\"].clearValue();\n this.postcodeInputTarget.value = null;\n this.addressInputTarget.value = null;\n\n this.citySelectWrapperTarget.classList.remove(\"hidden\");\n this.manualAddressTriggerTarget.classList.remove(\"hidden\");\n\n // Hide and reset manual address fields\n this.postcodeInputTarget.type = 'hidden';\n this.addressInputTarget.type = 'hidden';\n if (!this.postcodeWrapperTarget.classList.contains(\"hidden\")) {\n this.postcodeWrapperTarget.classList.add(\"hidden\");\n }\n if (!this.addressInputWrapperTarget.classList.contains(\"hidden\")) {\n this.addressInputWrapperTarget.classList.add(\"hidden\");\n }\n if (!this.selectAddressTriggerTarget.classList.contains(\"hidden\")) {\n this.selectAddressTriggerTarget.classList.add(\"hidden\");\n }\n if (!this.citySelectWrapperTarget.classList.contains(\"hidden\")) {\n this.citySelectWrapperTarget.classList.add(\"hidden\");\n }\n if (!this.countrySelectWrapperTarget.classList.contains(\"hidden\")) {\n this.countrySelectWrapperTarget.classList.add(\"hidden\");\n }\n\n this.autocompleteInputTarget.disabled = false;\n this.autocompleteInputTarget.classList.remove(\"hidden\");\n\n this.manuallySearchedInputTarget.value = false;\n }\n\n onInputEvent(e) {\n let target = e.currentTarget;\n clearTimeout(this.inputTimer);\n this.inputTimer = setTimeout(\n (() => {\n if (target.value.trim() === \"\") {\n this.getDropdownController().hide();\n return false;\n }\n this.getDropdownController().show();\n this.clearFields();\n this.search(target.value).then(\n ((results) => {\n this.fillAutocompleteList(results);\n }).bind(this)\n );\n }).bind(this),\n 400\n );\n }\n\n onKeydownEvent(e) {\n if (!this.navKeys.includes(e.key)) return true;\n e.preventDefault();\n this.handleKeyboardNav(e);\n }\n\n onClickEvent(e) {\n e.stopPropagation();\n if (!this.hasMapTarget) {\n e.preventDefault();\n this.autocompleteInputTarget.dispatchEvent(new Event(\"input\"));\n }\n }\n\n search(query) {\n let element = document.createElement(\"span\");\n element.innerText = \"Recherche en cours...\";\n !this.autocompleteListTarget.children.length && this.autocompleteListTarget.append(element);\n\n const apiURL = `${this.searchApiUrlValue}?search=${query}&query_types=${this.queryTypesValue}&search_in_database=${this.searchInDatabaseValue}&countries_scope=${this.countriesScopeValue}`;\n\n return fetch(apiURL)\n .then((response) => {\n return response.json();\n })\n .then((data) => {\n return data.results;\n });\n }\n\n fillAutocompleteList(results = []) {\n this.currentActiveElement = -1;\n this.autocompleteListTarget.innerHTML = \"\";\n results.forEach((result) => {\n let item = document.createElement(\"li\");\n let textElem = document.createElement(\"span\");\n textElem.innerText = result.text;\n item.appendChild(textElem);\n item.tabIndex = 1;\n item.dataset.action = \"click->dropdown--component#hide\";\n item.addEventListener(\n \"click\",\n ((e) => {\n this.selectResult(result);\n if (this.submitOnSelectValue) this._form.submit();\n }).bind(this)\n );\n this.autocompleteListTarget.append(item);\n });\n\n if (!results.length) {\n let element = document.createElement(\"span\");\n element.innerText = \"Aucun résultat trouvé\";\n this.autocompleteListTarget.append(element);\n }\n }\n\n selectResult(result) {\n if (this.hasAutocompleteInputTarget) this.autocompleteInputTarget.value = result.text;\n // Update hidden fields\n if (this.hasAddressInputTarget) {\n this.addressInputTarget.value = (result.formatted_address || \"\").trim()\n this.addressInputTarget.dispatchEvent(new Event(\"change\"))\n }\n if (this.hasPostcodeInputTarget) this.postcodeInputTarget.value = result.postcode;\n if (this.hasCityInputTarget) this.cityInputTarget.value = result.city;\n if (this.hasCountryInputTarget) this.countryInputTarget.value = result.country;\n if (this.hasLngInputTarget) this.lngInputTarget.value = result.center[0];\n if (this.hasLatInputTarget) this.latInputTarget.value = result.center[1];\n if (result.bbox.length > 0 && this.hasBboxInputTarget) this.bboxInputTarget.value = [result.bbox[3], result.bbox[0], result.bbox[1], result.bbox[2]];\n if (this.hasCenterInputTarget) this.centerInputTarget.value = result.center;\n if (this.hasCitySlugInputTarget) this.citySlugInputTarget.value = result.slug;\n this.updateMapCoordinates(result.center);\n }\n\n updateMapCoordinates(coordinates) {\n if (!this._map) return;\n this._map.flyTo({\n center: coordinates,\n zoom: 15,\n });\n if (!this._marker) return;\n this._marker.setLngLat(coordinates);\n this._marker.getElement().style.visibility = \"visible\";\n }\n\n resizeMap() {\n this.mapTarget.style.width = \"100%\";\n this._map.resize();\n }\n\n getDropdownController() {\n return (\n this._dropdownController || (this._dropdownController = this.element.querySelector(\"[data-controller='dropdown--component']\")[\"dropdown--component\"])\n );\n }\n\n toggleDropdown(event) {\n if (event.currentTarget.value.trim()) {\n this.getDropdownController().toggle();\n }\n }\n\n clearFields() {\n if (this.hasAddressInputTarget) {\n this.addressInputTarget.value = \"\";\n this.addressInputTarget.dispatchEvent(new Event(\"change\"))\n }\n if (this.hasPostcodeInputTarget) this.postcodeInputTarget.value = \"\";\n if (this.hasCityInputTarget) this.cityInputTarget.value = \"\";\n if (this.hasCountryInputTarget) this.countryInputTarget.value = \"\";\n if (this.hasLngInputTarget) this.lngInputTarget.value = \"\";\n if (this.hasLatInputTarget) this.latInputTarget.value = \"\";\n if (this.hasBboxInputTarget) this.bboxInputTarget.value = \"\";\n if (this.hasCenterInputTarget) this.centerInputTarget.value = \"\";\n }\n\n onFormSubmit(e) {\n if (!this.submitOnSelectValue) return true;\n if (!this.autocompleteInputTarget.value.trim()) {\n e.preventDefault();\n e.stopPropagation();\n return false;\n }\n if (!this.bboxInputTarget.value) {\n e.preventDefault();\n e.stopPropagation();\n this.search(this.autocompleteInputTarget.value).then(\n ((results) => {\n if (results.length > 0) this.selectResult(results[0]);\n this._form.submit();\n }).bind(this)\n );\n return true;\n }\n return true;\n }\n\n // Navigation au clavier dans le dropdown\n handleKeyboardNav(event = {}) {\n const key = event.key;\n\n let resultsList = this.autocompleteListTarget.children;\n this.autocompleteListTarget.querySelectorAll(\"li.active\").forEach((element) => {\n element.classList.remove(\"active\");\n });\n\n if (key === \"ArrowDown\") {\n let currentActiveElementIsNotLastItem = this.currentActiveElement < resultsList.length - 1;\n if (currentActiveElementIsNotLastItem) {\n this.currentActiveElement++;\n }\n } else if (key === \"ArrowUp\") {\n let currentActiveElementIsNotFirstItem = this.currentActiveElement > 0;\n if (currentActiveElementIsNotFirstItem) {\n this.currentActiveElement--;\n }\n }\n\n let currentListItem = null;\n if (this.currentActiveElement >= 0) {\n currentListItem = resultsList[this.currentActiveElement];\n if (currentListItem.tagName === \"SPAN\") return;\n currentListItem.classList.add(\"active\");\n }\n\n if (key === \"Enter\" && currentListItem) {\n currentListItem.click();\n this.currentActiveElement = -1;\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = ['container', 'prevArrow', 'nextArrow']\n\n _elementBorderRight = 0\n _elementBorderLeft = 0\n _prevChild = null\n _nextChild = null\n\n initialize() {\n this.update = this.update.bind(this)\n }\n\n connect() {\n // Disable if only one child\n\n if (this.containerTarget.children.length <= 1) {\n this.prevArrowTarget.classList.add('disabled')\n this.nextArrowTarget.classList.add('disabled')\n return false\n }\n\n document.addEventListener(\"turbo:load\", this.update);\n window.addEventListener('load', this.update);\n window.addEventListener('resize', this.update);\n this.containerTarget.addEventListener('scroll', this.update);\n }\n\n disconnect() {\n document.removeEventListener(\"turbo:load\", this.update);\n window.removeEventListener('load', this.update);\n window.removeEventListener('resize', this.update);\n this.containerTarget.removeEventListener('scroll', this.update);\n }\n\n update() {\n // Calculate container limits\n this._elementBorderRight = this.containerTarget.clientWidth + this.containerTarget.scrollLeft\n this._elementBorderLeft = this.containerTarget.scrollLeft\n\n // Check if content is overflowing\n this._isOverflowing = this.containerTarget.clientWidth < this.containerTarget.scrollWidth\n || this.containerTarget.clientHeight < this.containerTarget.scrollHeight;\n\n // Check partially visible elems\n let children = this.containerTarget.children\n this._nextChild = null\n for (let i = 0; i < children.length; i++) {\n let child = children[i]\n let posEndX = child.offsetLeft + child.offsetWidth\n if (posEndX > this._elementBorderRight) {\n this._nextChild = child\n break\n }\n }\n this._prevChild = null\n for (let i = children.length - 1; i >= 0; i--) {\n let child = children[i]\n let posStartX = child.offsetLeft\n if (posStartX < this._elementBorderLeft) {\n this._prevChild = child\n break\n }\n }\n\n // Display/Hide navigation arrows\n if (this._nextChild) {\n this.nextArrowTarget.classList.remove('disabled')\n } else {\n this.nextArrowTarget.classList.add('disabled')\n }\n\n if (this._prevChild) {\n this.prevArrowTarget.classList.remove('disabled')\n } else {\n this.prevArrowTarget.classList.add('disabled')\n }\n\n if (!(this._prevChild || this._nextChild)) {\n this.element.classList.add(\"no-scroll\")\n } else {\n this.element.classList.remove(\"no-scroll\")\n }\n }\n\n scrollNext() {\n if (!this._nextChild)\n return false\n let scrollLeft = this._nextChild.offsetLeft - 96\n this.containerTarget.scrollTo(scrollLeft, 0)\n this.update()\n }\n\n scrollPrev() {\n if (!this._prevChild)\n return false\n let scrollLeft = this._prevChild.offsetLeft + this._prevChild.offsetWidth - this.containerTarget.clientWidth + 96\n this.containerTarget.scrollTo(scrollLeft, 0)\n this.update()\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\";\n// import { useClickOutside } from 'stimulus-use'\n\nexport default class extends Controller {\n static targets = [\"picture\", \"pictureIndex\"];\n static values = {picturesLen: Number}\n\n #index = 0\n connect() {\n this.updateDisplay()\n }\n\n previous() {\n if (this.#index > 0) {\n this.#index -= 1\n } else {\n this.#index = this.picturesLenValue - 1\n }\n this.updateDisplay()\n }\n\n next() {\n \n if (this.#index < this.picturesLenValue - 1) {\n this.#index += 1\n } else {\n this.#index = 0\n }\n this.updateDisplay()\n }\n\n updateDisplay() {\n this.pictureTargets.forEach (p => {\n if (p.dataset.index == this.#index) {\n p.classList.remove(\"hidden\")\n } else {\n p.classList.add(\"hidden\")\n }\n })\n this.pictureIndexTarget.innerText = this.#index + 1\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\nimport fuzzysort from 'fuzzysort'\nimport {template, isEmpty, isEqual} from \"lodash\";\n\nexport default class extends Controller {\n static targets = [\"input\", \"prompt\", \"dropdown\", \"searchInput\", \"optionTemplate\", \"displayOptionTemplate\", \"inputTemplate\", \"inputList\"]\n\n static values = {\n multiple: Boolean,\n prompt: String,\n ajaxUrl: String,\n collection: Array,\n initialValue: String,\n includeBlank: Boolean,\n submitOnChange: Boolean\n }\n\n #form;\n #value = [];\n #initialValue = [];\n #optionTemplate;\n #displayOptionTemplate;\n #inputTemplate;\n #inputTimer = null;\n\n initialize() {\n this.onBlur = this.onBlur.bind(this)\n this.element[this.identifier] = this;\n this.#form = this.element.closest(\"form\")\n this.appendSelectOption = this.appendSelectOption.bind(this);\n this.search = this.search.bind(this);\n this.#optionTemplate = template(this.optionTemplateTarget.innerHTML);\n this.#displayOptionTemplate = template(this.displayOptionTemplateTarget.innerHTML);\n this.#inputTemplate = template(this.inputTemplateTarget.innerHTML);\n this.initializeValue();\n this.element.dispatchEvent(new Event('initialized'));\n }\n\n connect() {\n this.dropdownTarget.addEventListener(\"close\", this.onBlur)\n }\n\n disconnect() {\n this.dropdownTarget.removeEventListener(\"close\", this.onBlur)\n }\n\n initializeValue() {\n if (this.initialValueValue) {\n const initialValue = JSON.parse(this.initialValueValue);\n initialValue.forEach(v => {\n this.#value.push(v);\n this.element.querySelector(`[data-form--collection-select--component-value-param=\"${v.value}\"]`)?.classList?.add(\"selected\");\n })\n this.#initialValue = [...this.#value]\n this.updateInputs();\n }\n this.updatePrompt();\n }\n\n onBlur() {\n if (!this.submitOnChangeValue)\n return false\n if (isEqual(this.#value, this.#initialValue))\n return false\n this.submitForm()\n }\n\n submitForm() {\n if (!this.#form)\n return false\n this.#form.requestSubmit()\n }\n\n clearValue() {\n this.#value = []\n this.updateInputs()\n this.updatePrompt();\n }\n\n selectOption(e) {\n const menuItem = e.currentTarget.closest('.menu__item');\n if (menuItem && menuItem.classList.contains('disabled')) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const {params: {value, text}} = e;\n const v = {value, text};\n let selected = false;\n if (this.#value.find(val => val.value == v.value)) {\n // if (this.multipleValue)\n this.removeValue(v);\n } else {\n selected = true;\n if (this.multipleValue) {\n this.addValue(v);\n } else {\n this.updateValue(v)\n }\n }\n if (this.multipleValue) {\n const option = this.createElementFromHTML(this.#optionTemplate({\n icon: selected ? \"check\" : \"checkbox-empty\",\n text: text,\n value: value,\n }));\n if (selected)\n option.classList.add(\"selected\");\n const currentOption = this.element.querySelector(`.option[data-form--collection-select--component-value-param=\"${value}\"]`)\n if (currentOption) {\n currentOption.replaceWith(option);\n }\n }\n this.updatePrompt();\n }\n\n addOptions(options = []) {\n options.forEach(opt => {\n this.addValue(opt);\n })\n this.updatePrompt();\n }\n\n setPrompt(text) {\n if (!this.hasPromptTarget)\n return false\n this.promptTarget.innerHTML = text;\n }\n\n addValue(value) {\n const hasChanged = !(value in this.#value)\n const oldValue = this.#value\n this.#value = this.#value || []\n this.#value.push(value);\n this.updateInputs();\n this.element.value = this.#value\n if (hasChanged)\n this.triggerChange()\n }\n\n removeValue(value) {\n const hasChanged = value != this.#value\n const index = this.#value.findIndex(val => val.value == value.value);\n if (index !== -1) {\n this.#value.splice(index, 1);\n }\n this.updateInputs();\n this.element.value = this.#value\n if (hasChanged)\n this.triggerChange()\n }\n\n updateValue(value) {\n const oldValue = this.#value\n this.#value = [value];\n this.updateInputs();\n this.element.value = this.#value\n if (oldValue != this.#value)\n this.triggerChange()\n }\n\n triggerChange() {\n const event = new Event('change');\n this.element.dispatchEvent(event);\n }\n\n updateInputs() {\n this.inputListTarget.innerHTML = \"\";\n if (this.#value.length > 0) {\n this.#value.forEach(v => {\n const input = this.createElementFromHTML(this.#inputTemplate({\n value: v.value,\n }));\n this.inputListTarget.appendChild(input);\n })\n } else {\n if (this.includeBlankValue) {\n const input = this.createElementFromHTML(this.#inputTemplate({value: \"\"}));\n this.inputListTarget.appendChild(input);\n }\n }\n }\n\n updatePrompt() {\n if (!this.hasPromptTarget)\n return false\n this.promptTarget.innerHTML = \"\";\n if (!isEmpty(this.#value)) {\n this.promptTarget.classList.remove(\"no-value\");\n this.#value.forEach(v => {\n const optionDisplay = this.createElementFromHTML(this.#displayOptionTemplate({\n text: v.text,\n value: v.value,\n }));\n this.promptTarget.appendChild(optionDisplay);\n })\n } else {\n this.setPrompt(this.promptValue || \"Sélectionner...\")\n this.promptTarget.classList.add(\"no-value\");\n }\n }\n\n onSearch() {\n setTimeout(this.search, 50);\n }\n\n search() {\n clearTimeout(this.inputTimer);\n this.inputTimer = setTimeout(\n (async () => {\n const searchString = this.searchInputTarget.value;\n let results = [];\n if (this.ajaxUrlValue) {\n let url_for_term = searchString ? (this.ajaxUrlValue.includes('?') ? `&term=${searchString}` : `?term=${searchString}`) : \"\";\n results = await fetch(this.ajaxUrlValue + url_for_term)\n .then((response) => response.json())\n .then((response) => {\n return response.results.map(r => ({obj: {text: r.text, value: r.id}}));\n })\n } else {\n results = fuzzysort.go(searchString, this.collectionValue, {key: 'text'})\n }\n this.clearList();\n if (results.length > 0) {\n results.forEach(this.appendSelectOption);\n } else {\n const div = document.createElement(\"div\")\n div.setAttribute(\"class\", \"p-2 text-light text-sm italic\")\n div.innerText = \"Aucun résultat\"\n this.dropdown.listTarget.appendChild(div);\n }\n }).bind(this),\n 400\n );\n }\n\n appendSelectOption({obj}) {\n const option = this.createElementFromHTML(this.#optionTemplate({\n text: obj.text,\n value: obj.value,\n }));\n if (this.#value.find(v => v.value == obj.value)) {\n option.classList.add(\"selected\");\n }\n this.dropdown.listTarget.appendChild(option);\n // return option;\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n // Change this to div.childNodes to support multiple top-level nodes.\n return div.firstChild;\n }\n\n clearList() {\n this.dropdown.listTarget.innerHTML = \"\";\n }\n\n ajaxUrlValueChanged(value) {\n if (value)\n this.search()\n }\n\n setAjaxUrl(ajaxUrl) {\n this.element.setAttribute(\"data-form--collection-select--component-ajax-url-value\", ajaxUrl)\n }\n\n get ajaxUrl() {\n return this.ajaxUrlValue\n }\n\n get dropdown() {\n return this.dropdownTarget[\"dropdown--component\"];\n }\n\n get value() {\n if (this.multipleValue == true)\n return this.#value;\n return this.#value[0]?.value || null;\n }\n\n set value(val) {\n this.updateValue(val)\n this.updatePrompt();\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n connect() {\n Turbo.setConfirmMethod((data, element) => {\n let id = \"\";\n if (element.tagName.toLowerCase() == \"form\") {\n id = element.querySelector(\"[data-turbo-confirm]\").id\n } else {\n id = element.id;\n }\n\n let dialog = document.getElementById(`dialog-${id}`);\n let dialogController = dialog[\"modal--component\"];\n dialogController.open();\n\n return new Promise((resolve, reject) => {\n let committers = dialog.querySelectorAll(\"[name='commit']\");\n committers.forEach((committer) => {\n committer.addEventListener(\"click\", (e) => {\n e.preventDefault();\n resolve(e.currentTarget.value == \"confirm\");\n dialogController.close();\n });\n });\n });\n });\n }\n\n // Case of a link (does not work with turbo)\n confirmLink(e) {\n e.preventDefault();\n let elem = e.target;\n if (elem.tagName.toLowerCase() != \"a\") {\n elem = elem.parentElement;\n }\n const id = elem.id;\n let dialog = document.getElementById(`dialog-${id}`);\n let dialogController = dialog[\"modal--component\"];\n dialogController.open();\n\n return new Promise((resolve, reject) => {\n let committers = dialog.querySelectorAll(\"[name='commit']\");\n committers.forEach((committer) => {\n committer.addEventListener(\"click\", (e) => {\n e.preventDefault();\n resolve(e.currentTarget.value == \"confirm\");\n if (e.currentTarget.value == \"confirm\") {\n window.location.href = elem.href;\n }\n dialogController.close();\n });\n });\n });\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"slide\", \"tab\"]\n\n connect() {\n this.tabTargets.forEach(tab => {\n tab.addEventListener('click', this.select.bind(this))\n })\n // Init first slide\n this.tabTargets[0].classList.add('active')\n this.slideTargets[0].classList.add('active')\n }\n\n select(e) {\n this.tabTargets.forEach(tab => tab.classList.remove('active'))\n this.slideTargets.forEach(slide => slide.classList.remove('active'))\n\n const tab = e.currentTarget\n const slide_id = tab.dataset.slideId\n const slide = this.slideTargets.find((s) => s.dataset.slideId == slide_id)\n slide.classList.add('active')\n tab.classList.add('active')\n }\n}\n","import Lightbox from 'stimulus-lightbox'\nimport lightGallery from 'lightgallery'\nimport lgRotate from 'lightgallery/plugins/rotate'\nimport lgZoom from 'lightgallery/plugins/zoom'\nimport lgFullscreen from 'lightgallery/plugins/fullscreen'\n\nexport default class extends Lightbox {\n static values = {container: String, closable: Boolean, open: Boolean}\n\n connect() {\n this.lightGallery = lightGallery(this.element, {\n ...this.defaultOptions,\n ...this.optionsValue,\n container: this.containerValue,\n closable: this.closableValue,\n plugins: [lgZoom, lgRotate, lgFullscreen]\n })\n if (this.openValue)\n this.lightGallery.openGallery()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = ['multiSelectInput', 'resultsList']\n static values = {\n searchApiUrl: String,\n dynamicParamName: String,\n dynamicParamElem: String,\n }\n\n _dynamicParamElem = null;\n\n connect() {\n if (this.dynamicParamElemValue !== 'undefined') {\n this._dynamicParamElem = document.querySelector(`#${this.dynamicParamElemValue}`);\n }\n }\n\n searchResults() {\n let span = document.createElement('span');\n span.appendChild(document.createTextNode('Recherche en cours...'));\n this.resultsListTarget.innerHTML = span.outerHTML;\n if (this._dynamicParamElem && this.dynamicParamNameValue) {\n if (!this._dynamicParamElem.value || this._dynamicParamElem.value === '') {\n let span = document.createElement('span');\n span.appendChild(document.createTextNode('Veuillez sélectionner une ville.'));\n span.classList.add('text-danger', 'font-bold');\n this.resultsListTarget.innerHTML = span.outerHTML;\n return;\n }\n }\n\n let apiURL = `${this.searchApiUrlValue}?${this.dynamicParamNameValue}=${this._dynamicParamElem.value}`;\n this.search(apiURL).then(\n ((results) => {\n this.displayResults(results);\n }).bind(this)\n );\n }\n\n search(apiURL) {\n return fetch(apiURL)\n .then((response) => {\n return response.json();\n })\n .then((data) => {\n return data.results;\n });\n }\n\n displayResults(results) {\n this.resultsListTarget.innerHTML = '';\n results.forEach((result => {\n let result_elem = this.createResultElem(result);\n }).bind(this));\n let elem = document.createElement('div');\n elem.appendChild(document.createTextNode('Tout ajouter'));\n elem.classList.add('underline', 'cursor-pointer', 'basis-full')\n elem.setAttribute('data-action', 'click->city-managers-cities#addAllResults')\n this.resultsListTarget.appendChild(elem);\n }\n\n addResult(e) {\n this.createOptionForSelect(e.target.dataset.cityId, e.target.dataset.cityName);\n }\n\n addAllResults() {\n let allResults = this.resultsListTarget.querySelectorAll('.near-city-result');\n allResults.forEach((result => {\n this.createOptionForSelect(result.dataset.cityId, result.dataset.cityName);\n }).bind(this));\n }\n\n createResultElem(result) {\n let elem = document.createElement('div');\n let text = document.createTextNode(`+ ${result.name}`);\n elem.classList.add('near-city-result', 'cm-city-select-elem');\n elem.appendChild(text);\n elem.setAttribute('data-action', 'click->city-managers-cities#addResult');\n elem.setAttribute('data-city-id', result.id);\n elem.setAttribute('data-city-name', result.name);\n this.resultsListTarget.appendChild(elem);\n\n return elem;\n }\n\n createOptionForSelect(city_id, city_name) {\n let option = document.createElement('option');\n option.setAttribute(\"selected\", \"selected\");\n option.setAttribute(\"value\", city_id);\n let txt = document.createTextNode(city_name);\n option.appendChild(txt);\n if (!this.optionAlreadySelected(city_id))\n this.multiSelectInputTarget.appendChild(option);\n }\n\n optionAlreadySelected(city_id) {\n let selected_cities = [...this.multiSelectInputTarget.options].filter(option => option.selected).map(option => option.value);\n if (selected_cities.includes(city_id.toString()))\n return true;\n else\n return false;\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\nexport default class extends Controller {\n static targets = [\"inputWrapper\", \"ibanInput\"]\n\n _input = null\n\n connect() {\n this._input = this.inputWrapperTarget.getElementsByTagName('input')[0]\n this._input.style.display = 'none'\n this.updateInputStyle()\n if (this._input.value) {\n this.update_fields(this._input.value)\n }\n this.ibanInputTargets.forEach(((input) => {\n input.addEventListener('input', ((e) => this.on_input(e, input)).bind(this))\n input.addEventListener('keydown', ((e) => this.on_keydown(e, input)).bind(this))\n input.addEventListener('focus', ((e) => this.on_focus(e, input)).bind(this))\n input.addEventListener('paste', ((e) => this.on_paste(e, input)).bind(this))\n }).bind(this))\n }\n\n on_focus(e, input) {\n input.select()\n }\n\n on_input(e, input) {\n if (input.value.length >= parseInt(input.getAttribute('maxlength'))) {\n // Focus next input\n const nextInput = input.nextSibling\n if (nextInput)\n nextInput.focus()\n }\n }\n\n on_keydown(e, input) {\n if (e.key === \"Backspace\") {\n if (input.value.length == 0) {\n e.preventDefault()\n input.value = \"\"\n const prevInput = input.previousSibling\n if (prevInput)\n prevInput.focus()\n }\n }\n }\n\n on_paste(e, input) {\n let paste = (e.clipboardData || window.clipboardData).getData('text');\n paste = paste.replace(/\\s/g, '');\n this.update_fields(paste)\n }\n\n update_fields(value) {\n const fields_values = value.match(/.{1,4}/g);\n this.ibanInputTargets.forEach(((input, index) => {\n const val = fields_values[index] === undefined ? '' : fields_values[index]\n input.value = val\n }).bind(this))\n }\n\n update() {\n let iban = \"\"\n this.ibanInputTargets.forEach((input) => {\n iban += input.value\n })\n this._input.value = iban.toUpperCase()\n }\n\n updateInputStyle() {\n if (this._input.classList.contains(\"is-danger\")) {\n this.ibanInputTargets.forEach((input) => {\n input.classList.add(\"is-danger\")\n })\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [\"filterForm\", \"batchActionForm\", \"batchActionDropdown\"]\n static values = {gridName: String, batchActionUrl: String}\n\n #customFilterForm = null\n #selectedIds = []\n #batchActionDropdownController = null\n\n initialize() {\n this.submitNewCustomFilterForm = this.submitNewCustomFilterForm.bind(this)\n this.updateBatchActionsDropdown = this.updateBatchActionsDropdown.bind(this)\n }\n\n connect() {\n this.#customFilterForm = this.element.querySelector(`form[data-form='custom-form'][data-grid='${this.gridNameValue}']`)\n if (this.#customFilterForm) {\n this.#customFilterForm.addEventListener(\"submit\", this.submitNewCustomFilterForm)\n }\n if (this.hasBatchActionDropdownTarget) {\n this.batchActionDropdownTarget.addEventListener(\"connected\", () => {\n this.#batchActionDropdownController = this.batchActionDropdownTarget[\"dropdown--component\"]\n this.updateBatchActionsDropdown()\n })\n }\n }\n\n submitNewCustomFilterForm(e) {\n e.preventDefault();\n const form = e.currentTarget\n const filtersInput = form.querySelector(\"input[name='filters']\")\n const data = new FormData(this.filterFormTarget);\n let d = {};\n for (const pair of data.entries()) {\n let key = pair[0];\n const value = pair[1];\n const regex = /([A-Za-z_]+)\\[([A-Za-z_]*)\\](.*)/;\n key = key.replace(regex, \"$2$3\");\n if (key in [\"scope\", \"search\"])\n continue\n if (key.endsWith(\"[]\")) {\n const keyclean = key.substring(0, key.length - 2);\n if (!d[keyclean])\n d[keyclean] = [];\n d[keyclean].push(value);\n } else {\n d[key] = value;\n }\n }\n const json = JSON.stringify(d);\n const hiddenInput = form.querySelector(\"input[name='filters']\")\n hiddenInput.value = json\n form.submit();\n }\n\n // Grouped Actions\n\n toggleSelectedId(event) {\n const id = event.currentTarget.dataset.id\n if (event.currentTarget.checked) {\n this.#selectedIds.push(id);\n } else {\n this.#selectedIds = this.#selectedIds.filter(i => i !== id);\n this.element.querySelector(\"[type='checkbox'][name='select_all']\").checked = false\n }\n this.updateBatchActionsDropdown()\n }\n\n selectAll(event) {\n const checkBoxes = this.element.querySelectorAll(\"[type='checkbox'][name='select_row']\")\n if (event.currentTarget.checked) {\n checkBoxes.forEach(c => {\n c.checked = true\n })\n this.#selectedIds = Array.from(checkBoxes).map(c => c.dataset.id)\n } else {\n checkBoxes.forEach(c => {\n c.checked = false\n })\n this.#selectedIds = []\n }\n this.updateBatchActionsDropdown()\n }\n\n updateBatchActionsDropdown() {\n if (!this.#batchActionDropdownController)\n return\n if (this.#selectedIds.length > 0) {\n // Enable batch actions dropdown\n this.#batchActionDropdownController.enable()\n } else {\n // Disable batch actions dropdown\n this.#batchActionDropdownController.disable()\n }\n }\n\n async callGroupedAction(event) {\n event.preventDefault()\n event.stopPropagation()\n\n if (confirm(\"Confirmer l'action ?\")) {\n const actionBtn = event.currentTarget\n const name = actionBtn.dataset.name\n\n const actionInput = this.batchActionFormTarget.querySelector('[name=\"action_name\"]')\n actionInput.value = name\n const selectedIdsList = this.batchActionFormTarget.querySelector('.selected-ids')\n selectedIdsList.innerHTML = \"\"\n this.#selectedIds.forEach(id => {\n const input = document.createElement(\"input\");\n input.type = \"hidden\";\n input.name = \"selected_ids[]\"; // Name it as an array\n input.value = id;\n selectedIdsList.appendChild(input);\n })\n // Set turbo frame attribute on form\n if (actionBtn.dataset.turboFrame) {\n this.batchActionFormTarget.dataset.turboFrame = actionBtn.dataset.turboFrame\n } else {\n delete this.batchActionFormTarget.dataset.turboFrame\n }\n\n this.batchActionFormTarget.requestSubmit()\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"input\", \"incrementBtn\", \"decrementBtn\"];\n\n static values = { min: Number, max: Number, step: Number }\n\n connect() {\n this.inputTarget.value ||= 0;\n this.update()\n }\n\n increment() {\n let isInteger = Number.isInteger(this.stepValue);\n const val = (isInteger ? parseInt(this.inputTarget.value) : parseFloat(this.inputTarget.value)) || 0;\n if (!this.hasMaxValue || (val < this.maxValue)) {\n if (isInteger) {\n this.inputTarget.value = (val + this.stepValue);\n } else {\n this.inputTarget.value = (val + this.stepValue).toFixed(2);\n }\n this.inputTarget.dispatchEvent(new Event('input'));\n }\n this.update();\n }\n\n decrement() {\n let isInteger = Number.isInteger(this.stepValue);\n const val = (isInteger ? parseInt(this.inputTarget.value) : parseFloat(this.inputTarget.value)) || 0;\n if (!this.hasMinValue || (val > this.minValue)) {\n if (isInteger) {\n this.inputTarget.value = (val - this.stepValue);\n } else {\n this.inputTarget.value = (val - this.stepValue).toFixed(2);\n }\n this.inputTarget.dispatchEvent(new Event('input'));\n }\n this.update();\n }\n\n update() {\n if (this.hasMinValue && this.inputTarget.value <= this.minValue) {\n this.inputTarget.value = this.minValue;\n this.decrementBtnTarget.setAttribute(\"disabled\", true);\n } else {\n this.decrementBtnTarget.removeAttribute(\"disabled\");\n }\n if (this.hasMaxValue && this.inputTarget.value >= this.maxValue) {\n this.inputTarget.value = this.maxValue;\n this.incrementBtnTarget.setAttribute(\"disabled\", true);\n } else {\n this.incrementBtnTarget.removeAttribute(\"disabled\");\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [\"filterForm\", \"orderInput\", \"descendingInput\"]\n static values = {order: String, descending: Boolean}\n\n #order = \"\";\n #descending = null;\n #filterForm = null\n #table;\n\n connect() {\n this.#table = this.element.querySelector(\".data__table\");\n this.#order = this.orderValue;\n this.#descending = this.descendingValue;\n this.#filterForm = this.element.closest(\"form\")\n this.#updateOrderInputs();\n this.setColumnsWidth();\n }\n\n setColumnsWidth() {\n let colWidth = []\n this.#table.querySelectorAll('.datatable__header, .data__row').forEach((tr) => {\n tr.querySelectorAll('.header__column, .data__cell').forEach((td, i) => {\n if (!colWidth[i] || colWidth[i] < td.offsetWidth)\n colWidth[i] = td.offsetWidth\n });\n });\n this.#table.querySelectorAll('.datatable__header, .data__row').forEach((tr) => {\n tr.querySelectorAll('.header__column, .data__cell').forEach((td, i) => {\n td.style.width = `${colWidth[i]}px`;\n });\n });\n }\n\n sortColumn(e) {\n this.setOrder(e.params.sortColumn)\n }\n\n setOrder(order) {\n if (this.#order != order) {\n this.#order = order;\n this.#descending = false;\n } else {\n switch (this.#descending) {\n case null:\n this.#descending = false;\n break;\n case true:\n this.#descending = null;\n break;\n case false:\n this.#descending = true;\n break;\n }\n if (this.#descending === null)\n this.#order = null;\n }\n this.#updateOrderInputs();\n this.#submitFilterForm();\n }\n\n #updateOrderInputs() {\n this.orderInputTarget.value = this.#order;\n this.descendingInputTarget.value = this.#descending;\n }\n\n #submitFilterForm() {\n this.#filterForm.requestSubmit();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport Cookies from \"js-cookie\";\nexport default class extends Controller {\n\n initialize() {\n this.toggle = this.toggle.bind(this)\n }\n\n connect() {\n this.bindTogglers();\n const isOpen = this.element.classList.contains(\"open\") ? \"open\" : \"closed\"\n if (Cookies.get('admin-sidebar') != isOpen)\n this.toggle()\n }\n\n toggle(e) {\n if (e)\n e.preventDefault();\n this.element.classList.toggle(\"open\")\n const isOpen = this.element.classList.contains(\"open\") ? \"open\" : \"closed\"\n Cookies.set('admin-sidebar', isOpen, { sameSite: 'strict' })\n }\n\n bindTogglers() {\n document.querySelectorAll(`[data-toggle=\"sidebar\"]`).forEach(\n ((elem) => {\n elem.addEventListener(\n \"click\", this.toggle\n );\n })\n );\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\nimport {template} from \"lodash\";\n\nexport default class extends Controller {\n static targets = [\"inputTemplate\", \"inputList\"]\n\n static values = {initialValue: String}\n\n #value = [];\n #inputTemplate;\n\n connect() {\n this.#inputTemplate = template(this.inputTemplateTarget.innerHTML);\n this.initializeValue();\n }\n\n initializeValue() {\n if (!this.initialValueValue || this.initialValueValue == \"\")\n return;\n const initialValue = JSON.parse(this.initialValueValue);\n initialValue.forEach(v => {\n this.#value.push(v);\n const btn = this.element.querySelector(`[data-form--collection-check-buttons--component-value-param=\"${v}\"]`)\n if (btn) {\n btn.classList.add(\"btn--appearance-solid\");\n btn.classList.remove(\"btn--appearance-outline\");\n }\n })\n this.updateInputs();\n }\n\n toggleSelect(e) {\n const btn = e.currentTarget;\n const value = e.params.value.toString();\n btn.classList.toggle(\"btn--appearance-outline\")\n btn.classList.toggle(\"btn--appearance-solid\")\n if (this.#value.includes(value)) {\n const index = this.#value.indexOf(value);\n if (index > -1)\n this.#value.splice(index, 1);\n } else {\n this.#value.push(value)\n }\n this.updateInputs();\n }\n\n updateInputs() {\n this.inputListTarget.innerHTML = \"\";\n this.#value.forEach(v => {\n const input = this.createElementFromHTML(this.#inputTemplate({\n value: v,\n }));\n this.inputListTarget.appendChild(input);\n })\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n // Change this to div.childNodes to support multiple top-level nodes.\n return div.firstChild;\n }\n}","import { Controller } from \"@hotwired/stimulus\";\nexport default class extends Controller {\n static targets = [\"input\", \"codeInput\"];\n\n initialize() {\n this.onInput = this.onInput.bind(this);\n this.onKeydown = this.onKeydown.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onPaste = this.onPaste.bind(this);\n }\n\n connect() {\n this.element[this.identifier] = this;\n\n this.updateInputStyle();\n if (this.inputTarget.value) {\n this.updateFields(this.inputTarget.value);\n }\n\n this.codeInputTargets.forEach((input) => {\n input.addEventListener(\"input\", (e) => this.onInput(e, input));\n input.addEventListener(\"keydown\", (e) => this.onKeydown(e, input));\n input.addEventListener(\"focus\", (e) => this.onFocus(e, input));\n input.addEventListener(\"paste\", (e) => this.onPaste(e, input));\n });\n }\n\n disconnect() {\n this.codeInputTargets.forEach(\n ((input) => {\n input.removeEventListener(\"input\", this.onInput);\n input.removeEventListener(\"keydown\", this.onInput);\n input.removeEventListener(\"focus\", this.onInput);\n input.removeEventListener(\"paste\", this.onInput);\n })\n );\n }\n\n onFocus(e, input) {\n input.select();\n }\n\n onInput(e, input) {\n const index = this.codeInputTargets.findIndex((i) => i == input);\n\n if (input.value.length >= parseInt(input.getAttribute(\"maxlength\"))) {\n // Focus next input\n const nextInput = index < this.codeInputTargets.length - 1 ? this.codeInputTargets[index + 1] : null;\n if (nextInput) nextInput.focus();\n }\n }\n\n onKeydown(e, input) {\n if (e.key === \"Backspace\") {\n const index = this.codeInputTargets.findIndex((i) => i == input);\n if (input.value.length == 0) {\n e.preventDefault();\n input.value = \"\";\n\n const prevInput = index > 0 ? this.codeInputTargets[index - 1] : null;\n if (prevInput) prevInput.focus();\n }\n }\n }\n\n onPaste(e) {\n let paste = (e.clipboardData || window.clipboardData).getData(\"text\");\n paste = paste.replace(/\\s/g, \"\");\n this.updateFields(paste);\n this.update();\n }\n\n updateFields(value) {\n const fieldsValues = value.split(\"\");\n this.codeInputTargets.forEach(\n ((input, index) => {\n const val = fieldsValues[index] === undefined ? \"\" : fieldsValues[index];\n input.value = val;\n }).bind(this)\n );\n }\n\n update() {\n let code = \"\";\n this.codeInputTargets.forEach((input) => {\n code += input.value;\n });\n this.inputTarget.value = code;\n }\n\n updateInputStyle() {\n if (this.inputTarget.classList.contains(\"is-danger\")) {\n this.codeInputTargets.forEach((input) => {\n input.classList.add(\"is-danger\");\n });\n }\n }\n\n setValue(value) {\n this.inputTarget.value = value;\n this.updateFields(value);\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = { url: String, linkTarget: String }\n\n connect() {\n }\n\n onClick(e) {\n if (!this.urlValue)\n return false;\n e.preventDefault()\n e.stopPropagation()\n if (this.linkTargetValue) {\n window.open(this.urlValue, this.linkTargetValue).focus();\n } else {\n window.location.href = this.urlValue;\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n 'addendumClauseWrapper',\n 'clauseTypeInput',\n ]\n\n connect() {\n this.initHideStiInputs();\n this.disableUsedTypes();\n }\n\n disconnect() {\n this.disableUsedTypes();\n }\n\n getSelectedType() {\n if (typeof(this.clauseTypeInputTarget.dataset.selectedType) !== 'undefined') {\n return(this.clauseTypeInputTarget.dataset.selectedType);\n }\n if (typeof(this.clauseTypeInputTarget['form--collection-select--component']) !== 'undefined') {\n return(this.clauseTypeInputTarget['form--collection-select--component'].value);\n }\n return (null);\n }\n\n initHideStiInputs() {\n let selectedType = null;\n if (typeof(this.clauseTypeInputTarget.dataset.selectedType) !== 'undefined') {\n selectedType = this.clauseTypeInputTarget.dataset.selectedType;\n }\n this.hideForEachInputs(selectedType);\n }\n\n hideStiInputs() {\n this.disableUsedTypes();\n let selectedType = this.clauseTypeInputTarget['form--collection-select--component'].value;\n this.hideForEachInputs(selectedType);\n }\n\n hideForEachInputs(selectedType) {\n let items = this.addendumClauseWrapperTarget.querySelectorAll('.clause-specific-field');\n items.forEach(item => {\n const clauseTypes = item.dataset.clauseTypes.split(' ');\n const isRequired = clauseTypes.includes(selectedType);\n const inputs = item.querySelectorAll('input');\n if (isRequired) {\n if (item.classList.contains('hidden')) {\n item.classList.remove('hidden')\n }\n } else {\n if (!item.classList.contains('hidden')) {\n item.classList.add('hidden')\n }\n }\n\n inputs.forEach(input => {\n if (isRequired) {\n if (typeof(input.dataset.originalName) !== 'undefined') {\n const inputName = input.dataset.originalName;\n input.removeAttribute('data-original-name');\n input.setAttribute('name', inputName);\n }\n } else {\n input.removeAttribute('required');\n if (typeof(input.dataset.originalName) === 'undefined') {\n if (input.hasAttribute(\"data-form--collection-select--component-target\")) {\n const selectWrapper = input.closest('.oq-select');\n if (typeof(selectWrapper['form--collection-select--component']) !== 'undefined') {\n selectWrapper['form--collection-select--component'].clearValue();\n }\n } else {\n const inputName = input.getAttribute('name');\n input.removeAttribute('name'); // Remove name attribute to exclude from form submission\n input.setAttribute('data-original-name', inputName); // Store original name\n }\n }\n }\n });\n });\n }\n\n // Disable already selected types from select\n disableUsedTypes() {\n const nestedForms = document.querySelectorAll('.add-addendum-clause-wrapper');\n nestedForms.forEach(nestedForm => {\n this.application.getControllerForElementAndIdentifier(nestedForm, \"admin--addendums--clauses-form\").enableAllTypes();\n });\n nestedForms.forEach(nestedForm => {\n const addClauseController = this.application.getControllerForElementAndIdentifier(nestedForm, \"admin--addendums--clauses-form\");\n const thatSelectedType = addClauseController.getSelectedType();\n if (thatSelectedType === null) { return; }\n\n // Disable this type from other selects\n document.querySelectorAll('.add-addendum-clause-wrapper').forEach(nf => {\n const subAddClauseTarget = this.application.getControllerForElementAndIdentifier(nf, \"admin--addendums--clauses-form\").clauseTypeInputTarget;\n subAddClauseTarget.querySelectorAll('.menu__item').forEach(menuItem => {\n let itemValue = menuItem.dataset['form-CollectionSelect-ComponentValueParam'];\n if (itemValue == thatSelectedType && !menuItem.classList.contains('disabled')) {\n menuItem.classList.add('disabled');\n }\n });\n })\n });\n }\n\n enableAllTypes() {\n this.clauseTypeInputTarget.querySelectorAll('.menu__item').forEach(menuItem => {\n menuItem.classList.remove('disabled');\n });\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"inventoryTypeInput\", \"leaseInputGroup\", \"leaseInput\", \"propertyInputGroup\", \"propertyInput\", \"officerInput\", \"officerInputGroup\", \"officerTypeInput\"]\n static values = {officerUrls: Object}\n\n #inventoryTypeController\n #officerTypeController\n #officerController\n #leaseController\n #propertyController\n connect() {\n }\n updateInputs() {\n switch (this.inventoryTypeValue) {\n case \"Inventory::Onboarding\":\n this.leaseInputGroupTarget.classList.add(\"hidden\")\n this.propertyInputGroupTarget.classList.remove(\"hidden\")\n this.leaseController?.clearValue()\n break\n case \"Inventory::Ingoing\":\n case \"Inventory::Outgoing\":\n this.leaseInputGroupTarget.classList.remove(\"hidden\")\n this.propertyInputGroupTarget.classList.add(\"hidden\")\n this.propertyController?.clearValue()\n break\n default:\n this.leaseInputGroupTarget.classList.add(\"hidden\")\n this.propertyInputGroupTarget.classList.add(\"hidden\")\n this.leaseController?.clearValue()\n this.propertyController?.clearValue()\n break\n }\n\n if (this.officerTypeValue) {\n this.officerInputGroupTarget.classList.remove(\"hidden\")\n this.updateOfficerUrl()\n } else {\n this.officerInputGroupTarget.classList.add(\"hidden\")\n this.officerController?.clearValue()\n }\n }\n updateOfficerUrl() {\n if (!this.officerController)\n return\n // On met a jour l url ajax si changement de type de responsable\n const url = this.officerUrlsValue[this.officerTypeValue]\n if (url != this.officerController.ajaxUrl) {\n this.officerController.clearValue()\n this.officerController.setAjaxUrl(url)\n }\n }\n get inventoryTypeValue() {\n this.#inventoryTypeController ||= this.inventoryTypeInputTarget[\"form--collection-select--component\"]\n return this.#inventoryTypeController?.value\n }\n get officerTypeValue() {\n this.#officerTypeController ||= this.officerTypeInputTarget[\"form--collection-select--component\"]\n return this.#officerTypeController?.value\n }\n get officerController() {\n this.#officerController ||= this.officerInputTarget[\"form--collection-select--component\"]\n return this.#officerController\n }\n\n get leaseController() {\n this.#leaseController ||= this.leaseInputTarget[\"form--collection-select--component\"]\n return this.#leaseController\n }\n get propertyController() {\n this.#propertyController ||= this.propertyInputTarget[\"form--collection-select--component\"]\n return this.#propertyController\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"ownerInput\", \"ownerInputGroup\", \"ownerTypeInput\"]\n static values = {ownerUrls: Object}\n\n #ownerTypeController\n #ownerController\n connect() {\n }\n updateInputs() {\n if (this.ownerTypeValue) {\n this.ownerInputGroupTarget.classList.remove(\"hidden\")\n this.updateownerUrl()\n } else {\n this.ownerInputGroupTarget.classList.add(\"hidden\")\n this.ownerController?.clearValue()\n }\n }\n updateownerUrl() {\n if (!this.ownerController)\n return\n\n // On met a jour l url ajax si changement de type de responsable\n const url = this.ownerUrlsValue[this.ownerTypeValue]\n if (url != this.ownerController.ajaxUrl) {\n this.ownerController.clearValue()\n this.ownerController.setAjaxUrl(url)\n }\n }\n get ownerTypeValue() {\n this.#ownerTypeController ||= this.ownerTypeInputTarget[\"form--collection-select--component\"]\n return this.#ownerTypeController?.value\n }\n get ownerController() {\n this.#ownerController ||= this.ownerInputTarget[\"form--collection-select--component\"]\n return this.#ownerController\n }\n}","import {Controller} from \"@hotwired/stimulus\"\nexport default class extends Controller {\n static targets = [\"taskableTypeInput\", \"taskableIdInput\"]\n static values = {taskableTypeUrls: Object}\n\n #taskableIdController\n #taskableTypeController\n connect() {\n }\n updateInputs() {\n if (!this.taskableIdController)\n return\n\n // On met a jour l url ajax si changement de type\n const url = this.taskableTypeUrlsValue[this.taskableTypeValue]\n\n console.log(this.taskableTypeUrlsValue)\n console.log(this.taskableTypeValue)\n\n if (url != this.taskableIdController.ajaxUrl) {\n this.taskableIdController.clearValue()\n this.taskableIdController.setAjaxUrl(url)\n }\n }\n get taskableIdController() {\n this.#taskableIdController ||= this.taskableIdInputTarget[\"form--collection-select--component\"]\n return this.#taskableIdController\n }\n get taskableTypeValue() {\n this.#taskableTypeController ||= this.taskableTypeInputTarget[\"form--collection-select--component\"]\n return this.#taskableTypeController?.value\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"map\"];\n\n static values = { lat: Number, lng: Number, mapboxToken: String, static: Boolean, staticImageUrl: String };\n\n mapboxgl = null;\n loaded = false;\n staticMarker = null;\n\n initialize() {\n this.initStaticMap = this.initStaticMap.bind(this)\n }\n\n connect() {\n if (this.staticValue) {\n this.element.addEventListener(\"click\", this.initDynamicMap.bind(this));\n window.addEventListener(\"load\", this.initStaticMap);\n this.initStaticMap()\n } else {\n this.initDynamicMap();\n }\n }\n\n initStaticMap() {\n if (!this.loaded && this.hasMapTarget) {\n const height = this.mapTarget.offsetHeight;\n const width = this.mapTarget.offsetWidth;\n const image_url =\n this.staticImageUrlValue ||\n `https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/${this.lngValue},${this.latValue},12/${width}x${height}?access_token=${this.mapboxTokenValue}`;\n this.mapTarget.style.backgroundImage = `url(\"${image_url}\")`;\n this.mapTarget.style.backgroundPosition = \"center\";\n this.mapTarget.style.backgroundSize = \"cover\";\n this.mapTarget.style.backgroundRepeat = \"no-repeat\";\n\n if (!this.staticMarker) {\n this.staticMarker = this.createMarker();\n this.mapTarget.append(this.staticMarker);\n window.addEventListener(\"resize\", this.initStaticMap.bind(this));\n }\n const left = width / 2 - 24;\n const top = height / 2 - 24;\n this.staticMarker.style = `position: absolute; left: ${left}px; top: ${top}px`;\n }\n }\n\n initDynamicMap() {\n if (!this.loaded && this.hasMapTarget) {\n if (!this.mapboxgl) {\n import(\"!mapbox-gl\").then(\n ((mapboxgl) => {\n this.mapboxgl = mapboxgl.default;\n this.loadDynamicMap();\n }).bind(this)\n );\n } else {\n this.loadDynamicMap();\n }\n }\n }\n\n loadDynamicMap() {\n this.loaded = true;\n this.staticMarker.remove();\n window.removeEventListener(\"resize\", this.initStaticMap.bind(this));\n this.mapboxgl.accessToken = this.mapboxTokenValue;\n this._map = new this.mapboxgl.Map({\n container: \"map\",\n style: \"mapbox://styles/mapbox/streets-v11\",\n center: [this.lngValue, this.latValue],\n zoom: 12,\n })\n .addControl(new this.mapboxgl.FullscreenControl())\n .addControl(new this.mapboxgl.NavigationControl());\n\n this._map.scrollZoom.disable();\n this._map.on(\n \"load\",\n (() => {\n this.resizeMap();\n const mapMarker = this.createMarker();\n this._marker = new this.mapboxgl.Marker({\n element: mapMarker,\n })\n .setLngLat([this.lngValue, this.latValue])\n .addTo(this._map);\n // this.updateMapCoordinates([this.lngValue, this.latValue])\n }).bind(this)\n );\n }\n\n createMarker() {\n let marker = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n marker.setAttribute(\"width\", \"34\");\n marker.setAttribute(\"height\", \"51\");\n marker.setAttribute(\"viewBox\", \"0 0 34 51\");\n\n marker.innerHTML =\n '\\\n \\\n \\\n \\\n ';\n return marker;\n }\n\n updateMapCoordinates(coordinates) {\n this._map.jumpTo({\n center: coordinates,\n zoom: 12,\n });\n this._marker.setLngLat(coordinates);\n this._marker.getElement().style.visibility = \"visible\";\n }\n\n resizeMap() {\n this.mapTarget.style.width = \"100%\";\n this._map.resize();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"loader\", \"overlay\", \"contentFrame\"];\n static values = { name: String };\n\n initialize() {\n this.close = this.close.bind(this);\n this.onTurboLoad = this.onTurboLoad.bind(this);\n }\n\n connect() {\n document.addEventListener(\"turbo:frame-render\", (e) => this.onTurboLoad(e));\n\n if (this.element.classList.contains(\"open\")) {\n // Prevent body scroll\n const body = document.querySelector(\"body\");\n body.style.overflow = \"hidden\";\n }\n }\n\n disconnect() {\n document.removeEventListener(\"turbo:frame-render\", this.onTurboLoad);\n }\n\n close() {\n this.element.classList.remove(\"open\");\n\n // Restore body scroll\n const body = document.querySelector(\"body\");\n body.style.overflow = \"auto\";\n\n // Add class .close for 0.6s for SCSS animation\n this.element.classList.add(\"close\");\n setTimeout(() => {\n this.element.classList.remove(\"close\");\n // Reset turbo-frame\n const frame = this.element.querySelector(\"turbo-frame#trboFrameContent\");\n frame.innerHTML = \"\";\n frame.src = \"\";\n this.loaderTarget.classList.remove(\"hidden\");\n }, 600);\n }\n\n onTurboLoad() {\n this.loaderTarget.classList.add(\"hidden\");\n }\n}\n","var map = {\n\t\"./MBA/alert/component.js\": 18005,\n\t\"./MBA/avatar/component.js\": 69830,\n\t\"./MBA/button/component.js\": 37519,\n\t\"./MBA/card/component.js\": 60757,\n\t\"./MBA/form/file_field/component.js\": 16569,\n\t\"./MBA/form/file_field/component_controller.js\": 65620,\n\t\"./MBA/form/toggle_field/component.js\": 503,\n\t\"./MBA/form/toggle_field/component_controller.js\": 82322,\n\t\"./MBA/gallery/component.js\": 84949,\n\t\"./MBA/gallery/component_controller.js\": 18088,\n\t\"./MBA/heading/component.js\": 949,\n\t\"./MBA/hero/component.js\": 62931,\n\t\"./MBA/link/component.js\": 41603,\n\t\"./MBA/modal/component.js\": 53910,\n\t\"./MBA/modal/component_controller.js\": 69761,\n\t\"./MBA/pill/component.js\": 62268,\n\t\"./MBA/tab/component.js\": 48872,\n\t\"./MBA/tab/component_controller.js\": 94723,\n\t\"./OQORO/autocomplete/component.js\": 74303,\n\t\"./OQORO/autocomplete/component_controller.js\": 53322,\n\t\"./OQORO/badge/component.js\": 17788,\n\t\"./OQORO/card_shape/component.js\": 49335,\n\t\"./OQORO/colors/component.js\": 97863,\n\t\"./OQORO/drawer/component.js\": 59850,\n\t\"./OQORO/drawer/component_controller.js\": 76301,\n\t\"./OQORO/form/file_field/component.js\": 57497,\n\t\"./OQORO/form/file_field/component_controller.js\": 1332,\n\t\"./OQORO/form/input_field/component.js\": 56429,\n\t\"./OQORO/inputs/checkbox_button/component.js\": 63963,\n\t\"./OQORO/inputs/checkbox_button/component_controller.js\": 93118,\n\t\"./OQORO/panel/component.js\": 41893,\n\t\"./OQORO/panel/component_controller.js\": 43576,\n\t\"./OQORO/tab/component.js\": 85896,\n\t\"./OQORO/tab/component_controller.js\": 94563,\n\t\"./OQORO/typo/component.js\": 29133,\n\t\"./accordion/component.js\": 33656,\n\t\"./accordion/component_controller.js\": 979,\n\t\"./admin/color_input/component.js\": 79682,\n\t\"./admin/color_input/component_controller.js\": 87733,\n\t\"./admin_sidebar/component.js\": 6650,\n\t\"./admin_sidebar/component_controller.js\": 34557,\n\t\"./agenda/component.js\": 46448,\n\t\"./agenda/component_controller.js\": 62395,\n\t\"./alert/component.js\": 51292,\n\t\"./alert/component_controller.js\": 53455,\n\t\"./avatar/component.js\": 71557,\n\t\"./badge/component.js\": 91389,\n\t\"./breadcrumb/component.js\": 74329,\n\t\"./burger/component.js\": 32561,\n\t\"./burger/component_controller.js\": 220,\n\t\"./button/component.js\": 41888,\n\t\"./button_group/component.js\": 42684,\n\t\"./card/component.js\": 39022,\n\t\"./card/component_controller.js\": 36009,\n\t\"./chip/component.js\": 91058,\n\t\"./clipboard/component_controller.js\": 47059,\n\t\"./concerns/dialog_confirmable_controller.js\": 26190,\n\t\"./container/page/component.js\": 34055,\n\t\"./datagrid/component.js\": 50052,\n\t\"./datagrid/component_controller.js\": 30919,\n\t\"./datatable/component.js\": 13742,\n\t\"./datatable/component_controller.js\": 32169,\n\t\"./dropdown/component.js\": 65149,\n\t\"./dropdown/component_controller.js\": 92256,\n\t\"./dropzone/component.js\": 83107,\n\t\"./dropzone/component_controller.js\": 72086,\n\t\"./file_explorer/component.js\": 16066,\n\t\"./form/address_field/component.js\": 51986,\n\t\"./form/address_field/component_controller.js\": 85317,\n\t\"./form/code_field/component.js\": 39651,\n\t\"./form/code_field/component_controller.js\": 35254,\n\t\"./form/collection_check_boxes/component.js\": 15948,\n\t\"./form/collection_check_buttons/component.js\": 29792,\n\t\"./form/collection_check_buttons/component_controller.js\": 34571,\n\t\"./form/collection_radio_buttons/component.js\": 62147,\n\t\"./form/collection_select/component.js\": 39748,\n\t\"./form/collection_select/component_controller.js\": 25159,\n\t\"./form/component.js\": 80546,\n\t\"./form/component_controller.js\": 64149,\n\t\"./form/counter_field/component.js\": 3130,\n\t\"./form/counter_field/component_controller.js\": 31901,\n\t\"./form/date_field/component.js\": 21206,\n\t\"./form/event_field/component.js\": 93398,\n\t\"./form/event_field/component_controller.js\": 75777,\n\t\"./form/fields_for/component.js\": 34476,\n\t\"./form/fields_for/component_controller.js\": 61279,\n\t\"./form/file_field/component.js\": 97672,\n\t\"./form/file_field/component_controller.js\": 78435,\n\t\"./form/iban_field/component.js\": 12034,\n\t\"./form/iban_field/component_controller.js\": 93909,\n\t\"./form/iban_input/component.js\": 72638,\n\t\"./form/iban_input/component_controller.js\": 30457,\n\t\"./form/min_max_input/component.js\": 22303,\n\t\"./form/min_max_input/component_controller.js\": 15594,\n\t\"./form/multiselect/component.js\": 65544,\n\t\"./form/multiselect/component_controller.js\": 70179,\n\t\"./form/number_input/component.js\": 41563,\n\t\"./form/number_input/component_controller.js\": 96126,\n\t\"./form/phone_field/component_controller.js\": 55981,\n\t\"./form/radio_button/component.js\": 8461,\n\t\"./form/range/component.js\": 96948,\n\t\"./form/range/component_controller.js\": 3831,\n\t\"./form/select_input/component.js\": 23198,\n\t\"./form/select_input/component_controller.js\": 64057,\n\t\"./form/text_area/component.js\": 30812,\n\t\"./form/text_area/component_controller.js\": 93167,\n\t\"./form/text_field/component.js\": 60393,\n\t\"./form/time_field/component.js\": 21511,\n\t\"./form/toggle_field/component.js\": 41266,\n\t\"./form/toggle_field/component_controller.js\": 83237,\n\t\"./frame/component.js\": 13191,\n\t\"./heading/component.js\": 10980,\n\t\"./helpbot/component.js\": 31302,\n\t\"./label/component.js\": 94344,\n\t\"./lightbox/component.js\": 2021,\n\t\"./lightbox/component_controller.js\": 27992,\n\t\"./map/component.js\": 49200,\n\t\"./map/component_controller.js\": 42139,\n\t\"./map_autocomplete/component.js\": 90279,\n\t\"./map_autocomplete/component_controller.js\": 22946,\n\t\"./modal/component.js\": 36499,\n\t\"./modal/component_controller.js\": 68614,\n\t\"./navbar/component.js\": 65490,\n\t\"./navbar/component_controller.js\": 64197,\n\t\"./notification/component.js\": 8011,\n\t\"./notification/component_controller.js\": 67118,\n\t\"./omnibar/component.js\": 22496,\n\t\"./omnibar/component_controller.js\": 15851,\n\t\"./pagination/component.js\": 58676,\n\t\"./popover/component.js\": 74667,\n\t\"./popover/component_controller.js\": 72782,\n\t\"./read_more/component.js\": 82554,\n\t\"./read_more/component_controller.js\": 87837,\n\t\"./scroller/component.js\": 20142,\n\t\"./scroller/component_controller.js\": 24233,\n\t\"./share_button/component.js\": 86620,\n\t\"./share_button/component_controller.js\": 58607,\n\t\"./sidebar/component.js\": 37398,\n\t\"./sidebar/component_controller.js\": 21729,\n\t\"./slide_over/component.js\": 37752,\n\t\"./slide_over/component_controller.js\": 70323,\n\t\"./slider/component.js\": 27317,\n\t\"./slider/component_controller.js\": 26491,\n\t\"./slideshow/component.js\": 94782,\n\t\"./slideshow/component_controller.js\": 24473,\n\t\"./stepper/component.js\": 58415,\n\t\"./tab/component.js\": 83109,\n\t\"./tab/component_controller.js\": 8984,\n\t\"./title_bar/component.js\": 20218\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 = 43962;","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"businessPartnerSelectInput\", \"landlordsSelectInput\", \"moralLandlordsSelectInput\", \"encadrementUrlInput\", \"constructionPeriodInput\", \"propertyTypeIdInput\", \"constructionDateInput\", \"referenceRentInput\"];\n\n // MAJ de l'encadrement du loyer\n propertyGetAndSetEncadrementValue() {\n if (!this.hasEncadrementUrlInputTarget) {\n return false;\n }\n\n const constructionDate = this.constructionDateInputTarget.value;\n const constructionPeriod = this.constructionPeriodInputTarget.value && this.constructionPeriodInputTarget.value[0].value;\n const propertyTypeId = this.propertyTypeIdInputTarget.value && this.propertyTypeIdInputTarget.value[0].value;\n\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n fetch(this.encadrementUrlInputTarget.value, {\n method: \"POST\",\n body: JSON.stringify({\n construction_date: constructionDate,\n construction_period: constructionPeriod,\n property_type_id: propertyTypeId,\n }),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n })\n .then((response) => response.json())\n .then((response) => {\n const encadrementRef = this.referenceRentInputTarget;\n const oldValue = encadrementRef.value;\n\n if (response.reference_value && oldValue !== response.reference_value) {\n encadrementRef.value = response.reference_value;\n encadrementRef.dispatchEvent(new Event(\"change\"));\n alert(\"Loyer de référence par m2:\\nNouvelle valeur: \" + response.reference_value + \"\\nAncienne valeur: \" + oldValue);\n }\n });\n }\n\n\n // EN STANDBY, NE FONCTIONNE PAS, IL FAUT FAIRE UNE MECANIQUE GENERIQUE DE DEPENDANCE DES INPUTS\n updateLandlordsFromBusinessPartner(e) {\n // const businessPartnerId = this.businessPartnerSelectInputTarget.value[0].value;\n // this.landlordsSelectInputTarget.dataset.ajaxUrl = `/admin/landlords/landlords_by_business_partner_options?business_partner_id=${businessPartnerId}`;\n // this.landlordsSelectInputTarget.setAttribute(\n // \"ajax--url\",\n // `/admin/landlords/landlords_by_business_partner_options?business_partner_id=${businessPartnerId}`\n // );\n // this.moralLandlordsSelectInputTarget.dataset.ajaxUrl = `/admin/moral_landlords/moral_landlords_by_business_partner_options?business_partner_id=${businessPartnerId}`;\n // this.moralLandlordsSelectInputTarget.setAttribute(\n // \"ajax--url\",\n // `/admin/moral_landlords/moral_landlords_by_business_partner_options?business_partner_id=${businessPartnerId}`\n // );\n // this.initSearchableSelects(this.landlordsSelectInputTarget);\n // this.initSearchableSelects(this.moralLandlordsSelectInputTarget);\n }\n\n // Re-définition de la fonction pour pouvoir re-appeler la route pour le searchable_select\n // initSearchableSelects(inputs, extra) {\n // inputs.each(function () {\n // var item = $(this);\n\n // // reading from data allows \n // // to be passed to select2\n // var options = $.extend(extra || {}, item.data(\"searchableSelect\"));\n // var url = item.data(\"ajaxUrl\");\n\n // if (url) {\n // $.extend(options, {\n // ajax: {\n // url: url,\n // dataType: \"json\",\n\n // data: function (params) {\n // return {\n // term: params.term,\n // page: pageParamWithBaseZero(params),\n // };\n // },\n // },\n // });\n // }\n\n // item.select2(options);\n // });\n // }\n\n // pageParamWithBaseZero(params) {\n // return params.page ? params.page - 1 : undefined;\n // }\n}\n","import Clipboard from 'stimulus-clipboard'\n\nexport default class extends Clipboard {\n static values = {value: String, successContent: String}\n\n connect() {\n super.connect()\n const input = document.createElement(\"input\");\n input.type = \"hidden\";\n input.value = this.hasValueValue ? this.valueValue : \"\";\n input.setAttribute(\"data-clipboard--component-target\", \"source\");\n this.element.appendChild(input);\n }\n copy(e) {\n try {\n super.copy(e)\n } catch (err) {\n }\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"elementRow\", \"elementBloc\", \"searchForm\", \"searchInput\"]\n\n initialize() {\n this.search = this.search.bind(this)\n }\n\n connect() {\n // Initialize search form\n this.searchFormTarget.addEventListener(\"submit\", this.search)\n this.searchInputTarget.addEventListener(\"change\", this.search)\n }\n\n disconnect() {\n this.searchFormTarget.removeEventListener(\"submit\", this.search)\n this.searchInputTarget.removeEventListener(\"change\", this.search)\n }\n\n search(e) {\n e.preventDefault()\n const searchValue = this.searchInputTarget.value?.trim()\n\n if (!searchValue) {\n for (var i = 0; i < this.elementRowTargets.length; i++) {\n const row = this.elementRowTargets[i]\n row.classList.remove(\"hidden\")\n }\n for (i = 0; i < this.elementBlocTargets.length; i++) {\n const bloc = this.elementBlocTargets[i]\n bloc.classList.remove(\"hidden\")\n }\n return false\n }\n\n const expr = new RegExp(`${searchValue}`, \"i\")\n\n for (var i = 0; i < this.elementRowTargets.length; i++) {\n const row = this.elementRowTargets[i]\n if (expr.test(row.textContent)) {\n //match has been made\n row.classList.remove(\"hidden\")\n } else {\n row.classList.add(\"hidden\")\n }\n }\n\n for (i = 0; i < this.elementBlocTargets.length; i++) {\n const bloc = this.elementBlocTargets[i]\n\n const rows = bloc.querySelectorAll(\".elementRow:not(.hidden)\")\n if (rows.length) {\n bloc.classList.remove(\"hidden\")\n } else {\n bloc.classList.add(\"hidden\")\n }\n }\n return false\n }\n}","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"autocompleteInput\", \"autocompleteList\"];\n\n static values = { apiUrl: String };\n\n navKeys = [\"Enter\", \"ArrowUp\", \"ArrowDown\"];\n currentActiveElement = -1;\n _dropdownController = null;\n selectionList = [];\n\n initialize() {\n this.element[this.identifier] = this;\n this.onInputEvent = this.onInputEvent.bind(this);\n this.onKeydownEvent = this.onKeydownEvent.bind(this);\n this.onClickEvent = this.onClickEvent.bind(this);\n }\n\n connect() {\n this.autocompleteInputTarget.addEventListener(\"input\", this.onInputEvent);\n this.autocompleteInputTarget.addEventListener(\"keydown\", this.onKeydownEvent);\n this.autocompleteInputTarget.addEventListener(\"click\", this.onClickEvent);\n }\n\n disconnect() {\n this.autocompleteInputTarget.removeEventListener(\"input\", this.onInputEvent);\n this.autocompleteInputTarget.removeEventListener(\"keydown\", this.onKeydownEvent);\n this.autocompleteInputTarget.removeEventListener(\"click\", this.onClickEvent);\n }\n\n fillAutocompleteList(results = []) {\n this.currentActiveElement = -1;\n this.autocompleteListTarget.innerHTML = \"\";\n results.forEach((result) => {\n let item = document.createElement(\"li\");\n let textElem = document.createElement(\"span\");\n textElem.innerText = result.name;\n\n // On désactive les propriétaires moraux si un propriétaire physique est sélectionné\n if (this.selectionList.map((e) => e.type).includes(\"Landlord\") && result.type === \"MoralLandlord\") item.classList.add(\"autocompleteList__item--disabled\");\n\n if (this.selectionList.map((e) => e.name).includes(result.name)) item.classList.add(\"autocompleteList__item--disabled-selected\");\n item.appendChild(textElem);\n item.tabIndex = 1;\n item.classList.add(\"autocompleteList__item\");\n item.dataset.action = \"click->dropdown--component#hide\";\n item.dataset.landlord_type = result.type;\n item.addEventListener(\n \"click\",\n ((e) => {\n this.selectResult(result);\n }).bind(this)\n );\n this.autocompleteListTarget.append(item);\n });\n if (!results.length) {\n let element = document.createElement(\"span\");\n element.classList.add(\"tempMsg\");\n element.innerText = \"Aucun résultat trouvé\";\n this.autocompleteListTarget.append(element);\n }\n }\n\n async search(query) {\n let element = document.createElement(\"span\");\n element.classList.add(\"tempMsg\");\n element.innerText = \"Recherche en cours...\";\n !this.autocompleteListTarget.children.length && this.autocompleteListTarget.append(element);\n\n const apiURL = `${this.apiUrlValue}&search=${query}`;\n try {\n const response = await fetch(apiURL);\n const { results } = await response.json();\n\n return results;\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n }\n }\n\n selectResult(result) {\n this.selectionList.push(result);\n this.dispatchCustomEvent();\n }\n\n dispatchCustomEvent() {\n const newSelection = new CustomEvent(\"selection\", {\n detail: {\n resultList: this.selectionList,\n },\n });\n this.element.dispatchEvent(newSelection);\n }\n\n deleteResult(itemToRemove) {\n const index = this.selectionList.indexOf(itemToRemove);\n if (index > -1) {\n this.selectionList.splice(index, 1);\n }\n this.dispatchCustomEvent();\n }\n\n getDropdownController() {\n return (\n this._dropdownController || (this._dropdownController = this.element.querySelector(\"[data-controller='dropdown--component']\")[\"dropdown--component\"])\n );\n }\n\n onClickEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n this.autocompleteInputTarget.dispatchEvent(new Event(\"input\"));\n }\n\n onInputEvent(e) {\n let target = e.currentTarget;\n if (!this.element.classList.contains(\"autocomplete--disabled\")) this.getDropdownController().toggle();\n this.search(target.value).then(\n ((results) => {\n this.fillAutocompleteList(results);\n }).bind(this)\n );\n }\n\n onKeydownEvent(e) {\n if (!this.navKeys.includes(e.key)) return true;\n e.preventDefault();\n this.handleKeyboardNav(e);\n }\n\n // Navigation au clavier dans le dropdown\n handleKeyboardNav(event = {}) {\n const key = event.key;\n\n let resultsList = this.autocompleteListTarget.children;\n this.autocompleteListTarget.querySelectorAll(\"li.active\").forEach((element) => {\n element.classList.remove(\"active\");\n });\n\n if (key === \"ArrowDown\") {\n let currentActiveElementIsNotLastItem = this.currentActiveElement < resultsList.length - 1;\n if (currentActiveElementIsNotLastItem) {\n this.currentActiveElement++;\n }\n } else if (key === \"ArrowUp\") {\n let currentActiveElementIsNotFirstItem = this.currentActiveElement > 0;\n if (currentActiveElementIsNotFirstItem) {\n this.currentActiveElement--;\n }\n }\n\n let currentListItem = null;\n if (this.currentActiveElement >= 0) {\n currentListItem = resultsList[this.currentActiveElement];\n if (currentListItem.tagName === \"SPAN\") return;\n currentListItem.classList.add(\"active\");\n }\n\n if (key === \"Enter\" && currentListItem) {\n currentListItem.click();\n this.currentActiveElement = -1;\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = ['alertElem'];\n static values = { autoDismiss: Boolean }\n\n connect() {\n const elem = this.alertElemTarget;\n if (this.autoDismissValue === true) {\n setTimeout(function(){\n elem.remove();\n }, 2500);\n }\n }\n}\n","import { Application } from \"@hotwired/stimulus\"\nimport { definitionsFromContext } from \"@hotwired/stimulus-webpack-helpers\"\nimport Dropdown from \"stimulus-dropdown\";\nimport Notification from \"stimulus-notification\";\n\nconst application = Application.start()\n\napplication.register('dropdown', Dropdown)\napplication.register('notification', Notification)\n\nconst context = require.context(\".\", true, /\\.js$/)\nconst contextComponents = require.context(\"../../../components/\", true, /^.*(_controller|component)\\.js$/)\nconst contextComponents2 = require.context(\"../../../components/admin\", true, /^.*(_controller|component)\\.js$/)\n\napplication.load(\n definitionsFromContext(context).concat(\n definitionsFromContext(contextComponents),\n definitionsFromContext(contextComponents2),\n )\n)\n","import {Controller} from \"@hotwired/stimulus\"\nimport intlTelInput from \"intl-tel-input\";\n\nexport default class extends Controller {\n #errorMap = [\"Numéro invalide\", \"Code pays invalide\", \"Trop court\", \"Trop long\", \"Numéro invalide\", \"Numéro invalide\"];\n #iti;\n #input\n #inputName\n\n initialize() {\n this.#input = this.element\n this.onInput = this.onInput.bind(this)\n this.#inputName = this.#input.getAttribute(\"name\")\n // Temporary modify name attribute so iti can initialize properly (it cannot add the hidden field if name is already used)\n this.#input.setAttribute(\"name\", \"iti_phone\")\n this.loadScript();\n this.#input.setAttribute(\"name\", `_${this.#inputName}`)\n }\n\n async loadScript() {\n this.#iti = intlTelInput(this.#input, {\n initialCountry: \"fr\",\n hiddenInput: (telInputName) => ({\n phone: this.#inputName,\n }),\n loadUtils: () => import(\"intl-tel-input/utils\"),\n });\n this.element.addEventListener('input', this.onInput)\n this.element.addEventListener('change', this.onChange)\n };\n\n onInput() {\n this.reset();\n this.#iti.hiddenInput.value = this.#iti.getNumber()\n if (this.element.value.trim()) {\n if (this.#iti.isValidNumber()) {\n } else {\n const inputGroup = this.element.closest('.oq-input-group')\n if (inputGroup) {\n let errorNode = inputGroup.querySelector(\".field-error\")\n if (!errorNode) {\n errorNode = document.createElement('div')\n errorNode.classList.add('field-error')\n }\n var errorCode = this.#iti.getValidationError();\n errorNode.innerHTML = errorCode in this.#errorMap ? this.#errorMap[errorCode] : \"Numéro invalide\";\n inputGroup.appendChild(errorNode)\n }\n }\n }\n }\n\n reset() {\n this.element.classList.remove('is-danger')\n const errorNode = this.element.closest('.oq-input-group').querySelector(\".field-error\")\n if (errorNode)\n errorNode.remove()\n };\n\n}\n","var map = {\n\t\"./af\": 44187,\n\t\"./af.js\": 44187,\n\t\"./ar\": 9039,\n\t\"./ar-dz\": 8570,\n\t\"./ar-dz.js\": 8570,\n\t\"./ar-kw\": 92234,\n\t\"./ar-kw.js\": 92234,\n\t\"./ar-ly\": 70367,\n\t\"./ar-ly.js\": 70367,\n\t\"./ar-ma\": 52726,\n\t\"./ar-ma.js\": 52726,\n\t\"./ar-ps\": 67525,\n\t\"./ar-ps.js\": 67525,\n\t\"./ar-sa\": 84996,\n\t\"./ar-sa.js\": 84996,\n\t\"./ar-tn\": 55302,\n\t\"./ar-tn.js\": 55302,\n\t\"./ar.js\": 9039,\n\t\"./az\": 5703,\n\t\"./az.js\": 5703,\n\t\"./be\": 10161,\n\t\"./be.js\": 10161,\n\t\"./bg\": 56111,\n\t\"./bg.js\": 56111,\n\t\"./bm\": 61577,\n\t\"./bm.js\": 61577,\n\t\"./bn\": 11216,\n\t\"./bn-bd\": 63627,\n\t\"./bn-bd.js\": 63627,\n\t\"./bn.js\": 11216,\n\t\"./bo\": 34439,\n\t\"./bo.js\": 34439,\n\t\"./br\": 17396,\n\t\"./br.js\": 17396,\n\t\"./bs\": 33275,\n\t\"./bs.js\": 33275,\n\t\"./ca\": 64148,\n\t\"./ca.js\": 64148,\n\t\"./cs\": 25358,\n\t\"./cs.js\": 25358,\n\t\"./cv\": 56913,\n\t\"./cv.js\": 56913,\n\t\"./cy\": 17340,\n\t\"./cy.js\": 17340,\n\t\"./da\": 46367,\n\t\"./da.js\": 46367,\n\t\"./de\": 50843,\n\t\"./de-at\": 25329,\n\t\"./de-at.js\": 25329,\n\t\"./de-ch\": 80975,\n\t\"./de-ch.js\": 80975,\n\t\"./de.js\": 50843,\n\t\"./dv\": 12526,\n\t\"./dv.js\": 12526,\n\t\"./el\": 33001,\n\t\"./el.js\": 33001,\n\t\"./en-au\": 85094,\n\t\"./en-au.js\": 85094,\n\t\"./en-ca\": 46540,\n\t\"./en-ca.js\": 46540,\n\t\"./en-gb\": 77905,\n\t\"./en-gb.js\": 77905,\n\t\"./en-ie\": 74158,\n\t\"./en-ie.js\": 74158,\n\t\"./en-il\": 89445,\n\t\"./en-il.js\": 89445,\n\t\"./en-in\": 80483,\n\t\"./en-in.js\": 80483,\n\t\"./en-nz\": 99704,\n\t\"./en-nz.js\": 99704,\n\t\"./en-sg\": 73850,\n\t\"./en-sg.js\": 73850,\n\t\"./eo\": 57520,\n\t\"./eo.js\": 57520,\n\t\"./es\": 75092,\n\t\"./es-do\": 77848,\n\t\"./es-do.js\": 77848,\n\t\"./es-mx\": 1760,\n\t\"./es-mx.js\": 1760,\n\t\"./es-us\": 97785,\n\t\"./es-us.js\": 97785,\n\t\"./es.js\": 75092,\n\t\"./et\": 60161,\n\t\"./et.js\": 60161,\n\t\"./eu\": 92530,\n\t\"./eu.js\": 92530,\n\t\"./fa\": 99849,\n\t\"./fa.js\": 99849,\n\t\"./fi\": 48433,\n\t\"./fi.js\": 48433,\n\t\"./fil\": 30425,\n\t\"./fil.js\": 30425,\n\t\"./fo\": 89803,\n\t\"./fo.js\": 89803,\n\t\"./fr\": 84832,\n\t\"./fr-ca\": 98161,\n\t\"./fr-ca.js\": 98161,\n\t\"./fr-ch\": 95418,\n\t\"./fr-ch.js\": 95418,\n\t\"./fr.js\": 84832,\n\t\"./fy\": 69537,\n\t\"./fy.js\": 69537,\n\t\"./ga\": 15232,\n\t\"./ga.js\": 15232,\n\t\"./gd\": 33491,\n\t\"./gd.js\": 33491,\n\t\"./gl\": 1947,\n\t\"./gl.js\": 1947,\n\t\"./gom-deva\": 32638,\n\t\"./gom-deva.js\": 32638,\n\t\"./gom-latn\": 26937,\n\t\"./gom-latn.js\": 26937,\n\t\"./gu\": 98140,\n\t\"./gu.js\": 98140,\n\t\"./he\": 54479,\n\t\"./he.js\": 54479,\n\t\"./hi\": 90243,\n\t\"./hi.js\": 90243,\n\t\"./hr\": 3966,\n\t\"./hr.js\": 3966,\n\t\"./hu\": 91583,\n\t\"./hu.js\": 91583,\n\t\"./hy-am\": 49906,\n\t\"./hy-am.js\": 49906,\n\t\"./id\": 10533,\n\t\"./id.js\": 10533,\n\t\"./is\": 65312,\n\t\"./is.js\": 65312,\n\t\"./it\": 8341,\n\t\"./it-ch\": 67985,\n\t\"./it-ch.js\": 67985,\n\t\"./it.js\": 8341,\n\t\"./ja\": 55093,\n\t\"./ja.js\": 55093,\n\t\"./jv\": 68720,\n\t\"./jv.js\": 68720,\n\t\"./ka\": 74108,\n\t\"./ka.js\": 74108,\n\t\"./kk\": 65774,\n\t\"./kk.js\": 65774,\n\t\"./km\": 99352,\n\t\"./km.js\": 99352,\n\t\"./kn\": 97329,\n\t\"./kn.js\": 97329,\n\t\"./ko\": 29442,\n\t\"./ko.js\": 29442,\n\t\"./ku\": 67904,\n\t\"./ku-kmr\": 76447,\n\t\"./ku-kmr.js\": 76447,\n\t\"./ku.js\": 67904,\n\t\"./ky\": 4564,\n\t\"./ky.js\": 4564,\n\t\"./lb\": 81754,\n\t\"./lb.js\": 81754,\n\t\"./lo\": 2253,\n\t\"./lo.js\": 2253,\n\t\"./lt\": 7756,\n\t\"./lt.js\": 7756,\n\t\"./lv\": 3158,\n\t\"./lv.js\": 3158,\n\t\"./me\": 65866,\n\t\"./me.js\": 65866,\n\t\"./mi\": 26686,\n\t\"./mi.js\": 26686,\n\t\"./mk\": 38484,\n\t\"./mk.js\": 38484,\n\t\"./ml\": 52353,\n\t\"./ml.js\": 52353,\n\t\"./mn\": 33535,\n\t\"./mn.js\": 33535,\n\t\"./mr\": 89667,\n\t\"./mr.js\": 89667,\n\t\"./ms\": 91676,\n\t\"./ms-my\": 30527,\n\t\"./ms-my.js\": 30527,\n\t\"./ms.js\": 91676,\n\t\"./mt\": 82665,\n\t\"./mt.js\": 82665,\n\t\"./my\": 99694,\n\t\"./my.js\": 99694,\n\t\"./nb\": 63992,\n\t\"./nb.js\": 63992,\n\t\"./ne\": 21197,\n\t\"./ne.js\": 21197,\n\t\"./nl\": 91686,\n\t\"./nl-be\": 54178,\n\t\"./nl-be.js\": 54178,\n\t\"./nl.js\": 91686,\n\t\"./nn\": 63868,\n\t\"./nn.js\": 63868,\n\t\"./oc-lnc\": 96344,\n\t\"./oc-lnc.js\": 96344,\n\t\"./pa-in\": 76807,\n\t\"./pa-in.js\": 76807,\n\t\"./pl\": 11976,\n\t\"./pl.js\": 11976,\n\t\"./pt\": 78608,\n\t\"./pt-br\": 40865,\n\t\"./pt-br.js\": 40865,\n\t\"./pt.js\": 78608,\n\t\"./ro\": 35095,\n\t\"./ro.js\": 35095,\n\t\"./ru\": 99921,\n\t\"./ru.js\": 99921,\n\t\"./sd\": 83375,\n\t\"./sd.js\": 83375,\n\t\"./se\": 32664,\n\t\"./se.js\": 32664,\n\t\"./si\": 98364,\n\t\"./si.js\": 98364,\n\t\"./sk\": 76710,\n\t\"./sk.js\": 76710,\n\t\"./sl\": 80039,\n\t\"./sl.js\": 80039,\n\t\"./sq\": 54228,\n\t\"./sq.js\": 54228,\n\t\"./sr\": 82429,\n\t\"./sr-cyrl\": 3076,\n\t\"./sr-cyrl.js\": 3076,\n\t\"./sr.js\": 82429,\n\t\"./ss\": 98686,\n\t\"./ss.js\": 98686,\n\t\"./sv\": 81825,\n\t\"./sv.js\": 81825,\n\t\"./sw\": 90898,\n\t\"./sw.js\": 90898,\n\t\"./ta\": 70543,\n\t\"./ta.js\": 70543,\n\t\"./te\": 17547,\n\t\"./te.js\": 17547,\n\t\"./tet\": 4479,\n\t\"./tet.js\": 4479,\n\t\"./tg\": 77037,\n\t\"./tg.js\": 77037,\n\t\"./th\": 43056,\n\t\"./th.js\": 43056,\n\t\"./tk\": 92361,\n\t\"./tk.js\": 92361,\n\t\"./tl-ph\": 52201,\n\t\"./tl-ph.js\": 52201,\n\t\"./tlh\": 74446,\n\t\"./tlh.js\": 74446,\n\t\"./tr\": 78066,\n\t\"./tr.js\": 78066,\n\t\"./tzl\": 89284,\n\t\"./tzl.js\": 89284,\n\t\"./tzm\": 11307,\n\t\"./tzm-latn\": 53949,\n\t\"./tzm-latn.js\": 53949,\n\t\"./tzm.js\": 11307,\n\t\"./ug-cn\": 55156,\n\t\"./ug-cn.js\": 55156,\n\t\"./uk\": 1548,\n\t\"./uk.js\": 1548,\n\t\"./ur\": 64299,\n\t\"./ur.js\": 64299,\n\t\"./uz\": 87747,\n\t\"./uz-latn\": 96021,\n\t\"./uz-latn.js\": 96021,\n\t\"./uz.js\": 87747,\n\t\"./vi\": 39521,\n\t\"./vi.js\": 39521,\n\t\"./x-pseudo\": 78129,\n\t\"./x-pseudo.js\": 78129,\n\t\"./yo\": 83348,\n\t\"./yo.js\": 83348,\n\t\"./zh-cn\": 5902,\n\t\"./zh-cn.js\": 5902,\n\t\"./zh-hk\": 98994,\n\t\"./zh-hk.js\": 98994,\n\t\"./zh-mo\": 71047,\n\t\"./zh-mo.js\": 71047,\n\t\"./zh-tw\": 44250,\n\t\"./zh-tw.js\": 44250\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 = 56857;","var map = {\n\t\"./addendums/clauses_form_controller.js\": 36400,\n\t\"./addendums/new_with_expenses_controller.js\": 85598,\n\t\"./applications_controller.js\": 12690,\n\t\"./business_partners_controller.js\": 85157,\n\t\"./calendar_event_actions_controller.js\": 61228,\n\t\"./city_managers_cities_controller.js\": 29117,\n\t\"./index.js\": 54554,\n\t\"./interventions/form_controller.js\": 19880,\n\t\"./inventories/form_controller.js\": 36950,\n\t\"./inventories/trame_controller.js\": 52073,\n\t\"./keynest_collection_codes/form_controller.js\": 22447,\n\t\"./keysets/form_controller.js\": 38464,\n\t\"./leases/form_controller.js\": 88459,\n\t\"./lots/form_controller.js\": 99940,\n\t\"./omnibar_controller.js\": 89291,\n\t\"./properties/form_controller.js\": 46049,\n\t\"./properties/import_multiple_docs_controller.js\": 68903,\n\t\"./properties/photo_organizer_controller.js\": 84767,\n\t\"./properties/store_association_controller.js\": 75510,\n\t\"./supervisor/city_managers/form_controller.js\": 75613,\n\t\"./tasks/datagrid_controller.js\": 92238,\n\t\"./tasks/form_controller.js\": 38664,\n\t\"./zen_ticketings/form_controller.js\": 88299,\n\t\"controllers/admin/addendums/clauses_form_controller.js\": 36400,\n\t\"controllers/admin/addendums/new_with_expenses_controller.js\": 85598,\n\t\"controllers/admin/applications_controller.js\": 12690,\n\t\"controllers/admin/business_partners_controller.js\": 85157,\n\t\"controllers/admin/calendar_event_actions_controller.js\": 61228,\n\t\"controllers/admin/city_managers_cities_controller.js\": 29117,\n\t\"controllers/admin/index.js\": 54554,\n\t\"controllers/admin/interventions/form_controller.js\": 19880,\n\t\"controllers/admin/inventories/form_controller.js\": 36950,\n\t\"controllers/admin/inventories/trame_controller.js\": 52073,\n\t\"controllers/admin/keynest_collection_codes/form_controller.js\": 22447,\n\t\"controllers/admin/keysets/form_controller.js\": 38464,\n\t\"controllers/admin/leases/form_controller.js\": 88459,\n\t\"controllers/admin/lots/form_controller.js\": 99940,\n\t\"controllers/admin/omnibar_controller.js\": 89291,\n\t\"controllers/admin/properties/form_controller.js\": 46049,\n\t\"controllers/admin/properties/import_multiple_docs_controller.js\": 68903,\n\t\"controllers/admin/properties/photo_organizer_controller.js\": 84767,\n\t\"controllers/admin/properties/store_association_controller.js\": 75510,\n\t\"controllers/admin/supervisor/city_managers/form_controller.js\": 75613,\n\t\"controllers/admin/tasks/datagrid_controller.js\": 92238,\n\t\"controllers/admin/tasks/form_controller.js\": 38664,\n\t\"controllers/admin/zen_ticketings/form_controller.js\": 88299\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 = 57349;","import { Controller } from \"@hotwired/stimulus\";\n\nimport \"stylesheets/app/catalog/search.scss\";\n\nexport default class extends Controller {\n initialize() {\n this.hideAllActionsElem = this.hideAllActionsElem.bind(this);\n }\n\n connect() {\n document.addEventListener(\"click\", this.hideAllActionsElem);\n }\n\n disconnect() {\n document.removeEventListener(\"click\", this.hideAllActionsElem);\n }\n\n displayActions(event) {\n const elem = event.target;\n this.removeOpenActionsElem();\n\n let div = document.createElement(\"div\");\n div.classList.add(\"event-actions-wrapper\");\n // Show link\n let show_link = document.createElement(\"a\");\n show_link.appendChild(document.createTextNode(\"👁️\"));\n show_link.title = \"Voir l'évènement\"\n show_link.href = elem.dataset.showEventPath;\n div.append(show_link);\n // Edit link\n if (elem.dataset.editEventPath !== '' && elem.dataset.editEventPath !== null) {\n let edit_link = document.createElement(\"a\");\n edit_link.appendChild(document.createTextNode(\"✏️\"));\n edit_link.title = \"Modifier l'évènement\"\n edit_link.href = elem.dataset.editEventPath;\n div.append(edit_link);\n }\n // Delete link\n if (elem.dataset.destroyEventPath !== '' && elem.dataset.destroyEventPath !== null) {\n let destroy_link = document.createElement('div');\n destroy_link.innerHTML = elem.dataset.destroyEventPath.trim();\n div.append(destroy_link);\n }\n elem.classList.add('active');\n elem.append(div);\n }\n\n removeOpenActionsElem() {\n document.querySelectorAll('.event-actions-wrapper').forEach((wrapperElem) => {\n wrapperElem.remove();\n });\n }\n\n hideAllActionsElem(e) {\n if (e.target === 'undefined' || e.target.classList.contains('event'))\n return;\n this.removeOpenActionsElem();\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"template\", \"container\", \"addButton\"];\n static values = {max: Number}\n\n connect() {\n this.updateButtons()\n }\n\n addNew() {\n let div = document.createElement(\"div\")\n div.className = 'nested-form-container';\n div.setAttribute(\"id\", Date.now());\n div.innerHTML = this.templateTarget.innerHTML.replace(/CHILD_INDEX/g, (Date.now()).toString());\n this.containerTarget.appendChild(div)\n this.triggerChange()\n }\n\n delete(e) {\n const form = e.currentTarget.closest(\".nested-form-container\")\n const destroyInput = form.querySelector(\"input[name$='[_destroy]']\")\n // Handle destroy for persisted objects\n if (destroyInput) {\n destroyInput.value = true\n form.classList.add(\"!hidden\")\n } else {\n form.remove()\n }\n this.triggerChange()\n }\n\n triggerChange() {\n const event = new Event('change');\n this.element.dispatchEvent(event);\n this.updateButtons()\n }\n\n updateButtons() {\n if (!this.hasAddButtonTarget)\n return\n\n const nestedForms = this.element.querySelectorAll(\".nested-form-container\")\n let recordCount = 0\n nestedForms.forEach(f => {\n // Check if _destroy is checked\n const destroy = [\"true\", \"1\"].includes(f.querySelector(\"input[name$='[_destroy]']\")?.value?.toLowerCase())\n if (!destroy)\n recordCount += 1\n })\n if (this.hasMaxValue && this.maxValue > 0 && this.maxValue <= recordCount) {\n this.addButtonTarget.classList.add(\"hidden\")\n } else {\n this.addButtonTarget.classList.remove(\"hidden\")\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\nimport moment from \"moment\";\nimport {template} from \"lodash\";\n\nexport default class extends Controller {\n static targets = [\"displayTitle\", \"slotsContainer\", \"weekDayTemplate\", \"monthDayTemplate\", \"eventTemplate\"];\n static values = { eventsUrl: String, viewScale: String }\n\n #dayTemplate;\n #eventTemplate;\n #viewScale;\n #selected_date;\n #startOfMonth;\n #endOfMonth;\n #startOfWeek;\n #endOfWeek;\n #firstViewDay;\n #lastViewDay;\n #events;\n\n initialize() {\n moment.locale('fr')\n }\n\n connect() {\n this.#eventTemplate = template(this.eventTemplateTarget.innerHTML);\n\n this.#selected_date = moment(new Date());\n this.#viewScale = this.viewScaleValue || 'month';\n\n switch (this.#viewScale) {\n case \"week\":\n this.#dayTemplate = template(this.weekDayTemplateTarget.innerHTML)\n break\n case \"month\":\n this.#dayTemplate = template(this.monthDayTemplateTarget.innerHTML)\n break\n }\n\n this.initializeValues();\n }\n\n initializeValues() {\n this.#startOfMonth = moment(this.#selected_date).startOf('month');\n this.#endOfMonth = moment(this.#selected_date).endOf('month');\n this.#startOfWeek = moment(this.#selected_date).startOf('week');\n this.#endOfWeek = moment(this.#selected_date).endOf('week');\n\n this.#firstViewDay = moment(this.#selected_date)\n this.#lastViewDay = moment(this.#selected_date)\n\n switch (this.#viewScale) {\n case \"week\":\n this.#firstViewDay = moment(this.#startOfWeek)\n this.#lastViewDay = moment(this.#endOfWeek)\n break\n case \"month\":\n this.#firstViewDay = moment(this.#startOfMonth).startOf('week');\n this.#lastViewDay = moment(this.#endOfMonth).endOf('week')\n break\n case \"year\":\n break\n }\n this.renderCalendar();\n }\n\n today() {\n this.#selected_date = moment(new Date());\n this.initializeValues();\n this.renderCalendar();\n }\n\n next() {\n this.#selected_date.add(1, this.#viewScale)\n this.initializeValues();\n }\n\n prev() {\n this.#selected_date.subtract(1, this.#viewScale)\n this.initializeValues();\n }\n\n fetchEvents() {\n if (!this.eventsUrlValue) {\n return false;\n }\n\n const queryParams = new URLSearchParams({\n from_date: this.#firstViewDay.format(\"Y-MM-DD\"),\n to_date: this.#lastViewDay.format(\"Y-MM-DD\"),\n });\n fetch(`${this.eventsUrlValue}?${queryParams}`)\n .then(response => response.json())\n .then((data) => {\n this.clearEvents()\n data.slots.sort(function (a, b) {\n return new Date(a.start_time) - new Date(b.start_time);\n }).forEach(event => {\n this.createEvent(\"slot\", event.id, event.start_time, event.end_time, event.name, \"success\")\n })\n data.events.sort(function (a, b) {\n return new Date(a.start_time) - new Date(b.start_time);\n }).forEach(event => {\n this.createEvent(\"event\", event.id, event.start_time, event.end_time, event.name, event.color)\n })\n })\n }\n\n clearEvents() {\n this.element.querySelectorAll('.event').forEach(e => e.remove());\n }\n\n createEvent(type, id, from, to, title, color = \"gray\") {\n const startTime = moment(from)\n const endTime = moment(to)\n const timeSlot = this.element.querySelector(`time[datetime='${startTime.format(\"Y-MM-DD\")}']`)\n\n if (!timeSlot)\n return;\n\n let timeText = startTime.format(\"H[h]\")\n if (startTime.minutes() > 0)\n timeText += `:${startTime.format(\"mm\")}`\n timeText += \"-\"\n timeText += endTime.format(\"H[h]\")\n if (endTime.minutes() > 0)\n timeText += `:${endTime.format(\"mm\")}`\n const daySlot = timeSlot.closest('.day-slot')\n const parent = daySlot.querySelector('.events-container')\n if (type == \"slot\") {\n daySlot.classList.add(\"available\")\n let freeSlot = daySlot.querySelector('.free-slot')\n freeSlot.innerText = timeText\n freeSlot.setAttribute(\"href\", freeSlot.getAttribute(\"href\").replace(\"__ID__\", id))\n } else {\n const eventNode = this.createElementFromHTML(this.#eventTemplate({\n eventTitle: title,\n eventTime: timeText,\n color: color,\n }));\n if (title != \"Absence\") {\n eventNode.setAttribute(\"target\", \"_blank\")\n eventNode.setAttribute(\"href\", `https://regie.oqoro.com/oqoro_admin/inventories/${id}`)\n }\n parent.appendChild(eventNode)\n }\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n return div.firstChild;\n }\n\n renderCalendar() {\n this.slotsContainerTarget.innerHTML = \"\"\n let displayTitle = \"\"\n switch (this.#viewScale) {\n case \"week\":\n displayTitle = this.#selected_date.format(\"MMMM Y [- Semaine] W\")\n break\n case \"month\":\n displayTitle = this.#selected_date.format(\"MMMM Y\")\n break\n case \"year\":\n displayTitle = this.#selected_date.format(\"Y\")\n break\n }\n this.displayTitleTarget.innerText = displayTitle\n let day = moment(this.#firstViewDay)\n let today = moment().format('YMMD')\n while (day < this.#lastViewDay) {\n const isCurrentMonth = (day.month() == this.#selected_date.month())\n const isToday = (day.format(\"YMMD\") == today)\n\n const dayNode = this.createElementFromHTML(this.#dayTemplate({\n day: day.format(\"D\"),\n datetime: day.format(\"Y-MM-DD\"),\n }));\n\n if (isToday)\n dayNode.classList.add(\"today\")\n if (isCurrentMonth)\n dayNode.classList.add(\"current-month\")\n\n this.slotsContainerTarget.appendChild(dayNode);\n day.add(1, 'day');\n }\n this.fetchEvents()\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"displayValue\", \"searchInput\", \"menuItem\"]\n static values = { initial: String }\n\n _input = null\n\n connect() {\n this._input = this.element.getElementsByTagName('select')[0]\n this._input.style.display = 'none'\n const initialValue = this._input.value || this.initialValue\n this.element.querySelectorAll('.menu__item').forEach(((item) => {\n const value = item.dataset.value\n if (value == initialValue)\n this.select_item(item)\n item.addEventListener('click', ((e) => {\n e.preventDefault()\n this.select_item(item)\n }).bind(this))\n }).bind(this))\n\n if (this.hasSearchInputTarget) {\n this.searchInputTarget.addEventListener('input', ((e) => this.search(e.currentTarget.value)).bind(this))\n }\n }\n\n select_item(item) {\n this._input.value = item.dataset.value\n this.displayValueTarget.innerHTML = item.innerHTML\n let dropdown = item.closest('.dropdown')['dropdown--component']\n if (dropdown)\n dropdown.close()\n }\n\n search(query) {\n let regex = '.*'\n query = query.replace(/\\s/g, '').replace(/[^\\w\\s]/gi, '');\n for (let i = 0; i < query.length; i++)\n regex += `${query[i]}.*`\n regex = new RegExp(regex, 'gi')\n this.menuItemTargets.forEach((menuItem) => {\n if (menuItem.dataset.label.match(regex))\n menuItem.style.removeProperty('display')\n else\n menuItem.style.display = 'none'\n })\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"tab\"]\n\n #form = null;\n\n initialize() {\n this.next = this.next.bind(this)\n this.#form = new Form(this.element);\n this.validateForm = this.validateForm.bind(this);\n this.element.addEventListener(\"turbo:submit-end\", this.next)\n let actionBtn = document.querySelector('[data-disable-onclick]');\n if (actionBtn) {\n actionBtn.dataset['action'] = \"click->form--component#disableSubmitters\";\n }\n }\n\n connect() {\n this.validateForm();\n\n this.initTabs();\n }\n\n validateForm() {\n this.#form.validate();\n }\n\n requestSubmit() {\n this.#form.requestSubmit();\n }\n\n next(event) {\n if (event.detail.success) {\n const fetchResponse = event.detail.fetchResponse\n if (!fetchResponse.response.redirected)\n return\n history.pushState(\n {turbo_frame_history: true},\n \"\",\n fetchResponse.response.url\n )\n Turbo.visit(fetchResponse.response.url)\n }\n }\n\n disableSubmitters(e) {\n this.#form.disableSubmitters();\n this.element.submit();\n }\n\n initTabs() {\n this.tabTargets.forEach(tab => {\n tab.addEventListener(\"tab--component:connected\", this.tabConnected.bind(this));\n })\n }\n\n tabConnected(e) {\n const tabComponent = e.currentTarget\n const tabController = tabComponent[\"tab--component\"]\n const tabs = tabComponent.querySelectorAll(\".tab\")\n if (!tabs.length)\n return false\n\n // Check if form errors\n // If errors, open tab with error, display error badge on tab\n let focusTab = null\n let focusInput = null\n tabs.forEach(tab => {\n const tabName = tab.dataset.name\n const panel = this.element.querySelector(`.tab__panel[data-tab=\"${tabName}\"]`)\n if (panel) {\n const inputError = panel.querySelector(\".oq-form-group.is-invalid\")\n if (inputError) {\n if (!focusTab) {\n focusTab = tabName\n focusInput = inputError\n }\n tab.classList.add(\"has-error\")\n }\n }\n })\n // Open tab and scroll\n if (focusTab) {\n tabController.selectTabByName(focusTab)\n focusInput.scrollIntoView();\n }\n }\n}\n\nclass Form {\n #form;\n #inputs = [];\n #conditionalDisplays = [];\n #submitters = [];\n #isValid;\n\n constructor(form) {\n this.#form = form;\n this.bindInputs();\n this.bindConditionalDisplays();\n this.validate();\n }\n\n bindInputs() {\n this.#inputs = [];\n this.#form.querySelectorAll(\"input,textarea,select\").forEach(input => {\n this.#inputs.push(new Input(this, input));\n })\n this.#submitters = this.#form.querySelectorAll(\"[type='submit']\");\n }\n\n bindConditionalDisplays() {\n this.#conditionalDisplays = [];\n this.#form.querySelectorAll(\"[data-display-if]\").forEach(elem => {\n const condition = elem.dataset.displayIf.split(/:(.*)/s)\n const input_name = condition[0]\n const input_value = condition[1]\n const trigger_input = this.#inputs.find(i => i.input.getAttribute(\"name\")?.endsWith(`[${input_name}]`));\n if (trigger_input) {\n trigger_input.input.addEventListener(\"change\", e => {\n if (trigger_input.value === input_value) {\n elem.classList.remove(\"hidden\");\n } else {\n elem.classList.add(\"hidden\");\n }\n })\n }\n });\n }\n\n validate() {\n let isValid = true\n this.#inputs.forEach(input => {\n if (!input.isValid) {\n isValid = false;\n }\n })\n this.#isValid = isValid;\n if (this.#isValid)\n this.enableSubmitters();\n else\n this.disableSubmitters();\n return this.#isValid;\n }\n\n disableSubmitters() {\n this.#submitters.forEach((submitter) => {\n submitter.setAttribute(\"disabled\", true);\n });\n }\n\n enableSubmitters() {\n this.#submitters.forEach(submitter => {\n submitter.removeAttribute(\"disabled\");\n })\n }\n\n requestSubmit() {\n this.#form.requestSubmit();\n }\n}\n\nclass Input {\n #form;\n #input;\n #initialValue;\n #value;\n\n #isRequired;\n isValid;\n\n constructor(form, input) {\n this.validate = this.validate.bind(this);\n this.onValueChange = this.onValueChange.bind(this);\n this.#form = form;\n this.#input = input;\n switch (input.tagName.toLowerCase()) {\n case \"input\":\n case \"textarea\":\n this.#input.addEventListener(\"input\", this.onValueChange);\n break;\n case \"select\":\n this.#input.addEventListener(\"change\", this.onValueChange);\n break;\n }\n this.#initialValue = this.#input.value;\n this.#value = this.#initialValue;\n this.#isRequired = this.#input.hasAttribute('required');\n this.isValid = this.validate();\n }\n\n validate() {\n if (this.#isRequired && !this.#value?.trim())\n return false;\n return true;\n }\n\n onValueChange(e) {\n this.#value = this.#input.value;\n let isValid = this.validate();\n if (this.isValid !== isValid) {\n this.isValid = isValid;\n this.#form.validate();\n }\n }\n\n hasChanged() {\n return this.#value !== this.#initialValue;\n }\n\n get input() {\n return this.#input;\n }\n\n get value() {\n return this.#value;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n lastScrollPosition = 0;\n\n connect() {\n window.addEventListener(\"scroll\", this.onScroll.bind(this));\n }\n\n scrollPosition() {\n return window.scrollY;\n }\n\n onScroll(event) {\n if (this.scrollPosition() < this.lastScrollPosition) {\n this.element.classList.add(\"scrolled-up\");\n this.element.classList.remove(\"scrolled-down\");\n } else if (this.scrollPosition() > this.element.offsetHeight) {\n this.element.classList.add(\"scrolled-down\");\n this.element.classList.remove(\"scrolled-up\");\n }\n this.lastScrollPosition = this.scrollPosition();\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [\"input\", \"button\"]\n static values = {filesList: String}\n\n filesList = null\n form = null\n\n files = []\n\n initialize() {\n this.filesList = document.querySelector(`#${this.filesListValue}`)\n this.onInputChange = this.onInputChange.bind(this)\n this.clearFileInputValue = this.clearFileInputValue.bind(this)\n this.openDialog = this.openDialog.bind(this)\n this.form = this.element.closest(\"form\")\n }\n\n connect() {\n this.inputTarget.addEventListener(\"change\", this.onInputChange)\n this.form.addEventListener(\"reset\", this.clearFileInputValue)\n this.buttonTarget.addEventListener(\"click\", this.openDialog)\n }\n\n disconnect() {\n this.inputTarget.removeEventListener(\"change\", this.onInputChange)\n this.form.removeEventListener(\"reset\", this.clearFileInputValue)\n this.buttonTarget.removeEventListener(\"click\", this.openDialog)\n }\n\n openDialog(e) {\n e.preventDefault()\n e.stopPropagation()\n this.inputTarget.click()\n }\n\n clearFileInputValue() {\n this.inputTarget.value = null\n this.files = []\n this.updateFilePreview()\n }\n\n onInputChange(e) {\n e.stopPropagation()\n e.preventDefault()\n\n const fileList = this.inputTarget.files\n this.files = this.files.concat(Array.from(fileList))\n this.updateFileInputValue()\n }\n\n updateFileInputValue() {\n var b = new DataTransfer()\n for (var i = 0, len = this.files.length; i < len; i++) b.items.add(this.files[i])\n this.inputTarget.files = b.files\n const fileList = this.inputTarget.files\n this.updateFilePreview()\n }\n\n updateFilePreview() {\n this.filesList.innerHTML = \"\"\n\n this.files.forEach((file) => {\n let preview = document.createElement(\"div\")\n preview.classList.add(\"file-preview\")\n preview.innerHTML = file.name\n\n let deleteBtn = document.createElement(\"div\")\n deleteBtn.classList.add(\"delete-btn\")\n deleteBtn.innerHTML = \"\"\n deleteBtn.addEventListener(\"click\", ((e) => {\n this.deleteFile(file)\n }).bind(this))\n preview.append(deleteBtn)\n this.filesList.append(preview)\n })\n }\n\n deleteFile(file) {\n let index = this.files.indexOf(file);\n if (index !== -1) {\n this.files.splice(index, 1);\n }\n this.updateFileInputValue()\n }\n}\n","import Notification from 'stimulus-notification'\n\nexport default class extends Notification {\n connect() {\n super.connect()\n }\n}","import { Controller } from \"@hotwired/stimulus\";\nimport { useClickOutside } from 'stimulus-use'\n\n// import confetti from \"canvas-confetti\";\nimport cookie from \"cookiejs\";\n\nexport default class extends Controller {\n static targets = [\"content\", \"closeBtn\", \"timerBar\"]; /* \"overlay\",*/\n static values = { name: String, cookie: String, closable: Boolean, removeOnClose: Boolean, confetti: Boolean, timer: Number };\n\n initialize() {\n // Move component to body end\n document.body.appendChild(this.element);\n this.element[this.identifier] = this;\n this.close = this.close.bind(this);\n }\n\n connect() {\n if (this.nameValue) {\n const modals = document.querySelectorAll(`.oq-modal[data-modal--component-name-value=\"${this.nameValue}\"]`)\n modals.forEach(element => {\n if (element != this.element) {\n element.remove();\n }\n });\n }\n this.closeBtnTargets.forEach(\n ((btn) => {\n btn.addEventListener(\"click\", this.close);\n }).bind(this)\n );\n\n this.bindTogglers();\n\n if (this.cookieValue && this.element.classList.contains(\"open\")) {\n if (cookie.get(this.cookieValue)) {\n this.element.classList.remove(\"open\");\n }\n }\n }\n\n disconnect() {\n this.closeBtnTargets.forEach(\n ((btn) => {\n btn.removeEventListener(\"click\", this.close);\n }).bind(this)\n );\n }\n\n bindTogglers() {\n if (!this.nameValue) return;\n document.querySelectorAll(`[data-modal=\"${this.nameValue}\"]`).forEach(\n ((elem) => {\n const scrollTo = elem.dataset.modalScrollToId;\n elem.addEventListener(\n \"click\",\n ((e) => {\n this.open(e, scrollTo);\n }).bind(this)\n );\n }).bind(this)\n );\n }\n\n open(e, scrollToId = null) {\n if (e) e.preventDefault();\n this.element.classList.add(\"open\");\n\n // Prevent body scroll\n const body = document.querySelector(\"body\");\n body.style.overflow = \"hidden\";\n\n if (scrollToId) {\n const scrollElem = this.element.querySelector(`[id=\"${scrollToId}\"]`);\n setTimeout(() => {\n scrollElem.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }, 400);\n }\n\n this.resetTimer();\n }\n\n close(e) {\n this.element.classList.remove(\"open\");\n\n if (this.cookieValue) cookie.set(this.cookieValue, true);\n\n // Check if all modals are closed to re-enable body scroll\n const hasModalsOpen = document.querySelectorAll(\".oq-modal.open\").length > 0;\n if (!hasModalsOpen) {\n const body = document.querySelector(\"body\");\n body.style.overflow = \"auto\";\n }\n\n if (this.element.classList.contains(\"modal--fullscreen\")) {\n this.element.classList.add(\"modal--fullscreen-close\");\n setTimeout(() => {\n this.element.classList.remove(\"modal--fullscreen-close\");\n }, 500);\n }\n\n if (this.hasRemoveOnCloseValue && this.removeOnCloseValue == true) {\n this.element.remove()\n }\n }\n\n resetTimer() {\n if (this.timerValue) {\n this.timer = 0;\n this.timerInterval = setInterval(this.fillTimer, 10);\n }\n }\n\n clickOutside(e) {\n if (!this.closableValue)\n return;\n e.preventDefault()\n this.close();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n connect() {\n this.disableFirstCopyDate();\n }\n\n setFromPreviousDate(e) {\n const elem = e.target;\n const elemDateInput = elem.closest('.valid_from_wrapper').querySelector('input[type=\"date\"]');\n const thatId = elem.closest('.nested-form-container').getAttribute(\"id\");\n let previousDateValue = null;\n this.element.querySelectorAll('.valid_from_wrapper').forEach((e) => {\n const elemId = e.closest('.nested-form-container').getAttribute(\"id\");\n const elemDateValue = e.querySelector('input[type=\"date\"]').value;\n if (elemId == thatId) {\n if (previousDateValue.length > 0) {\n elemDateInput.value = previousDateValue;\n }\n return;\n }\n previousDateValue = elemDateValue;\n })\n }\n\n disableFirstCopyDate() {\n this.element.querySelectorAll('.valid_from_wrapper').forEach((elem, index) => {\n if (index == 0) {\n elem.querySelector('.set-from-previous-trigger').classList.add('hidden');\n }\n });\n }\n\n formatDate(date) {\n const d = new Date(date);\n const day = String(d.getDate()).padStart(2, '0');\n const month = String(d.getMonth() + 1).padStart(2, '0'); // Months are zero-based\n const year = d.getFullYear();\n return `${day}/${month}/${year}`;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport confetti from \"canvas-confetti\";\nimport cookie from \"cookiejs\";\n\nexport default class extends Controller {\n static targets = [\"overlay\", \"closeBtn\", \"timerBar\"];\n static values = { name: String, cookie: String, closable: Boolean, confetti: Boolean, timer: Number };\n\n modal_panel = this.element.querySelector(\".modal__panel\");\n\n initialize() {\n this.element[this.identifier] = this;\n this.fillTimer = this.fillTimer.bind(this);\n this.close = this.close.bind(this);\n }\n\n connect() {\n if (this.closableValue) this.overlayTarget.addEventListener(\"click\", this.close);\n if (this.element.classList.contains(\"open\") && this.confettiValue) confetti();\n this.closeBtnTargets.forEach(\n ((btn) => {\n btn.addEventListener(\"click\", this.close);\n }).bind(this)\n );\n\n this.bindTogglers();\n\n if (this.cookieValue && this.element.classList.contains(\"open\")) {\n if (cookie.get(this.cookieValue)) {\n this.element.classList.remove(\"open\");\n // For sliding panel on mobile\n this.modal_panel.classList.remove(\"open\");\n }\n }\n\n if (this.element.classList.contains(\"open\")) {\n this.resetTimer();\n }\n }\n\n disconnect() {\n if (this.closableValue) this.overlayTarget.removeEventListener(\"click\", this.close);\n this.closeBtnTargets.forEach(\n ((btn) => {\n btn.removeEventListener(\"click\", this.close);\n }).bind(this)\n );\n }\n\n fillTimer() {\n this.timer += 10;\n this.timerBarTarget.style.width = `${(this.timer / this.timerValue) * 100}%`;\n if (this.timer >= this.timerValue) {\n clearInterval(this.timerInterval);\n this.close();\n }\n }\n\n bindTogglers() {\n if (!this.nameValue) return;\n document.querySelectorAll(`[data-modal=\"${this.nameValue}\"]`).forEach(\n ((elem) => {\n const scrollTo = elem.dataset.modalScrollToId;\n elem.addEventListener(\n \"click\",\n ((e) => {\n this.open(e, scrollTo);\n }).bind(this)\n );\n }).bind(this)\n );\n }\n\n open(e, scrollToId = null) {\n if (e) e.preventDefault();\n this.element.classList.add(\"open\");\n // For sliding panel on mobile\n this.modal_panel.classList.add(\"open\");\n\n var viewportOffset = this.overlayTarget.getBoundingClientRect();\n // these are relative to the viewport\n var top = viewportOffset.top;\n var left = viewportOffset.left;\n this.overlayTarget.style.top = `-${top}px`;\n this.overlayTarget.style.left = `-${left}px`;\n this.overlayTarget.style.width = `100vw`;\n this.overlayTarget.style.height = `100vh`;\n\n // Prevent body scroll\n const body = document.querySelector(\"body\");\n body.style.overflow = \"hidden\";\n\n if (scrollToId) {\n const scrollElem = this.element.querySelector(`[id=\"${scrollToId}\"]`);\n setTimeout(() => {\n scrollElem.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }, 400);\n }\n\n this.resetTimer();\n }\n\n close(e) {\n\n const isOpen = this.modal_panel.classList.contains(\"open\")\n\n if (!isOpen)\n return\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n this.element.classList.remove(\"open\");\n // For sliding panel on mobile\n this.modal_panel.classList.remove(\"open\");\n\n if (this.cookieValue) cookie.set(this.cookieValue, true);\n\n // Check if all modals are closed to re-enable body scroll\n const hasModalsOpen = document.querySelectorAll(\".mba-modal.open\").length > 0;\n if (!hasModalsOpen) {\n const body = document.querySelector(\"body\");\n body.style.overflow = \"auto\";\n }\n\n if (this.element.classList.contains(\"modal--fullscreen\")) {\n this.element.classList.add(\"modal--fullscreen-close\");\n setTimeout(() => {\n this.element.classList.remove(\"modal--fullscreen-close\");\n }, 500);\n }\n }\n\n resetTimer() {\n if (this.timerValue) {\n this.timer = 0;\n this.timerInterval = setInterval(this.fillTimer, 10);\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"wrapper\", \"select\", \"list\", \"input\"];\n _selectedOptions = [];\n // Test si mobile/tablet ou desktop\n _isMobile = window.screen.width < 768;\n _modalController = null;\n\n connect() {\n this.input_placeholder = this.inputTarget.placeholder;\n this.initSelectedValues();\n if (!this._isMobile) {\n window.addEventListener(\"resize\", this.updateSelectWrapper.bind(this));\n }\n }\n\n disconnect() {\n window.removeEventListener(\"resize\", window.onWindowResize);\n }\n\n initSelectedValues() {\n this.selectTarget.querySelectorAll(`option[selected=\"selected\"]`).forEach((option) => {\n this.selectOption(option.value);\n });\n this.updateSelectWrapper();\n }\n\n toggleOption(e) {\n const el = e.currentTarget;\n const value = el.dataset.value;\n const index = this._selectedOptions.indexOf(value);\n\n const listItem = this.listTarget.querySelector(`.list__item[data-value=\"${value}\"]`);\n\n if (index > -1) {\n this._selectedOptions.splice(index, 1);\n this.selectTarget.querySelector(`option[value=\"${value}\"]`).selected = false;\n listItem.classList.remove(\"list__item--checked\");\n } else {\n this.selectOption(value);\n }\n this.inputTarget.value = \"\";\n if (!this._isMobile) this.inputTarget.focus();\n // Trigger input event to reset list item displays\n const event = document.createEvent(\"Event\");\n event.initEvent(\"input\", true, true);\n\n this.inputTarget.dispatchEvent(event);\n this.updateSelectWrapper();\n }\n\n selectOption(value) {\n const listItem = this.listTarget.querySelector(`.list__item[data-value=\"${value}\"]`);\n this._selectedOptions.push(value);\n this.selectTarget.querySelector(`option[value=\"${value}\"]`).selected = true;\n listItem.classList.add(\"list__item--checked\");\n }\n\n search(e) {\n const query = new RegExp(e.currentTarget.value, \"i\");\n this.listTarget.querySelectorAll(\".list__item\").forEach((el) => {\n if (el.innerText.match(query)) {\n el.style.display = \"flex\";\n } else {\n el.style.display = \"none\";\n }\n });\n }\n\n updateSelectWrapper() {\n // Si options sélectionnées, on cache les inputs\n if (this._isMobile) {\n if (this._selectedOptions.length > 0) {\n this.inputTargets.forEach((input) => {\n input.classList.add(\"hidden\");\n });\n } else {\n this.inputTargets.forEach((input) => {\n input.classList.remove(\"hidden\");\n });\n }\n }\n\n const selectionWrapper = this.element.querySelector(\".selection_wrapper\");\n const inputWrapper = this.element.querySelector(\".input_wrapper\");\n\n // Clear options\n this.wrapperTarget.querySelectorAll(\"div.multiselect__option\").forEach((el) => el.remove());\n this.inputTarget.placeholder = this.input_placeholder;\n if (this._isMobile) {\n selectionWrapper.querySelectorAll(\"div.multiselect__option-mobile\")?.forEach((el) => el.remove());\n inputWrapper.querySelectorAll(\"div.multiselect__option-mobile\")?.forEach((el) => el.remove());\n } else {\n let counter_wrapper = this.wrapperTarget.querySelector('.multiselect__option__counter');\n if (counter_wrapper) {\n counter_wrapper.remove();\n }\n }\n\n this._selectedOptions\n .map((value) => {\n const item = document.createElement(\"div\");\n item.classList.add(\"multiselect__option\");\n if (this._isMobile) item.classList.add(\"multiselect__option-mobile\");\n const option = this.selectTarget.querySelector(`option[value=\"${value}\"]`);\n item.innerText = option.innerText;\n const deleteBtn = document.createElement(\"span\");\n deleteBtn.className = \"option__delete-btn\";\n deleteBtn.innerHTML =\n '\\\n ';\n deleteBtn.dataset.value = value;\n deleteBtn.addEventListener(\"click\", this.toggleOption.bind(this));\n item.appendChild(deleteBtn);\n return item;\n })\n .reverse()\n .forEach((item, index) => {\n if (this._isMobile) {\n const item2 = item.cloneNode(true);\n const item3 = item.cloneNode(true);\n [item2, item3].map((i) => {\n i.lastChild.addEventListener(\"click\", this.toggleOption.bind(this));\n });\n if (index === 0) {\n this.wrapperTarget.prepend(item);\n inputWrapper.prepend(item2);\n } else if (index === 1) {\n const elem = document.createElement(\"div\");\n elem.classList.add(\"multiselect__option\", \"multiselect__option-mobile\", \"multiselect__option__counter\");\n elem.innerText = `+ ${this._selectedOptions.length - 1}`;\n inputWrapper.append(elem);\n const elem2 = elem.cloneNode(true);\n this.wrapperTarget.append(elem2);\n }\n selectionWrapper.prepend(item3);\n } else {\n this.wrapperTarget.prepend(item);\n this.inputTarget.placeholder = \"\";\n }\n });\n this.updateSelectionForOverflow();\n }\n\n updateSelectionForOverflow() {\n let parent = this.wrapperTarget.closest('.multiselect-container');\n if (parent && (this.wrapperTarget.clientHeight > parent.clientHeight || this.wrapperTarget.clientWidth > parent.clientWidth)) {\n let multiselect_options = this.wrapperTarget.querySelectorAll('.multiselect__option');\n multiselect_options[0].remove();\n let counter = this._selectedOptions.length - this.wrapperTarget.querySelectorAll('.multiselect__option').length;\n if (this.wrapperTarget.querySelector('.multiselect__option__counter')) {\n this.wrapperTarget.querySelector('.multiselect__option__counter').innerText = `+ ${counter}`;\n } else {\n const elem = document.createElement(\"div\");\n elem.classList.add(\"multiselect__option-mobile\", \"multiselect__option__counter\");\n elem.innerText = `+ ${counter}`;\n this.wrapperTarget.append(elem);\n }\n this.updateSelectionForOverflow();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"backdrop\", \"panel\"];\n\n connect() {\n setTimeout(() => {\n this.open()\n }, 50)\n }\n\n open(e) {\n if (e)\n e.preventDefault()\n this.element.classList.add(\"open\")\n this.element.focus()\n }\n\n close(e) {\n if (e)\n e.preventDefault()\n this.element.classList.remove(\"open\");\n setTimeout(() => {\n this.element.classList.add('hidden')\n }, 500)\n }\n\n escKeyPressed(e) {\n if (e.target.tagName.toLowerCase() == \"body\" || e.target == this.element) {\n this.close(e)\n e.stopPropagation()\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { template } from \"lodash\";\nexport default class extends Controller {\n static targets = [\"fileInput\", \"list\", \"dropzone\", \"fileTemplate\", \"fileButton\"];\n static values = {\n uploadUrl: String,\n deleteUrl: String,\n files: String,\n allowedTypes: Array,\n maxFileSize: String,\n acceptsMultipleFiles: Boolean,\n };\n\n files = [];\n uploadedFiles = [];\n _files_loading = 0;\n _form = null;\n _formSubmitButton = null;\n _fileTemplate = null;\n _disable_if_empty = true;\n\n // Used to know if mouse is still over the dragzone when it enters multiple child components (0 = leave, > 0 = over)\n _dragEnterCounter = 0;\n\n connect() {\n // This hangs a reference to the Stimulus controller instance off the DOM element that has the same name as the controller itself.\n this.element[this.identifier] = this;\n this._fileTemplate = template(this.fileTemplateTarget.innerHTML);\n this._form = this.element.closest(\"form\");\n this._disable_if_empty = this.fileInputTarget.dataset.disableSubmitIfEmpty;\n if (this._form) {\n if (typeof(this.element.dataset.formsubmitbuttonid) !== 'undefined') {\n this._formSubmitButton = this._form.querySelector(`button#${this.element.dataset.formsubmitbuttonid}`);\n } else {\n this._formSubmitButton = this._form.querySelector(\"button[type='submit']\");\n }\n if (this.files.length === 0 && this._formSubmitButton && this._disable_if_empty === 'true') {\n this._formSubmitButton.disabled = true;\n }\n }\n\n // this.dropzoneTarget.addEventListener(\"click\", this.openFileBrowser.bind(this))\n this.dropzoneTarget.addEventListener(\"dragover\", this.onDragOver.bind(this));\n this.dropzoneTarget.addEventListener(\"dragenter\", this.onDragEnter.bind(this));\n this.dropzoneTarget.addEventListener(\"dragleave\", this.onDragLeave.bind(this));\n this.dropzoneTarget.addEventListener(\"drop\", this.onDrop.bind(this));\n\n this.fileInputTarget.addEventListener(\"change\", this.fileSelected.bind(this));\n this.files = JSON.parse(this.filesValue);\n this.listTarget.innerHTML = \"\";\n\n this.files.forEach((f) => {\n const item = this.createListItem(f);\n this.listTarget.appendChild(item);\n });\n\n if (this.files.length >= 1 && this.acceptsMultipleFilesValue === false) {\n this.fileButtonTarget.disabled = true;\n }\n }\n\n openFileBrowser(e) {\n if (!this.fileInputTarget.value) this.fileInputTarget.click();\n }\n\n onDragOver(e) {\n e.preventDefault();\n }\n\n onDragEnter(e) {\n this._dragEnterCounter++;\n this.dropzoneTarget.classList.add(\"dragover\");\n }\n\n onDragLeave(e) {\n this._dragEnterCounter--;\n if (this._dragEnterCounter <= 0) {\n this._dragEnterCounter = 0;\n this.dropzoneTarget.classList.remove(\"dragover\");\n }\n }\n\n onDrop(e) {\n e.preventDefault();\n this.dropzoneTarget.classList.remove(\"dragover\");\n this.fileInputTarget.files = e.dataTransfer.files;\n this.dropzoneTarget.click();\n if (\"createEvent\" in document) {\n let evt = document.createEvent(\"HTMLEvents\");\n evt.initEvent(\"change\", false, true);\n this.fileInputTarget.dispatchEvent(evt);\n } else {\n this.fileInputTarget.fireEvent(\"onchange\");\n }\n }\n\n fileSelected(event) {\n const input = event.target;\n if (!input.files.length) return false;\n this.uploadedFiles = [];\n Array.from(input.files).forEach((file) => this.uploadFile(file));\n input.value = null;\n }\n\n uploadFile(file) {\n const url = this.fileInputTarget.dataset.directUploadUrl;\n let uploader = new Uploader(file, url, this);\n }\n\n deleteFile(e) {\n const item = e.currentTarget.closest(\".list__item\");\n\n const signed_id = item.dataset.signedId;\n const public_uid = item.dataset.publicUid;\n\n const statusText = item.querySelector(\".status-text\");\n statusText.innerHTML = \"Suppression en cours...\";\n item.classList.add(\"deleting\");\n\n if (this.deleteUrlValue) {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content\n\n fetch(this.deleteUrlValue, {\n method: \"delete\",\n body: JSON.stringify({ signed_id: signed_id }),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n credentials: \"same-origin\",\n })\n .then((response) => {\n let isTurbo = response.headers.get(\"Content-Type\").includes(\"turbo-stream\");\n if (isTurbo) {\n return response.text().then((d) => ({\n turboStream: true,\n data: d,\n }));\n } else {\n return response.json().then((d) => ({\n turboStream: false,\n data: d,\n }));\n }\n })\n .then((data) => {\n if (data.turboStream) {\n document.body.insertAdjacentHTML(\"beforeend\", data.data);\n }\n statusText.innerHTML = \"\";\n item.remove();\n this.removeFileForItem(item);\n const input = this._form.querySelector(`input[value=\"${signed_id}\"]`);\n if (input) { input.remove(); }\n if (this.acceptsMultipleFilesValue === false) {\n let uploadedFiles = this._form.querySelectorAll(`input[name=\"${this.fileInputTarget.name}\"][type=\"hidden\"]`);\n if (uploadedFiles.length == 0 || this.files.length == 0) {\n this.fileButtonTarget.disabled = false;\n }\n }\n });\n } else {\n const input = this._form.querySelector(`input[value=\"${signed_id}\"]`);\n input.remove();\n item.remove();\n this.removeFileForItem(item);\n this.removeUploadedFileForItem(item);\n if (this.files.length === 0 && this.uploadedFiles.length === 0 && this._formSubmitButton && this._disable_if_empty === 'true') {\n this._formSubmitButton.disabled = true;\n }\n }\n }\n\n removeFileForItem(item) {\n const index = this.files.findIndex((f) => f.signed_id === item.signed_id);\n if (index > -1) {\n this.files.splice(index, 1);\n }\n }\n\n removeUploadedFileForItem(item) {\n let index = -1;\n if (item instanceof Element) {\n index = this.uploadedFiles.findIndex((f) => f.signed_id === item.dataset.signedId);\n } else {\n index = this.uploadedFiles.findIndex((f) => f.signed_id === item.signed_id);\n }\n if (index > -1) {\n this.uploadedFiles.splice(index, 1);\n }\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n\n // Change this to div.childNodes to support multiple top-level nodes.\n return div.firstChild;\n }\n\n createListItem(file) {\n const itemData = {\n signedId: typeof file.signed_id !== \"undefined\" && file.signed_id ? file.signed_id : \"\",\n publicUid: typeof file.public_uid !== \"undefined\" && file.public_uid ? file.public_uid : \"\",\n filename: file.name,\n };\n const item = this.createElementFromHTML(this._fileTemplate(itemData));\n return item;\n }\n}\n\nclass Uploader {\n constructor(file, url, controller) {\n this.upload = new DirectUpload(file, url, this);\n this.controller = controller;\n\n this.item = this.controller.createListItem(file);\n this.controller.listTarget.appendChild(this.item);\n\n this.controller._files_loading++;\n if (this.controller._formSubmitButton) this.controller._formSubmitButton.disabled = true;\n const statusText = this.item.querySelector(\".status-text\");\n statusText.innerHTML = \"Envoi en cours...\";\n\n // Check mime type\n if (!this.controller.allowedTypesValue.includes(file.type) && !this.controller.allowedTypesValue.includes(\"*\")) {\n statusText.innerHTML = \"Format de fichier non accepté\";\n this.item.classList.add(\"error\");\n this.controller._files_loading--;\n if (this.controller._formSubmitButton && this.controller._disable_if_empty === 'false') {\n this.controller._formSubmitButton.disabled = false;\n }\n return false;\n }\n\n // Check file size\n if (this.controller.maxFileSizeValue && file.size > this.controller.maxFileSizeValue) {\n statusText.innerHTML = \"Le fichier est trop volumineux\";\n this.item.classList.add(\"error\");\n this.controller._files_loading--;\n if (this.controller._formSubmitButton && this.controller._disable_if_empty === 'false') {\n this.controller._formSubmitButton.disabled = false;\n }\n return false;\n }\n\n this.upload.create((error, blob) => {\n if (error) {\n // Handle the error\n this.item.classList.add(\"error\");\n statusText.innerHTML = \"Une erreur s'est produite\";\n this.item.classList.remove(\"upload-progress\");\n this.item.classList.add(\"upload-end\");\n } else {\n this.item.dataset.signedId = blob.signed_id;\n statusText.innerHTML = \"\";\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content\n\n if (controller.uploadUrlValue) {\n // Post the created attachment\n fetch(controller.uploadUrlValue, {\n method: \"post\",\n body: JSON.stringify({ file: blob }),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n credentials: \"same-origin\",\n })\n .then((response) => {\n let isTurbo = response.headers.get(\"Content-Type\").includes(\"turbo-stream\");\n if (isTurbo) {\n return response.text().then((d) => ({\n turboStream: true,\n data: d,\n }));\n } else {\n return response.json().then((d) => ({\n turboStream: false,\n data: d,\n }));\n }\n })\n .then((data) => {\n this.controller._files_loading--;\n if (this.controller._files_loading <= 0 && this.controller._formSubmitButton) {\n this.controller._formSubmitButton.disabled = false;\n }\n if (data.data.error) {\n this.item.classList.add(\"error\");\n statusText.innerHTML = data.data.error;\n } else {\n statusText.innerHTML = \"\";\n this.item.dataset.publicUid = data.data.public_uid;\n if (data.turboStream) {\n document.body.insertAdjacentHTML(\"beforeend\", data.data);\n } else {\n Turbo.visit(window.location.toString(), { action: \"replace\" });\n }\n }\n })\n .catch((error) => {\n this.item.classList.add(\"error\");\n statusText.innerHTML = \"Une erreur s'est produite\";\n if (this._disable_if_empty === 'false') {\n this.controller._formSubmitButton.disabled = false;\n }\n })\n .finally(() => {\n this.item.classList.remove(\"upload-progress\");\n this.item.classList.add(\"upload-end\");\n });\n } else if (this.controller._form) {\n const hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"value\", blob.signed_id);\n hiddenField.name = this.controller.fileInputTarget.name;\n this.controller._form.appendChild(hiddenField);\n this.controller._files_loading--;\n this.item.classList.remove(\"upload-progress\");\n if (this.controller._files_loading <= 0) {\n this.controller._formSubmitButton.disabled = false;\n }\n if (this.controller.acceptsMultipleFilesValue === false) {\n this.controller.fileButtonTarget.disabled = true;\n }\n this.controller.uploadedFiles.push({ file: file, signed_id: blob.signed_id });\n }\n }\n });\n }\n\n directUploadWillStoreFileWithXHR(request) {\n request.upload.addEventListener(\"progress\", (event) => this.directUploadDidProgress(event));\n }\n\n directUploadDidProgress(event) {\n this.item.classList.add(\"upload-progress\");\n this.item.querySelector(\".progress-bar\").style.width = `${(event.loaded / event.total) * 100}%`;\n if (event.loaded >= event.total) {\n }\n }\n}\n","// Doc : https://www.stimulus-components.com/docs/stimulus-popover\n\nimport Popover from 'stimulus-popover';\nimport { useClickOutside } from 'stimulus-use'\nexport default class extends Popover {\n connect() {\n super.connect()\n useClickOutside(this)\n }\n\n clickOutside(event) {\n this.hide();\n }\n}","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n\n static targets = [\"hiddenInput\", \"storeCard\"]\n\n handleClick(e) {\n const old_store = JSON.parse(this.hiddenInputTarget.value)\n const old_id = old_store?.keynest_id\n const new_store = JSON.parse(e.currentTarget.dataset.store)\n const new_id = new_store.keynest_id\n\n if (old_id && (old_id !== new_id)) {\n const old_card = this.storeCardTargets.find(card => card.id === old_id)\n old_card && old_card.classList.toggle(\"bg-brand-100\")\n }\n const new_card = this.storeCardTargets.find(card => card.id === new_id)\n new_card && new_card.classList.toggle(\"bg-brand-100\")\n\n this.hiddenInputTarget.value = JSON.stringify(new_store)\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\nimport {template} from \"lodash\";\n\nexport default class extends Controller {\n static targets = [\"cityList\", \"cityBadgeTemplate\", \"addButton\", \"citiesInput\"]\n\n #cityBadgeTemplate;\n #cityResults;\n\n connect() {\n this.#cityBadgeTemplate = template(this.cityBadgeTemplateTarget.innerHTML);\n this.addButtonTarget.style.display = 'none'\n this.#cityResults = []\n }\n\n async searchCities({params: {searchUrl}}) {\n this.#cityResults = []\n let zipcodeInput = this.element.querySelector(\"form input[name$='[postal_code]']\")\n\n let zipcode = zipcodeInput.value\n\n let apiURL = `${searchUrl}?city_zipcode=${zipcode}`;\n let results = await fetch(apiURL)\n .then(response => response.json())\n .then(data => data.results)\n this.#cityResults = results\n this.displayResults()\n }\n\n displayResults() {\n this.cityListTarget.innerHTML = \"\"\n this.addButtonTarget.style.display = 'none'\n this.#cityResults.forEach((result) => {\n const itemData = {\n cityName: result.name,\n };\n const item = this.createElementFromHTML(this.#cityBadgeTemplate(itemData));\n this.cityListTarget.appendChild(item);\n })\n if (this.#cityResults.length > 0) {\n this.addButtonTarget.style.display = 'block'\n }\n }\n\n toggleOne() {\n\n }\n\n addAllCities() {\n const selectController = this.citiesInputTarget['form--collection-select--component']\n const options = this.#cityResults.map(result => ({\n text: result.name,\n value: result.id\n }))\n selectController.addOptions(options)\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n\n // Change this to div.childNodes to support multiple top-level nodes.\n return div.firstChild;\n }\n}","import {Controller} from \"@hotwired/stimulus\"\nimport moment from \"moment\"\n\nexport default class extends Controller {\n static targets = [\"dateInput\", \"startTimeInput\", \"endTimeInput\", \"startDatetimeInput\", \"endDatetimeInput\"];\n\n static values = {duration: Number}\n\n initialize() {\n this.onStartTimeChange = this.onStartTimeChange.bind(this)\n this.recomputeInputs = this.recomputeInputs.bind(this)\n }\n\n connect() {\n this.startTimeInputTarget.addEventListener(\"change\", this.onStartTimeChange)\n this.startTimeInputTarget.addEventListener(\"change\", this.recomputeInputs)\n this.endTimeInputTarget.addEventListener(\"change\", this.recomputeInputs)\n this.dateInputTarget.addEventListener(\"change\", this.recomputeInputs)\n this.prefillInputs()\n }\n\n disconnect() {\n this.startTimeInputTarget.removeEventListener(\"change\", this.onStartTimeChange)\n this.startTimeInputTarget.removeEventListener(\"change\", this.recomputeInputs)\n this.endTimeInputTarget.removeEventListener(\"change\", this.recomputeInputs)\n this.dateInputTarget.removeEventListener(\"change\", this.recomputeInputs)\n }\n\n onStartTimeChange(e) {\n const date = (this.dateInputTarget.value ? moment(this.dateInputTarget.value) : moment()).format(\"YYYY-MM-DD\")\n const startTime = moment(`${date} ${this.startTimeInputTarget.value}`)\n if (this.hasDurationValue && this.durationValue) {\n startTime.add(parseInt(this.durationValue), 'minutes')\n this.endTimeInputTarget.value = startTime.format(\"HH:mm\");\n }\n }\n\n recomputeInputs() {\n const date = (this.dateInputTarget.value ? moment(this.dateInputTarget.value) : moment()).format(\"YYYY-MM-DD\")\n const startTime = moment(`${date} ${this.startTimeInputTarget.value}`).format(\"YYYY-MM-DDTHH:mm\")\n const endTime = moment(`${date} ${this.endTimeInputTarget.value}`).format(\"YYYY-MM-DDTHH:mm\")\n this.startDatetimeInputTarget.value = startTime\n this.endDatetimeInputTarget.value = endTime\n }\n\n prefillInputs() {\n if (this.startDatetimeInputTarget.value && this.endDatetimeInputTarget.value) {\n const startTime = moment(this.startDatetimeInputTarget.value)\n const endTime = moment(this.endDatetimeInputTarget.value)\n this.dateInputTarget.value = startTime.format(\"YYYY-MM-DD\")\n this.startTimeInputTarget.value = startTime.format(\"HH:mm\")\n this.endTimeInputTarget.value = endTime.format(\"HH:mm\")\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"overlay\"]\n static values = {name: String};\n\n _togglers = []\n\n initialize() {\n this.open = this.open.bind(this)\n this.close = this.close.bind(this)\n }\n\n connect() {\n this.bindTogglers();\n }\n\n disconnect() {\n this.unbindTogglers()\n }\n\n\n bindTogglers() {\n if (!this.nameValue) return;\n document.querySelectorAll(`[data-drawer=\"${this.nameValue}\"]`).forEach(\n ((elem) => {\n elem.addEventListener(\"click\", this.open)\n this._togglers.push(elem)\n }).bind(this)\n );\n }\n\n unbindTogglers() {\n this._togglers.forEach(\n ((elem) => {\n elem.removeEventListener(\"click\", this.open)\n }).bind(this)\n );\n this._togglers = []\n }\n\n open(e) {\n if (e) e.preventDefault();\n this.element.classList.add(\"open\");\n }\n\n close(e) {\n if (e) e.preventDefault();\n this.element.classList.remove(\"open\");\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\nimport {DirectUpload} from \"@rails/activestorage\";\nimport {template} from \"lodash\";\n\nexport default class extends Controller {\n\n static targets = [\"list\", \"dropzone\", \"fileTemplate\", \"previewWrapper\", \"addFileButton\"]\n\n static values = {\n directUploadUrl: String,\n uploadUrl: String,\n deleteUrl: String,\n filetypeIcons: Object,\n acceptsMultipleFiles: Boolean,\n previewFile: Boolean,\n allowedTypes: Array,\n maxFileSize: String,\n }\n\n form = null\n files = []\n uploadingFiles = []\n uploadedFiles = [];\n #input = null\n\n #fileTemplate = null\n\n initialize() {\n this.onDrop = this.onDrop.bind(this)\n this.onDragEnter = this.onDragEnter.bind(this)\n this.onDragLeave = this.onDragLeave.bind(this)\n this.onDragOver = this.onDragOver.bind(this)\n\n this.#input = this.element.querySelector(\"input[type='file']\");\n this.onInputChange = this.onInputChange.bind(this)\n this.clearFileInputValue = this.clearFileInputValue.bind(this)\n this.openDialog = this.openDialog.bind(this)\n this.form = this.element.closest(\"form\")\n }\n\n get input() {\n return this.#input\n }\n\n connect() {\n this.#fileTemplate = template(this.fileTemplateTarget.innerHTML);\n\n this.#input.addEventListener(\"change\", this.onInputChange)\n this.form.addEventListener(\"reset\", this.clearFileInputValue)\n\n if (this.hasDropzoneTarget) {\n this.dropzoneTarget.addEventListener(\"drop\", this.onDrop);\n this.dropzoneTarget.addEventListener(\"dragenter\", this.onDragEnter);\n this.dropzoneTarget.addEventListener(\"dragleave\", this.onDragLeave);\n this.dropzoneTarget.addEventListener(\"dragover\", this.onDragOver);\n }\n\n this.updateControls()\n }\n\n disconnect() {\n this.#input.removeEventListener(\"change\", this.onInputChange)\n this.form.removeEventListener(\"reset\", this.clearFileInputValue)\n\n if (this.hasDropzoneTarget) {\n this.dropzoneTarget.removeEventListener(\"drop\", this.onDrop);\n this.dropzoneTarget.removeEventListener(\"dragenter\", this.onDragEnter);\n this.dropzoneTarget.removeEventListener(\"dragleave\", this.onDragLeave);\n this.dropzoneTarget.removeEventListener(\"dragover\", this.onDragOver);\n }\n }\n\n disableDropzone() {\n this.input.disabled = true;\n this.dropzoneTarget.classList.add(\"disabled\");\n }\n\n enableDropzone() {\n this.input.disabled = false;\n this.dropzoneTarget.classList.remove(\"disabled\");\n }\n\n openDialog(e) {\n e.preventDefault()\n e.stopPropagation()\n this.#input.click()\n }\n\n clearFileInputValue() {\n this.#input.value = null\n this.files = []\n this.updateFilePreview()\n }\n\n updateFilePreview() {\n this.listTarget.innerHTML = \"\"\n\n this.files.forEach((file) => {\n let preview = document.createElement(\"div\")\n preview.classList.add(\"file-preview\")\n preview.innerHTML = file.name\n\n let deleteBtn = document.createElement(\"div\")\n deleteBtn.classList.add(\"delete-btn\")\n deleteBtn.innerHTML = \"\"\n deleteBtn.addEventListener(\"click\", ((e) => {\n this.deleteFile(file)\n }).bind(this))\n preview.append(deleteBtn)\n this.listTarget.append(preview)\n })\n }\n\n deleteFile(e) {\n const item = e.currentTarget.closest(\".oq-file-item\");\n\n const signed_id = item.dataset.signedId;\n\n const statusText = item.querySelector(\".status-text\");\n statusText.innerHTML = \"Suppression en cours...\";\n item.classList.add(\"deleting\");\n\n if (this.deleteUrlValue) {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content;\n\n fetch(this.deleteUrlValue, {\n method: \"delete\",\n body: JSON.stringify({signed_id: signed_id}),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n credentials: \"same-origin\",\n })\n .then(async (response) => {\n const contentType = response.headers.get(\"content-type\");\n let isTurbo = contentType && contentType.includes(\"turbo-stream\");\n if (isTurbo) {\n return response.text().then((d) => ({\n turboStream: true,\n data: d,\n }));\n } else {\n let d = null;\n if (contentType && contentType.includes(\"application/json\")) {\n d = await response.json();\n } else {\n d = await response.text();\n }\n return {\n turboStream: false,\n data: d,\n }\n }\n })\n .then((data) => {\n if (data.turboStream) {\n document.body.insertAdjacentHTML(\"beforeend\", data.data);\n }\n statusText.innerHTML = \"\";\n item.remove();\n this.removeFileForItem(item);\n const input = this.form.querySelector(`input[value=\"${signed_id}\"]`);\n if (input) {\n input.remove();\n }\n if (this.acceptsMultipleFilesValue === false) {\n let uploadedFiles = this.form.querySelectorAll(`input[name=\"${this.#input.name}\"][type=\"hidden\"]`);\n if (uploadedFiles.length == 0 || this.files.length == 0) {\n if (this.hasDropzoneTarget) {\n this.enableDropzone();\n }\n }\n }\n if (this.hasPreviewWrapperTarget && this.previewFileValue == true) {\n this.previewWrapperTarget.classList.add(\"hidden\");\n this.previewWrapperTarget.style.backgroundImage = '';\n }\n this.updateControls()\n });\n } else {\n item.remove();\n if (this.hasDropzoneTarget) {\n this.enableDropzone();\n }\n if (this.hasPreviewWrapperTarget && this.previewFileValue == true) {\n this.previewWrapperTarget.classList.add(\"hidden\");\n this.previewWrapperTarget.style.backgroundImage = '';\n }\n this.updateControls()\n }\n this.removeFileForItem(item);\n this.removeUploadedFileForItem(item);\n if (this.files.length === 0 && this.uploadedFiles.length === 0 && this.formSubmitButton && this._disable_if_empty === \"true\") {\n this.formSubmitButton.disabled = true;\n }\n this.updateControls()\n }\n\n removeFileForItem(item) {\n const index = this.files.findIndex((f) => f.signed_id === item.signed_id);\n if (index > -1) {\n this.files.splice(index, 1);\n }\n }\n\n removeUploadedFileForItem(item) {\n let index = -1;\n if (item instanceof Element) {\n index = this.uploadedFiles.findIndex((f) => f.signed_id === item.dataset.signedId);\n } else {\n index = this.uploadedFiles.findIndex((f) => f.signed_id === item.signed_id);\n }\n if (index > -1) {\n this.uploadedFiles.splice(index, 1);\n }\n }\n\n onDragEnter(e) {\n e.preventDefault()\n this.dropzoneTarget.classList.add(\"dragover\");\n }\n\n onDragLeave(e) {\n e.preventDefault()\n this.dropzoneTarget.classList.remove(\"dragover\");\n }\n\n onDragOver(e) {\n e.preventDefault()\n }\n\n onDrop(e) {\n e.preventDefault();\n this.dropzoneTarget.classList.remove(\"dragover\");\n\n if (this.acceptsMultipleFilesValue === false && this.uploadedFiles.length >= 1) {\n return;\n }\n if (this.acceptsMultipleFilesValue === false && e.dataTransfer.files.length > 1) {\n const file = e.dataTransfer.files[0];\n const dataTransfer = new DataTransfer();\n dataTransfer.items.add(file);\n this.#input.files = dataTransfer.files;\n } else {\n this.#input.files = e.dataTransfer.files;\n }\n if (\"createEvent\" in document) {\n let evt = document.createEvent(\"HTMLEvents\");\n evt.initEvent(\"change\", false, true);\n this.#input.dispatchEvent(evt);\n } else {\n this.#input.fireEvent(\"onchange\");\n }\n }\n\n uploadFile(file) {\n const url = this.directUploadUrlValue;\n let uploader = new Uploader(file, url, this);\n }\n\n onInputChange(e) {\n if (!this.#input.files.length) return false;\n\n e.preventDefault()\n e.stopPropagation()\n Array.from(this.#input.files).forEach((file) => this.uploadFile(file));\n\n // clear file input value\n this.#input.value = null\n }\n\n createListItem(file) {\n const file_extension = file.name.split(\".\").pop();\n const filenameWithoutExtension = file.name.slice(0, file.name.length - file_extension.length - 1);\n const file_name = file.name.length > 30 ? filenameWithoutExtension.slice(0, 30) + \"...\" + file_extension : file.name;\n const itemData = {\n signedId: typeof file.signed_id !== \"undefined\" && file.signed_id ? file.signed_id : \"\",\n publicUid: typeof file.public_uid !== \"undefined\" && file.public_uid ? file.public_uid : \"\",\n filename: file_name,\n filesize: this.humanFileSize(file.size, true),\n id: file.id,\n src: \"\",\n };\n const item = this.createElementFromHTML(this.#fileTemplate(itemData));\n return item;\n }\n\n createElementFromHTML(htmlString) {\n var div = document.createElement(\"div\");\n div.innerHTML = htmlString.trim();\n\n // Change this to div.childNodes to support multiple top-level nodes.\n return div.firstChild;\n }\n\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize(bytes, si = false, dp = 1) {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' o';\n }\n\n const units = si\n ? ['ko', 'Mo', 'Go', 'To', 'Po', 'Eo', 'Zo', 'Yo']\n : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);\n\n return bytes.toFixed(dp) + ' ' + units[u];\n }\n\n updateControls() {\n if (this.uploadedFiles.length < 1) {\n if (this.hasAddFileButtonTarget) {\n this.addFileButtonTarget.classList.remove(\"hidden\")\n }\n if (this.hasDropzoneTarget) {\n this.enableDropzone();\n }\n } else {\n if (this.acceptsMultipleFilesValue === true) {\n if (this.hasAddFileButtonTarget) {\n this.addFileButtonTarget.classList.remove(\"hidden\")\n }\n if (this.hasDropzoneTarget) {\n this.enableDropzone();\n }\n } else {\n if (this.hasAddFileButtonTarget) {\n this.addFileButtonTarget.classList.add(\"hidden\")\n }\n if (this.hasDropzoneTarget) {\n this.disableDropzone();\n }\n }\n }\n }\n}\n\n\nclass Uploader {\n constructor(file, url, controller) {\n this.upload = new DirectUpload(file, url, this);\n this.controller = controller;\n\n this.item = this.controller.createListItem(file);\n this.controller.listTarget.appendChild(this.item);\n\n this.controller._files_loading++;\n this.controller.uploadingFiles.push({\n file: file,\n xhrUpload: this.xhrUpload,\n })\n if (this.controller._formSubmitButton) this.controller._formSubmitButton.disabled = true;\n this.item.classList.add(\"uploading\")\n const statusText = this.item.querySelector(\".status-text\");\n statusText.innerHTML = \"Envoi en cours...\";\n\n // Remove all error items\n this.controller.element.querySelectorAll(\".oq-file-item.error\").forEach(element => element.remove());\n\n // Check mime type\n if (!this.controller.allowedTypesValue.includes(file.type) && !this.controller.allowedTypesValue.includes(\"*\")) {\n statusText.innerHTML = \"Format de fichier non accepté\";\n this.item.classList.add(\"error\");\n this.controller._files_loading--;\n if (this.controller._formSubmitButton && this.controller._disable_if_empty === 'false') {\n this.controller._formSubmitButton.disabled = false;\n }\n return false;\n }\n\n // Check file size\n if (this.controller.maxFileSizeValue && file.size > this.controller.maxFileSizeValue) {\n statusText.innerHTML = `Le fichier est trop volumineux (${this.formatFileSize(this.controller.maxFileSizeValue)} max)`;\n this.item.classList.add(\"error\");\n this.item.classList.remove(\"uploading\");\n this.controller._files_loading--;\n if (this.controller._formSubmitButton && this.controller._disable_if_empty === 'false') {\n this.controller._formSubmitButton.disabled = false;\n }\n return false;\n }\n\n this.upload.create((error, blob) => {\n if (error) {\n // Handle the error\n this.item.classList.add(\"error\");\n statusText.innerHTML = \"Une erreur s'est produite\";\n this.item.classList.remove(\"uploading\");\n this.item.classList.add(\"upload-end\");\n } else {\n this.item.dataset.signedId = blob.signed_id;\n statusText.innerHTML = \"\";\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content\n\n if (controller.uploadUrlValue) {\n // Post the created attachment\n fetch(controller.uploadUrlValue, {\n method: \"post\",\n body: JSON.stringify({file: blob}),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n credentials: \"same-origin\",\n })\n .then(async (response) => {\n const contentType = response.headers.get(\"content-type\");\n let isTurbo = contentType && contentType.includes(\"turbo-stream\");\n if (isTurbo) {\n return response.text().then((d) => ({\n turboStream: true,\n data: d,\n status: response.status,\n }));\n } else {\n let d = null;\n if (contentType && contentType.includes(\"application/json\")) {\n d = await response.json();\n } else {\n d = await response.text();\n }\n return {\n turboStream: false,\n data: d,\n status: response.status,\n }\n }\n })\n .then((data) => {\n this.controller._files_loading--;\n if (this.controller._files_loading <= 0 && this.controller._formSubmitButton) {\n this.controller._formSubmitButton.disabled = false;\n }\n if (data.data.error) {\n this.item.classList.add(\"error\");\n statusText.innerHTML = data.data.error;\n } else {\n statusText.innerHTML = \"\";\n this.item.dataset.publicUid = data.data.public_uid;\n if (data.turboStream) {\n document.body.insertAdjacentHTML(\"beforeend\", data.data);\n } else {\n if (data.status != 204)\n Turbo.visit(window.location.toString(), {action: \"replace\"});\n }\n }\n })\n .catch((error) => {\n this.item.classList.add(\"error\");\n statusText.innerHTML = \"Une erreur s'est produite\";\n if (this._disable_if_empty === 'false') {\n this.controller._formSubmitButton.disabled = false;\n }\n })\n .finally(() => {\n this.item.classList.remove(\"uploading\");\n this.item.classList.add(\"upload-end\");\n });\n } else if (this.controller._form) {\n const hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"value\", blob.signed_id);\n hiddenField.name = this.controller.input.name;\n this.controller._form.appendChild(hiddenField);\n } else if (this.controller.form) {\n\n var reader = new FileReader();\n\n reader.onload = (event) => {\n const filetype = file.type\n const imgPreview = this.item.querySelector(\".img-preview\")\n const filetypeIcon = this.item.querySelector(\".filetype-icon\")\n if (filetype.startsWith(\"image\")) {\n const previewUrl = event.target.result\n if (imgPreview) {\n imgPreview.setAttribute(\"src\", previewUrl)\n imgPreview.classList.remove(\"hidden\")\n filetypeIcon.classList.add(\"hidden\")\n }\n if (this.controller.hasPreviewWrapperTarget && this.controller.previewFileValue == true) {\n this.controller.previewWrapperTarget.classList.remove(\"hidden\");\n this.controller.previewWrapperTarget.style.backgroundImage = `url('${previewUrl}')`;\n }\n } else {\n const extension = filetype.split(\"/\")[1]\n const icon = this.controller.filetypeIconsValue[extension] || this.controller.filetypeIconsValue[\"default\"]\n if (icon) {\n imgPreview.classList.add(\"hidden\")\n filetypeIcon.setAttribute(\"src\", icon)\n filetypeIcon.classList.remove(\"hidden\")\n }\n }\n }\n\n reader.readAsDataURL(file);\n\n this.item.querySelector(\"input\").value = blob.signed_id\n this.controller._files_loading--;\n this.item.classList.remove(\"uploading\");\n if (this.controller._files_loading <= 0) {\n this.controller._formSubmitButton.disabled = false;\n }\n this.controller.uploadedFiles.push({file: file, signed_id: blob.signed_id});\n }\n }\n\n this.controller.updateControls()\n });\n }\n\n directUploadWillStoreFileWithXHR(request) {\n this.xhr = request\n this.xhr.upload.addEventListener(\"progress\", (event) => this.directUploadDidProgress(event));\n this.xhr.upload.addEventListener(\"abort\", (event) => this.directUploadAborted(event));\n\n // Bind cancel upload button\n // const cancelUploadBtn = this.item.querySelector(\".cancel-upload-btn\")\n // cancelUploadBtn.addEventListener(\"click\", () => {\n // this.xhr.abort();\n // })\n }\n\n directUploadAborted(event) {\n }\n\n directUploadWillCreateBlobWithXHR(request) {\n\n }\n\n directUploadDidProgress(event) {\n this.item.classList.add(\"uploading\");\n this.item.querySelector(\".progress-bar .progress\").style.width = `${(event.loaded / event.total) * 100}%`;\n if (event.loaded >= event.total) {\n this.item.classList.remove(\"uploading\");\n }\n }\n\n formatFileSize(bytes, decimals = 0) {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['o', 'Ko', 'Mo', 'Go', 'To', 'Po', 'Eo', 'Zo', 'Yo'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals)) + ' ' + sizes[i];\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = ['button']\n\n connect() {\n this.buttonTargets.forEach((button => {\n button.addEventListener('click', this.select.bind(this))\n }).bind(this))\n }\n\n select(e) {\n this.buttonTargets.forEach((button => {\n button.classList.remove('active')\n }))\n const btn = e.currentTarget\n btn.classList.add('active')\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\nexport default class extends Controller {\n static targets = [\"input\"]\n\n #enabled = false\n\n connect() {\n this.#enabled = (this.inputTarget.value == \"1\")\n if (this.#enabled) {\n this.element.classList.add(\"enabled\")\n } else {\n this.element.classList.remove(\"enabled\")\n }\n }\n\n toggle(e) {\n e.preventDefault()\n e.stopPropagation()\n if (this.#enabled) {\n this.element.classList.remove(\"enabled\")\n } else {\n this.element.classList.add(\"enabled\")\n }\n this.#enabled = !this.#enabled\n this.inputTarget.value = this.#enabled ? 1 : 0\n this.inputTarget.checked = this.#enabled\n const event = new Event('change');\n this.inputTarget.dispatchEvent(event);\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\nimport _ from \"lodash\";\n\nexport default class extends Controller {\n\n static targets = [\"draggable\", \"droppable\", \"bloc\"]\n static values = {updateIndexesUrl: String}\n\n #currentDraggable\n #currentDroppable\n #cursorX\n #cursorDirection\n\n #previousDroppable\n #placement\n\n initialize() {\n this.dragstartHandler = this.dragstartHandler.bind(this)\n this.dragoverHandler = this.dragoverHandler.bind(this)\n this.dragenterHandler = this.dragenterHandler.bind(this)\n this.dragendHandler = this.dragendHandler.bind(this)\n }\n\n connect() {\n this.draggableTargets.forEach(d => {\n d.addEventListener(\"dragstart\", this.dragstartHandler);\n d.addEventListener(\"dragend\", this.dragendHandler);\n })\n this.droppableTargets.forEach(d => {\n d.addEventListener(\"dragover\", this.dragoverHandler);\n d.addEventListener(\"dragenter\", this.dragenterHandler);\n })\n }\n\n dragstartHandler(ev) {\n // Add the target element's id to the data transfer object\n ev.dataTransfer.setData(\"text/plain\", ev.target.id);\n ev.dataTransfer.dropEffect = \"none\";\n this.#currentDraggable = ev.currentTarget\n this.#currentDraggable.classList.add(\"outline\", \"outline-blue\")\n this.#currentDraggable.style.cursor = 'grabbing'\n this.#placement = null\n this.#previousDroppable = null\n // Disable ghost image\n const transparentPixel = new Image();\n transparentPixel.src = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\n ev.dataTransfer.setDragImage(transparentPixel, 0, 0);\n }\n\n positionChanged(placement) {\n if (this.#currentDroppable != this.#previousDroppable)\n return true\n if (placement != this.#placement)\n return true\n return false\n }\n\n dragoverHandler(ev) {\n ev.preventDefault();\n if (!this.#currentDraggable)\n return false;\n ev.dataTransfer.dropEffect = \"none\";\n const isDraggable = this.draggableTargets.includes(this.#currentDroppable)\n const cursorX = ev.clientX\n const direction = (this.#cursorX == cursorX) ? (this.#cursorDirection || \"left\") : (this.#cursorX < cursorX ? \"right\" : \"left\")\n this.#cursorDirection = direction\n this.#cursorX = cursorX\n let placement = \"before\"\n if (isDraggable) {\n const dropRect = this.#currentDroppable.getBoundingClientRect();\n if (direction == \"left\") {\n placement = (cursorX < (dropRect.left + dropRect.width * 4 / 5)) ? \"before\" : \"after\"\n } else {\n placement = (cursorX < (dropRect.left + dropRect.width * 1 / 5)) ? \"before\" : \"after\"\n }\n }\n\n if (!this.positionChanged(placement)) {\n return\n }\n\n if (!isDraggable || placement == \"before\") {\n if (!(this.#currentDraggable.nextSibling == this.#currentDroppable))\n this.#currentDroppable.before(this.#currentDraggable)\n } else {\n if (!(this.#currentDroppable.nextSibling == this.#currentDraggable))\n this.#currentDroppable.after(this.#currentDraggable)\n }\n\n this.updateIndexes()\n\n this.#placement = placement\n this.#previousDroppable = this.#currentDroppable\n }\n\n dragenterHandler(ev) {\n this.#currentDroppable = ev.currentTarget\n }\n\n dragendHandler(ev) {\n this.#currentDraggable.style.cursor = 'grab'\n this.#currentDraggable.classList.remove(\"outline\", \"outline-blue\")\n\n // Update Request\n this.updateIndexesRequest()\n\n this.#currentDraggable = null\n this.#currentDroppable = null\n }\n\n updateIndexes() {\n this.blocTargets.forEach(b => {\n const draggables = b.querySelectorAll(\".draggable\")\n for (let i = 0; i < draggables.length; i++) {\n const draggable = draggables[i]\n draggable.querySelector(\".draggable_index\").innerText = i == 0 ? \"Image principale\" : (i + 1).toString()\n }\n })\n }\n\n updateIndexesRequest() {\n const json = []\n this.blocTargets.forEach(b => {\n const draggables = b.querySelectorAll(\".draggable\")\n for (let i = 0; i < draggables.length; i++) {\n const d = draggables[i]\n json.push({\n attachment_id: d.dataset.id,\n attached_to_type: b.dataset.type,\n attached_to_id: b.dataset.id,\n position: i + 1,\n })\n }\n })\n\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content\n\n fetch(this.updateIndexesUrlValue, {\n method: \"POST\",\n body: JSON.stringify({attachments: json}),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n })\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n this.initVisibility()\n }\n\n initVisibility() {\n const blocPerms = this.element.querySelectorAll(\".bloc-perm\")\n blocPerms.forEach(blocPerm => {\n const toggle = blocPerm.querySelector(\".oq-toggle .oq-input\")\n this.toggleBlocPerm(blocPerm, toggle.checked)\n })\n }\n\n toggleBlocPerm(blocPerm, checked) {\n const displays = blocPerm.querySelectorAll(\".display-checked\")\n if (checked) {\n blocPerm.classList.add(\"bg-brand-50\")\n blocPerm.classList.add(\"border-brand\")\n blocPerm.classList.remove(\"bg-gray-50\")\n displays.forEach(display => {\n display.classList.remove(\"hidden\")\n })\n } else {\n blocPerm.classList.remove(\"bg-brand-50\")\n blocPerm.classList.remove(\"border-brand\")\n blocPerm.classList.add(\"bg-gray-50\")\n displays.forEach(display => {\n display.classList.add(\"hidden\")\n })\n }\n }\n\n togglePermission(e) {\n const toggle = e.currentTarget\n const blocPerm = toggle.closest(\".bloc-perm\")\n this.toggleBlocPerm(blocPerm, toggle.checked)\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nexport default class extends Controller {\n\n static targets = [\"addressInput\"]\n\n static values = { autocompleteId: String}\n\n #autocompleteInput\n\n initialize() {\n this.onInputChanged = this.onInputChanged.bind(this)\n }\n\n connect() {\n this.element[this.identifier] = this;\n // Check si on est en mode autocomplete\n if (this.hasAutocompleteIdValue) {\n // On recupere l input autocomplete grace a l uniq id genere dans le composant (car a l exterieur du data-controller)\n this.#autocompleteInput = document.querySelector(`[data-id='${this.autocompleteIdValue}']`)\n if (this.#autocompleteInput) {\n // On surveille les changements auto sur l addresse pour verifier qu on ait bien selectionne un element parmi la liste\n this.addressInputTarget.addEventListener(\"change\", this.onInputChanged)\n }\n }\n }\n\n disconnect() {\n if (this.#autocompleteInput) {\n this.addressInputTarget.removeEventListener(\"change\", this.onInputChanged)\n }\n }\n\n onInputChanged(e) {\n const formGroup = this.#autocompleteInput.closest(\".oq-form-group\")\n const fieldError = formGroup.querySelector(\".field-error\")\n if (!this.addressInputTarget.value) {\n // Si l input adresse est vide (= clear lorsqu on cherche une nouvelle adresse) on affiche une erreur sous l input autocomplete\n formGroup.classList.add(\"is-invalid\")\n fieldError.innerText = \"Veuillez sélectionner une adresse parmi la liste.\"\n } else {\n formGroup.classList.remove(\"is-invalid\")\n fieldError.innerText = \"\"\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n 'honoProprioInput',\n 'honoProprioHiddenInput',\n 'noExpenseProprioBtn',\n 'addExpenseProprioBtn',\n 'addAvoirProprioBtn',\n 'avoirProprioInputWrapper',\n 'avoirProprioInput',\n 'honoLocInput',\n 'honoLocHiddenInput',\n 'noExpenseLocBtn',\n 'addExpenseLocBtn',\n 'addAvoirLocBtn',\n 'avoirLocInputWrapper',\n 'avoirLocInput',\n ]\n\n removeExpenseProprio() {\n this.honoProprioInputTarget.value = 0.0;\n this.honoProprioHiddenInputTarget.value = 0.0;\n this.noExpenseProprioBtnTarget.classList.add('hidden');\n this.addExpenseProprioBtnTarget.classList.remove('hidden');\n if (!this.avoirProprioInputWrapperTarget.classList.contains('hidden')) {\n this.avoirProprioInputWrapperTarget.classList.add('hidden');\n }\n if (!this.addAvoirProprioBtnTarget.classList.contains('hidden')) {\n this.addAvoirProprioBtnTarget.classList.add('hidden');\n }\n this.avoirProprioInputTarget.value = null;\n }\n\n addExpenseProprio() {\n const originalValue = parseFloat(this.honoProprioInputTarget.dataset.originalvalue);\n this.honoProprioInputTarget.value = originalValue;\n this.honoProprioHiddenInputTarget.value = originalValue;\n this.noExpenseProprioBtnTarget.classList.remove('hidden');\n this.addExpenseProprioBtnTarget.classList.add('hidden');\n this.addAvoirProprioBtnTarget.classList.remove('hidden');\n }\n\n\n addAvoirProprio() {\n this.avoirProprioInputWrapperTarget.classList.remove('hidden');\n this.addAvoirProprioBtnTarget.classList.add('hidden');\n }\n\n closeAddAvoirProprio() {\n this.avoirProprioInputWrapperTarget.classList.add('hidden');\n this.addAvoirProprioBtnTarget.classList.remove('hidden');\n this.avoirProprioInputTarget.value = null;\n }\n\n removeExpenseLoc() {\n this.honoLocInputTarget.value = 0.0;\n this.honoLocHiddenInputTarget.value = 0.0;\n this.noExpenseLocBtnTarget.classList.add('hidden');\n this.addExpenseLocBtnTarget.classList.remove('hidden');\n if (!this.avoirLocInputWrapperTarget.classList.contains(\"hidden\")) {\n this.avoirLocInputWrapperTarget.classList.add(\"hidden\");\n }\n if (!this.addAvoirLocBtnTarget.classList.contains('hidden')) {\n this.addAvoirLocBtnTarget.classList.add('hidden');\n }\n this.avoirLocInputTarget.value = null;\n }\n\n addExpenseLoc() {\n const originalValue = parseFloat(this.honoLocInputTarget.dataset.originalvalue);\n this.honoLocInputTarget.value = originalValue;\n this.honoLocHiddenInputTarget.value = originalValue;\n this.noExpenseLocBtnTarget.classList.remove('hidden');\n this.addExpenseLocBtnTarget.classList.add('hidden');\n this.addAvoirLocBtnTarget.classList.remove('hidden');\n }\n\n addAvoirLoc() {\n this.avoirLocInputWrapperTarget.classList.remove(\"hidden\");\n this.addAvoirLocBtnTarget.classList.add('hidden');\n }\n\n closeAddAvoirLoc() {\n this.avoirLocInputWrapperTarget.classList.add(\"hidden\");\n this.addAvoirLocBtnTarget.classList.remove('hidden');\n this.avoirLocInputTarget.value = null;\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\n\nconst colors = [\n \"#111111\", \"#0084FA\", \"#F26619\", \"#7D4FFE\",\n \"#FE277E\", \"#679436\", \"#DE2E4B\", \"#082BCB\",\n \"#F3BB00\", \"#2A9D8F\", \"#0FAC71\", \"#2DBDB4\",\n];\n\nexport default class extends Controller {\n static targets = [\"colorPicker\", \"input\"];\n\n _selectedColor = \"#FFFFFF\";\n\n initialize() {\n }\n\n connect() {\n this.switchColor();\n }\n\n switchColor() {\n let color = this._selectedColor;\n while (color == this._selectedColor)\n color = colors[Math.floor(Math.random() * colors.length)];\n this._selectedColor = color;\n this.colorPickerTarget.style.backgroundColor = this._selectedColor;\n this.inputTarget.value = this._selectedColor;\n }\n}\n","import ReadMore from 'stimulus-read-more'\n\nexport default class extends ReadMore {\n\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"resourceInput\", \"resourceTypeInput\", \"resourceInputGroup\"]\n static values = {resourceUrls: Object}\n\n #resourceTypeController\n #resourceController\n\n connect() {\n this.updateInputs()\n }\n updateInputs() {\n if (this.resourceTypeValue) {\n this.resourceInputGroupTarget.classList.remove(\"hidden\")\n this.updateResourceUrl()\n } else {\n this.resourceInputGroupTarget.classList.add(\"hidden\")\n this.resourceController?.clearValue()\n }\n }\n updateResourceUrl() {\n if (!this.resourceController)\n return\n // On met a jour l url ajax si changement de type de resource liee\n const url = this.resourceUrlsValue[this.resourceTypeValue]\n if (url != this.resourceController.ajaxUrl) {\n this.resourceController.clearValue()\n this.resourceController.setAjaxUrl(url)\n }\n }\n get resourceTypeValue() {\n this.#resourceTypeController ||= this.resourceTypeInputTarget[\"form--collection-select--component\"]\n return this.#resourceTypeController?.value\n }\n\n get resourceController() {\n this.#resourceController ||= this.resourceInputTarget[\"form--collection-select--component\"]\n return this.#resourceController\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n \"lotInput\",\n \"beginDateInput\",\n \"encadrementReferenceInput\",\n \"encadrementReferenceMajoreInput\",\n \"honosMelInput\",\n \"honosMelProprioInput\",\n \"isForcedInput\",\n \"isForcedInputWrapper\",\n \"locEnPlaceInput\",\n ]\n\n\n updateFieldsBasedOnBeginDateAndLot() {\n this.updateEncadrementValue()\n this.updateHonorairesMel()\n }\n\n updateHonorairesMel() {\n const locEnPlace = this.locEnPlaceInputTarget.value === \"true\"\n // On n update pas les honoraires si loc en place oui\n if (locEnPlace)\n return\n let beginDate = this.beginDateInputTarget.value\n let lotId = this.lotInputTarget[\"form--collection-select--component\"].value\n\n if (!beginDate || !lotId)\n return false;\n\n try {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content\n fetch(`/oqoro_admin/lots/${lotId}/honoraires_mel?lease_begin_date=${beginDate}`)\n .then(resp => resp.json())\n .then(data => {\n const {honoraires_frais_mise_en_location_reel, honoraires_frais_mise_en_location_proprio} = data\n this.honosMelInputTarget.value = honoraires_frais_mise_en_location_reel\n this.honosMelProprioInputTarget.value = honoraires_frais_mise_en_location_proprio\n })\n } catch (error) {\n }\n }\n\n updateEncadrementValue() {\n let beginDate = this.beginDateInputTarget.value\n let lotId = this.lotInputTarget[\"form--collection-select--component\"].value\n\n if (!beginDate || !lotId)\n return false;\n\n try {\n const csrfToken = document.querySelector('meta[name=\"csrf-token\"]').content\n fetch(`/admin/lots/${lotId}/property_id`)\n .then(resp => resp.json())\n .then(data => {\n const {property_id} = data\n fetch(`/oqoro_admin/properties/${property_id}/encadrement_value`, {\n method: \"POST\",\n body: JSON.stringify({lease_date: beginDate}),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n credentials: \"same-origin\",\n })\n .then(resp => resp.json())\n .then(data => {\n const {reference_value, reference_value_majore} = data\n this.encadrementReferenceInputTarget.value = reference_value\n this.encadrementReferenceMajoreInputTarget.value = reference_value_majore\n })\n })\n } catch (error) {\n }\n }\n\n toggleIsForced(e) {\n let locEnPlaceValue = e.target.value === \"true\" ? true : false;\n if (locEnPlaceValue) {\n if (this.isForcedInputWrapperTarget.classList.contains(\"hidden\")) {\n this.isForcedInputWrapperTarget.classList.remove(\"hidden\");\n }\n } else {\n if (!this.isForcedInputWrapperTarget.classList.contains(\"hidden\")) {\n this.isForcedInputWrapperTarget.classList.add(\"hidden\");\n }\n this.isForcedInputTarget.checked = false;\n }\n }\n\n locEnPlaceChanged(e) {\n const locEnPlace = e.currentTarget.value\n if (locEnPlace === \"true\") {\n // Set honos to zeros\n this.honosMelInputTarget.value = 0\n this.honosMelProprioInputTarget.value = 0\n } else {\n // Recalculate honos\n this.updateHonorairesMel()\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n static targets = [\"omnibar\", \"searchInput\"];\n\n _filterForm = null;\n _searchInput = null;\n\n connect() {\n if (!this._filterForm) {\n this._filterForm = this.element.querySelector(\".filter_form\");\n this.element.querySelector(\"#q_search_input\").style.display = \"none\";\n }\n\n if (!this._searchInput) {\n this._searchInput = this._filterForm.querySelector(\"[name='q[search]']\");\n }\n if (!this._searchInput) {\n this.searchInputTarget.classList.add(\"hidden\");\n }\n }\n\n deleteFilter({params: {fieldName, value}}) {\n const isMultiple = fieldName.endsWith(\"_in]\");\n const selector = isMultiple ? `select[name=\"${fieldName}[]\"]` : `[name=\"${fieldName}\"]`\n\n const field = this._filterForm.querySelector(selector);\n\n if (this.clearField(field, value)) {\n this._filterForm.submit();\n }\n }\n\n clearField(field, value) {\n if (!field)\n return false;\n if (field.tagName == \"SELECT\") {\n const option = field.querySelector(`option[value=\"${value}\"]`);\n if (!option)\n return false;\n option.removeAttribute(\"selected\");\n } else {\n field.value = \"\";\n }\n return true;\n }\n\n searchSubmit(e) {\n e.preventDefault();\n if (this._searchInput) {\n const search = this.searchInputTarget.value;\n this._filterForm.querySelector(\"[name='q[search]']\").value = search;\n }\n this._filterForm.submit();\n return false;\n }\n\n updateSearchInput(e) {\n if (this._searchInput) {\n this._filterForm.querySelector(\"[name='q[search]']\").value = this.searchInputTarget.value;\n }\n }\n\n saveFilter(e) {\n if (!this._filterForm)\n return false;\n const data = new FormData(this._filterForm);\n\n let d = {};\n for (const pair of data.entries()) {\n const key = pair[0];\n const value = pair[1];\n if (!(key.startsWith(\"q[\")) || !value)\n continue;\n\n if (key.endsWith(\"[]\")) {\n const keyclean = key.substring(2, key.length - 3);\n if (!d[keyclean])\n d[keyclean] = [];\n d[keyclean].push(value);\n } else {\n const keyclean = key.substring(2, key.length - 1);\n d[keyclean] = value;\n }\n\n }\n const json = JSON.stringify(d);\n document.querySelector(\"[name='filter[filters]']\").value = json;\n }\n\n selectCustomFilter() {\n let input = document.createElement(\"input\");\n input.type = \"hidden\";\n input.name = \"q[custom_filters][]\";\n input.value = \"1\";\n this._filterForm.append(input);\n this._filterForm.submit();\n }\n}","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n\n connect() {\n }\n}\n","import Dropdown from \"stimulus-dropdown\";\nimport {useClickOutside} from \"stimulus-use\";\n\nexport default class extends Dropdown {\n static targets = [\"list\", \"toggler\"];\n\n initialize() {\n this.onScroll = this.onScroll.bind(this)\n }\n\n connect() {\n super.connect();\n this.element[this.identifier] = this;\n useClickOutside(this, {element: this.menuTarget});\n this.element.dispatchEvent(new Event('connected'));\n }\n\n hide(event) {\n if (event)\n super.hide(event);\n this.element.classList.remove(\"open\");\n this.menuTarget.classList.add(\"hidden\");\n this.element.dispatchEvent(new CustomEvent(\"close\"))\n window.removeEventListener(\"scroll\", this.onScroll, true);\n }\n\n toggle(event) {\n if (this.menuTarget.classList.contains(\"hidden\")) {\n this.show()\n } else {\n this.hide(event)\n }\n }\n\n show(event) {\n this.element.classList.add(\"open\");\n this.menuTarget.classList.remove(\"hidden\");\n this.updatePosition();\n window.addEventListener(\"scroll\", this.onScroll, true);\n }\n\n\n enable() {\n this.element.classList.remove(\"disabled\");\n }\n\n disable() {\n this.element.classList.add(\"disabled\");\n }\n\n onScroll(event) {\n try {\n if (event?.target && event.target.closest('.oq-dropdown')) {\n // Prevent repositioning if scrolling inside dropdown\n return false;\n }\n } catch (e) {\n }\n this.updatePosition()\n }\n\n isFixedRelativeToContainer(element) {\n let currentNode = element.parentElement;\n\n while (currentNode && currentNode !== document.documentElement) {\n const computedStyle = window.getComputedStyle(currentNode);\n // Check for properties that create a new containing block\n if (\n computedStyle.transform !== 'none' ||\n computedStyle.willChange.includes('transform') ||\n computedStyle.filter !== 'none' ||\n computedStyle.backdropFilter !== 'none' ||\n computedStyle.perspective !== 'none' ||\n computedStyle.contain !== 'none'\n ) {\n return currentNode; // Return the container that affects positioning\n }\n\n currentNode = currentNode.parentElement;\n }\n\n return null; // Returns null if the element is relative to the viewport\n }\n\n updatePosition() {\n // Only update position when open\n if (!this.element.classList.contains(\"open\"))\n return false\n\n const container = this.isFixedRelativeToContainer(this.menuTarget)\n\n const padding = 8\n this.menuTarget.style.removeProperty('top');\n this.menuTarget.style.removeProperty('right');\n this.menuTarget.style.removeProperty('bottom');\n this.menuTarget.style.removeProperty('left');\n\n let offsetX = 0\n let offsetY = 0\n const {top, left, right, bottom, height} = this.togglerTarget.getBoundingClientRect()\n if (container) {\n const containerRect = container.getBoundingClientRect()\n offsetX = containerRect.left * -1\n offsetY = containerRect.top * -1\n }\n const parentScrollTop = this.element.scrollTop;\n const w = window.innerWidth;\n const h = document.body.offsetHeight;\n let menuRect = this.menuTarget.getBoundingClientRect();\n // Calculate dropdown position based on the parent scroll position\n let menuTop = top + height - parentScrollTop + padding + offsetY\n // let menuTop = top + height + window.scrollY - parentScrollTop + padding + offsetY\n let menuLeft = left + window.scrollX + offsetX\n let menuRight = w - right\n let menuTopBottom = top - menuRect.height - padding\n this.menuTarget.style.maxHeight = ''\n\n this.menuTarget.style.top = `${menuTop}px`;\n this.menuTarget.style.left = `${menuLeft}px`;\n\n menuRect = this.menuTarget.getBoundingClientRect();\n if (w < menuRect.right) {\n this.menuTarget.style.right = `${menuRight}px`\n this.menuTarget.style.removeProperty('left');\n }\n if (h < menuRect.bottom) {\n // Check available space on top\n if (menuRect.height > (top + window.scrollY - padding)) {\n this.menuTarget.style.maxHeight = `${top + window.scrollY - padding}px`\n menuTopBottom = top - (top + window.scrollY - padding) - padding\n }\n this.menuTarget.style.top = `${menuTopBottom}px`\n }\n }\n\n clickOutside(e) {\n e.preventDefault()\n\n let rect = this.menuTarget.getBoundingClientRect();\n if (!(e.clientX >= rect.left && e.clientX <= rect.right && e.clientY >= rect.top && e.clientY <= rect.bottom)) {\n this.hide(e);\n }\n }\n}\n\n","import {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"button\", \"input\"]\n static values = {value: String};\n\n initialize() {\n this.onClick = this.onClick.bind(this)\n }\n\n connect() {\n this.buttonTarget.addEventListener(\"click\", this.onClick)\n // Initial value\n const val = this.inputTarget.value\n if (val == \"\") {\n this.buttonTarget.classList.remove(\"checked\")\n } else {\n this.buttonTarget.classList.add(\"checked\")\n }\n }\n\n disconnect() {\n this.buttonTarget.removeEventListener(\"click\", this.onClick)\n }\n\n onClick(e) {\n const val = this.inputTarget.value\n if (val == \"\") {\n this.inputTarget.value = this.valueValue\n this.buttonTarget.classList.add(\"checked\")\n } else {\n this.inputTarget.value = \"\"\n this.buttonTarget.classList.remove(\"checked\")\n }\n }\n}\n","import {Controller} from \"@hotwired/stimulus\";\nimport Quill from \"quill\";\nimport {HtmlToDelta} from 'quill-delta-from-html';\n\nexport default class extends Controller {\n static targets = [\"editor\", \"toolbar\", \"summary\", \"editBtn\", \"cancelBtn\", \"submitBtn\", \"maxlengthWrapper\"]\n static values = { text: String, readonly: Boolean, editable: Boolean, resizable: Boolean, maxlength: Number}\n\n #input = null\n #editor = null\n #textarea = null\n\n initialize() {\n this.onInput = this.onInput.bind(this);\n }\n\n connect() {\n this.#textarea = this.element.querySelector(\"textarea\")\n if (this.#textarea)\n this.initTextarea()\n if (this.hasEditorTarget)\n this.initEditor()\n this.handleMaxlength();\n }\n\n disconnect() {\n this.element.removeEventListener(\"input\", this.onInput);\n }\n\n initTextarea() {\n this.offset = this.#textarea.offsetHeight - this.#textarea.clientHeight;\n this.#textarea.addEventListener(\"input\", this.onInput);\n this.resize();\n }\n\n initEditor() {\n this.#input = this.element.querySelector('textarea')\n this.#editor = new Quill(this.editorTarget, {\n modules: {\n toolbar: this.toolbarTarget,\n },\n readOnly: this.readonlyValue,\n });\n this.#editor.on('text-change', (delta, oldDelta, source) => {\n this.refreshSummary()\n })\n if (this.hasTextValue && this.textValue) {\n this.#editor.clipboard.dangerouslyPasteHTML(this.textValue)\n }\n if (this.readonlyValue == true && this.editableValue == true) {\n this.hideEdit()\n }\n }\n\n showEdit() {\n this.#editor.enable()\n this.editBtnTarget.classList.add(\"hidden\")\n this.cancelBtnTarget.classList.remove(\"hidden\")\n this.submitBtnTarget.classList.remove(\"hidden\")\n this.element.classList.remove(\"disabled\")\n }\n\n hideEdit() {\n this.#editor.disable()\n this.editBtnTarget.classList.remove(\"hidden\")\n this.cancelBtnTarget.classList.add(\"hidden\")\n this.submitBtnTarget.classList.add(\"hidden\")\n this.#editor.setText(\"\")\n this.#editor.clipboard.dangerouslyPasteHTML(this.textValue)\n this.element.classList.add(\"disabled\")\n }\n\n refreshSummary() {\n const text = this.#editor.root.innerHTML;\n if (!this.hasSummaryTarget) {\n this.#input.value = text;\n return false\n }\n const re = /]*>((?!<\\/h1>).)*<\\/h1>/gmi\n const res = [...text.matchAll(re)];\n this.summaryTarget.innerHTML = \"\"\n res.forEach(r => {\n let li = document.createElement(\"li\");\n li.innerHTML = r[0];\n li.innerHTML = (li.textContent || li.innerText).trim()\n if (li.innerHTML) {\n li.dataset.action = \"click->form--text-area--component#goToTitle\"\n this.summaryTarget.appendChild(li)\n }\n })\n this.#input.value = text\n }\n\n goToTitle(e) {\n const li = e.currentTarget\n var headings = document.evaluate(`//h1[contains(., \"${li.innerText}\")]`, this.editorTarget, null, XPathResult.ANY_TYPE, null);\n var heading = headings.iterateNext();\n if (heading)\n heading.scrollIntoView()\n }\n\n onInput() {\n this.resize();\n this.handleMaxlength();\n }\n\n handleMaxlength() {\n if (this.hasMaxlengthValue) {\n let currentLength = this.#textarea.value.length;\n this.maxlengthWrapperTarget.textContent = `${currentLength}/${this.maxlengthValue}`\n }\n }\n\n resize() {\n if (this.resizableValue == false)\n return;\n this.#textarea.style.height = 'auto';\n this.#textarea.style.height = this.#textarea.scrollHeight + this.offset + 'px';\n }\n}\n","var map = {\n\t\"./color_input/component.js\": 79682,\n\t\"./color_input/component_controller.js\": 87733\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 = 93862;","import { Controller } from \"@hotwired/stimulus\";\nexport default class extends Controller {\n static targets = [\"input\", \"ibanInput\"];\n\n initialize() {\n this.on_input = this.on_input.bind(this)\n this.on_keydown = this.on_keydown.bind(this)\n this.on_focus = this.on_focus.bind(this)\n this.on_paste = this.on_paste.bind(this)\n }\n\n connect() {\n this.element[this.identifier] = this;\n\n this.updateInputStyle();\n if (this.inputTarget.value) {\n this.update_fields(this.inputTarget.value);\n }\n this.ibanInputTargets.forEach((input) => {\n input.addEventListener(\"input\", (e) => this.on_input(e, input));\n input.addEventListener(\"keydown\", (e) => this.on_keydown(e, input));\n input.addEventListener(\"focus\", (e) => this.on_focus(e, input));\n input.addEventListener(\"paste\", (e) => this.on_paste(e, input));\n });\n }\n\n disconnect() {\n this.ibanInputTargets.forEach((input) => {\n input.removeEventListener(\"input\", this.on_input);\n input.removeEventListener(\"keydown\", this.on_keydown);\n input.removeEventListener(\"focus\", this.on_focus);\n input.removeEventListener(\"paste\", this.on_paste);\n });\n }\n\n\n on_focus(e, input) {\n input.select();\n }\n\n on_input(e, input) {\n const index = this.ibanInputTargets.findIndex((i) => i == input);\n if (input.value.length >= parseInt(input.getAttribute(\"maxlength\"))) {\n // Focus next input\n const nextInput = index < this.ibanInputTargets.length - 1 ? this.ibanInputTargets[index + 1] : null;\n if (nextInput) nextInput.focus();\n }\n }\n\n on_keydown(e, input) {\n if (e.key === \"Backspace\") {\n const index = this.ibanInputTargets.findIndex((i) => i == input);\n if (input.value.length == 0) {\n e.preventDefault();\n input.value = \"\";\n\n const prevInput = index > 0 ? this.ibanInputTargets[index - 1] : null;\n if (prevInput) prevInput.focus();\n }\n }\n }\n\n on_paste(e) {\n let paste = (e.clipboardData || window.clipboardData).getData(\"text\");\n paste = paste.replace(/\\s/g, \"\");\n this.update_fields(paste);\n this.update();\n }\n\n update_fields(value) {\n const fields_values = value.match(/.{1,4}/g);\n this.ibanInputTargets.forEach(\n ((input, index) => {\n const val = fields_values[index] === undefined ? \"\" : fields_values[index];\n input.value = val;\n }).bind(this)\n );\n }\n\n update() {\n let iban = \"\";\n this.ibanInputTargets.forEach((input) => {\n iban += input.value;\n });\n this.inputTarget.value = iban.toUpperCase();\n }\n\n updateInputStyle() {\n if (this.inputTarget.classList.contains(\"is-danger\")) {\n this.ibanInputTargets.forEach((input) => {\n input.classList.add(\"is-danger\");\n });\n }\n }\n\n setValue(value) {\n this.inputTarget.value = value\n this.update_fields(value)\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static values = { activeTab: String, followLink: Boolean };\n\n connect() {\n this.element.querySelectorAll(`.OQORO-tab__tab`).forEach(\n ((el) => {\n let tab = el.dataset.tab;\n el.addEventListener(\n \"click\",\n (() => {\n this.selectTab(tab);\n if (this.followLinkValue == true) {\n let url = el.dataset.tabUrl;\n window.location = url;\n }\n }).bind(this)\n );\n }).bind(this)\n );\n if (this.activeTabValue) {\n this.selectTab(this.activeTabValue);\n }\n }\n\n selectTab(tab) {\n this.element.querySelectorAll(`.OQORO-tab__tab`).forEach((el) => {\n if (el.dataset.tab == tab) {\n el.classList.add(\"active\");\n let url = el.dataset.tabUrl;\n if (url && this.followLinkValue == false) {\n window.history.pushState(null, \"\", url);\n }\n } else el.classList.remove(\"active\");\n });\n document.querySelectorAll(\".OQORO-tab__panel\").forEach(\n ((el) => {\n if (el.dataset.tab == tab) el.classList.add(\"open\");\n else el.classList.remove(\"open\");\n }).bind(this)\n );\n }\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static values = {activeTab: String, followLink: Boolean}\n\n connect() {\n this.element.querySelectorAll(`.MBA-tab__tab`).forEach((el => {\n let tab = el.dataset.tab\n el.addEventListener(\"click\", (() => {\n this.selectTab(tab);\n if (this.followLinkValue == true) {\n let url = el.dataset.tabUrl\n window.location = url\n }\n }).bind(this));\n }).bind(this))\n if (this.activeTabValue) {\n this.selectTab(this.activeTabValue)\n }\n }\n\n selectTab(tab) {\n this.element.querySelectorAll(`.MBA-tab__tab`).forEach(el => {\n if (el.dataset.tab == tab) {\n el.classList.add('active')\n let url = el.dataset.tabUrl\n if (url && this.followLinkValue == false) {\n window.history.pushState(null, '', url)\n }\n } else\n el.classList.remove('active')\n })\n document.querySelectorAll(\".MBA-tab__panel\").forEach(((el) => {\n if (el.dataset.tab == tab)\n el.classList.add(\"open\")\n else\n el.classList.remove(\"open\")\n }).bind(this))\n }\n\n}\n","import {Controller} from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"btnPlus\", \"btnMinus\", \"value\"]\n static values = {min: Number, max: Number}\n\n _input = null\n\n connect() {\n this.btnPlusTarget.addEventListener(\"click\", (() => {\n this.plus()\n }).bind(this))\n this.btnMinusTarget.addEventListener(\"click\", (() => {\n this.minus()\n }).bind(this))\n this._input = this.element.getElementsByTagName('input')[0]\n this.update()\n }\n\n plus() {\n const value = (parseInt(this._input.value) || this.minValue) + 1\n if (value > this.maxValue)\n return false\n this._input.value = value\n this.update()\n }\n\n minus() {\n const value = (parseInt(this._input.value) || this.minValue) - 1\n if (value < this.minValue)\n return false\n this._input.value = value\n this.update()\n }\n\n update() {\n const value = parseInt(this._input.value)\n this.valueTarget.innerText = value\n if (value <= this.minValue)\n this.btnMinusTarget.setAttribute('disabled', 'disabled')\n else\n this.btnMinusTarget.removeAttribute('disabled')\n if (value >= this.maxValue)\n this.btnPlusTarget.setAttribute('disabled', 'disabled')\n else\n this.btnPlusTarget.removeAttribute('disabled')\n if (value == 0)\n this.element.classList.add('wrapper--inactive')\n else\n this.element.classList.remove('wrapper--inactive')\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"loyerHcInput\",\n \"moisDgInput\",\n \"montantDgInput\",\n \"autoComputeHonorairesInput\",\n \"honorairesTotalLoiAlurInput\",\n \"honorairesFraisMelInput\",\n \"honorairesFraisMelProprioInput\",\n \"montantProvisionsChargesInput\",\n \"isFurnishedInput\",\n \"honosMelBpProprioPercentInput\",\n \"honosMelBpProprioEurosInput\",\n \"honosMelBpProprioEurosPerMeterInput\",\n \"honosMelBpLocatairePercentInput\",\n \"honosMelBpLocataireEurosInput\",\n \"honosMelBpLocataireEurosPerMeterInput\",\n \"propertyAreaInput\",\n ];\n\n #moisDgInputController;\n\n connect() {\n this.actualiseSelectNbMoisDg();\n }\n\n actualiseMontantDepotGarantie() {\n const moisDg = this.moisDgInputTarget?.value && this.moisDgInputTarget.value[0] && parseFloat(this.moisDgInputTarget.value[0].value);\n const loyer = parseFloat(this.loyerHcInputTarget.value);\n\n if (!isNaN(moisDg)) {\n this.montantDgInputTarget.value = loyer * moisDg;\n alert(`Le montant du dépôt de garantie a été mis à jour : ${this.montantDgInputTarget.value} €`);\n } else {\n alert(\"Le montant du dépôt de garantie est fixé librement\");\n }\n }\n\n computeHonoraires() {\n const type = this.element.querySelector(\"[name='form_object[type]']\").value;\n if (type !== \"Lot::Parking\") {\n const checkedBoolAutoComputeHonos = this.autoComputeHonorairesInputTargets.filter((target) => target.checked)[0];\n const boolAutoComputeHonosIsTrue = checkedBoolAutoComputeHonos.value === \"true\";\n const honorairesTotalLoiAlur = parseFloat(this.honorairesTotalLoiAlurInputTarget.value);\n\n if (boolAutoComputeHonosIsTrue) {\n const honoraireLocataire = this.honorairesFraisMelInputTarget;\n const honoraireProprio = this.honorairesFraisMelProprioInputTarget;\n\n // Assignation des honoraires + gestion ALUR\n honoraireLocataire.value = Math.min(this.melLocataireTheorique(), honorairesTotalLoiAlur);\n honoraireProprio.value = this.melProprioTheorique();\n alert(\"Le montant des honoraires à été mis à jour : \" + honoraireLocataire.value + \"€ (locataire) et \" + honoraireProprio.value + \"€ (propriétaire)\");\n }\n }\n }\n \n honorairesEdites() {\n const type = this.element.querySelector(\"[name='form_object[type]']\").value;\n if (type !== \"Lot::Parking\") {\n const checkedBoolAutoComputeHonosInput = this.autoComputeHonorairesInputTargets.filter((target) => target.checked)[0];\n const boolAutoComputeHonosIsTrue = checkedBoolAutoComputeHonosInput.value === \"true\";\n\n if (\n (this.melProprioTheorique() !== this.honorairesFraisMelProprioInputTarget.value ||\n this.melLocataireTheorique() !== this.honorairesFraisMelInputTarget.value) &&\n boolAutoComputeHonosIsTrue\n ) {\n const uncheckedAutoComputeHonosInput = this.autoComputeHonorairesInputTargets.filter((target) => !target.checked)[0];\n checkedBoolAutoComputeHonosInput.checked = false;\n uncheckedAutoComputeHonosInput.checked = true;\n alert(\"Les honoraires sont fixés librement\");\n }\n }\n }\n\n melProprioTheorique() {\n const loyerHc = this.loyerHcInputTarget.value;\n const charges = this.montantProvisionsChargesInputTarget.value;\n const loyerCc = parseFloat(loyerHc) + parseFloat(charges);\n const melProprioPercent = this.honosMelBpProprioPercentInputTarget.value / 100;\n const melProprioEuros = parseFloat(this.honosMelBpProprioEurosInputTarget.value);\n const melProprioEurosPerMeter = parseFloat(this.honosMelBpProprioEurosPerMeterInputTarget.value);\n let honorairesProprio = (loyerCc / 4) * 3;\n\n if (melProprioEuros) {\n honorairesProprio = parseFloat(melProprioEuros);\n } else if (melProprioPercent) {\n honorairesProprio = loyerCc * melProprioPercent;\n } else if (melProprioEurosPerMeter) {\n honorairesProprio = parseFloat(melProprioEurosPerMeter) * parseFloat(this.propertyAreaInputTarget.value);\n }\n return honorairesProprio;\n }\n\n melLocataireTheorique() {\n const loyerHc = this.loyerHcInputTarget.value;\n const charges = this.montantProvisionsChargesInputTarget.value;\n const loyerCc = parseFloat(loyerHc) + parseFloat(charges);\n\n const melLocatairePercent = this.honosMelBpLocatairePercentInputTarget.value / 100;\n const melLocataireEuros = parseFloat(this.honosMelBpLocataireEurosInputTarget.value);\n const melLocataireEurosPerMeter = parseFloat(this.honosMelBpLocataireEurosPerMeterInputTarget.value);\n let honorairesLocataire = (loyerCc / 4) * 3;\n\n if (melLocataireEuros) {\n honorairesLocataire = parseFloat(melLocataireEuros);\n } else if (melLocatairePercent) {\n honorairesLocataire = loyerCc * melLocatairePercent;\n } else if (melLocataireEurosPerMeter) {\n honorairesLocataire = parseFloat(melLocataireEurosPerMeter) * parseFloat(this.propertyAreaInputTarget.value);\n }\n\n return honorairesLocataire;\n }\n\n // MAJ selection nb mois loyer si modification du nu/meuble\n actualiseSelectNbMoisDg() {\n const checked = this.isFurnishedInputTargets.filter((target) => target.checked)[0].value === \"true\";\n let monthDropdown = this.element.querySelector(\".oq-form-group.nb_mois_depot_garantie\");\n const month1 = monthDropdown.querySelector(\"[data-form--collection-select--component-value-param='1']\");\n let month2 = monthDropdown.querySelector(\"[data-form--collection-select--component-value-param='2']\");\n\n if (checked) {\n month2.classList.remove(\"!hidden\");\n } else {\n const controller = monthDropdown.querySelector(\".oq-select\")[\"form--collection-select--component\"];\n if (controller && controller.value == 2) {\n controller.value = { value: 1, text: month1.getAttribute(\"data-form--collection-select--component-text-param\") };\n }\n month2 = monthDropdown.querySelector(\"[data-form--collection-select--component-value-param='2']\");\n month2.classList.add(\"!hidden\");\n }\n }\n\n // MAJ nb mois loyer pour DG lorsque montant DG manuellement renseigne\n actualiseNbMois() {\n this.moisDgInputController?.clearValue();\n this.moisDgInputTarget.dispatchEvent(new Event(\"change\"));\n }\n\n get moisDgInputController() {\n this.#moisDgInputController ||= this.moisDgInputTarget[\"form--collection-select--component\"];\n return this.#moisDgInputController;\n }\n}\n"],"names":["static","name","String","open","Boolean","isBurgerMenuOpen","initialize","this","preventScroll","bind","toggleMenu","e","preventDefault","connect","updateBurgerMenu","window","addEventListener","onWindowResize","menuTarget","toggleMenuBtnTarget","bindTogglers","hasOpenValue","openValue","disconnect","removeEventListener","unbindTogglers","nameValue","document","querySelectorAll","forEach","elem","event","classList","toggle","close","remove","scrollTo","length","querySelector","closeAll","add","scrollDownOnOpen","initiallyOpen","isOpen","initiallyOpenValue","target","HTMLAnchorElement","stopPropagation","element","panelTarget","style","removeProperty","scrollDownOnOpenValue","setTimeout","top","body","scrollHeight","behavior","overflow","maxHeight","filesList","form","files","filesListValue","onInputChange","clearFileInputValue","openDialog","closest","inputTarget","buttonTarget","click","value","updateFilePreview","fileList","concat","Array","from","updateFileInputValue","b","DataTransfer","i","len","items","innerHTML","file","preview","createElement","mainContainer","fileName","append","confirmation","docIcon","deleteBtn","deleteFile","index","indexOf","splice","min","Number","max","changeFrom","parseInt","fromInputTarget","toInputTarget","changeTo","hasMinValue","minValue","hasMaxValue","maxValue","identifier","initDisplay","dispatch","bubbles","activeTab","tabName","URL","location","searchParams","get","tabTargets","find","t","dataset","contains","displayTab","selectTab","tab","currentTarget","selectTabByName","filter","activePanel","panelTargets","p","_default","_Controller","_classCallCheck","_callSuper","arguments","_inherits","key","text","tenantAdminCommentInputTargets","input","landlordCommentInputTarget","Controller","targets","inputMinTarget","onInput","onInputMin","onChangeMin","inputMaxTarget","onChangeMax","val","replace","valMin","onInputMax","valMax","searchUrl","onInputKeyDown","searchInputTarget","instantSearch","searchFormTarget","requestSubmit","selectNextResult","selectPrevResult","getNextResult","hasResultsListTarget","results","resultsListTarget","r","_files","_currentIndex","_modalController","handleShortKeys","touchStart","touchEnd","touchstartX","touchendX","JSON","parse","togglers","id","toggler","fileId","checkDirection","next","prev","displayFile","f","type","content_type","substr","previewImgTarget","display","previewIframeTarget","src","url","findIndex","currentIndexTarget","innerText","btnNextTargets","setAttribute","removeAttribute","btnPrevTargets","changedTouches","screenX","_regeneratorRuntime","Object","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","s","y","GeneratorFunction","GeneratorFunctionPrototype","d","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","_defineProperties","_toPropertyKey","toPrimitive","_toPrimitive","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","valueOf","_setPrototypeOf","_this","updatePrestations","_callee","totalQuantity","totalExtraCost","totalDuration","forfaitCost","forfaitTravelExpense","prestationForfait","prestationForfaitId","data","blocPrestations","groups","group","quantity","prestation","prestationId","_data","_context","fetch","headers","response","json","cost","travel_expense","duration","supply_cost","_updatePrestations","_next","_throw","set","sameSite","_ownerTypeController","_classPrivateFieldLooseKey","_ownerController","_len","args","_key","_this$ownerController","ownerTypeValue","ownerInputGroupTarget","updateownerUrl","ownerController","clearValue","ownerUrlsValue","ajaxUrl","setAjaxUrl","_classPrivateFieldLoo","_classPrivateFieldLoo2","_classPrivateFieldLooseBase","ownerTypeInputTarget","_classPrivateFieldLoo3","ownerInputTarget","ownerUrls","queryTypes","mapboxToken","mapContainerId","submitOnSelect","searchApiUrl","searchInDatabase","countriesScope","displayMap","initialCenter","editingViaManualSearch","mapboxgl","navKeys","currentActiveElement","address","_dropdownController","_form","inputTimer","_initialValue","hasAutocompleteInputTarget","autocompleteInputTarget","onInputEvent","onKeydownEvent","onClickEvent","onFormSubmit","default","init","offsetHeight","initInputs","hasMapTarget","displayMapValue","mapTarget","mapContainerIdValue","accessToken","mapboxTokenValue","_map","Map","container","center","hasInitialCenterValue","initialCenterValue","zoom","on","resizeMap","mapMarker","createElementNS","_marker","Marker","setLngLat","addTo","getElement","visibility","locationValue","search","selectResult","postcodeInputTarget","addressInputTarget","selectManualAddress","citySelectWrapperTarget","countrySelectWrapperTarget","postcodeWrapperTarget","addressInputWrapperTarget","selectAddressTriggerTarget","disabled","cityInputTarget","countryInputTarget","citySelectInputTarget","countrySelectInputTarget","manualAddressTriggerTarget","manuallySearchedInputTarget","selectListAddress","clearTimeout","trim","getDropdownController","hide","show","clearFields","fillAutocompleteList","includes","handleKeyboardNav","dispatchEvent","Event","query","autocompleteListTarget","children","apiURL","searchApiUrlValue","queryTypesValue","searchInDatabaseValue","countriesScopeValue","result","item","textElem","appendChild","tabIndex","action","submitOnSelectValue","submit","hasAddressInputTarget","formatted_address","hasPostcodeInputTarget","postcode","hasCityInputTarget","city","hasCountryInputTarget","country","hasLngInputTarget","lngInputTarget","hasLatInputTarget","latInputTarget","bbox","hasBboxInputTarget","bboxInputTarget","hasCenterInputTarget","centerInputTarget","hasCitySlugInputTarget","citySlugInputTarget","slug","updateMapCoordinates","coordinates","flyTo","width","resize","toggleDropdown","resultsList","currentListItem","tagName","_elementBorderRight","_elementBorderLeft","_prevChild","_nextChild","update","containerTarget","prevArrowTarget","nextArrowTarget","clientWidth","scrollLeft","_isOverflowing","scrollWidth","clientHeight","child","offsetLeft","offsetWidth","scrollNext","scrollPrev","picturesLen","updateDisplay","previous","picturesLenValue","pictureTargets","pictureIndexTarget","multiple","prompt","collection","initialValue","includeBlank","submitOnChange","onBlur","appendSelectOption","template","optionTemplateTarget","displayOptionTemplateTarget","inputTemplateTarget","initializeValue","dropdownTarget","initialValueValue","updateInputs","updatePrompt","submitOnChangeValue","isEqual","submitForm","selectOption","menuItem","params","selected","removeValue","multipleValue","addValue","updateValue","option","createElementFromHTML","icon","currentOption","replaceWith","addOptions","options","opt","setPrompt","hasPromptTarget","promptTarget","hasChanged","triggerChange","oldValue","inputListTarget","includeBlankValue","isEmpty","promptValue","optionDisplay","onSearch","searchString","ajaxUrlValue","url_for_term","map","obj","collectionValue","clearList","div","dropdown","listTarget","htmlString","firstChild","ajaxUrlValueChanged","Turbo","setConfirmMethod","toLowerCase","dialog","getElementById","dialogController","reject","committer","confirmLink","parentElement","href","select","slideTargets","slide","slide_id","slideId","closable","lightGallery","defaultOptions","optionsValue","containerValue","closableValue","plugins","openGallery","_dynamicParamElem","dynamicParamElemValue","_this2","span","createTextNode","outerHTML","dynamicParamNameValue","displayResults","_this3","createResultElem","createOptionForSelect","cityId","cityName","_this4","city_id","city_name","txt","optionAlreadySelected","multiSelectInputTarget","_toConsumableArray","toString","dynamicParamName","dynamicParamElem","_input","inputWrapperTarget","getElementsByTagName","updateInputStyle","update_fields","ibanInputTargets","on_input","on_keydown","on_focus","on_paste","getAttribute","nextInput","nextSibling","focus","prevInput","previousSibling","paste","clipboardData","getData","fields_values","match","undefined","iban","toUpperCase","gridName","batchActionUrl","submitNewCustomFilterForm","updateBatchActionsDropdown","gridNameValue","hasBatchActionDropdownTarget","batchActionDropdownTarget","FormData","filterFormTarget","pair","entries","regex","endsWith","keyclean","substring","stringify","toggleSelectedId","checked","selectAll","checkBoxes","enable","disable","callGroupedAction","confirm","actionBtn","batchActionFormTarget","selectedIdsList","turboFrame","step","increment","isInteger","stepValue","parseFloat","toFixed","decrement","decrementBtnTarget","incrementBtnTarget","order","descending","orderValue","descendingValue","setColumnsWidth","colWidth","tr","td","sortColumn","setOrder","orderInputTarget","descendingInputTarget","btn","toggleSelect","onKeydown","onFocus","onPaste","updateFields","codeInputTargets","fieldsValues","split","code","setValue","linkTarget","onClick","urlValue","linkTargetValue","initHideStiInputs","disableUsedTypes","clauseTypeInputTarget","selectedType","hideForEachInputs","addendumClauseWrapperTarget","isRequired","clauseTypes","inputs","originalName","inputName","hasAttribute","selectWrapper","nestedForms","nestedForm","application","getControllerForElementAndIdentifier","enableAllTypes","thatSelectedType","getSelectedType","nf","_inventoryTypeController","_officerTypeController","_officerController","_leaseController","_propertyController","_this$leaseController","_this$propertyControl","_this$leaseController2","_this$propertyControl2","_this$officerControll","inventoryTypeValue","leaseInputGroupTarget","propertyInputGroupTarget","leaseController","propertyController","officerTypeValue","officerInputGroupTarget","updateOfficerUrl","officerController","officerUrlsValue","inventoryTypeInputTarget","_classPrivateFieldLoo4","officerTypeInputTarget","_classPrivateFieldLoo5","officerInputTarget","_classPrivateFieldLoo6","leaseInputTarget","_classPrivateFieldLoo7","propertyInputTarget","officerUrls","_taskableIdController","_taskableTypeController","taskableIdController","taskableTypeUrlsValue","taskableTypeValue","console","log","taskableIdInputTarget","taskableTypeInputTarget","taskableTypeUrls","lat","lng","staticImageUrl","loaded","staticMarker","initStaticMap","staticValue","initDynamicMap","height","image_url","staticImageUrlValue","lngValue","latValue","backgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","createMarker","left","loadDynamicMap","addControl","FullscreenControl","NavigationControl","scrollZoom","marker","jumpTo","onTurboLoad","frame","loaderTarget","webpackContext","req","webpackContextResolve","__webpack_require__","module","exports","hasEncadrementUrlInputTarget","constructionDate","constructionDateInputTarget","constructionPeriod","constructionPeriodInputTarget","propertyTypeId","propertyTypeIdInputTarget","csrfToken","content","encadrementUrlInputTarget","construction_date","construction_period","property_type_id","encadrementRef","referenceRentInputTarget","reference_value","alert","successContent","super","hasValueValue","valueValue","copy","err","_this$searchInputTarg","searchValue","elementRowTargets","elementBlocTargets","expr","RegExp","row","test","textContent","bloc","apiUrl","selectionList","landlord_type","apiUrlValue","error","dispatchCustomEvent","newSelection","CustomEvent","detail","resultList","deleteResult","itemToRemove","autoDismiss","alertElemTarget","autoDismissValue","Application","start","register","Dropdown","Notification","context","require","contextComponents","contextComponents2","load","definitionsFromContext","loadScript","initialCountry","hiddenInput","telInputName","phone","loadUtils","onChange","getNumber","isValidNumber","inputGroup","errorNode","errorCode","getValidationError","hideAllActionsElem","removeOpenActionsElem","show_link","title","showEventPath","editEventPath","edit_link","destroyEventPath","destroy_link","wrapperElem","updateButtons","addNew","className","Date","now","templateTarget","destroyInput","hasAddButtonTarget","recordCount","addButtonTarget","eventsUrl","viewScale","eventTemplateTarget","viewScaleValue","weekDayTemplateTarget","monthDayTemplateTarget","initializeValues","startOf","endOf","renderCalendar","today","subtract","fetchEvents","eventsUrlValue","queryParams","URLSearchParams","from_date","format","to_date","clearEvents","slots","sort","start_time","createEvent","end_time","events","color","to","startTime","endTime","timeSlot","timeText","minutes","daySlot","parent","freeSlot","eventNode","eventTitle","eventTime","slotsContainerTarget","displayTitle","displayTitleTarget","day","isCurrentMonth","month","isToday","dayNode","datetime","initial","select_item","hasSearchInputTarget","displayValueTarget","menuItemTargets","label","Form","validateForm","initTabs","validate","success","fetchResponse","redirected","history","pushState","turbo_frame_history","visit","disableSubmitters","tabConnected","tabComponent","tabController","tabs","focusTab","focusInput","panel","inputError","scrollIntoView","bindInputs","bindConditionalDisplays","Input","condition","displayIf","input_name","input_value","trigger_input","isValid","enableSubmitters","submitter","onValueChange","lastScrollPosition","onScroll","scrollPosition","scrollY","cookie","removeOnClose","confetti","timer","closeBtnTargets","cookieValue","modalScrollToId","scrollToId","scrollElem","block","resetTimer","hasRemoveOnCloseValue","removeOnCloseValue","timerValue","timerInterval","setInterval","fillTimer","clickOutside","disableFirstCopyDate","elemDateInput","thatId","previousDateValue","elemId","elemDateValue","date","getDate","padStart","getMonth","year","getFullYear","modal_panel","overlayTarget","confettiValue","timerBarTarget","clearInterval","viewportOffset","getBoundingClientRect","_selectedOptions","_isMobile","screen","input_placeholder","placeholder","initSelectedValues","updateSelectWrapper","selectTarget","toggleOption","listItem","initEvent","el","inputTargets","selectionWrapper","inputWrapper","wrapperTarget","counter_wrapper","item2","cloneNode","item3","lastChild","prepend","elem2","updateSelectionForOverflow","counter","escKeyPressed","uploadUrl","deleteUrl","allowedTypes","maxFileSize","acceptsMultipleFiles","uploadedFiles","_files_loading","_formSubmitButton","_fileTemplate","_disable_if_empty","_dragEnterCounter","fileTemplateTarget","fileInputTarget","disableSubmitIfEmpty","formsubmitbuttonid","dropzoneTarget","onDragOver","onDragEnter","onDragLeave","onDrop","fileSelected","filesValue","createListItem","acceptsMultipleFilesValue","fileButtonTarget","openFileBrowser","dataTransfer","evt","fireEvent","uploadFile","directUploadUrl","Uploader","signed_id","signedId","statusText","publicUid","deleteUrlValue","credentials","turboStream","insertAdjacentHTML","removeFileForItem","removeUploadedFileForItem","Element","itemData","public_uid","filename","controller","upload","allowedTypesValue","maxFileSizeValue","size","blob","uploadUrlValue","catch","finally","hiddenField","directUploadWillStoreFileWithXHR","request","directUploadDidProgress","total","old_store","hiddenInputTarget","old_id","keynest_id","new_store","store","new_id","old_card","storeCardTargets","card","new_card","_cityBadgeTemplate","_cityResults","cityBadgeTemplateTarget","_ref","zipcodeInput","zipcode","_searchCities","_x","cityListTarget","selectController","citiesInputTarget","onStartTimeChange","recomputeInputs","startTimeInputTarget","endTimeInputTarget","dateInputTarget","prefillInputs","hasDurationValue","durationValue","startDatetimeInputTarget","endDatetimeInputTarget","_togglers","filetypeIcons","previewFile","uploadingFiles","hasDropzoneTarget","updateControls","disableDropzone","enableDropzone","contentType","hasPreviewWrapperTarget","previewFileValue","previewWrapperTarget","formSubmitButton","directUploadUrlValue","file_extension","filenameWithoutExtension","file_name","filesize","humanFileSize","bytes","si","dp","thresh","Math","abs","units","round","hasAddFileButtonTarget","addFileButtonTarget","xhrUpload","formatFileSize","status","reader","FileReader","onload","filetype","imgPreview","filetypeIcon","startsWith","previewUrl","extension","filetypeIconsValue","readAsDataURL","xhr","directUploadAborted","directUploadWillCreateBlobWithXHR","decimals","floor","pow","buttonTargets","button","_currentDraggable","_currentDroppable","_cursorX","_cursorDirection","_previousDroppable","_placement","dragstartHandler","dragoverHandler","dragenterHandler","dragendHandler","draggableTargets","droppableTargets","ev","setData","dropEffect","cursor","transparentPixel","Image","setDragImage","placement","isDraggable","cursorX","clientX","direction","dropRect","positionChanged","after","before","updateIndexes","updateIndexesRequest","blocTargets","draggables","attachment_id","attached_to_type","attached_to_id","position","updateIndexesUrlValue","attachments","updateIndexesUrl","initVisibility","blocPerm","toggleBlocPerm","displays","autocompleteId","onInputChanged","hasAutocompleteIdValue","autocompleteIdValue","formGroup","fieldError","honoProprioInputTarget","honoProprioHiddenInputTarget","noExpenseProprioBtnTarget","addExpenseProprioBtnTarget","avoirProprioInputWrapperTarget","addAvoirProprioBtnTarget","avoirProprioInputTarget","originalValue","originalvalue","honoLocInputTarget","honoLocHiddenInputTarget","noExpenseLocBtnTarget","addExpenseLocBtnTarget","avoirLocInputWrapperTarget","addAvoirLocBtnTarget","avoirLocInputTarget","colors","_selectedColor","switchColor","random","colorPickerTarget","backgroundColor","_resourceTypeController","_resourceController","_this$resourceControl","resourceTypeValue","resourceInputGroupTarget","updateResourceUrl","resourceController","resourceUrlsValue","resourceTypeInputTarget","resourceInputTarget","resourceUrls","updateEncadrementValue","updateHonorairesMel","locEnPlaceInputTarget","beginDate","beginDateInputTarget","lotId","lotInputTarget","resp","honoraires_frais_mise_en_location_reel","honoraires_frais_mise_en_location_proprio","honosMelInputTarget","honosMelProprioInputTarget","property_id","lease_date","reference_value_majore","encadrementReferenceInputTarget","encadrementReferenceMajoreInputTarget","isForcedInputWrapperTarget","isForcedInputTarget","_filterForm","_searchInput","_ref$params","fieldName","selector","field","clearField","_step","_iterator","_createForOfIteratorHelper","updatePosition","isFixedRelativeToContainer","currentNode","documentElement","computedStyle","getComputedStyle","transform","willChange","backdropFilter","perspective","contain","offsetX","offsetY","right","bottom","togglerTarget","containerRect","parentScrollTop","scrollTop","w","innerWidth","menuRect","menuTop","menuLeft","scrollX","menuRight","menuTopBottom","rect","clientY","readonly","editable","resizable","maxlength","initTextarea","hasEditorTarget","initEditor","handleMaxlength","offset","editorTarget","modules","toolbar","toolbarTarget","readOnly","readonlyValue","delta","oldDelta","source","refreshSummary","hasTextValue","textValue","clipboard","dangerouslyPasteHTML","editableValue","hideEdit","showEdit","editBtnTarget","cancelBtnTarget","submitBtnTarget","setText","root","hasSummaryTarget","res","matchAll","summaryTarget","li","goToTitle","heading","evaluate","XPathResult","ANY_TYPE","iterateNext","hasMaxlengthValue","currentLength","maxlengthWrapperTarget","maxlengthValue","resizableValue","followLink","followLinkValue","tabUrl","activeTabValue","btnPlusTarget","plus","btnMinusTarget","minus","valueTarget","_moisDgInputController","actualiseSelectNbMoisDg","_this$moisDgInputTarg","moisDg","moisDgInputTarget","loyer","loyerHcInputTarget","montantDgInputTarget","boolAutoComputeHonosIsTrue","autoComputeHonorairesInputTargets","honorairesTotalLoiAlur","honorairesTotalLoiAlurInputTarget","honoraireLocataire","honorairesFraisMelInputTarget","honoraireProprio","honorairesFraisMelProprioInputTarget","melLocataireTheorique","melProprioTheorique","checkedBoolAutoComputeHonosInput","uncheckedAutoComputeHonosInput","loyerHc","charges","montantProvisionsChargesInputTarget","loyerCc","melProprioPercent","honosMelBpProprioPercentInputTarget","melProprioEuros","honosMelBpProprioEurosInputTarget","melProprioEurosPerMeter","honosMelBpProprioEurosPerMeterInputTarget","honorairesProprio","propertyAreaInputTarget","melLocatairePercent","honosMelBpLocatairePercentInputTarget","melLocataireEuros","honosMelBpLocataireEurosInputTarget","melLocataireEurosPerMeter","honosMelBpLocataireEurosPerMeterInputTarget","honorairesLocataire","isFurnishedInputTargets","monthDropdown","month1","month2","_this$moisDgInputCont","moisDgInputController"],"sourceRoot":""}