{"version":3,"file":"js/application-0547aef72c4f1aa317e2.js","mappings":"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","sources":["webpack://data-glint/./app/webpacker/src/javascript/controllers/ sync \\.js$","webpack://data-glint/./app/webpacker/src/javascript/components/color_picker.js","webpack://data-glint/./app/webpacker/src/javascript/components/delete_btn_alert.js","webpack://data-glint/./app/webpacker/src/javascript/components/require_confirmation.js","webpack://data-glint/./app/webpacker/src/javascript/main.js","webpack://data-glint/./app/webpacker/src/javascript/components/bootstrap_components.js","webpack://data-glint/./app/webpacker/src/javascript/components/profile_form.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/dropdown_menu_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/dropzone_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/filterable_controller.js","webpack://data-glint/./app/webpacker/src/javascript/components/loader.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/filterable_sort_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/filterable_wrapper_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/flatpickr_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/flex_collection_forms_index_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/flex_performance_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/form_controller.js","webpack://data-glint/./app/components/pages/page_controller.js","webpack://data-glint/./app/components/side_peek/controller.js","webpack://data-glint/./app/components/chart/controller.js","webpack://data-glint/./app/components/card/dataset_chart/controller.js","webpack://data-glint/./app/components/page/main_filter/controller.js","webpack://data-glint/./app/components/ren/unavailabilities/summary/controller.js","webpack://data-glint/./app/components/ren/unavailabilities/chart/controller.js","webpack://data-glint/./app/components/ren/unavailabilities/new/availability/ren_child_device_controller.js","webpack://data-glint/./app/components/ren/unavailabilities/form_controller.js","webpack://data-glint/./app/components/ren/unavailabilities/period_controller.js","webpack://data-glint/./app/components/ren/unavailabilities/import/controller.js","webpack://data-glint/./app/components/ren/unavailabilities/main_filter/controller.js","webpack://data-glint/./app/components/ren/spain/control_center/main_filter/controller.js","webpack://data-glint/./app/components/ren/spain/control_center/kpis/controller.js","webpack://data-glint/./app/components/date_range_picker/controller.js","webpack://data-glint/./app/components/date_picker/controller.js","webpack://data-glint/./app/components/month_picker/controller.js","webpack://data-glint/./app/components/line_chart/controller.js","webpack://data-glint/./app/components/bar_chart/controller.js","webpack://data-glint/./app/components/double_axis_bar_chart/controller.js","webpack://data-glint/./app/components/flex/performance/chart/controller.js","webpack://data-glint/./app/components/flex/performance/ranking/controller.js","webpack://data-glint/./app/components/flex/performance/main_filter/controller.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_selector.js","webpack://data-glint/./app/components/main_site_selector/controller.js","webpack://data-glint/./app/components/main_client_selector/controller.js","webpack://data-glint/./app/components/flex/annual_deliveries/main_filter/controller.js","webpack://data-glint/./app/components/ren/spain/programs_and_measurements/chart/controller.js","webpack://data-glint/./app/components/ren/spain/programs_and_measurements/main_filter/controller.js","webpack://data-glint/./app/components/ren/spain/programs_and_measurements/table/controller.js","webpack://data-glint/./app/components/ren/spain/programs_and_measurements/select_list/controller.js","webpack://data-glint/./app/components/flex/collection_forms/form/controller.js","webpack://data-glint/./app/components/flex/collection_forms/form/site_part/controller.js","webpack://data-glint/./app/components/flex/collection_forms/form/day_attributes/controller.js","webpack://data-glint/./app/components/pagination/controller.js","webpack://data-glint/./app/components/navbar/test_policy_profile/controller.js","webpack://data-glint/./app/components/ren/spain/settlements/table/controller.js","webpack://data-glint/./app/components/ren/acoustic_campaigns/calendar/controller.js","webpack://data-glint/./app/components/dropdown/controller.js","webpack://data-glint/./app/components/map/controller.js","webpack://data-glint/./app/components/ren/spain/chart/controller.js","webpack://data-glint/./app/components/ren/spain/maintenance_plans/form/controller.js","webpack://data-glint/./app/components/ren/france/negative_price_tracking/calendar/day_details/controller.js","webpack://data-glint/./app/components/pdo_dashboard/map/controller.js","webpack://data-glint/./app/components/flex/load_shifts/multi_site_selector/controller.js","webpack://data-glint/./app/components/flex/load_shifts/load_shift_selector/controller.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/column.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/cell.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/history.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/cells/textCell.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/cells/selectCell.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/cells/numberCell.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/cells/dateCell.js","webpack://data-glint/./app/webpacker/src/javascript/components/kuartz_grid/grid.js","webpack://data-glint/./app/components/sheet/controller.js","webpack://data-glint/./app/components/sorter/controller.js","webpack://data-glint/./app/components/ren/france/contacts/form/controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/index.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/modal_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/overlaps_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/range_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/scroll_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/search_list_controller.js","webpack://data-glint/./app/webpacker/src/javascript/components/cookie.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/side_menu_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/sortable_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/tabs_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/toggle_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/tom_select_controller.js","webpack://data-glint/./app/webpacker/src/javascript/controllers/user_resend_invitation_controller.js","webpack://data-glint/./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["var map = {\n\t\"./dropdown_menu_controller.js\": 308,\n\t\"./dropzone_controller.js\": 2836,\n\t\"./filterable_controller.js\": 5372,\n\t\"./filterable_sort_controller.js\": 8094,\n\t\"./filterable_wrapper_controller.js\": 4699,\n\t\"./flatpickr_controller.js\": 4719,\n\t\"./flex_collection_forms_index_controller.js\": 194,\n\t\"./flex_performance_controller.js\": 1887,\n\t\"./form_controller.js\": 2459,\n\t\"./index.js\": 8919,\n\t\"./modal_controller.js\": 9832,\n\t\"./overlaps_controller.js\": 3105,\n\t\"./range_controller.js\": 2396,\n\t\"./scroll_controller.js\": 7706,\n\t\"./search_list_controller.js\": 5816,\n\t\"./side_menu_controller.js\": 9183,\n\t\"./sortable_controller.js\": 6033,\n\t\"./tabs_controller.js\": 7981,\n\t\"./toggle_controller.js\": 7221,\n\t\"./tom_select_controller.js\": 178,\n\t\"./user_resend_invitation_controller.js\": 1380,\n\t\"src/javascript/controllers/dropdown_menu_controller.js\": 308,\n\t\"src/javascript/controllers/dropzone_controller.js\": 2836,\n\t\"src/javascript/controllers/filterable_controller.js\": 5372,\n\t\"src/javascript/controllers/filterable_sort_controller.js\": 8094,\n\t\"src/javascript/controllers/filterable_wrapper_controller.js\": 4699,\n\t\"src/javascript/controllers/flatpickr_controller.js\": 4719,\n\t\"src/javascript/controllers/flex_collection_forms_index_controller.js\": 194,\n\t\"src/javascript/controllers/flex_performance_controller.js\": 1887,\n\t\"src/javascript/controllers/form_controller.js\": 2459,\n\t\"src/javascript/controllers/index.js\": 8919,\n\t\"src/javascript/controllers/modal_controller.js\": 9832,\n\t\"src/javascript/controllers/overlaps_controller.js\": 3105,\n\t\"src/javascript/controllers/range_controller.js\": 2396,\n\t\"src/javascript/controllers/scroll_controller.js\": 7706,\n\t\"src/javascript/controllers/search_list_controller.js\": 5816,\n\t\"src/javascript/controllers/side_menu_controller.js\": 9183,\n\t\"src/javascript/controllers/sortable_controller.js\": 6033,\n\t\"src/javascript/controllers/tabs_controller.js\": 7981,\n\t\"src/javascript/controllers/toggle_controller.js\": 7221,\n\t\"src/javascript/controllers/tom_select_controller.js\": 178,\n\t\"src/javascript/controllers/user_resend_invitation_controller.js\": 1380\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 = 5159;","import colorPicker from 'tui-color-picker'\nimport 'tui-color-picker/dist/tui-color-picker.css'\n\nconst colorPreset = [\n \"#A0AEC0\", // gray-500\n \"#2D3748\", // gray-800\n \"#F56565\", // red-500\n \"#9B2C2C\", // red-800\n \"#742A2A\", // red-900\n \"#ED8936\", // orange-500\n \"#9C4221\", // orange-800\n \"#ECC94B\", // yellow-500\n \"#975A16\", // yellow-800\n \"#48BB78\", // green-500\n \"#276749\", // green-800\n \"#22543D\", // green-900\n \"#38B2AC\", // teal-500\n \"#285E61\", // teal-800\n \"#234E52\", // teal-900\n \"#4299E1\", // blue-500\n \"#2C5282\", // blue-800\n \"#2A4365\", // blue-900\n \"#667EEA\", // indigo-500\n \"#434190\", // indigo-800\n \"#9F7AEA\", // purple-500\n \"#553C9A\", // purple-800\n \"#ED64A6\", // pink-500\n \"#97266D\", // pink-800\n];\n\nconst initColorPicker = () => {\n const primaryColorPickerContainer = document.getElementById('tui-primary-color-picker-container');\n const secondaryColorPickerContainer = document.getElementById('tui-secondary-color-picker-container');\n\n if (primaryColorPickerContainer) {\n const primaryColorPickerInstance = colorPicker.create({\n container: primaryColorPickerContainer,\n color: primaryColorPickerContainer.dataset.primaryColor,\n preset: colorPreset\n });\n\n const primaryColorInput = document.getElementById('project_primary_color');\n\n primaryColorPickerInstance.getColor();\n\n primaryColorPickerInstance.on('selectColor', (ev) => {\n primaryColorInput.value = ev.color;\n\n const navProjectNameEl = document.querySelector(\".project-name h3\");\n if (navProjectNameEl) navProjectNameEl.style.color = ev.color;\n })\n }\n\n if (secondaryColorPickerContainer) {\n const secondaryColorPickerInstance = colorPicker.create({\n container: secondaryColorPickerContainer,\n color: secondaryColorPickerContainer.dataset.secondaryColor,\n preset: colorPreset\n });\n\n const secondaryColorInput = document.getElementById('project_secondary_color');\n\n secondaryColorPickerInstance.getColor();\n\n secondaryColorPickerInstance.on('selectColor', (ev) => {\n secondaryColorInput.value = ev.color;\n });\n }\n}\n\nexport { initColorPicker };\n","import { requireConfirmation } from './require_confirmation'\n\nconst initDeleteBtnAlert = () => {\n const deletesBtns = document.querySelectorAll('.js-delete-btn-alert')\n\n deletesBtns.forEach(deleteBtn => {\n const deleteIcon = deleteBtn.querySelector('.js-delete-icon')\n\n if ( deleteIcon ) {\n deleteIcon.addEventListener('click', event => {\n event.preventDefault();\n\n const link = deleteBtn.querySelector('.js-delete-btn-alert--link')\n\n requireConfirmation(\n link.dataset.confirmText,\n link.dataset.confirmBtnText,\n link.dataset.cancelBtnText\n ).then(result => { if(result.isConfirmed) link.click() })\n })\n }\n })\n}\n\nexport { initDeleteBtnAlert };\n","import Swal from 'sweetalert2'\n\nconst requireConfirmation = (text, confirmText, cancelText, denyButtonText = null) => {\n return Swal.fire({\n html: text,\n icon: 'warning',\n showCancelButton: true,\n showDenyButton: !!denyButtonText,\n confirmButtonText: confirmText,\n cancelButtonText: cancelText,\n denyButtonText: denyButtonText,\n confirmButtonColor: '#2B6CB0',\n cancelButtonColor: '#E53E3E',\n customClass: { confirmButton: 'swal-btn', cancelButton: 'swal-btn', denyButton: 'swal-btn' },\n showClass: {\n popup: 'animate__animated animate__headShake animate__faster',\n },\n hideClass: {\n popup: 'animate__animated animate__fadeOutUp animate__faster'\n }\n });\n};\n\nexport { requireConfirmation };\n","import \"bootstrap\";\nimport \"@fortawesome/fontawesome-pro/css/all.css\"\nimport \"animate.css\";\nimport \"./controllers/index\";\nimport \"@hotwired/turbo-rails\";\n\nTurbo.start();\n\nimport { initProfileForm } from './components/profile_form';\nimport { initBootstrapTooltips, initBootstrapTabs } from './components/bootstrap_components';\nimport { initColorPicker } from './components/color_picker';\nimport { initDeleteBtnAlert } from './components/delete_btn_alert';\n\n\ndocument.addEventListener(\"turbo:load\", () => {\n initBootstrapTooltips();\n initBootstrapTabs();\n initProfileForm();\n initColorPicker();\n initDeleteBtnAlert();\n})\n","const initBootstrapTabs = () => {\n // Change hash for page-reload\n $('.nav-tabs a').on('shown.bs.tab', function (e) {\n const tab = e.target.hash.substring(1, e.target.hash.length)\n const url = `${window.location.origin}${window.location.pathname}?tab=${tab}`\n window.history.pushState(null, null, url)\n })\n}\n\nconst initBootstrapTooltips = () => {\n $('body').tooltip({\n selector: '.has-tooltip[data-toggle=\"tooltip\"]',\n delay: { \"show\": 300, \"hide\": 0 },\n boundary: 'viewport'\n });\n};\n\nexport { initBootstrapTooltips, initBootstrapTabs };\n","import { find } from 'lodash';\n\nconst initProfileForm = () => {\n $('#profileFormModal').modal() // SHOW MODAL IF ERRORS DURING VALIDATIONS\n\n const profileForm = document.getElementById('profileForm')\n\n const customClassName = id => `basic-card--img ${id}-bg view-element--img profile-color-${id}-bd`\n\n if (profileForm) {\n const cardExampleName = profileForm.querySelector('#exampleProfileName')\n const cardExampleImg = profileForm.querySelector('.basic-card--img')\n const cardExampleIcon = profileForm.querySelector('svg.icon use')\n\n const nameInput = profileForm.querySelector('#profile_name')\n const colorInputs = profileForm.querySelectorAll('.colorInput')\n const iconInputs = profileForm.querySelectorAll('.iconInput')\n\n nameInput.addEventListener('input', () => {\n const name = event.target.value.length ? event.target.value : nameInput.placeholder\n cardExampleName.innerText = name\n })\n\n colorInputs.forEach( colorInput => {\n colorInput.addEventListener('change', () => {\n const newClass = customClassName(event.target.value)\n cardExampleImg.className = newClass\n })\n })\n\n iconInputs.forEach( iconInput => {\n iconInput.addEventListener('change', () => {\n const newIcon = `#icon-${event.target.value}`\n cardExampleIcon.setAttributeNS('http://www.w3.org/1999/xlink', 'href', newIcon)\n })\n })\n\n const init = () => {\n const selectedColor = find(colorInputs, colorInput => colorInput.checked == true)\n const selectedIcon = find(iconInputs, iconInput => iconInput.checked == true)\n const currentName = nameInput.value.length ? nameInput.value : nameInput.placeholder\n\n cardExampleImg.className = customClassName(selectedColor.value)\n cardExampleName.innerText = currentName\n cardExampleIcon.setAttributeNS(\n 'http://www.w3.org/1999/xlink',\n 'href',\n `#icon-${selectedIcon.value}`\n )\n }\n init()\n }\n}\n\nexport { initProfileForm };\n","import { Controller } from \"@hotwired/stimulus\"\nimport { useClickOutside } from \"stimulus-use\";\n\nexport default class extends Controller {\n connect() {\n useClickOutside(this);\n }\n\n clickOutside() {\n this.close();\n }\n\n toggle() {\n if (this.element.getAttribute(\"open\")) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open() {\n this.element.firstElementChild.setAttribute(\"aria-selected\", \"true\");\n this.element.setAttribute(\"open\", \"open\");\n }\n\n close() {\n this.element.firstElementChild.removeAttribute(\"aria-selected\");\n this.element.removeAttribute(\"open\");\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport Dropzone from \"dropzone\";\n\nexport default class extends Controller {\n static targets = [\"template\", \"fileInput\", \"dropzone\"];\n static values = {\"errorMessage\": String, \"acceptedFiles\": {type: String, default: \".pdf\"}};\n\n connect() {\n // this.fileInput = document.querySelector('#supply_invoice_attachment'); // Remplacer par l'ID de votre champ input de type file\n\n const dropzoneConfig = {\n url: \"/\",\n autoProcessQueue: false,\n clickable: true,\n maxFilesize: 256,\n addRemoveLinks: false,\n dictInvalidFileType: this.errorMessageValue,\n acceptedFiles: this.acceptedFilesValue,\n maxFiles: 1,\n previewTemplate: this.templateTarget.innerHTML\n };\n this.dropzone = new Dropzone(this.dropzoneTarget, dropzoneConfig);\n\n this.dropzone.on(\"addedfile\", (file) => {\n const fileList = new DataTransfer();\n fileList.items.add(file);\n this.fileInputTarget.files = fileList.files;\n });\n\n this.dropzone.on(\"removedfile\", (file) => {\n const fileList = new DataTransfer();\n Array.from(this.fileInputTarget.files).forEach((existingFile) => {\n if (existingFile.name !== file.name) {\n fileList.items.add(existingFile);\n }\n });\n this.fileInputTarget.files = fileList.files;\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { loader } from \"../components/loader\"\n\nexport default class extends Controller {\n static values = {\n filtersPath: String\n }\n\n static targets = ['submitBtn', 'conjonction']\n\n updateColumn({ params }) {\n this.submitBtnTarget.innerHTML = loader\n this.#getValueInput(params.index).disabled = true\n\n this.#refreshForm(`column_update_${params.index}`)\n }\n\n updateOperator({ target, params }) {\n const selectedOptions = target.options[target.selectedIndex];\n const operatorNeedsInput = selectedOptions.dataset.needsInput === \"true\";\n\n const valueInput = this.#getValueInput(params.index)\n if (operatorNeedsInput) {\n valueInput.style.removeProperty('display')\n valueInput.disabled = false\n } else {\n valueInput.disabled = true\n valueInput.style.display = 'none'\n }\n }\n\n updateConjonction({ target: { options, selectedIndex }}) {\n const conjonctionText = options[selectedIndex].text\n this.conjonctionTargets.forEach((conjonctionTarget) => {\n conjonctionTarget.innerText = conjonctionText\n })\n }\n\n removeFilter(event) {\n event.stopPropagation()\n event.currentTarget.parentElement.parentElement.remove()\n this.#refreshForm()\n }\n\n #getValueInput(index) {\n return this.element.querySelector(`[data-value-input-index=\"${index}\"]`)\n }\n\n #refreshForm(trigger) {\n const url = new URL(window.origin + this.filtersPathValue)\n const formData = new FormData(this.element)\n for (const [key, value] of formData.entries()) { url.searchParams.append(key, value) }\n for (const field of this.element.elements) { field.disabled = true }\n\n if (trigger) {\n url.searchParams.append(\"trigger\", trigger)\n }\n\n fetch(url)\n .then(response => response.text())\n .then(html => Turbo.renderStreamMessage(html))\n }\n\n tomSelectChange({ target }) {\n target.tomselect.blur();\n }\n}\n","export const loader = `\n
\n
\n Loading...\n
\n`\n\nexport const loaderLg = `\n
\n
\n Loading...\n
\n`\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n #SORT_INPUT_ID = \"filterable_sort\"\n\n static values = {\n formId: String,\n columnName: String,\n }\n\n sortColumn() {\n const previousSort = this.#filterableFormElement.querySelector(`#${this.#SORT_INPUT_ID}`)\n let order = 'asc'\n if (previousSort && previousSort.dataset.columnName === this.columnNameValue) {\n order = previousSort.value === 'asc' ? 'desc' : 'asc'\n }\n previousSort?.remove()\n\n this.#filterableFormElement.insertAdjacentHTML(\"afterbegin\", `\n \n `)\n this.#filterableFormElement.submit()\n }\n\n get #filterableFormElement() {\n return document.getElementById(this.formIdValue)\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"filtersForm\", \"closeFiltersFormBtn\", \"viewsList\"]\n\n static classes = [\"hidden\"]\n\n openViews(event) {\n event.stopPropagation();\n\n if (this._viewsListOpened) {\n return this.closeViews(event);\n }\n\n this._viewsListOpened = true;\n this.viewsListTarget.classList.remove(this.hiddenClass);\n this.closeViewsListOnClickOutside = this.closeViews.bind(this);\n window.addEventListener(\"click\", this.closeViewsListOnClickOutside);\n }\n\n closeViews(event) {\n if (this.viewsListTarget.contains(event.target)) {\n return;\n }\n this._viewsListOpened = false;\n this.viewsListTarget.classList.add(this.hiddenClass);\n window.removeEventListener(\"click\", this.closeViewsListOnClickOutside);\n this.closeViewsListOnClickOutside = null;\n }\n\n openFilters(event) {\n event.stopPropagation();\n\n if (this._filtersFormOpened) {\n return this.closeFilters(event);\n }\n\n this._filtersFormOpened = true;\n this.filtersFormTarget.classList.remove(this.hiddenClass);\n this.closeFiltersFormOnClickOutside = this.closeFilters.bind(this);\n window.addEventListener(\"click\", this.closeFiltersFormOnClickOutside);\n }\n\n closeFilters(event) {\n if (this.filtersFormTarget.contains(event.target) && event.target !== this.closeFiltersFormBtnTarget) {\n return;\n }\n this._filtersFormOpened = false;\n this.filtersFormTarget.classList.add(this.hiddenClass);\n window.removeEventListener(\"click\", this.closeFiltersFormOnClickOutside);\n this.closeFiltersFormOnClickOutside = null;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport Flatpickr from \"flatpickr\";\nimport { French } from \"flatpickr/dist/l10n/fr.js\";\nimport { Spanish } from \"flatpickr/dist/l10n/es.js\";\n\n// Connects to data-controller=\"flatpickr\"\nexport default class extends Controller {\n static values = {\n locale: String,\n settings: Object,\n }\n\n connect() {\n const globalOptions = {\n locale: this.locale(),\n altInput: true,\n\n onClose: (selectedDates, _dateStr, _instance) => {\n this.dispatch(\"close\", { detail: { selectedDates } });\n },\n onChange: (selectedDates, _dateStr, _instance) => {\n this.dispatch(\"change\", { detail: { selectedDates } });\n }\n }\n\n Flatpickr(this.element, Object.assign(globalOptions, this.settingsValue))\n }\n\n locale() {\n const locales = {\n en: null, // Default\n fr: French,\n es: Spanish,\n }\n\n return locales[this.localeValue]\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n \"mainFilterForm\",\n \"mainSiteSelectorPageNumber\"\n ];\n\n resetPageNumberAndSubmitForm() {\n this.mainSiteSelectorPageNumberTarget.value = 1;\n this.submitForm();\n }\n\n submitForm() {\n //
.requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n const form = this.mainFilterFormTarget;\n\n if (form.requestSubmit) {\n form.requestSubmit();\n } else {\n form.submit();\n }\n\n this.changeUrlParams();\n\n this.dispatch(\"updated\");\n }\n\n changeUrlParams() {\n const url = new URL(window.document.URL);\n\n url.searchParams.set(\"page\", this.mainSiteSelectorPageNumberTarget.value);\n\n url.searchParams.set(\"start_date\", this.startDate);\n url.searchParams.set(\"end_date\", this.endDate);\n\n url.searchParams.delete(\"site_ids[]\");\n this.selectedSiteIds.forEach(siteId => url.searchParams.append(\"site_ids[]\", siteId));\n\n window.history.replaceState(null, \"\", url.toString());\n }\n\n get selectedSiteIds() {\n const mainSiteSelector = document.getElementById(\"site_ids\");\n\n return Array.from(mainSiteSelector.querySelectorAll(\"[selected='selected']\")).map((option) => option.value);\n }\n\n get startDate() {\n const startDate = document.getElementById(\"start_date\");\n\n return startDate.value;\n }\n\n get endDate() {\n const endDate = document.getElementById(\"end_date\");\n\n return endDate.value;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"rankingDataContainer\",\n \"rankingWaitingForDataContainer\",\n \"rankingKpisDataContainer\",\n \"rankingKpisWaitingForDataContainer\",\n \"historyDataContainer\",\n \"historyWaitingForDataContainer\",\n \"chartDataContainer\",\n \"chartWaitingForDataContainer\",\n ];\n\n displayWaitingForDataModeFromDateRangePicker() {\n this.rankingDataContainerTarget.classList.add(\"tw-hidden\");\n this.rankingKpisDataContainerTarget.classList.add(\"tw-hidden\");\n this.chartDataContainerTarget.classList.add(\"tw-hidden\");\n\n this.rankingWaitingForDataContainerTarget.classList.remove(\"tw-hidden\");\n this.rankingKpisWaitingForDataContainerTarget.classList.remove(\"tw-hidden\");\n this.chartWaitingForDataContainerTarget.classList.remove(\"tw-hidden\");\n }\n\n displayWaitingFromDataForRanking() {\n this.rankingKpisDataContainerTarget.classList.add(\"tw-hidden\");\n this.chartDataContainerTarget.classList.add(\"tw-hidden\");\n\n this.rankingKpisWaitingForDataContainerTarget.classList.remove(\"tw-hidden\");\n this.chartWaitingForDataContainerTarget.classList.remove(\"tw-hidden\");\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport debounce from \"lodash.debounce\"\n\nexport default class extends Controller {\n static targets = [\"button\"]\n static values = {\n submitLaterDelay: Number\n }\n\n initialize() {\n const delay = this.submitLaterDelayValue || 400\n this.submitLater = debounce(this.submit, delay, { leading: false })\n }\n\n submit() {\n if (this.element.requestSubmit) {\n this.element.requestSubmit();\n } else {\n this.element.submit();\n }\n }\n\n submitSubAction() {\n // This is to submbit a form having inner button which is not the main submit button because of different action\n // e.g. a calendar form with date picker to extand the date range\n this.buttonTarget.click()\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"sidePeek\"];\n\n openSidePeek(event) {\n const title = event.params.title;\n this.sidePeekController.open({ title });\n }\n\n reload() {\n this.dispatch(\"reload\");\n }\n\n get sidePeekController() {\n return this.application.getControllerForElementAndIdentifier(this.sidePeekTarget, \"side-peek\");\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { enter, leave } from 'el-transition';\n\nexport default class extends Controller {\n static values = { triggerEvent: String }\n\n static targets = ['innerPanel', 'backdrop', 'title', 'content', 'footer']\n\n open({ title }) {\n document.body.style.overflow = \"hidden\"; // to avoid scrolling issues on mobile\n this.titleTarget.innerText = title;\n enter(this.innerPanelTarget);\n enter(this.backdropTarget);\n\n this.element.classList.remove('tw-hidden');\n }\n\n close() {\n document.body.style.removeProperty(\"overflow\");\n leave(this.innerPanelTarget);\n leave(this.backdropTarget).then(() => {\n this.element.classList.add('tw-hidden');\n this.titleTarget.innerHTML = \"\";\n this.contentTarget.innerHTML = \"\";\n this.footerTarget.innerHTML = \"\";\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport Chart from \"chart.js\";\n\nexport default class extends Controller {\n static values = {\n canvasId: String,\n options: Object,\n locale: String\n }\n\n connect() {\n this.render();\n }\n\n render() {\n this.chart = new Chart(this.canvas, this.options);\n }\n\n get canvas() {\n return this.element.querySelector(\"canvas\");\n }\n\n get options() {\n return this.optionsValue;\n }\n}\n","import ChartController from \"../../chart/controller\";\n\nChart.Tooltip.positioners.bottom = function(elements, eventPosition) {\n const chart = this._chart;\n const pos = Chart.Tooltip.positioners.average(elements);\n\n // Happens when nothing is found\n if (pos === false) return false;\n\n return {\n x: pos.x,\n y: chart.chartArea.bottom,\n };\n};\n\nexport default class extends ChartController {\n static targets = [\"legendContainer\"];\n\n get options () {\n const options = this.optionsValue;\n const position = options.tooltips.position || \"average\";\n\n options.options = {\n tooltips: {\n position: position,\n mode: \"index\",\n xPadding: 8,\n yPadding: 8,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: \"1\",\n titleFontColor: \"rgb(26, 32, 44)\",\n titleFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n title: this.tooltipTitleCallback.bind(this),\n label: this.tooltipLabelCallback.bind(this)\n }\n },\n scales: {\n yAxes: this.yAxes(),\n xAxes: [{\n type: \"time\",\n time: {\n displayFormats: {\n hour: \"k:mm\",\n day: \"DD/MM\",\n month: \"DD/MM\"\n }\n },\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n maxTicksLimit: 21,\n major: {\n enabled: false,\n fontStyle: \"bold\",\n },\n },\n gridLines: {\n display: false,\n }\n }],\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false,\n legend: { display: false },\n }\n\n return options;\n }\n\n connect() {\n this.render();\n this.setChartLegend();\n }\n\n setChartLegend() {\n let chartLegendItemsHtml = this.chart.data.datasets.map((item, datasetIndex) => {\n let itemHidden = this.chart.getDatasetMeta(datasetIndex).hidden;\n let label = item.label;\n let labelColor = !itemHidden ? \"#1A202C\" : \"#4A5568\";\n let borderColor = item.borderColor || \"#6B7280\";\n let backgroundColor = !itemHidden ? (item.backgroundColor || \"#6B7280\") : \"white\";\n let checkColor = (!itemHidden && item.borderDash) ? item.borderColor : \"white\";\n let borderStyle = item.borderDash ? \"dashed\" : \"solid\";\n let opacity = !itemHidden ? \"initial\" : \"0.4\";\n let labelTextDecoration = !itemHidden ? \"initial\" : \"line-through\";\n\n return `\n
dataset-chart#toggleSerie\" data-dataset-chart-dataset-index-param=${datasetIndex}>\n
\n \n
\n
${label}
\n
\n `;\n });\n\n this.legendContainerTarget.innerHTML = chartLegendItemsHtml.join(\"\");\n }\n\n tooltipTitleCallback(tooltipItems) {\n var date = new Date(tooltipItems[0].label);\n var dateOptions = { month: 'long', day: 'numeric' };\n var dateTimeOptions = { month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n\n if (date.getHours() == 0 && date.getMinutes() == 0 && date.getSeconds() == 0) {\n return date.toLocaleDateString(this.localeValue, dateOptions);\n } else {\n return date.toLocaleDateString(this.localeValue, dateTimeOptions);\n }\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n var value = tooltipItem.yLabel;\n\n if(unit.includes('€') && !(value % 1 === 0)){\n value = Intl.NumberFormat(this.localeValue, { minimumFractionDigits: 2 }).format(value);\n } else {\n value = Intl.NumberFormat(this.localeValue).format(value);\n }\n\n if (label) {\n label += ' : ' + value + ' ' + unit;\n }\n\n return label;\n }\n\n toggleSerie(event) {\n const itemDatasetIndex = event.params.datasetIndex;\n let meta = this.chart.getDatasetMeta(itemDatasetIndex);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !this.chart.data.datasets[itemDatasetIndex].hidden : null;\n\n this.chart.update();\n this.setChartLegend();\n }\n\n yAxes() {\n return this.yLabelStringArray().map((yLabel, index) => {\n return {\n offset: true,\n position: ['left', 'right'][index % 2],\n id: `y-axis-${yLabel}`,\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8,\n },\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n labelString: yLabel,\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }\n })\n }\n\n yLabelStringArray() {\n if (Array.isArray(this.optionsValue.data.ylabelString)) {\n return this.optionsValue.data.ylabelString;\n }\n\n return Array.of(this.optionsValue.data.ylabelString);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"form\"];\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n this.dispatch(\"updated\");\n\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"unavailabilityCard\", \"acousticCard\"]\n\n static classes = [\"highlight\"]\n\n highlightUnavailabilities(event) {\n const unavailabilitiesIds = event.detail.unavailabilitiesIds;\n\n this.unavailabilityCardTargets.forEach((unavailabilityCard) => {\n const unavailabilityId = Number.parseInt(unavailabilityCard.dataset.unavailabilityId, 10);\n if (unavailabilitiesIds.includes(unavailabilityId)) {\n unavailabilityCard.classList.add(this.highlightClasses)\n } else {\n unavailabilityCard.classList.remove(this.highlightClasses)\n }\n });\n\n this.acousticCardTargets.forEach((acousticCard) => {\n // the difference is an acoustic card can have multiple unavailabilities\n const unavailabilityIds = Array.from(JSON.parse(acousticCard.dataset.unavailabilityIds));\n\n if (unavailabilityIds.some(id => unavailabilitiesIds.includes(id))) {\n acousticCard.classList.add(this.highlightClasses)\n } else {\n acousticCard.classList.remove(this.highlightClasses)\n }\n });\n }\n\n clearHighlight() {\n this.unavailabilityCardTargets.forEach((unavailabilityCard) => {\n unavailabilityCard.classList.remove(this.highlightClasses)\n });\n }\n}\n","import ChartController from \"../../../chart/controller\";\n\nexport default class extends ChartController {\n get options () {\n const options = this.optionsValue;\n options.options = {\n tooltips: {\n position: \"average\",\n mode: \"index\",\n xPadding: 8,\n yPadding: 8,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: \"1\",\n titleFontColor: \"rgb(26, 32, 44)\",\n titleFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n label: this.tooltipLabelCallback.bind(this)\n }\n },\n scales: {\n yAxes: [{\n ticks: {\n min: 0,\n max: options.data.datasets[0].max_value,\n }\n }]\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n }\n return options;\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n this.highlightUnavailabilities(tooltipItem, data);\n const { value } = tooltipItem;\n const unit = data.datasets[tooltipItem.datasetIndex].unit;\n\n return `${value} ${unit}`;\n }\n\n highlightUnavailabilities({ datasetIndex, index }, data) {\n const unavailabilitiesIds = data.datasets[datasetIndex].maintenances_ids[index]\n\n this.dispatch(\"point-hovered\", { detail: { unavailabilitiesIds } });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"overlay\", \"input\"]\n\n toggleChildDevice(event) {\n if (event.target.checked) {\n this.overlayTarget.classList.add(\"tw-hidden\");\n if (this.hasInputTarget) {\n this.inputTarget.disabled = false;\n }\n } else {\n this.overlayTarget.classList.remove(\"tw-hidden\");\n if (this.hasInputTarget) {\n this.inputTarget.disabled = true;\n }\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"validationSubmitBtn\", \"codeInput\", \"siteAndCodeSubmitBtn\", \"details\"]\n\n static values = {\n validateAtConnect: Boolean\n }\n\n connect() {\n if (this.validateAtConnectValue) {\n this.requireValidation();\n }\n }\n\n requireValidation() {\n if (this.hasValidationSubmitBtnTarget) {\n // this.element.requestSubmit(this.validationSubmitBtnTarget); // not supported by Safari\n this.validationSubmitBtnTarget.click();\n }\n }\n\n requireAvailabilityPart() {\n const codeValue = this.codeInputTarget.value;\n if (codeValue) {\n // this.element.requestSubmit(this.siteAndCodeSubmitBtnTarget); // not supported by Safari <= 16\n this.siteAndCodeSubmitBtnTarget.click();\n } else {\n this.detailsTarget.innerHTML = null;\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { debounce } from \"lodash\";\n\nexport default class extends Controller {\n static targets = [\"startDateInput\", \"endDateInput\"]\n\n changeSiblingInput(event) {\n const { target } = event;\n\n const newDate = new Date(target.value);\n\n if (target === this.startDateInputTarget && newDate > this.endDate) {\n this.endDateInputTarget.value = this.startDateInputTarget.value;\n this.endDateInputTarget.dispatchEvent(new Event(\"change\"));\n } else if (target === this.endDateInputTarget && newDate < this.startDate) {\n this.startDateInputTarget.value = this.endDateInputTarget.value;\n this.startDateInputTarget.dispatchEvent(new Event(\"change\"));\n }\n }\n\n get startDate() {\n return new Date(this.startDateInputTarget.value);\n }\n\n get endDate() {\n return new Date(this.endDateInputTarget.value);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"dataImportParamsInput\", \"dataImportParamsSubmitBtn\"]\n\n requireTemplate() {\n const dataImportParamsValue = this.dataImportParamsInputTarget.value;\n\n if (dataImportParamsValue) {\n this.dataImportParamsSubmitBtnTarget.disabled = false;\n this.dataImportParamsSubmitBtnTarget.classList.remove(\"tw-hidden\");\n } else {\n this.dataImportParamsSubmitBtnTarget.disabled = true;\n this.dataImportParamsSubmitBtnTarget.classList.add(\"tw-hidden\");\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"form\"]\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"form\",\n \"aggregated\",\n \"trigger\",\n ];\n\n connect() {\n this.triggerTarget.value = \"main_site_selector\";\n this.submitForm();\n }\n\n afterMainSiteSelectorChanged() {\n this.triggerTarget.value = \"main_site_selector\";\n this.submitForm();\n }\n\n afterDateRangePickerChanged() {\n this.triggerTarget.value = \"date_range_picker\";\n this.submitForm();\n }\n\n afterAggregatedChanged(event) {\n event.preventDefault();\n\n this.triggerTarget.value = \"aggregated\";\n const actionTarget = event.target.dataset.actionTarget;\n const actionValue = event.target.dataset.actionValue;\n this[`${actionTarget}Target`].value = actionValue;\n\n this.submitForm();\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"form\"];\n static values = {\n delay: Number\n }\n\n connect() {\n this.submitForm();\n if (this.delayValue == 0) return;\n\n this.reload();\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n\n reload() {\n setTimeout(() => {\n this.submitForm(false);\n this.reload();\n }, this.delayValue);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"periodOptionInput\", \"dateRangeInput\", \"startDateInput\", \"endDateInput\"];\n static values = {\n settings: Object,\n periodOptions: Object,\n maxDays: Number,\n maxDate: String,\n };\n\n form() {\n return this.startDateInputTarget.form;\n }\n\n padTo2Digits(num) {\n return num.toString().padStart(2, '0');\n }\n\n formatDate(date) {\n return [\n date.getFullYear(),\n this.padTo2Digits(date.getMonth() + 1),\n this.padTo2Digits(date.getDate()),\n ].join('-');\n }\n\n updateRange({ detail: { selectedDates } }) {\n if (selectedDates.length < 2) {\n this.dateRangeInputTarget._flatpickr.config.minDate = null;\n this.dateRangeInputTarget._flatpickr.config.maxDate = this.maxDateValue;\n\n return;\n }\n\n const newStartDate = this.formatDate(selectedDates[0]);\n const newEndDate = this.formatDate(selectedDates[1]);\n\n if (this.startDateInputTarget.value === newStartDate && this.endDateInputTarget.value === newEndDate) return;\n\n this.startDateInputTarget.value = newStartDate\n this.endDateInputTarget.value = newEndDate;\n if (this.hasPeriodOptionInputTarget) this.periodOptionInputTarget.value = \"\";\n\n this.dispatch(\"updated\");\n }\n\n changePeriodOption() {\n const periodOption = this.periodOptionInputTarget.value;\n const selectedDates = this.periodOptionsValue[periodOption];\n\n this.startDateInputTarget.value = selectedDates[0];\n this.endDateInputTarget.value = selectedDates[1];\n this.dateRangeInputTarget._flatpickr.setDate(selectedDates);\n\n this.dispatch(\"updated\");\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.form().requestSubmit) {\n this.form().requestSubmit();\n } else {\n this.form().submit();\n }\n }\n\n changeDate({ detail: { selectedDates } }) {\n if (this.maxDaysValue === 0) return;\n\n if (selectedDates.length == 1) {\n const startDate = selectedDates[0];\n let endDate = new Date(startDate);\n endDate.setDate(startDate.getDate() + this.maxDaysValue - 1);\n\n this.dateRangeInputTarget._flatpickr.config.minDate = startDate.toUTCString();\n if (endDate <= this.dateRangeInputTarget._flatpickr.config.maxDate) {\n this.dateRangeInputTarget._flatpickr.config.maxDate = endDate.toUTCString();\n }\n } else {\n this.dateRangeInputTarget._flatpickr.config.minDate = null;\n this.dateRangeInputTarget._flatpickr.config.maxDate = this.maxDateValue;\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"dateInput\"];\n\n form() {\n return this.dateInputTarget.form;\n }\n\n padTo2Digits(num) {\n return num.toString().padStart(2, '0');\n }\n\n formatDate(date) {\n return [\n date.getFullYear(),\n this.padTo2Digits(date.getMonth() + 1),\n this.padTo2Digits(date.getDate()),\n ].join('-');\n }\n\n clear() {\n this.dateInputTarget.value = '';\n this.element.querySelector(\"[data-controller='flatpickr']\")._flatpickr.clear();\n this.submitForm();\n }\n\n updateRange({ detail: { selectedDates } }) {\n const newDate = this.formatDate(selectedDates[0]);\n this.dateInputTarget.value = newDate\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.form().requestSubmit) {\n this.form().requestSubmit();\n } else {\n this.form().submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport Flatpickr from \"flatpickr\";\nimport { French } from \"flatpickr/dist/l10n/fr.js\";\nimport { Spanish } from \"flatpickr/dist/l10n/es.js\";\nimport monthSelectPlugin from \"flatpickr/dist/plugins/monthSelect/index\";\n\n// Connects to data-controller=\"flatpickr\"\nexport default class extends Controller {\n static targets = [\n \"monthSelector\",\n \"dateInput\",\n ];\n static values = {\n locale: String,\n defaultDate: String,\n };\n\n connect() {\n Flatpickr(\n this.monthSelectorTarget,\n {\n locale: this.locale(),\n altInput: true,\n onChange: (_selectedDates, _dateStr, _instance) => {\n this.submitForm();\n },\n plugins: [\n new monthSelectPlugin({\n shorthand: true, //defaults to false\n dateFormat: \"Y-m-d\", //defaults to \"F Y\"\n altFormat: \"F Y\", //defaults to \"F Y\"\n })\n ],\n defaultDate: this.defaultDateValue,\n }\n );\n }\n\n locale() {\n const locales = {\n en: null, // Default\n fr: French,\n es: Spanish,\n }\n\n return locales[this.localeValue];\n }\n\n submitForm() {\n if (this.monthSelectorTarget.form.requestSubmit) {\n this.monthSelectorTarget.form.requestSubmit();\n } else {\n this.monthSelectorTarget.form.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { Chart } from \"chart.js\";\nimport annotationPlugin from \"chartjs-plugin-annotation\";\nChart.plugins.register(annotationPlugin);\n\nexport default class extends Controller {\n static targets = [\"legendContainer\"];\n static values = {\n locale: String,\n data: Object,\n annotations: Array,\n xAxesLabel: String,\n yAxesLabel: String,\n }\n\n get options() {\n return {\n tooltips: {\n position: \"average\",\n mode: \"index\",\n xPadding: 8,\n yPadding: 8,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: \"1\",\n titleFontColor: \"rgb(26, 32, 44)\",\n titleFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n title: this.tooltipTitleCallback.bind(this),\n label: this.tooltipLabelCallback.bind(this)\n }\n },\n scales: {\n xAxes: [{\n type: \"time\",\n time: {\n displayFormats: {\n hour: \"k:mm\",\n day: \"DD/MM\",\n month: \"DD/MM\"\n }\n },\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n maxTicksLimit: 21,\n major: {\n enabled: true,\n fontStyle: \"bold\",\n },\n },\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.xlabelString,\n padding: 10,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n yAxes: [{\n offset: true,\n position: \"left\",\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8\n },\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.ylabelString,\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n },\n animation: { duration: 0.1 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false,\n legend: { display: false },\n annotation: {\n events: [\"mouseenter\"],\n annotations: this.annotationsValue,\n },\n }\n }\n\n connect() {\n this.chart = new Chart(\n this.element.querySelector(\"canvas\"),\n {\n type: \"line\",\n data: this.dataValue,\n options: this.options,\n }\n );\n this.setChartLegend();\n }\n\n setChartLegend() {\n let chartLegendItemsHtml = this.chart.data.datasets.map((item, datasetIndex) => {\n let itemHidden = this.chart.getDatasetMeta(datasetIndex).hidden;\n let label = item.label;\n let labelColor = !itemHidden ? \"#1A202C\" : \"#4A5568\";\n let borderColor = item.borderColor || \"#6B7280\";\n let backgroundColor = !itemHidden ? (item.backgroundColor || \"#6B7280\") : \"white\";\n let checkColor = (!itemHidden && item.borderDash) ? item.borderColor : \"white\";\n let borderStyle = item.borderDash ? \"dashed\" : \"solid\";\n let opacity = !itemHidden ? \"initial\" : \"0.4\";\n let labelTextDecoration = !itemHidden ? \"initial\" : \"line-through\";\n\n return `\n
line-chart#toggleSerie\" data-line-chart-dataset-index-param=${datasetIndex}>\n
\n \n
\n
${label}
\n
\n `;\n });\n\n this.legendContainerTarget.innerHTML = chartLegendItemsHtml.join(\"\");\n }\n\n tooltipTitleCallback(tooltipItems) {\n var date = new Date(tooltipItems[0].label);\n var dateOptions = { month: 'long', day: 'numeric' };\n var dateTimeOptions = { month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n\n if (date.getHours() == 0 && date.getMinutes() == 0 && date.getSeconds() == 0) {\n return date.toLocaleDateString(this.localeValue, dateOptions);\n } else {\n return date.toLocaleDateString(this.localeValue, dateTimeOptions);\n }\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\n if (label) {\n label += ' : ' + Intl.NumberFormat(this.localeValue).format(tooltipItem.yLabel) + ' ' + unit;\n }\n\n return label;\n }\n\n toggleSerie(event) {\n const itemDatasetIndex = event.params.datasetIndex;\n let meta = this.chart.getDatasetMeta(itemDatasetIndex);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !this.chart.data.datasets[itemDatasetIndex].hidden : null;\n\n this.chart.update();\n this.setChartLegend();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"legendContainer\"];\n static values = {\n data: Object,\n locale: String,\n stacked: Boolean,\n }\n\n get options() {\n return {\n tooltips: {\n position: \"nearest\",\n mode: \"index\",\n xPadding: 12,\n yPadding: 12,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"#A0AEC0\",\n borderWidth: \"1\",\n titleFontColor: \"#2D3748\",\n titleFontStyle: \"normal\",\n footerFontColor: \"#1A202C\",\n footerFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n title: this.tooltipTitleCallback.bind(this),\n label: this.tooltipLabelCallback.bind(this),\n footer: this.tooltipFooterCallback.bind(this),\n }\n },\n scales: {\n xAxes: [{\n stacked: this.stackedValue,\n maxBarThickness: 60,\n distribution: 'series',\n offset: true,\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n source: 'data',\n maxTicksLimit: 21,\n fontSize: 12,\n fontColor: \"#4A5568\",\n major: {\n enabled: true,\n fontStyle: \"bold\",\n },\n },\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.xlabelString,\n padding: 10,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n yAxes: [{\n offset: false,\n stacked: this.stackedValue,\n position: \"left\",\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8,\n padding: -5,\n callback: this.yAxesTickCallback,\n },\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.ylabelString,\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold',\n },\n }],\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false,\n legend: { display: false },\n }\n }\n\n connect() {\n this.chart = new Chart(\n this.element.querySelector(\"canvas\"),\n {\n type: \"bar\",\n data: this.dataValue,\n options: this.options,\n }\n );\n this.setChartLegend();\n }\n\n setChartLegend() {\n let chartLegendItemsHtml = this.chart.data.datasets.map((item, datasetIndex) => {\n let itemHidden = this.chart.getDatasetMeta(datasetIndex).hidden;\n let label = item.label;\n let labelColor = !itemHidden ? \"#1A202C\" : \"#4A5568\";\n let borderColor = item.borderColor || \"#6B7280\";\n let backgroundColor = !itemHidden ? (item.backgroundColor || \"#6B7280\") : \"white\";\n let checkColor = (!itemHidden && item.borderDash) ? item.borderColor : \"white\";\n let borderStyle = item.borderDash ? \"dashed\" : \"solid\";\n let opacity = !itemHidden ? \"initial\" : \"0.4\";\n let labelTextDecoration = !itemHidden ? \"initial\" : \"line-through\";\n\n return `\n
bar-chart#toggleSerie\" data-bar-chart-dataset-index-param=${datasetIndex}>\n
\n \n
\n
${label}
\n
\n `;\n });\n\n this.legendContainerTarget.innerHTML = chartLegendItemsHtml.join(\"\");\n }\n\n tooltipTitleCallback(tooltipItems) {\n let label = tooltipItems[0].label;\n\n if (isNaN(label)) {\n return tooltipItems[0].label;\n } else if (label.getHours() == 0 && label.getMinutes() == 0 && label.getSeconds() == 0) {\n let dateOptions = { month: 'long', day: 'numeric' };\n\n return label.toLocaleDateString(this.localeValue, dateOptions);\n } else {\n let dateTimeOptions = { month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n\n return label.toLocaleDateString(this.localeValue, dateTimeOptions);\n }\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\n if (label) {\n label += ' : ' + Intl.NumberFormat(this.localeValue).format(tooltipItem.yLabel) + ' ' + unit;\n }\n\n return label;\n }\n\n toggleSerie(event) {\n const itemDatasetIndex = event.params.datasetIndex;\n let meta = this.chart.getDatasetMeta(itemDatasetIndex);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !this.chart.data.datasets[itemDatasetIndex].hidden : null;\n\n this.chart.update();\n this.setChartLegend();\n }\n\n tooltipFooterCallback(tooltipItems, data) {\n if (this.stackedValue) {\n const unit = data.datasets[0].unit;\n return 'Total : ' + tooltipItems.reduce((sum, tooltipItem) => Math.round(sum + parseFloat(tooltipItem.value, 10)), 0) + ' ' + unit;\n }\n }\n\n yAxesTickCallback(value) {\n return Intl.NumberFormat(this.localeValue).format(value);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"legendContainer\"];\n static values = {\n data: Object,\n locale: String,\n }\n\n get options() {\n return {\n tooltips: {\n position: \"nearest\",\n mode: \"index\",\n xPadding: 12,\n yPadding: 12,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"#A0AEC0\",\n borderWidth: \"1\",\n titleFontColor: \"#2D3748\",\n titleFontStyle: \"normal\",\n footerFontColor: \"#1A202C\",\n footerFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n label: this.tooltipLabelCallback.bind(this),\n }\n },\n scales: {\n xAxes: [{\n maxBarThickness: 60,\n distribution: 'series',\n offset: true,\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n source: 'data',\n fontSize: 12,\n fontColor: \"#4A5568\",\n },\n gridLines: {\n display: false,\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.xlabelString,\n padding: 10,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n yAxes: [\n {\n id: 'A',\n type: 'linear',\n position: 'left',\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8,\n padding: -5,\n callback: this.yAxesTickCallback,\n fontColor: \"#EC4899\",\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.ylabelLeftString,\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n },\n {\n id: 'B',\n type: 'linear',\n position: 'right',\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8,\n padding: -5,\n callback: this.yAxesTickCallback,\n fontColor: \"#4299E1\",\n },\n scaleLabel: {\n display: true,\n labelString: this.dataValue.ylabelRightString,\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }\n ],\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false,\n legend: { display: false },\n }\n }\n\n connect() {\n const options = this.scaleDataAxesToUnifyZeroesOnOptions();\n this.chart = new Chart(\n this.element.querySelector(\"canvas\"),\n {\n type: \"bar\",\n data: this.dataValue,\n options,\n }\n );\n this.setChartLegend();\n }\n\n setChartLegend() {\n let chartLegendItemsHtml = this.chart.data.datasets.map((item, datasetIndex) => {\n let itemHidden = this.chart.getDatasetMeta(datasetIndex).hidden;\n let label = item.label;\n let labelColor = !itemHidden ? \"#1A202C\" : \"#4A5568\";\n let borderColor = item.borderColor || \"#6B7280\";\n let backgroundColor = !itemHidden ? (item.backgroundColor || \"#6B7280\") : \"white\";\n let checkColor = (!itemHidden && item.borderDash) ? item.borderColor : \"white\";\n let borderStyle = item.borderDash ? \"dashed\" : \"solid\";\n let opacity = !itemHidden ? \"initial\" : \"0.4\";\n let labelTextDecoration = !itemHidden ? \"initial\" : \"line-through\";\n\n return `\n
double-axis-bar-chart#toggleSerie\" data-double-axis-bar-chart-dataset-index-param=${datasetIndex}>\n
\n \n
\n
${label}
\n
\n `;\n });\n\n this.legendContainerTarget.innerHTML = chartLegendItemsHtml.join(\"\");\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\n if (label) {\n label += ' : ' + Intl.NumberFormat(this.localeValue).format(tooltipItem.yLabel) + ' ' + unit;\n }\n\n return label;\n }\n\n toggleSerie(event) {\n const itemDatasetIndex = event.params.datasetIndex;\n let meta = this.chart.getDatasetMeta(itemDatasetIndex);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !this.chart.data.datasets[itemDatasetIndex].hidden : null;\n\n this.chart.update();\n this.setChartLegend();\n }\n\n yAxesTickCallback(value) {\n return Intl.NumberFormat(this.localeValue).format(value);\n }\n\n scaleDataAxesToUnifyZeroesOnOptions() {\n let options = this.options;\n\n // https://stackoverflow.com/questions/45372997/chartjsalign-zeros-on-chart-with-multi-axes/48650762#48650762\n let axes = options.scales.yAxes\n\n // Determine overall max/min values for each dataset\n this.dataValue.datasets.forEach((line) => {\n let axis = line.yAxisID ? axes.filter(ax => ax.id === line.yAxisID)[0] : axes[0]\n\n const minValue = Math.min(...line.data, axis.min_value || 0)\n axis.min_value = (Math.floor(minValue / 1000) * 1000)\n const maxValue = Math.max(...line.data, axis.max_value || 0)\n axis.max_value = (Math.ceil(maxValue / 1000) * 1000)\n })\n\n // Which gives the overall range of each axis\n axes.forEach(axis => {\n axis.range = axis.max_value - axis.min_value\n // Express the min / max values as a fraction of the overall range\n axis.min_ratio = axis.min_value / axis.range\n axis.max_ratio = axis.max_value / axis.range\n })\n\n // Find the largest of these ratios\n let largest = axes.reduce((a, b) => ({\n min_ratio: Math.min(a.min_ratio, b.min_ratio),\n max_ratio: Math.max(a.max_ratio, b.max_ratio)\n }))\n\n // Then scale each axis accordingly\n axes.forEach(axis => {\n axis.ticks = axis.ticks || {}\n axis.ticks.min = largest.min_ratio * axis.range\n axis.ticks.max = largest.max_ratio * axis.range\n })\n\n return options;\n }\n}\n","import ChartController from \"../../../chart/controller\";\n\nexport default class extends ChartController {\n static targets = [\"legendContainer\"];\n\n get options () {\n const options = this.optionsValue;\n\n options.options = {\n tooltips: {\n position: \"average\",\n mode: \"index\",\n xPadding: 8,\n yPadding: 8,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: \"1\",\n titleFontColor: \"rgb(26, 32, 44)\",\n titleFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n title: this.tooltipTitleCallback.bind(this),\n label: this.tooltipLabelCallback.bind(this)\n }\n },\n scales: {\n yAxes: [{\n offset: true,\n position: \"left\",\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8\n },\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n labelString: \"kW\",\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n xAxes: [{\n type: \"time\",\n time: {\n displayFormats: {\n hour: \"k:mm\",\n day: \"DD/MM\",\n month: \"DD/MM\"\n }\n },\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n maxTicksLimit: 21,\n major: {\n enabled: true,\n fontStyle: \"bold\",\n },\n },\n gridLines: {\n display: false,\n }\n }],\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false,\n legend: { display: false },\n }\n\n return options;\n }\n\n connect() {\n this.render();\n this.setChartLegend();\n }\n\n setChartLegend() {\n let chartLegendItemsHtml = this.chart.data.datasets.map((item, datasetIndex) => {\n let itemHidden = this.chart.getDatasetMeta(datasetIndex).hidden;\n let label = item.label;\n let labelColor = !itemHidden ? \"#1A202C\" : \"#4A5568\";\n let borderColor = item.borderColor || \"#6B7280\";\n let backgroundColor = !itemHidden ? (item.backgroundColor || \"#6B7280\") : \"white\";\n let checkColor = (!itemHidden && item.borderDash) ? item.borderColor : \"white\";\n let borderStyle = item.borderDash ? \"dashed\" : \"solid\";\n let opacity = !itemHidden ? \"initial\" : \"0.4\";\n let labelTextDecoration = !itemHidden ? \"initial\" : \"line-through\";\n\n return `\n
flex-performance--chart#toggleSerie\" data-flex-performance--chart-dataset-index-param=${datasetIndex}>\n
\n \n
\n
${label}
\n
\n `;\n });\n\n this.legendContainerTarget.innerHTML = chartLegendItemsHtml.join(\"\");\n }\n\n tooltipTitleCallback(tooltipItems) {\n var date = new Date(tooltipItems[0].label);\n var dateOptions = { month: 'long', day: 'numeric' };\n var dateTimeOptions = { month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n\n if (date.getHours() == 0 && date.getMinutes() == 0 && date.getSeconds() == 0) {\n return date.toLocaleDateString(this.localeValue, dateOptions);\n } else {\n return date.toLocaleDateString(this.localeValue, dateTimeOptions);\n }\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\n if (label) {\n label += ' : ' + Intl.NumberFormat(this.localeValue).format(tooltipItem.yLabel) + ' ' + unit;\n }\n\n return label;\n }\n\n toggleSerie(event) {\n const itemDatasetIndex = event.params.datasetIndex;\n let meta = this.chart.getDatasetMeta(itemDatasetIndex);\n\n // See controller.isDatasetVisible comment\n meta.hidden = meta.hidden === null ? !this.chart.data.datasets[itemDatasetIndex].hidden : null;\n\n this.chart.update();\n this.setChartLegend();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"rankingWaitingForDataContainer\",\n \"rankingSortIcon\",\n \"rankingTableContainer\",\n \"rankingForm\",\n \"selectedFlexSiteId\",\n \"selectedActivityLevel\",\n \"selectedWorkHours\",\n ];\n\n connect() {\n this.submitForm();\n }\n\n reverseOrder() {\n this.rankingSortIconTarget.classList.toggle(\"fa-sort-amount-up-alt\");\n this.rankingSortIconTarget.classList.toggle(\"fa-sort-amount-down-alt\");\n\n this.rankingTableContainerTarget.classList.toggle(\"tw-flex-col\");\n this.rankingTableContainerTarget.classList.toggle(\"tw-flex-col-reverse\");\n }\n\n displayFlexSiteDetails(event) {\n this.selectedFlexSiteIdTarget.value = event.currentTarget.dataset.flexSiteId;\n this.selectedActivityLevelTarget.value = event.currentTarget.dataset.activityLevel;\n this.selectedWorkHoursTarget.value = event.currentTarget.dataset.workHours;\n\n this.submitForm();\n }\n\n isWaitingForData() {\n return this.rankingWaitingForDataContainerTarget.dataset.waitingForData == 1;\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.isWaitingForData() || !this.hasRankingFormTarget) return;\n\n this.dispatch(\"updated\");\n\n if (this.rankingFormTarget.requestSubmit) {\n this.rankingFormTarget.requestSubmit();\n } else {\n this.rankingFormTarget.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n this.dispatch(\"updated\");\n\n if (this.element.requestSubmit) {\n this.element.requestSubmit();\n } else {\n this.element.submit();\n }\n }\n}\n","export default class KuartzSelector {\n constructor(element, options = {}) {\n element.style.display = 'none';\n\n this.element = element;\n this.options = options;\n this.multiple = this.options.multiple || false;\n this.locale = this.options.locale || 'en';\n this.optionCategory = this.options.category || this.t('options');\n this.choices = this.options.choices || [];\n\n this.id = element.id || this.generateId();\n this.labelsAndValues = this.labelsAndValues();\n this.element.insertAdjacentHTML('afterend', this.selectorHTML());\n this.container = this.element.nextElementSibling;\n this.element.classList.forEach((className) => this.container.classList.add(className));\n\n this.insertOptionsHTML();\n this.insertCountContainerHTML();\n this.updateSelectAllStatus();\n\n this.addGlobalEventListeners();\n this.addEventListenersForMultipleSelector();\n this.addEventListenersForSingleSelector();\n\n this.onInitialize();\n }\n\n addGlobalEventListeners() {\n window.addEventListener('click', event => {\n event.stopPropagation();\n\n if (this.isInContainer(event.target)) return;\n\n this.toggleOptionDropdownContainer(event)\n });\n\n window.addEventListener('keydown', event => this.removeSelectedInputOption(event));\n\n this.inputOptionsWrapperTarget.addEventListener('click', event => this.toggleOptionDropdownContainer(event));\n\n this.inputSearchTarget.addEventListener('keyup', event => {\n if ([\"Enter\", \"ArrowUp\", \"ArrowDown\", \"Escape\"].includes(event.key)) return;\n\n this.search(event.target.value);\n });\n\n this.inputTargets.forEach((inputTarget) => {\n inputTarget.addEventListener('change', (event) => {\n event.stopPropagation();\n\n this.toggleOption(event.currentTarget);\n });\n });\n\n document.addEventListener('keydown', this.handleKeyDown.bind(this));\n }\n\n addEventListenersForMultipleSelector() {\n if (!this.multiple) return;\n\n this.selectAllBtnTarget.addEventListener('click', (event) => this.toggleOptions(event));\n }\n\n addEventListenersForSingleSelector() {\n if (this.multiple) return;\n\n this.optionContainerTargets.forEach((optionContainerTarget) => {\n optionContainerTarget.addEventListener('click', (event) => {\n event.stopPropagation();\n\n this.closeOptionDropdownContainer(event, true)\n });\n optionContainerTarget.addEventListener('mouseover', (event) => {\n event.currentTarget.classList.add('selected');\n });\n optionContainerTarget.addEventListener('mouseleave', (event) => {\n event.currentTarget.classList.remove('selected');\n });\n });\n }\n\n get optionsContainerTarget() {\n return this.container.querySelector(\".ks--options-container\");\n }\n\n get dropdownIconContainerTarget() {\n return this.container.querySelector(\".ks--dropdown-icon-container\");\n }\n\n get selectAllBtnTarget() {\n return this.container.querySelector(\".ks--select-all-btn\");\n }\n\n get optionDropdownContainerTarget() {\n return this.container.querySelector(\".ks--option-dropdown-container\");\n }\n\n get inputOptionsWrapperTarget() {\n return this.container.querySelector(\".ks--input-options-wrapper\");\n }\n\n get inputOptionsContainerTarget() {\n return this.container.querySelector(\".ks--input-options-container\");\n }\n\n get inputSearchTarget() {\n return this.container.querySelector(\".ks--input-search\");\n }\n\n get optionContainerTargets() {\n return this.container.querySelectorAll(\".ks--option-container\");\n }\n\n get noResultsFoundTarget() {\n return this.container.querySelector(\".ks--no-options-found\");\n }\n\n get inputTargets() {\n return this.container.querySelectorAll(\".ks--input\");\n }\n\n get countTarget() {\n return this.container.querySelector(\".ks--count\");\n }\n\n get value() {\n return Array.from(this.element.querySelectorAll(\"[selected='selected']\")).map((option) => option.value);\n }\n\n generateId() {\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n }\n\n choiceColor(value) {\n if (!this.choices) return \"slate\";\n\n const choice = this.choices.find(choice => choice.value === value)\n\n return choice && choice.color ? choice.color : \"slate\";\n }\n\n t(key) {\n const translations = {\n en: {\n searchInputPlaceholder: 'Search an option',\n noResultsFound: 'No results found',\n selected: 'selected',\n options: 'options',\n },\n fr: {\n searchInputPlaceholder: 'Rechercher une option',\n noResultsFound: 'Aucun résultat trouvé',\n selected: 'sélectionnés',\n options: 'options',\n },\n es: {\n searchInputPlaceholder: 'Buscar una opción',\n noResultsFound: 'No se encontraron resultados',\n selected: 'seleccionados',\n options: 'opciones',\n },\n };\n\n return translations[this.locale][key];\n }\n\n labelsAndValues() {\n let labelsAndValues = [];\n\n this.element.querySelectorAll('option').forEach((option) => {\n if (labelsAndValues.map(labelAndValue => labelAndValue[1]).indexOf(option.value) == -1) {\n labelsAndValues.push([option.innerText, option.value, option.getAttribute(\"selected\") == \"selected\"]);\n }\n });\n\n return labelsAndValues;\n }\n\n selectorHTML() {\n let selectAllContainerHTML = '';\n if (this.multiple) {\n selectAllContainerHTML = `\n
\n \n \n
\n `;\n }\n\n return `\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n ${selectAllContainerHTML}\n
\n
\n ${this.t('noResultsFound')}\n
\n
\n
\n
\n
\n `;\n }\n\n inputOptionHTML(label, value) {\n if (this.multiple) {\n return `\n
\n
${label}
\n
\n \n
\n
\n `\n } else {\n return `\n
\n ${this.labelContentHTML(label, value)}\n
\n `\n }\n }\n\n optionHTML(label, value, checked) {\n const checkedHTML = checked ? 'checked=\"checked\"' : '';\n\n if (this.multiple) {\n return `\n
\n \n \n
\n `\n } else {\n return `\n
\n \n \n
\n `\n }\n }\n\n labelContentHTML(label, value) {\n if (label === '') return '';\n\n const choiceColor = this.choiceColor(value);\n\n return `\n
\n ${label}\n
\n `;\n }\n\n countContainerHTML() {\n if (!this.options.count) return '';\n\n return `\n
\n ${this.checkedCount()}\n /\n ${this.optionCount()}\n ${this.t('selected')}\n
\n `;\n }\n\n insertCountContainerHTML() {\n if (!this.options.count) return;\n\n this.container.insertAdjacentHTML('beforeend', this.countContainerHTML());\n }\n\n updateCountHTML() {\n if (!this.options.count) return;\n\n this.countTarget.innerText = this.checkedCount();\n }\n\n insertOptionsHTML() {\n this.labelsAndValues.forEach((option) => {\n const label = option[0];\n const value = option[1];\n const checkedOption = option[2];\n\n this.optionsContainerTarget.insertAdjacentHTML('beforeend', this.optionHTML(label, value, checkedOption));\n\n if (checkedOption) this.addOption(value);\n });\n }\n\n updateSelectAllStatus() {\n if (!this.selectAllBtnTarget) return;\n\n if (this.checkedCount() == 0) {\n this.selectAllBtnTarget.indeterminate = false;\n this.selectAllBtnTarget.checked = false;\n } else if (this.optionCount() == this.checkedCount()) {\n this.selectAllBtnTarget.indeterminate = false;\n this.selectAllBtnTarget.checked = true;\n } else {\n this.selectAllBtnTarget.indeterminate = true;\n this.selectAllBtnTarget.checked = false;\n }\n }\n\n setDropdownIcon() {\n let iconHTML = '';\n\n if (this.optionDropdownContainerTarget.classList.contains('open')) {\n iconHTML = '';\n } else {\n iconHTML = '';\n }\n this.dropdownIconContainerTarget.innerHTML = iconHTML;\n }\n\n optionCount() {\n return this.optionsContainerTarget.querySelectorAll('input').length;\n }\n\n checkedCount() {\n return this.optionsContainerTarget.querySelectorAll('input:checked').length;\n }\n\n handleKeyDown(event) {\n if (!this.isInBody) return;\n\n if (event.key === \"Enter\") {\n event.preventDefault();\n\n if (this.isDropdownOpen() &&\n this.selectedOption &&\n (this.multiple || !this.selectedOption.querySelector('input').checked)) {\n this.selectedOption.querySelector('input').click();\n this.afterChangeWithEnterKey();\n }\n\n if (!this.multiple) this.toggleOptionDropdownContainer(event, true);\n } else if (event.key === \"Escape\") {\n if (!this.isDropdownOpen()) return;\n\n event.preventDefault();\n\n this.closeOptionDropdownContainer(event, true);\n } else if (event.key === \"Backspace\") {\n if (this.multiple || this.isDropdownOpen()) return;\n\n event.preventDefault();\n\n this.clearOptions();\n } else if (event.key === \"ArrowUp\") {\n if (this.multiple || !this.isDropdownOpen()) return;\n event.preventDefault();\n\n this.selectUpOption();\n } else if (event.key === \"ArrowDown\") {\n if (this.multiple || !this.isDropdownOpen()) return;\n\n event.preventDefault();\n\n this.selectDownOption();\n } else {\n const keysToIgnore = [\n \"CapsLock\",\n \"Control\",\n \"Alt\",\n \"Shift\",\n \"Meta\",\n \"Escape\",\n \"Backspace\",\n \"Space\",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Tab\",\n ]\n if (this.multiple ||\n this.isDropdownOpen() ||\n keysToIgnore.includes(event.key) ||\n event.ctrlKey ||\n event.altKey ||\n event.metaKey\n ) return;\n\n this.openOptionDropdownContainer(event, true);\n setTimeout(() => this.inputSearchTarget.focus());\n }\n }\n\n get isInBody() {\n return this.element.parentElement.parentElement;\n }\n\n selectUpOption() {\n if (this.optionContainerTargets.length === 0) return;\n\n const selectedOption = this.selectedOption;\n\n if (selectedOption) {\n const previousOption = this.previousVisibleOptionContainerTarget;\n this.removeAllSelectedOptions();\n\n if (previousOption) previousOption.classList.add('selected');\n } else {\n this.lastOption.classList.add('selected');\n }\n }\n\n selectDownOption() {\n if (this.optionContainerTargets.length === 0) return;\n\n const selectedOption = this.selectedOption;\n\n if (selectedOption) {\n const nextOption = this.nextVisibleOptionContainerTarget;\n this.removeAllSelectedOptions();\n\n if (nextOption) nextOption.classList.add('selected');\n } else {\n this.firstOption.classList.add('selected');\n }\n }\n\n get visibleOptionContainerTargets() {\n return Array.from(this.optionContainerTargets).filter((optionContainer) => !optionContainer.classList.contains('hidden'));\n }\n\n get previousVisibleOptionContainerTarget() {\n const currentIndex = this.visibleOptionContainerTargets.indexOf(this.selectedOption);\n const previousIndex = currentIndex - 1;\n\n return this.visibleOptionContainerTargets[previousIndex];\n }\n\n get nextVisibleOptionContainerTarget() {\n const currentIndex = this.visibleOptionContainerTargets.indexOf(this.selectedOption);\n const nextIndex = currentIndex + 1;\n\n return this.visibleOptionContainerTargets[nextIndex];\n }\n\n get selectedOption() {\n return this.visibleOptionContainerTargets.find((optionContainer) => optionContainer.classList.contains('selected'));\n }\n\n get lastOption() {\n return this.visibleOptionContainerTargets[this.visibleOptionContainerTargets.length - 1];\n }\n\n get firstOption() {\n return this.visibleOptionContainerTargets[0];\n }\n\n removeAllSelectedOptions() {\n this.optionContainerTargets.forEach(optionContainer => {\n optionContainer.classList.remove('selected');\n });\n }\n\n selectOption(value) {\n const optionContainer = this.container.querySelector(`.ks--option-container[data-value=\"${value}\"]`);\n\n if (optionContainer) {\n this.removeAllSelectedOptions();\n optionContainer.classList.add('selected');\n }\n }\n\n toggleOptionDropdownContainer(event, force = false) {\n event.stopPropagation();\n\n if (this.isDropdownOpen()) {\n this.closeOptionDropdownContainer(event, force);\n } else {\n this.openOptionDropdownContainer(event, force);\n }\n\n this.setDropdownIcon();\n }\n\n openOptionDropdownContainer(event, force = false) {\n if (\n !force &&\n (\n !this.inputOptionsWrapperTarget.contains(event.target) ||\n event.target.classList.contains('ks--input-option-label') ||\n event.target.classList.contains('ks--input-option-remove-btn')\n )\n ) return;\n\n this.optionDropdownContainerTarget.classList.add('open');\n this.optionDropdownContainerTarget.querySelector('input').focus();\n if (!this.multiple) {\n const value = this.value[0] || \"\";\n this.selectOption(value);\n }\n this.onDropdownOpen();\n }\n\n isDropdownOpen() {\n return this.optionDropdownContainerTarget.classList.contains('open');\n }\n\n closeOptionDropdownContainer(event, force = false) {\n if (\n !force &&\n (\n this.optionDropdownContainerTarget.contains(event.target) ||\n event.target.classList.contains('ks--input-option-label') ||\n event.target.classList.contains('ks--input-option-remove-btn')\n )\n ) return;\n\n this.optionDropdownContainerTarget.classList.remove('open');\n if (this.selectedOption) this.selectedOption.classList.remove('selected');\n this.inputSearchTarget.value = '';\n this.search('');\n this.onDropdownClose();\n }\n\n removeSelectedOptions() {\n this.inputOptionsContainerTarget.querySelectorAll(`.selected`).forEach((inputOption) => {\n inputOption.classList.remove('selected');\n });\n }\n\n removeSelectedInputOption(event) {\n if (event.key !== 'Backspace') return;\n\n const selectedInputOptions = this.inputOptionsContainerTarget.querySelectorAll(`.selected`);\n\n selectedInputOptions.forEach((inputOption) => {\n this.removeOption(inputOption.dataset.value);\n });\n\n if (selectedInputOptions.length != 0) this.onChange();\n }\n\n toggleOptions(event) {\n if (event.currentTarget.checked) {\n this.checkAllOptions();\n } else {\n this.uncheckAllOptions();\n }\n\n this.onChange();\n }\n\n checkAllOptions() {\n this.optionsContainerTarget.querySelectorAll('input').forEach((option) => {\n if (option.checked) return;\n\n this.addOption(option.parentElement.dataset.value);\n });\n }\n\n uncheckAllOptions() {\n this.optionsContainerTarget.querySelectorAll('input').forEach((option) => {\n if (!option.checked) return;\n\n this.removeOption(option.parentElement.dataset.value);\n });\n }\n\n toggleOption(input) {\n const value = input.parentElement.dataset.value;\n\n if (input.checked) {\n this.multiple ? this.addOption(value) : this.replaceOption(value);\n } else {\n this.removeOption(value);\n }\n\n this.onChange();\n }\n\n removeOptionFromInputOption(event) {\n event.stopPropagation();\n\n const value = event.currentTarget.parentElement.dataset.value;\n\n this.removeOption(value);\n\n this.onChange();\n }\n\n removeOption(value) {\n this.removeInputOptions(value);\n this.uncheckOptions(value);\n this.toggleSelectOptions(value, false);\n this.updateSelectAllStatus();\n }\n\n addOption(value) {\n this.addInputOptions(value);\n this.checkOptions(value);\n this.toggleSelectOptions(value, true);\n this.updateSelectAllStatus();\n }\n\n replaceOption(value) {\n this.removeAllInputOptions();\n this.addInputOptions(value);\n this.selectOnlySelectOptions(value);\n }\n\n clearOptions() {\n this.replaceOption(\"\");\n this.onChange();\n }\n\n toggleSelectOptions(value, selected) {\n this.element.querySelectorAll(`option[value=\"${value}\"]`).forEach((option) => {\n if (selected) {\n option.setAttribute('selected', 'selected');\n } else {\n option.removeAttribute('selected');\n }\n });\n }\n\n addInputOptions(value) {\n this.optionsContainerTarget.querySelectorAll(`[data-value=\"${value}\"]`).forEach((optionContainer) => {\n const label = optionContainer.dataset.label;\n const value = optionContainer.dataset.value;\n\n this.inputOptionsContainerTarget.insertAdjacentHTML('beforeend', this.inputOptionHTML(label, value));\n\n if (this.multiple) {\n this.inputOptionsContainerTarget.lastElementChild.querySelector('.ks--input-option-label').addEventListener('click', (event) => {\n this.selectInputOption(event);\n });\n this.inputOptionsContainerTarget.lastElementChild.querySelector('.ks--input-option-remove-btn').addEventListener('click', (event) => {\n this.removeOptionFromInputOption(event);\n });\n }\n });\n }\n\n removeAllInputOptions() {\n this.inputOptionsContainerTarget.innerHTML = '';\n }\n\n unselectAllSelectOptions() {\n this.element.querySelectorAll('option').forEach((option) => {\n option.removeAttribute('selected');\n });\n }\n\n selectOnlySelectOptions(value = undefined) {\n this.element.querySelectorAll('option').forEach((option) => {\n if (value && option.value == value) {\n option.setAttribute('selected', 'selected');\n } else {\n option.removeAttribute('selected');\n }\n });\n }\n\n removeInputOptions(value) {\n this.inputOptionsContainerTarget.querySelectorAll(`[data-value=\"${value}\"]`).forEach((option) => {\n option.remove();\n });\n }\n\n checkOptions(value) {\n this.optionsContainerTarget.querySelectorAll(`[data-value=\"${value}\"] input`).forEach((option) => {\n option.checked = true;\n });\n }\n\n uncheckOptions(value) {\n this.optionsContainerTarget.querySelectorAll(`[data-value=\"${value}\"] input`).forEach((option) => {\n option.checked = false;\n });\n }\n\n search(value) {\n let foundOptionCount = 0;\n\n this.optionContainerTargets.forEach(optionContainer => {\n if(optionContainer.dataset.label.toLowerCase().includes(value.toLowerCase())) {\n optionContainer.classList.remove('hidden');\n foundOptionCount++;\n } else {\n optionContainer.classList.add('hidden');\n }\n });\n\n if (foundOptionCount === 0) {\n this.noResultsFoundTarget.classList.add('show');\n } else {\n this.noResultsFoundTarget.classList.remove('show');\n this.removeAllSelectedOptions();\n this.firstOption.classList.add('selected');\n }\n }\n\n selectInputOption(event) {\n this.removeSelectedOptions();\n this.addSelectedOptions(event.currentTarget.parentElement.dataset.value);\n }\n\n addSelectedOptions(value) {\n this.inputOptionsContainerTarget.querySelectorAll(`[data-value=\"${value}\"]`).forEach((option) => {\n option.classList.add('selected');\n });\n }\n\n isInContainer(element) {\n while (element) {\n if (element === this.container) {\n return true;\n } else if (element === document.body) {\n return false;\n }\n\n element = element.parentElement\n }\n }\n\n onChange() {\n if (this.options.count) this.updateCountHTML();\n if (this.options.onChange) this.options.onChange({ detail: this.value });\n }\n\n onInitialize() {\n if (this.options.onInitialize) this.options.onInitialize({ detail: this.value });\n }\n\n onDropdownOpen() {\n if (this.options.onDropdownOpen) this.options.onDropdownOpen();\n }\n\n onDropdownClose() {\n if (this.options.onDropdownClose) this.options.onDropdownClose();\n }\n\n afterChangeWithEnterKey() {\n if (this.options.afterChangeWithEnterKey) this.options.afterChangeWithEnterKey();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport KuartzSelector from \"../../webpacker/src/javascript/components/kuartz_selector\";\n\nexport default class extends Controller {\n static values = {\n locale: String,\n category: String,\n }\n\n connect() {\n const controller = this;\n const multiple = this.element.getAttribute(\"multiple\");\n\n if (!multiple) return;\n\n new KuartzSelector(\n this.element,\n {\n multiple: true,\n locale: this.localeValue,\n count: true,\n category: this.categoryValue,\n onInitialize({ detail: value }) {\n controller.dispatch(\"initialized\", { detail: value });\n },\n onChange({ detail: value }) {\n controller.dispatch(\"changed\", { detail: value });\n },\n }\n );\n }\n\n // Used to dispatch tom select onInitialize event\n initialized() {\n this.dispatch(\"initialized\", { detail: { value: this.element.value } });\n }\n\n // Used to dispatch tom select onChange event\n changed({ detail: value }) {\n this.dispatch(\"changed\", { detail: value });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport KuartzSelector from \"../../webpacker/src/javascript/components/kuartz_selector\";\n\nexport default class extends Controller {\n static values = {\n locale: String,\n category: String,\n }\n\n connect() {\n const controller = this;\n const multiple = this.element.getAttribute(\"multiple\");\n\n if (!multiple) return;\n\n new KuartzSelector(\n this.element,\n {\n multiple: true,\n locale: this.localeValue,\n count: true,\n category: this.categoryValue,\n onInitialize({ detail: value }) {\n controller.dispatch(\"initialized\", { detail: value });\n },\n onChange({ detail: value }) {\n controller.dispatch(\"changed\", { detail: value });\n },\n }\n );\n }\n\n // Used to dispatch tom select onInitialize event\n initialized() {\n this.dispatch(\"initialized\", { detail: { value: this.element.value } });\n }\n\n // Used to dispatch tom select onChange event\n changed({ detail: value }) {\n this.dispatch(\"changed\", { detail: value });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"form\", \"year\"];\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n\n setValueAndSubmitForm(event) {\n event.preventDefault();\n\n const actionTarget = event.target.dataset.actionTarget;\n const actionValue = event.target.dataset.actionValue;\n this[`${actionTarget}Target`].value = actionValue;\n\n this.submitForm();\n }\n}\n","import ChartController from \"../../../../chart/controller\";\n\nexport default class extends ChartController {\n get options () {\n const options = this.optionsValue;\n\n options.options = {\n tooltips: {\n position: \"average\",\n mode: \"index\",\n xPadding: 8,\n yPadding: 8,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: \"1\",\n titleFontColor: \"rgb(26, 32, 44)\",\n titleFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n title: this.tooltipTitleCallback.bind(this),\n label: this.tooltipLabelCallback.bind(this)\n }\n },\n scales: {\n yAxes: [{\n offset: true,\n position: \"left\",\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8\n },\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n labelString: \"kW\",\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n xAxes: [{\n type: \"time\",\n time: {\n displayFormats: {\n hour: \"k:mm\",\n day: \"DD/MM\",\n month: \"DD/MM\"\n }\n },\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n maxTicksLimit: 21,\n major: {\n enabled: true,\n fontStyle: \"bold\",\n },\n },\n gridLines: {\n display: false,\n }\n }],\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false\n }\n return options;\n }\n\n tooltipTitleCallback(tooltipItems) {\n var date = new Date(tooltipItems[0].label);\n var dateOptions = { month: 'long', day: 'numeric' };\n var dateTimeOptions = { month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n\n if (date.getHours() == 0 && date.getMinutes() == 0 && date.getSeconds() == 0) {\n return date.toLocaleDateString(this.localeValue, dateOptions);\n } else {\n return date.toLocaleDateString(this.localeValue, dateTimeOptions);\n }\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\n if (label) {\n label += ' : ' + Intl.NumberFormat(this.localeValue).format(tooltipItem.yLabel) + ' ' + unit;\n }\n\n return label;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"form\"];\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n this.dispatch(\"updated\");\n\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"computationMode\",\n ];\n\n change() {\n this.submitForm();\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n const form = this.computationModeTarget.form;\n\n // The idea here is to submit the form to the right path depending on the computation mode.\n // If the computation mode is \"aggregated\", we submit to the table_path directly as we don't need the selected\n // option.\n // Otherwise, we submit the form to the select_list_path in order to have access to the select option input.\n\n if (this.computationModeTarget.tomselect.activeOption.innerHTML == \"aggregated\") {\n form.action = this.computationModeTarget.dataset.pathValue;\n }\n\n if (this.computationModeTarget.form.requestSubmit) {\n this.computationModeTarget.form.requestSubmit();\n } else {\n this.computationModeTarget.form.submit();\n }\n }\n\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\n \"selectedOption\",\n ];\n\n change() {\n this.submitForm();\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.selectedOptionTarget.form.requestSubmit) {\n this.selectedOptionTarget.form.requestSubmit();\n } else {\n this.selectedOptionTarget.form.submit();\n }\n }\n\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n \"editableInput\",\n \"siteIdInput\", // This is an hidden input that gets submitted to get day attributes\n \"firstDayOfWeekInput\", // This is an hidden input that gets submitted to get day attributes\n \"submitButton\",\n \"siteForm\",\n \"weekPickerForm\",\n ];\n static values = {\n formType: String,\n };\n\n connect() {\n if (this.formTypeValue == \"edit\") this.disableSubmitButton();\n }\n\n onFirstDayOfWeekInputChange(event) {\n const selectedDate = event.target.value;\n if (!selectedDate) return;\n\n this.firstDayOfWeekInputTargets.forEach(input => {\n input.value = this.formatDate(selectedDate);\n })\n\n this.submitWeekPickerForm();\n }\n\n formatDate(dateStr) {\n const date = new Date(dateStr);\n\n return [\n date.getFullYear(),\n this.padTo2Digits(date.getMonth() + 1),\n this.padTo2Digits(date.getDate()),\n ].join('-');\n }\n\n padTo2Digits(num) {\n return num.toString().padStart(2, '0');\n }\n\n submitWeekPickerForm() {\n if (this.weekPickerFormTarget.requestSubmit) {\n this.weekPickerFormTarget.requestSubmit();\n } else {\n this.weekPickerFormTarget.submit();\n }\n }\n\n onSiteSelectorChange(event) {\n if (!event.target.value) return;\n\n this.siteIdInputTargets.forEach(input => {\n input.value = event.target.value;\n })\n\n this.submitSiteForm();\n }\n\n submitSiteForm() {\n this.siteFormTarget.requestSubmit ? this.siteFormTarget.requestSubmit() : this.siteFormTarget.submit();\n }\n\n onEditableInputChange() {\n if (this.formTypeValue === \"new\") return;\n\n const hasFormChanged = this.editableInputTargets.some(input => input.dataset.originalValue != input.value);\n\n hasFormChanged ? this.enableSubmitButton() : this.disableSubmitButton();\n }\n\n enableSubmitButton() {\n this.submitButtonTarget.disabled = false;\n }\n\n disableSubmitButton() {\n this.submitButtonTarget.disabled = true;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport Flatpickr from \"flatpickr\";\nimport { French } from \"flatpickr/dist/l10n/fr.js\";\nimport { Spanish } from \"flatpickr/dist/l10n/es.js\";\n\nexport default class extends Controller {\n static targets = [\n \"inputThatCouldBeReadOnly\",\n \"weekPicker\",\n ];\n static values = {\n locale: String,\n firstEditableFirstDayOfWeek: String,\n alreadyFilledFutureDates: Array,\n };\n\n connect() {\n if (this.hasWeekPickerTarget) this.initFlatpickr();\n this.displayReadOnlyDescription();\n }\n\n initFlatpickr() {\n const alreadyFilledFutureDates = this.alreadyFilledFutureDates;\n let firstEditableFirstDayOfWeek = new Date(this.firstEditableFirstDayOfWeekValue);\n\n Flatpickr(\n this.weekPickerTarget,\n {\n locale: this.locale,\n altInput: true,\n altFormat: \"d/m/Y\",\n defaultDate: this.weekPickerTarget.dataset.defaultDate && new Date(this.weekPickerTarget.dataset.defaultDate),\n disable: [\n function(date) {\n return date.getDay() !== 1 ||\n date < firstEditableFirstDayOfWeek ||\n alreadyFilledFutureDates.includes(date.getTime());\n }\n ],\n }\n );\n }\n\n get locale() {\n const locales = {\n en: null, // Default\n fr: French,\n es: Spanish,\n }\n\n return locales[this.localeValue]\n }\n\n get alreadyFilledFutureDates() {\n return this.alreadyFilledFutureDatesValue.map(date => new Date(date).getTime());\n }\n\n displayReadOnlyDescription() {\n const formHasReadOnlyInputs = this.inputThatCouldBeReadOnlyTargets.some(input => {\n return input.getAttribute(\"readonly\") == \"readonly\"\n });\n if (!formHasReadOnlyInputs) return;\n\n this.readOnlyDescriptionTarget.setAttribute(\"aria-expanded\", \"true\");\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport TomSelect from \"tom-select\";\n\nexport default class extends Controller {\n static targets = [\n \"timesAndAvailability\",\n \"activityLevelOnIcon\",\n \"activityLevelOffIcon\",\n \"availabilityOnIcon\",\n \"availabilityOffIcon\",\n \"activityLevelInput\",\n \"startTimeInput\",\n \"endTimeInput\",\n \"availabilityInput\",\n ];\n static values = {\n allHalfHoursOfADay: Array,\n };\n\n connect() {\n const activityLevelInput = new TomSelect(this.activityLevelInputTarget);\n const startTimeInput = new TomSelect(this.startTimeInputTarget);\n const endTimeInput = new TomSelect(this.endTimeInputTarget);\n const availabilityInput = new TomSelect(this.availabilityInputTarget);\n\n if (this.activityLevelInputTarget.getAttribute(\"readonly\") == \"readonly\") activityLevelInput.lock();\n if (this.startTimeInputTarget.getAttribute(\"readonly\") == \"readonly\") startTimeInput.lock();\n if (this.endTimeInputTarget.getAttribute(\"readonly\") == \"readonly\") endTimeInput.lock();\n if (this.availabilityInputTarget.getAttribute(\"readonly\") == \"readonly\") availabilityInput.lock();\n }\n\n onActivityLevelChange(event) {\n if (event.target.value == \"100\") {\n this.timesAndAvailabilityTarget.classList.remove(\"tw-hidden\");\n this.activityLevelOnIconTarget.classList.remove(\"tw-hidden\");\n this.activityLevelOffIconTarget.classList.add(\"tw-hidden\");\n } else if (event.target.value == \"0\") {\n this.startTimeInputTarget.tomselect.setValue(this.allHalfHoursOfADayValue[0]);\n this.endTimeInputTarget.tomselect.setValue(this.allHalfHoursOfADayValue[0]);\n this.availabilityInputTarget.tomselect.setValue(\"0\");\n this.timesAndAvailabilityTarget.classList.add(\"tw-hidden\");\n this.activityLevelOnIconTarget.classList.add(\"tw-hidden\");\n this.activityLevelOffIconTarget.classList.remove(\"tw-hidden\");\n }\n }\n\n onAvailabilityChange(event) {\n if (event.target.value == \"100\") {\n this.availabilityOnIconTarget.classList.remove(\"tw-hidden\");\n this.availabilityOffIconTarget.classList.add(\"tw-hidden\");\n } else {\n this.availabilityOnIconTarget.classList.add(\"tw-hidden\");\n this.availabilityOffIconTarget.classList.remove(\"tw-hidden\");\n }\n }\n\n onStartTimeInputChange() {\n this.endTimeInputTarget.classList.remove(\"invalid\");\n\n if (this.isStartTimeValueBeforeEndTimeValue()) {\n this.startTimeInputTarget.classList.remove(\"invalid\");\n } else {\n this.startTimeInputTarget.classList.add(\"invalid\");\n }\n\n this.addInvalidErrorsForEmptyTimes();\n }\n\n onEndTimeInputChange() {\n this.startTimeInputTarget.classList.remove(\"invalid\");\n\n if (this.isStartTimeValueBeforeEndTimeValue()) {\n this.endTimeInputTarget.classList.remove(\"invalid\");\n } else {\n this.endTimeInputTarget.classList.add(\"invalid\");\n }\n\n this.addInvalidErrorsForEmptyTimes();\n }\n\n isStartTimeValueBeforeEndTimeValue() {\n const startTime = this.startTimeInputTarget.value;\n const endTime = this.endTimeInputTarget.value;\n\n return !startTime ||\n !endTime ||\n this.allHalfHoursOfADayValue.indexOf(startTime) < this.allHalfHoursOfADayValue.indexOf(endTime);\n }\n\n addInvalidErrorsForEmptyTimes() {\n if (!this.startTimeInputTarget.value) this.startTimeInputTarget.classList.add(\"invalid\");\n if (!this.endTimeInputTarget.value) this.endTimeInputTarget.classList.add(\"invalid\");\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { useClickOutside } from \"stimulus-use\";\n\nexport default class extends Controller {\n static targets = [\"form\", \"pageNumberInput\"]\n static values = { initialPageNumber: Number }\n\n connect() {\n useClickOutside(this);\n }\n\n clickOutside() {\n if (!this.hasFormTarget) return;\n\n this.closeAndSubmitForm();\n }\n\n formSelected() {\n return this.element.getAttribute(\"aria-selected\");\n }\n\n openForm() {\n if (!this.hasFormTarget || this.formSelected()) return;\n\n this.element.setAttribute(\"aria-selected\", \"true\");\n }\n\n closeAndSubmitForm() {\n if (!this.formSelected()) return;\n\n this.element.removeAttribute(\"aria-selected\");\n this.submitForm();\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n if (this.initialPageNumberValue == this.pageNumberInputTarget.value) return;\n\n if (this.formTarget.requestSubmit) {\n this.formTarget.requestSubmit();\n } else {\n this.formTarget.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n onChange(event) {\n if (!event.currentTarget.value) return;\n\n this.submitForm();\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.element.requestSubmit) {\n this.element.requestSubmit();\n } else {\n this.element.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n\n change(event) {\n this.submitForm(event);\n }\n\n submitForm(event) {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (event.target.form.requestSubmit) {\n event.target.form.requestSubmit();\n } else {\n event.target.form.submit();\n }\n }\n\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"hours\", \"input\"];\n\n connect() {\n this.isToggling = false;\n this.isRemoving = false;\n this.#run();\n }\n\n #run() {\n let startClasses = [\"!tw-bg-green-200\", \"!tw-rounded-t-lg\", \"!tw-mb-0\"];\n let interClasses = [\"!tw-bg-green-200\", \"!tw-mb-0\"];\n let endClasses = [\"!tw-bg-green-200\", \"!tw-rounded-b-lg\"];\n\n this.hoursInputs.forEach((hour) => {\n let label = hour.querySelector(\"label\");\n let input = hour.querySelector(\"input\");\n label.classList.remove(...startClasses, ...interClasses, ...endClasses);\n label.innerText = \"\";\n\n if (input.checked) {\n this.updateHour(hour, label, input, startClasses, interClasses, endClasses);\n }\n });\n }\n\n updateHour(hour, label, input, startClasses, interClasses, endClasses) {\n let prevInput = hour.previousSibling?.querySelector(\"input\");\n let nextInput = hour.nextSibling?.querySelector(\"input\");\n\n if (prevInput?.checked && nextInput?.checked) {\n label.classList.add(...interClasses);\n } else {\n if (!prevInput || !prevInput.checked) {\n label.classList.add(...startClasses);\n this.#insertRangeText(hour, input.dataset.hour);\n }\n\n if (!nextInput || !nextInput.checked) {\n label.classList.add(...endClasses);\n this.#insertRangeText(hour, nextInput ? nextInput.dataset.hour : \"00:00\");\n }\n }\n }\n\n togglingOn(event) {\n this.isToggling = true;\n this.startInput = event.currentTarget.querySelector(\"input\");\n this.startInput.checked = !this.startInput.checked;\n this.isRemoving = !this.startInput.checked;\n }\n\n toggle(event) {\n event.currentTarget.checked = !event.currentTarget.checked;\n this.#run();\n }\n\n togglingOff() {\n this.isToggling = false;\n this.isRemoving = false;\n }\n\n select(event) {\n if (!this.isToggling) return;\n\n const hoveredInput = event.currentTarget.querySelector(\"input\");\n let [start, end] = [this.startInput, hoveredInput].map(input => parseInt(input.dataset.index, 10)).sort((a, b) => a - b);\n\n this.hoursInputs.slice(start, end + 1).forEach(input => {\n input.querySelector(\"input\").checked = this.startInput.checked;\n });\n\n this.#run();\n }\n\n get hoursInputs() {\n return Array.from(this.hoursTarget.children)\n }\n\n #insertRangeText(hour, text) {\n let label = hour.querySelector(\"label\");\n if (label.innerText !== \"\") {\n label.innerText += ` - ${text}`\n } else {\n label.innerText += text\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\n// Connects to data-controller=\"dropdown\"\nexport default class extends Controller {\n static targets = [\"menu\"]\n\n toggle() {\n this.menuTarget.classList.toggle(\"tw-hidden\")\n\n document.addEventListener(\"click\", (event) => {\n if (!this.element.contains(event.target)) {\n this.hide()\n }\n })\n }\n\n hide() {\n this.menuTarget.classList.add(\"tw-hidden\")\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport mapboxgl from \"mapbox-gl\";\n\nexport default class extends Controller {\n static values = {\n accessToken: String,\n clusters: Boolean,\n points: Array,\n defaultCoordinates: Array,\n }\n\n connect() {\n mapboxgl.accessToken = this.accessTokenValue;\n\n this.map = new mapboxgl.Map({\n container: this.element,\n style: \"mapbox://styles/mapbox/light-v9\",\n center: this.defaultCoordinatesValue,\n zoom: 4,\n minZoom: 4,\n maxZoom: 15,\n });\n\n this.map.on('load', () => {\n // ADD GEOJSON SOURCE TO THE MAP\n this.map.addSource('points', {\n 'type': 'geojson',\n\n // Enable clustering\n 'cluster': this.clustersValue,\n clusterMaxZoom: 11,\n clusterRadius: 50, // Radius of each cluster when clustering points (defaults to 50)\n 'data': this.markers,\n });\n\n // // LAYOUT FOR CLUSTERS - CIRCLE\n this.map.addLayer({\n id: 'clusters',\n type: 'circle',\n source: 'points',\n filter: ['has', 'point_count'],\n paint: {\n // set cluster color depending of max alert level in cluster's points\n 'circle-color': '#9CA3AF', // Tailwind gray 400\n 'circle-radius': [\n 'step',\n ['get', 'point_count'],\n 20, // * 20px circles when point count is less than 2\n 2,\n 30, // 30px circles when point count is between 2 and 5\n 5,\n 40 // * 40px circles when point count is greater than or equal to 5\n ],\n 'circle-opacity': 0.6,\n 'circle-stroke-color': '#6B7280', // Tailwind gray 500\n 'circle-stroke-width': 0.5\n }\n });\n\n // LAYOUT FOR CLUSTERS - TEXT\n this.map.addLayer({\n id: 'cluster-count',\n type: 'symbol',\n source: 'points',\n filter: ['has', 'point_count'],\n layout: {\n 'text-field': '{point_count_abbreviated}',\n 'text-font': ['DIN Offc Pro Medium', 'Arial Unicode MS Bold'],\n 'text-size': 12\n },\n paint: {\n 'text-color': 'black'\n }\n });\n\n // LAYOUT FOR SINGLE POINTS\n this.map.addLayer({\n id: 'unclustered-point',\n type: 'circle',\n source: 'points',\n filter: ['!', ['has', 'point_count']],\n paint: {\n // Define the point's color depending on its 'alertLevel' property\n 'circle-color': '#9CA3AF', // Tailwind gray 400\n 'circle-opacity': 0.6,\n 'circle-radius': 12\n }\n });\n });\n\n // CHANGE CURSOR WHEN HOVERING ON A CLUSTER\n this.map.on('mouseenter', 'unclustered-point', () => {\n this.map.getCanvas().style.cursor = 'pointer';\n });\n this.map.on('mouseleave', 'unclustered-point', () => {\n this.map.getCanvas().style.cursor = '';\n });\n\n // ADD POPUP WHEN CLICKING ON A CLUSTER\n this.map.on('click', 'unclustered-point', (e) => {\n const coordinates = e.features[0].geometry.coordinates.slice();\n const description = e.features[0].properties.description;\n const descriptionHTML = `\n
\n ${description}\n
\n `;\n\n new mapboxgl.Popup()\n .setLngLat(coordinates)\n .setHTML(descriptionHTML)\n .addTo(this.map);\n });\n }\n\n get markers() {\n return {\n 'type': 'FeatureCollection',\n features: this.pointsValue.map((point) => {\n return {\n type: 'Feature',\n properties: {\n description: point.description,\n },\n geometry: {\n type: 'Point',\n coordinates: point.coordinates,\n },\n };\n }),\n }\n }\n}\n","import ChartController from \"../../../chart/controller\";\n\nexport default class extends ChartController {\n get options () {\n const options = this.optionsValue;\n\n options.options = {\n tooltips: {\n position: \"average\",\n mode: \"index\",\n xPadding: 8,\n yPadding: 8,\n xAlign: \"center\",\n intersect: false,\n backgroundColor: \"white\",\n bodyFontColor: \"rgb(26, 32, 44)\",\n bodyFontStyle: \"bold\",\n bodyFontSize: 12,\n bodySpacing: 8,\n borderColor: \"rgba(0, 0, 0, 0.1)\",\n borderWidth: \"1\",\n titleFontColor: \"rgb(26, 32, 44)\",\n titleFontStyle: \"normal\",\n displayColors: false,\n callbacks: {\n title: this.tooltipTitleCallback.bind(this),\n label: this.tooltipLabelCallback.bind(this)\n }\n },\n scales: {\n yAxes: [{\n offset: true,\n position: \"left\",\n ticks: {\n beginAtZero: true,\n maxTicksLimit: 8\n },\n gridLines: {\n display: true,\n },\n scaleLabel: {\n display: true,\n labelString: \"kW\",\n padding: 6,\n fontSize: 15,\n fontStyle: 'bold'\n }\n }],\n xAxes: [{\n type: \"time\",\n time: {\n displayFormats: {\n hour: \"k:mm\",\n day: \"DD/MM\",\n month: \"DD/MM\"\n }\n },\n ticks: {\n beginAtZero: true,\n autoSkip: true,\n maxTicksLimit: 21,\n major: {\n enabled: true,\n fontStyle: \"bold\",\n },\n },\n gridLines: {\n display: false,\n }\n }],\n },\n animation: { duration: 0 },\n hover: { animationDuration: 0 },\n responsiveAnimationDuration: 0,\n responsive: true,\n maintainAspectRatio: false\n }\n return options;\n }\n\n tooltipTitleCallback(tooltipItems) {\n var date = new Date(tooltipItems[0].label);\n var dateOptions = { month: 'long', day: 'numeric' };\n var dateTimeOptions = { month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n\n if (date.getHours() == 0 && date.getMinutes() == 0 && date.getSeconds() == 0) {\n return date.toLocaleDateString(this.localeValue, dateOptions);\n } else {\n return date.toLocaleDateString(this.localeValue, dateTimeOptions);\n }\n }\n\n tooltipLabelCallback(tooltipItem, data) {\n var unit = data.datasets[tooltipItem.datasetIndex].unit\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\n if (label) {\n label += ' : ' + Intl.NumberFormat(this.localeValue).format(tooltipItem.yLabel) + ' ' + unit;\n }\n\n return label;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\n \"editableInput\",\n \"submitButton\",\n ];\n static values = {\n formType: String,\n };\n\n connect() {\n if (this.formTypeValue == \"edit\") this.disableSubmitButton();\n }\n\n onEditableInputChange() {\n if (this.formTypeValue === \"new\") return;\n\n const hasFormChanged = this.editableInputTargets.some(input => input.dataset.originalValue != input.value);\n\n hasFormChanged ? this.enableSubmitButton() : this.disableSubmitButton();\n }\n\n enableSubmitButton() {\n this.submitButtonTarget.disabled = false;\n }\n\n disableSubmitButton() {\n this.submitButtonTarget.disabled = true;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n close() {\n this.element.innerHTML = \"\";\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static values = {\n typeRegionalProduction: Array,\n }\n\n connect() {\n this.draw();\n }\n\n draw() {\n const productionPills = document.getElementById(\"production-pills\")\n const productions = this.typeRegionalProductionValue.map(regionData => regionData.production)\n const maxProduction = Math.max(...productions)\n\n productionPills.innerHTML = \"\"\n Object.values(this.regionPaths).forEach((regionId) => {\n const regionPath = document.getElementById(regionId)\n regionPath.setAttribute(\"fill\", \"#A8A29E\")\n })\n\n this.typeRegionalProductionValue.forEach((regionData) => {\n if (regionData.name && regionData.rank) {\n const regionId = this.regionPaths[regionData.name];\n const regionPath = document.getElementById(regionId);\n const BBox = regionPath.getBBox();\n const x = BBox.x + (BBox.width / 2);\n const y = BBox.y + (BBox.height / 2);\n const rankColor = this.rankColor(regionData.production, regionData.rank);\n\n regionPath.setAttribute(\"fill\", rankColor.regionBackgroundColor)\n const pillHTML = `\n \n\n \n ${regionData.production}\n \n `\n productionPills.insertAdjacentHTML(\"beforeend\", pillHTML)\n }\n })\n }\n\n circleRadius(production, maxProduction) {\n const maxRadius = 48;\n const minRadius = 20;\n const productionRatio = maxProduction == 0 ? 0 : (production / maxProduction);\n\n return minRadius + (productionRatio * (maxRadius - minRadius));\n }\n\n rankColor(production, rank) {\n const rankIndex = production == 0 ? this.rankColors.length - 1 : rank - 1;\n const regionBackgroundColor = this.rankColors[rankIndex].regionBackgroundColor;\n const pillBackgroundColor = this.rankColors[rankIndex].pillBackgroundColor;\n\n return {\n regionBackgroundColor,\n pillBackgroundColor,\n }\n }\n\n get rankColors() {\n return [\n { rank: 1, regionBackgroundColor: \"#111827\", pillBackgroundColor: \"#2F855A\" },\n { rank: 2, regionBackgroundColor: \"#1e2534\", pillBackgroundColor: \"#2F855A\" },\n { rank: 3, regionBackgroundColor: \"#2c3341\", pillBackgroundColor: \"#2F855A\" },\n { rank: 4, regionBackgroundColor: \"#3b414f\", pillBackgroundColor: \"#B7791F\" },\n { rank: 5, regionBackgroundColor: \"#4a505d\", pillBackgroundColor: \"#B7791F\" },\n { rank: 6, regionBackgroundColor: \"#595f6c\", pillBackgroundColor: \"#B7791F\" },\n { rank: 7, regionBackgroundColor: \"#696f7b\", pillBackgroundColor: \"#B7791F\" },\n { rank: 8, regionBackgroundColor: \"#797f8a\", pillBackgroundColor: \"#B7791F\" },\n { rank: 9, regionBackgroundColor: \"#8a909a\", pillBackgroundColor: \"#B7791F\" },\n { rank: 10, regionBackgroundColor: \"#9ba1aa\", pillBackgroundColor: \"#B7791F\" },\n { rank: 11, regionBackgroundColor: \"#adb2ba\", pillBackgroundColor: \"#C53030\" },\n { rank: 12, regionBackgroundColor: \"#bfc3ca\", pillBackgroundColor: \"#C53030\" },\n { rank: 13, regionBackgroundColor: \"#d1d5db\", pillBackgroundColor: \"#C53030\" },\n ]\n }\n\n get regionPaths() {\n return {\n \"Corse\": \"FR-H\",\n \"Île-de-France\": \"FR-J\",\n \"Hauts-de-France\": \"FR-S\",\n \"Nouvelle-Aquitaine\": \"FR-B\",\n \"Normandie\": \"FR-P\",\n \"Pays de la Loire\": \"FR-R\",\n \"Centre-Val de Loire\": \"FR-F\",\n \"Grand Est\": \"FR-G\",\n \"Provence-Alpes-Côte d'Azur\": \"FR-U\",\n \"Bretagne\": \"FR-E\",\n \"Bourgogne-Franche-Comté\": \"FR-D\",\n \"Occitanie\": \"FR-N\",\n \"Auvergne-Rhône-Alpes\": \"FR-V\",\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"siteInput\"];\n\n connect() {\n this.disableLastInput();\n }\n\n onChange() {\n this.enableAllInputs();\n this.submitForm();\n this.disableLastInput();\n }\n\n enableAllInputs() {\n this.siteInputTargets.forEach(input => input.disabled = false);\n }\n\n disableLastInput() {\n const checkedSiteInputs = this.siteInputTargets.filter(input => input.checked);\n\n if (checkedSiteInputs.length == 1) {\n checkedSiteInputs[0].disabled = true;\n } else {\n this.enableAllInputs();\n }\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.element.requestSubmit) {\n this.element.requestSubmit();\n } else {\n this.element.submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.element.requestSubmit) {\n this.element.requestSubmit();\n } else {\n this.element.submit();\n }\n }\n}\n","export default class Column {\n constructor(name, label, type, number, width, options = {}) {\n this.name = name;\n this.label = label;\n this.type = type;\n this.number = number;\n this.width = width || 300;\n this.icon = Column.icon(type);\n this.options = options;\n }\n\n static icon(type) {\n switch (type) {\n case \"text\":\n return \"fa-text\";\n case \"number\":\n return \"fa-hashtag\";\n case \"date\":\n return \"fa-calendar-day\";\n case \"select\":\n return \"fa-chevron-circle-down\";\n }\n }\n}\n","export default class Cell {\n constructor(value, type, grid, rowNumber, columnNumber, rowIndex, updateUrl, updateMethod, editable, column, attribute, id = undefined, title=\"\", actions = {}, options = {}) {\n this.value = value;\n this.type = type;\n this.grid = grid;\n this.rowNumber = rowNumber;\n this.columnNumber = columnNumber;\n this.rowIndex = rowIndex;\n this.updateUrl = updateUrl;\n this.updateMethod = updateMethod;\n this.editable = editable;\n this.container = undefined;\n this.column = column;\n this.attribute = attribute;\n this.id = id;\n this.status = \"read\";\n this.selected = false;\n this.navigable = true;\n this.options = options;\n this.actions = actions;\n this.title = title;\n this.cellClassName = options?.class || \"\";\n this.columnClassName = this.column.options?.class || \"\";\n\n this.handleCut = this.handleCut.bind(this);\n this.handleCopy = this.handleCopy.bind(this);\n this.handlePaste = this.handlePaste.bind(this);\n\n document.addEventListener(\"cut\", this.handleCut);\n document.addEventListener(\"copy\", this.handleCopy);\n document.addEventListener(\"paste\", this.handlePaste);\n }\n\n destroy() {\n document.removeEventListener(\"cut\", this.handleCut);\n document.removeEventListener(\"copy\", this.handleCopy);\n document.removeEventListener(\"paste\", this.handlePaste);\n }\n\n handleCut(event) {\n if (!this.selected || !this.editable) return;\n\n event.preventDefault();\n\n this.cut();\n }\n\n handleCopy(event) {\n if (!this.selected) return;\n\n event.preventDefault();\n\n this.copy();\n }\n\n handlePaste(event) {\n if (!this.selected || !this.editable) return;\n\n event.preventDefault();\n\n this.paste();\n }\n\n get inReadMode() {\n return this.status === \"read\";\n }\n\n get inWriteMode() {\n return this.status === \"write\";\n }\n\n get inputName() {\n return this.grid.options.modelName ? `${this.grid.options.modelName}[${this.column.name}]` : this.column.name;\n }\n\n select() {\n this.selected = true;\n this.container.classList.add(\"selected\");\n this.selectCallbacks();\n }\n\n unselect() {\n this.selected = false;\n this.container.classList.remove(\"selected\");\n if (!this.inWriteMode) return;\n\n const value = this.editionModeValue();\n this.update(value);\n this.setReadMode();\n }\n\n setReadMode() {\n this.status = \"read\";\n this.navigable = true;\n this.container.innerHTML = this.readHTML;\n }\n\n setWriteMode(value) {\n if (!this.editable) return;\n\n this.status = \"write\";\n this.container.innerHTML = this.writeHTML(value);\n\n return true;\n }\n\n initializeContainer() {\n this.setReadMode();\n this.addEventListeners();\n }\n\n empty() {\n this.update(null);\n }\n\n updateWithoutSave(value, title = null) {\n if (this.value === value) return;\n\n this.previousValue = this.value;\n this.value = value;\n this.title = title;\n this.setReadMode();\n }\n\n update(value) {\n if (this.value === value) return;\n\n this.previousValue = this.value;\n this.value = value;\n\n this.edit();\n this.save();\n }\n\n cut() {\n if (!this.selected || !this.editable) return;\n\n this.copy();\n this.update(null);\n }\n\n copy() {\n if (!this.selected) return;\n\n if (this.inReadMode) {\n navigator.clipboard.writeText(this.value);\n } else {\n navigator.clipboard.writeText(this.editionModeValue());\n }\n }\n\n paste() {\n if (!this.selected || !this.editable) return;\n\n navigator.clipboard.readText().then(clipText => {\n const newValue = clipText;\n\n if (newValue === this.value) return;\n\n this.update(newValue);\n });\n }\n\n save() {\n this.submit();\n this.onChange();\n }\n\n submit() {\n const csrfToken = document.querySelector(\"meta[name='csrf-token']\").content;\n\n fetch(this.updateUrl, {\n method: this.updateMethod,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRF-Token\": csrfToken,\n },\n body: JSON.stringify({\n [this.grid.options.modelName]: {\n [this.column.name]: this.editionModeValue(),\n }\n }),\n }).then(response => response.json())\n .then(data => this.grid.updateDependentCells(data.cells_to_update));\n }\n\n addEventListeners() {\n // override\n }\n\n selectCallbacks() {\n // override\n }\n\n selectDownCell() {\n if (this.actions.selectDownCell) this.actions.selectDownCell();\n }\n\n onChange() {\n if (this.actions.onChange) this.actions.onChange(this);\n }\n}\n","export default class History {\n constructor() {\n this.history = [];\n\n this.handleKeyDown = this.handleKeyDown.bind(this);\n document.addEventListener(\"keydown\", this.handleKeyDown);\n }\n\n destroy() {\n document.removeEventListener(\"keydown\", this.handleKeyDown);\n }\n\n handleKeyDown(event) {\n if ((event.key === \"z\" || event.key === \"Z\") && (event.ctrlKey || event.metaKey)) {\n this.undo();\n }\n }\n\n add(cell) {\n this.history.push(cell);\n }\n\n undo() {\n if (!this.history.length) return;\n\n const lastCell = this.history.pop();\n\n lastCell.update(lastCell.previousValue);\n }\n}\n","import Cell from '../cell';\n\nexport default class TextCell extends Cell {\n destroy() {\n super.destroy();\n this.container.removeEventListener(\"dblclick\", this.handleDblClick);\n document.removeEventListener(\"keydown\", this.handleKeyDown);\n }\n\n get readHTML() {\n const value = this.value || \"\";\n\n return `\n
\n ${value}\n
\n `;\n }\n\n writeHTML(value) {\n value ||= \"\";\n\n return `\n
\n \n
\n `;\n }\n\n addEventListeners() {\n this.handleDblClick = this.handleDblClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.container.addEventListener(\"dblclick\", this.handleDblClick);\n document.addEventListener(\"keydown\", this.handleKeyDown);\n }\n\n handleDblClick() {\n this.edit();\n }\n\n edit(value = this.value) {\n if (!this.setWriteMode(value)) return;\n\n this.navigable = false;\n const length = this.input.value.length;\n this.input.focus();\n this.input.setSelectionRange(length, length);\n }\n\n editionModeValue() {\n return this.input.value;\n }\n\n update(value) {\n super.update(value);\n this.setReadMode();\n }\n\n get input() {\n return this.container.querySelector(\"input\");\n }\n\n handleKeyDown(event) {\n if (this.selected && event.key === \"Enter\") {\n event.preventDefault();\n\n if (this.inReadMode) {\n this.edit();\n } else {\n setTimeout(() => this.selectDownCell());\n }\n } else if (event.key === \"Escape\" && this.inWriteMode) {\n event.preventDefault();\n\n this.setReadMode();\n }\n\n if (!this.selected || !this.editable) return;\n\n const keysToIgnore = [\n \"CapsLock\",\n \"Control\",\n \"Alt\",\n \"Shift\",\n \"Meta\",\n \"Escape\",\n \"Backspace\",\n \"Space\",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Tab\",\n ]\n\n if (event.key === \"Backspace\" && this.inReadMode) {\n event.preventDefault();\n\n this.empty();\n } else if (!keysToIgnore.includes(event.key) &&\n !event.ctrlKey &&\n !event.altKey &&\n !event.metaKey &&\n this.inReadMode) {\n event.preventDefault();\n\n this.edit(event.key);\n }\n }\n}\n","import Cell from '../cell';\nimport KuartzSelector from \"../../kuartz_selector\";\n\nexport default class SelectCell extends Cell {\n get readHTML() {\n const choice = this.choices && this.choices.find(choice => choice.value === this.value);\n let choiceHTML = \"\";\n\n if (choice) {\n const color = choice && choice.color ? choice.color : \"slate\";\n\n choiceHTML = `
${choice.name}
`;\n }\n\n return `\n
\n ${choiceHTML}\n
\n `;\n }\n\n writeHTML(value) {\n const choices = this.choices;\n let optionsHTML = ``;\n const choicesHTML = choices.map(choice => {\n const selected = choice.value == value ? \"selected='selected'\" : \"\";\n return ``\n }).join(\"\\n\");\n optionsHTML += choicesHTML;\n\n return `\n
\n \n
\n `;\n }\n\n edit(value = this.value) {\n if (!this.setWriteMode(value)) return;\n\n const selectHTML = this.container.querySelector('select');\n const cell = this;\n new KuartzSelector(\n selectHTML,\n {\n locale: this.locale,\n choices: this.choices,\n onChange({ detail: value }) {\n value = value[0] || \"\";\n\n cell.update(value);\n cell.navigable = true;\n },\n onDropdownOpen() {\n cell.navigable = false;\n },\n onDropdownClose() {\n cell.navigable = true;\n },\n afterChangeWithEnterKey() {\n setTimeout(() => {\n cell.navigable = true;\n cell.selectDownCell()\n });\n },\n }\n );\n }\n\n copy() {\n if (!this.selected) return;\n\n navigator.clipboard.writeText(this.choice.name);\n }\n\n paste() {\n if (!this.selected || !this.editable) return;\n\n navigator.clipboard.readText().then(clipText => {\n const choice = this.choiceByName(clipText);\n if (!choice || choice.value === this.value) return;\n\n this.update(choice.value);\n });\n }\n\n addEventListeners() {\n this.container.addEventListener(\"click\", () => this.edit());\n }\n\n selectCallbacks() {\n this.edit();\n }\n\n editionModeValue() {\n const selectedOption = this.container.querySelector(\"select option[selected='selected']\");\n\n return selectedOption && selectedOption.value;\n }\n\n get choices() {\n return this.column.options.choices;\n }\n\n get choice() {\n if (!this.value) return { name: \"\", value: \"\" };\n\n return this.choices.find(choice => choice.value === this.value);\n }\n\n choiceByName(name) {\n if (!name) return { name: \"\", value: \"\" };\n\n return this.choices.find(choice => choice.name === name);\n }\n\n get locale() {\n return this.column.options.locale;\n }\n}\n","import Cell from '../cell';\n\nexport default class NumberCell extends Cell {\n destroy() {\n super.destroy();\n this.container.removeEventListener(\"dblclick\", this.handleDblClick);\n document.removeEventListener(\"keydown\", this.handleKeyDown);\n }\n\n get readHTML() {\n const value = this.value ? this.value.toLocaleString() : 0;\n const unitSymbol = this.column.options.unit_symbol;\n\n const unitSymbolHTML = unitSymbol ? `${unitSymbol}` : \"\";\n\n return `\n
\n ${value}\n ${unitSymbolHTML}\n
`;\n }\n\n writeHTML(value) {\n value ||= 0;\n\n return `\n
\n \n
\n `;\n }\n\n addEventListeners() {\n this.handleDblClick = this.handleDblClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.container.addEventListener(\"dblclick\", this.handleDblClick);\n document.addEventListener(\"keydown\", this.handleKeyDown);\n }\n\n handleDblClick() {\n setTimeout(() => this.edit());\n }\n\n edit(value = this.value) {\n if (!this.setWriteMode(value)) return;\n\n this.navigable = false;\n const length = this.input.value.length;\n this.input.type = \"text\"; // switch to text to set the cursor at the end of the input\n this.input.focus();\n this.input.setSelectionRange(length, length);\n this.input.type = \"number\"; // switch back to number\n }\n\n editionModeValue() {\n return this.input.value;\n }\n\n update(value) {\n value = parseFloat(value);\n super.update(value);\n this.setReadMode();\n }\n\n get input() {\n return this.container.querySelector(\"input\");\n }\n\n handleKeyDown(event) {\n if (this.selected && event.key === \"Enter\") {\n event.preventDefault();\n\n if (this.inReadMode) {\n this.edit();\n } else {\n setTimeout(() => this.selectDownCell());\n }\n } else if (event.key === \"Escape\" && this.inWriteMode) {\n event.preventDefault();\n\n this.setReadMode();\n }\n\n if (!this.selected || !this.editable) return;\n\n const keysToIgnore = [\n \"CapsLock\",\n \"Control\",\n \"Alt\",\n \"Shift\",\n \"Meta\",\n \"Escape\",\n \"Backspace\",\n \"Space\",\n \"Enter\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Tab\",\n ]\n\n if (event.key === \"Backspace\" && this.inReadMode) {\n event.preventDefault();\n\n this.empty();\n } else if (!keysToIgnore.includes(event.key) &&\n !event.ctrlKey &&\n !event.altKey &&\n !event.metaKey &&\n this.inReadMode) {\n event.preventDefault();\n\n this.edit(event.key);\n }\n }\n}\n","import Cell from '../cell';\nimport moment from 'moment'\n\nexport default class DateCell extends Cell {\n get readHTML() {\n return `\n
\n ${this.formattedValue}\n
\n `;\n }\n\n get formattedValue() {\n const dateFormat = this.column.options.date_format || \"DD/MM/YYYY HH:mm\"\n\n return this.value ? moment(this.value).format(dateFormat) : \"\";\n }\n\n copy() {\n if (!this.selected) return;\n\n navigator.clipboard.writeText(this.formattedValue);\n }\n}\n","import Field from \"./column\";\nimport Cell from \"./cell\";\nimport History from \"./history\";\nimport TextCell from \"./cells/textCell\";\nimport SelectCell from \"./cells/selectCell\";\nimport NumberCell from \"./cells/numberCell\";\nimport DateCell from \"./cells/dateCell\";\n\nexport default class Grid {\n constructor(element, columnData, cellData, options = {}) {\n this.element = element;\n this.columnData = columnData;\n this.cellData = cellData;\n this.options = options;\n this.gridHistory = new History();\n this.selectedCell = null;\n this.setColumns();\n this.setCells();\n this.setEventListeners();\n this.insertTableHTML();\n }\n\n setEventListeners() {\n this.handleNavigation = this.handleNavigation.bind(this);\n this.onScroll = this.onScroll.bind(this);\n this.clickOutside = this.clickOutside.bind(this);\n\n document.addEventListener(\"keydown\", this.handleNavigation);\n this.element.addEventListener(\"scroll\", this.onScroll, { passive: true });\n window.addEventListener(\"click\", this.clickOutside);\n }\n\n destroy() {\n document.removeEventListener(\"keydown\", this.handleNavigation);\n this.element.removeEventListener(\"scroll\", this.onScroll, { passive: true });\n window.removeEventListener(\"click\", this.clickOutside);\n this.gridHistory.destroy();\n Object.values(this.cells).forEach(row => {\n Object.values(row).forEach(cell => cell.destroy());\n });\n this.element = null;\n this.columnData = null;\n this.cellData = null;\n this.options = null;\n this.gridHistory = null;\n this.selectedCell = null;\n this.columns = null;\n this.cells = null;\n }\n\n insertTableHTML() {\n this.element.innerHTML = this.tableHTML();\n this.setCellContainers();\n }\n\n tableHTML() {\n return `\n \n \n ${this.headerHTML()}\n \n ${this.bodyHTML()}\n
\n `;\n }\n\n headerHTML() {\n const headerCells = Object.values(this.columns).map((column, index) => {\n return this.headerCellHTML(column, index + 1);\n });\n\n return headerCells.join(\"\");\n }\n\n headerCellHTML(column, columnNumber) {\n const isFirstColumn = columnNumber === 1;\n\n const firstHeaderContainerHTML = isFirstColumn ? \"
\" : \"\";\n return `\n \n
\n ${firstHeaderContainerHTML}\n
\n \n ${column.label}\n
\n
\n \n `;\n }\n\n bodyHTML() {\n const bodyRows = Object.values(this.cells).map((rowData, rowIndex) => this.bodyRowHTML(rowData, rowIndex + 1));\n\n return bodyRows.join(\"\");\n }\n\n bodyRowHTML(rowData, rowNumber) {\n const bodyCells = Object.values(rowData).map((cell, columnIndex) => {\n return this.bodyCellHTML(cell, rowNumber, columnIndex + 1);\n });\n\n return `${bodyCells.join(\"\")}`;\n }\n\n bodyCellHTML(cell, rowNumber, columnNumber) {\n const isFirstColumn = columnNumber === 1;\n\n const firstCellContainerHTML = isFirstColumn ? `
${cell.rowIndex}
` : \"\";\n\n return `\n \n
\n ${firstCellContainerHTML}\n
\n ${cell.value}\n
\n
\n \n `;\n }\n get cellTypes() {\n return {\n text: TextCell,\n select: SelectCell,\n number: NumberCell,\n date: DateCell,\n };\n }\n\n setColumns() {\n this.columns = {};\n\n this.columnData.forEach((columnData, index) => {\n const name = columnData.id\n const label = columnData.label;\n const type = columnData.type;\n const width = columnData.width;\n const options = columnData.options || {};\n const columnNumber = index + 1;\n const column = new Field(name, label, type, columnNumber, width, options);\n\n this.columns[columnNumber] = column;\n });\n }\n\n setCells() {\n this.cells = {};\n\n this.cellData.forEach((rowData, rowIndex) => {\n this.cells[rowIndex + 1] = {};\n\n rowData.forEach((cellData, cellIndex) => {\n const grid = this;\n const rowNumber = rowIndex + 1;\n const columnNumber = cellIndex + 1;\n const cellRowIndex = cellData.record_id;\n const updateUrl = cellData.update_url;\n const updateMethod = cellData.update_method;\n const editable = cellData.editable || false;\n const column = this.columns[columnNumber];\n const value = cellData.value;\n const options = cellData.options || {};\n const attribute = cellData.attribute || \"\";\n const id = cellData.id;\n const title = cellData.title || \"\";\n const type = cellData.type || column.type;\n const isCellType = !!(type && this.cellTypes[type])\n const cellType = isCellType ? this.cellTypes[type] : Cell;\n\n const cell = new cellType(\n value,\n type,\n this,\n rowNumber,\n columnNumber,\n cellRowIndex,\n updateUrl,\n updateMethod,\n editable,\n column,\n attribute,\n id,\n title,\n {\n onChange(cell) {\n grid.onChange(cell);\n },\n selectDownCell() {\n grid.selectCell(grid.onDownCell)\n },\n },\n options\n );\n\n this.cells[rowIndex + 1][cellIndex + 1] = cell;\n });\n });\n }\n\n setCellContainers() {\n this.element.querySelectorAll(\".cell-container\").forEach(cellContainer => {\n const rowNumber = cellContainer.dataset.rowNumber;\n const columnNumber = cellContainer.dataset.columnNumber;\n const cell = this.cells[rowNumber][columnNumber];\n cell.container = cellContainer;\n\n cellContainer.addEventListener(\"click\", (event) => this.selectCell(event.currentTarget));\n if (cell.type) cell.initializeContainer();\n });\n }\n\n handleNavigation(event) {\n if (this.selectedCell && !this.selectedCell.navigable) return;\n\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n\n this.selectCell(this.onTopCell);\n } else if (event.key === \"ArrowDown\") {\n event.preventDefault();\n\n this.selectCell(this.onDownCell);\n } else if ((event.key === \"ArrowLeft\" || (event.shiftKey && event.key === \"Tab\"))) {\n event.preventDefault();\n\n this.selectCell(this.onLeftCell);\n } else if ((event.key === \"ArrowRight\" || event.key === \"Tab\")) {\n event.preventDefault();\n\n this.selectCell(this.onRightCell);\n }\n }\n\n onScroll(event) {\n if (event.target.scrollLeft > 0) {\n this.element.querySelector(\"table\").classList.add(\"vertical-shadow\");\n } else {\n this.element.querySelector(\"table\").classList.remove(\"vertical-shadow\");\n }\n }\n\n get firstCell() {\n return this.element.querySelector(\"tbody tr:first-child td:first-child .cell-container\");\n }\n\n get onTopCell() {\n if(!this.selectedCell) return this.firstCell;\n\n const currentRow = this.selectedCell.container.parentElement.parentElement.parentElement;\n const previousRow = currentRow.previousElementSibling;\n if (!previousRow) return;\n\n const colIndex = Array.from(currentRow.querySelectorAll(\"td .cell-container\")).indexOf(this.selectedCell.container);\n\n return previousRow.querySelectorAll(\"td .cell-container\")[colIndex];\n }\n\n get onDownCell() {\n if(!this.selectedCell) return this.firstCell;\n\n const currentRow = this.selectedCell.container.parentElement.parentElement.parentElement;\n const nextRow = currentRow.nextElementSibling;\n if (!nextRow) return;\n\n const colIndex = Array.from(currentRow.querySelectorAll(\"td .cell-container\")).indexOf(this.selectedCell.container);\n\n return nextRow.querySelectorAll(\"td .cell-container\")[colIndex];\n }\n\n get onLeftCell() {\n if (this.selectedCell) {\n return this.selectedCell.container.parentElement.parentElement.previousElementSibling?.querySelector(\".cell-container\");\n } else {\n return this.firstCell;\n }\n }\n\n get onRightCell() {\n if (this.selectedCell) {\n return this.selectedCell.container.parentElement.parentElement.nextElementSibling?.querySelector(\".cell-container\");\n } else {\n return this.firstCell;\n }\n }\n\n selectCell(cellEl) {\n if (!cellEl || cellEl === this.selectedCell?.container) return;\n\n this.unselectCell();\n\n this.selectedCell = this.cells[cellEl.dataset.rowNumber][cellEl.dataset.columnNumber];\n this.selectedCell.select();\n }\n\n unselectCell() {\n if (!this.selectedCell) return;\n\n this.selectedCell.unselect();\n this.selectedCell = null;\n }\n\n clickOutside(event) {\n if(!this.isInTableBody(event.target)) this.unselectCell();\n }\n\n isInTableBody(element) {\n while (element) {\n if (element === this.element.querySelector(\"tbody\") || element.classList.contains(\"cell-content\")) {\n return true;\n } else if (element === document.body) {\n return false;\n }\n\n element = element.parentElement\n }\n }\n\n onChange(cell) {\n this.gridHistory.add(cell);\n }\n\n cellsArray() {\n return Object.values(this.cells).map(row => Object.values(row)).flat();\n }\n\n findCellById(id) {\n return this.cellsArray().find(cell => cell.id === id);\n }\n\n updateDependentCells(cellsToUpdate) {\n cellsToUpdate.forEach(cellData => {\n const cell = this.findCellById(cellData.id);\n\n if (cell) cell.updateWithoutSave(cellData.value, cellData.title);\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport Grid from \"../../webpacker/src/javascript/components/kuartz_grid/grid\";\n\nexport default class extends Controller {\n static values = {\n columnData: Array,\n cellData: Array,\n modelName: String,\n };\n\n connect() {\n this.grid = new Grid(\n this.element,\n this.columnDataValue,\n this.cellDataValue,\n { modelName: this.modelNameValue }\n )\n }\n\n disconnect() {\n this.grid.destroy();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"input\"];\n\n form() {\n return this.inputTarget.form;\n }\n\n submitForm() {\n // .requestSubmit() is not supported on Safari prior to version 16 (2022/09/12),\n // but requestSubmit triggers html form validations, which are nice for this form,\n // so if available, use requestSubmit, else fallback to classic submit.\n // NB: even on Safari 16, requestSubmit does not support passing a submit btn\n // to simulate a submit from this btn.\n // NB2: feels like Safari wanna play IE style ...\n\n if (this.form().requestSubmit) {\n this.form().requestSubmit();\n } else {\n this.form().submit();\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { isEqual } from \"lodash\";\n\nexport default class extends Controller {\n static targets = [\n \"editableInput\",\n \"confirmButton\",\n \"updateButton\",\n ];\n static values = {\n formType: String,\n };\n\n onChange() {\n if (this.formTypeValue === \"new\") return;\n\n const hasFormChanged = this.editableInputTargets.some(input => this.checkInputChange(input));\n\n hasFormChanged ? this.displayUpdateButton() : this.displayConfirmButton();\n }\n\n checkInputChange(input) {\n let inputChanged;\n\n switch (input.type) {\n case \"text\":\n case \"email\":\n case \"tel\":\n inputChanged = input.dataset.originalValue != input.value;\n break;\n case \"checkbox\":\n inputChanged = input.dataset.originalValue != input.checked.toString();\n break;\n case 'select-multiple':\n const formattedTomselectOriginalValue = JSON.parse(input.dataset.originalValue).sort((a, b) => (a - b));\n const formattedValue = input.tomselect.items.map((item) => parseInt(item)).sort((a, b) => (a - b));\n inputChanged = !isEqual(formattedTomselectOriginalValue, formattedValue);\n break;\n }\n\n return inputChanged;\n }\n\n displayConfirmButton() {\n this.confirmButtonTarget.classList.remove(\"tw-hidden\");\n this.updateButtonTarget.classList.add(\"tw-hidden\");\n }\n\n displayUpdateButton() {\n this.updateButtonTarget.classList.remove(\"tw-hidden\");\n this.confirmButtonTarget.classList.add(\"tw-hidden\");\n }\n}\n","import { Application } from \"@hotwired/stimulus\";\nimport { definitionsFromContext } from \"@hotwired/stimulus-webpack-helpers\";\n\nconst application = Application.start();\nwindow.Stimulus = application;\n\nconst context = require.context(\".\", true, /\\.js$/);\nStimulus.load(definitionsFromContext(context));\n\nimport PageController from \"../../../../components/pages/page_controller\";\napplication.register(\"page\", PageController);\n\nimport SidePeekController from \"../../../../components/side_peek/controller\";\napplication.register(\"side-peek\", SidePeekController);\n\nimport ChartController from \"../../../../components/chart/controller\";\napplication.register(\"chart\", ChartController);\n\nimport DatasetChartController from \"../../../../components/card/dataset_chart/controller\";\napplication.register(\"dataset-chart\", DatasetChartController);\n\nimport MainFilterController from \"../../../../components/page/main_filter/controller\";\napplication.register(\"main-filter\", MainFilterController);\n\nimport RenUnavailabilitiesSummaryController from \"../../../../components/ren/unavailabilities/summary/controller\";\napplication.register(\"ren-unavailabilities--summary\", RenUnavailabilitiesSummaryController);\n\nimport RenUnavailabilitiesChartController from \"../../../../components/ren/unavailabilities/chart/controller\";\napplication.register(\"ren-unavailabilities--chart\", RenUnavailabilitiesChartController);\n\nimport RenUnavailabilitiesNewDetailsRenChildDeviceController from \"../../../../components/ren/unavailabilities/new/availability/ren_child_device_controller\";\napplication.register(\"ren-unavailabilities--new--details--ren-child-device\", RenUnavailabilitiesNewDetailsRenChildDeviceController);\n\nimport RenUnavailabilitiesFormController from \"../../../../components/ren/unavailabilities/form_controller\";\napplication.register(\"ren-unavailabilities--form\", RenUnavailabilitiesFormController);\n\nimport RenUnavailabilitiesPeriodController from \"../../../../components/ren/unavailabilities/period_controller\";\napplication.register(\"ren-unavailabilities--period\", RenUnavailabilitiesPeriodController);\n\nimport RenUnavailabilitiesImportController from \"../../../../components/ren/unavailabilities/import/controller\";\napplication.register(\"ren-unavailabilities--import\", RenUnavailabilitiesImportController);\n\nimport RenUnavailabilitiesMainFilterController from \"../../../../components/ren/unavailabilities/main_filter/controller\";\napplication.register(\"ren-unavailabilities--main-filter\", RenUnavailabilitiesMainFilterController);\n\nimport ControlCenterMainFilterController from \"../../../../components/ren/spain/control_center/main_filter/controller\";\napplication.register(\"control-center--main-filter\", ControlCenterMainFilterController);\n\nimport ControlCenterKpisController from \"../../../../components/ren/spain/control_center/kpis/controller\";\napplication.register(\"control-center--kpis\", ControlCenterKpisController);\n\nimport DateRangePickerController from \"../../../../components/date_range_picker/controller\";\napplication.register(\"date-range-picker\", DateRangePickerController);\n\nimport DatePickerController from \"../../../../components/date_picker/controller\";\napplication.register(\"date-picker\", DatePickerController);\n\nimport MonthPickerController from \"../../../../components/month_picker/controller\";\napplication.register(\"month-picker\", MonthPickerController);\n\nimport LineChartController from \"../../../../components/line_chart/controller\";\napplication.register(\"line-chart\", LineChartController);\n\nimport BarChartController from \"../../../../components/bar_chart/controller\";\napplication.register(\"bar-chart\", BarChartController);\n\nimport DoubleAxisBarChartController from \"../../../../components/double_axis_bar_chart/controller\";\napplication.register(\"double-axis-bar-chart\", DoubleAxisBarChartController);\n\nimport FlexPerformanceChartController from \"../../../../components/flex/performance/chart/controller\";\napplication.register(\"flex-performance--chart\", FlexPerformanceChartController);\n\nimport FlexPerformanceRankingController from \"../../../../components/flex/performance/ranking/controller\";\napplication.register(\"flex-performance--ranking\", FlexPerformanceRankingController);\n\nimport FlexPerformanceMainFilterController from \"../../../../components/flex/performance/main_filter/controller\";\napplication.register(\"flex-performance--main-filter\", FlexPerformanceMainFilterController);\n\nimport MainSiteSelectorController from \"../../../../components/main_site_selector/controller\";\napplication.register(\"main-site-selector\", MainSiteSelectorController);\n\nimport MainClientSelectorController from \"../../../../components/main_client_selector/controller\";\napplication.register(\"main-client-selector\", MainClientSelectorController);\n\nimport FlexAnnualDeliveriesMainFilterController from \"../../../../components/flex/annual_deliveries/main_filter/controller\";\napplication.register(\"flex-annual-deliveries--main-filter\", FlexAnnualDeliveriesMainFilterController);\n\n// import PerformanceAlertsMainFilterController from \"../../../../components/ren_performance_alerts/main_filter/controller\";\n// application.register(\"performance-alerts--main-filter\", PerformanceAlertsMainFilterController);\n\nimport ProgramsAndMeasurementsChartController from \"../../../../components/ren/spain/programs_and_measurements/chart/controller\";\napplication.register(\"programs-and-measurements--chart\", ProgramsAndMeasurementsChartController);\n\nimport ProgramsAndMeasurementsMainFilterController from \"../../../../components/ren/spain/programs_and_measurements/main_filter/controller\";\napplication.register(\"programs-and-measurements--main-filter\", ProgramsAndMeasurementsMainFilterController);\n\nimport ProgramsAndMeasurementsTableController from \"../../../../components/ren/spain/programs_and_measurements/table/controller\";\napplication.register(\"programs-and-measurements--table\", ProgramsAndMeasurementsTableController);\n\nimport ProgramsAndMeasurementsSelectListController from \"../../../../components/ren/spain/programs_and_measurements/select_list/controller\";\napplication.register(\"programs-and-measurements--select-list\", ProgramsAndMeasurementsSelectListController);\n\nimport FlexCollectionFormsFormController from \"../../../../components/flex/collection_forms/form/controller\";\napplication.register(\"flex-collection-forms--form\", FlexCollectionFormsFormController);\n\nimport FlexCollectionFormsSitePartController from \"../../../../components/flex/collection_forms/form/site_part/controller\";\napplication.register(\"flex-collection-forms--site-part\", FlexCollectionFormsSitePartController);\n\nimport FlexCollectionFormsDayAttributesController from \"../../../../components/flex/collection_forms/form/day_attributes/controller\";\napplication.register(\"flex-collection-forms--day-attributes\", FlexCollectionFormsDayAttributesController);\n\nimport PaginationController from \"../../../../components/pagination/controller\";\napplication.register(\"pagination\", PaginationController);\n\nimport TestPolicyProfileController from \"../../../../components/navbar/test_policy_profile/controller\";\napplication.register(\"test-policy-profile\", TestPolicyProfileController);\n\nimport SpainSettlementTableController from \"../../../../components/ren/spain/settlements/table/controller\";\napplication.register(\"spain-settlement--table\", SpainSettlementTableController);\n\nimport CalendarController from \"../../../../components/ren/acoustic_campaigns/calendar/controller\";\napplication.register(\"calendar\", CalendarController);\n\nimport DropdownController from \"../../../../components/dropdown/controller.js\"\napplication.register(\"dropdown\", DropdownController);\n\nimport MapController from \"../../../../components/map/controller.js\"\napplication.register(\"map\", MapController);\n\nimport RenSpainChartController from \"../../../../components/ren/spain/chart/controller\";\napplication.register(\"ren-spain--chart\", RenSpainChartController);\n\nimport RenSpainMaintenancePlansFormController from \"../../../../components/ren/spain/maintenance_plans/form/controller\";\napplication.register(\"ren-spain--maintenance-plans--form\", RenSpainMaintenancePlansFormController);\n\nimport RenFranceNegativePriceTrackingDayDetailsController from \"../../../../components/ren/france/negative_price_tracking/calendar/day_details/controller\";\napplication.register(\"ren-france--negative-price-tracking-day-details\", RenFranceNegativePriceTrackingDayDetailsController);\n\nimport PdoDashboardMapController from \"../../../../components/pdo_dashboard/map/controller\";\napplication.register(\"pdo-dashboard-map\", PdoDashboardMapController);\n\nimport FlexLoadShiftsMultiSiteSelector from \"../../../../components/flex/load_shifts/multi_site_selector/controller\";\napplication.register(\"flex-load-shifts--multi-site-selector\", FlexLoadShiftsMultiSiteSelector);\n\nimport FlexLoadShiftsLoadShiftSelector from \"../../../../components/flex/load_shifts/load_shift_selector/controller\";\napplication.register(\"flex-load-shifts--load-shift-selector\", FlexLoadShiftsLoadShiftSelector);\n\nimport GridController from \"../../../../components/sheet/controller\";\napplication.register(\"sheet\", GridController);\n\nimport SorterController from \"../../../../components/sorter/controller\";\napplication.register(\"sorter\", SorterController);\n\nimport RenFranceContactsFormController from \"../../../../components/ren/france/contacts/form/controller\";\napplication.register(\"ren-france-contacts--form\", RenFranceContactsFormController)\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = ['modal'];\n\n open() {\n this.element.classList.add('modal-open');\n }\n\n close() {\n this.element.classList.remove('modal-open');\n this.modalTarget.remove();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"button\"]\n\n submitForm() {\n this.buttonTarget.click();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"input\"]\n\n syncrhonizeInputs(event) {\n this.inputTargets.forEach((input) => {\n const maxValue = Number.parseFloat(event.target.max);\n input.value = event.target.value || (maxValue / 2).toFixed(2);\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"element\", \"trigger\"];\n\n scrollTop() {\n this.currentScroll = this.elementTarget.scrollTop;\n this.elementTarget.scrollTop = 0;\n }\n\n scrollBack() {\n this.elementTarget.scrollTop = this.currentScroll;\n }\n\n triggerTargetConnected() {\n this.scrollTop();\n }\n\n triggerTargetDisconnected() {\n this.scrollBack();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"searchInput\", \"searchElement\"];\n\n filterElements() {\n const searchQuery = this.searchInputTarget.value.toLowerCase();\n\n this.searchElementTargets.forEach((element) => {\n const text = element.innerText.toLowerCase();\n\n if (text.includes(searchQuery)) {\n return element.style.removeProperty(\"display\");\n }\n element.style.display = \"none\";\n });\n }\n\n clearSearch() {\n this.searchInputTarget.value = null;\n this.filterElements();\n }\n}\n","export function getCookie(name) {\n const cookies = document.cookie ? document.cookie.split(\"; \") : []\n const prefix = `${encodeURIComponent(name)}=`\n const cookie = cookies.find(cookie => cookie.startsWith(prefix))\n\n if (cookie) {\n const value = cookie.split(\"=\").slice(1).join(\"=\")\n return value ? decodeURIComponent(value) : undefined\n }\n}\n\nconst twentyYears = 20 * 365 * 24 * 60 * 60 * 1000 // max cookie lifetime\n\nexport function setCookie(name, value) {\n const body = [name, value].map(encodeURIComponent).join(\"=\")\n const expires = new Date(Date.now() + twentyYears).toUTCString()\n const cookie = `${body}; path=/; expires=${expires}`\n document.cookie = cookie\n}\n\n// sets cookie value to null and the expiration date in past should trigger\n// the removal of the cookie by the browser\nexport function removeCookie(name) {\n const cookie = `${encodeURIComponent(name)}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT`\n document.cookie = cookie\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { setCookie } from \"../components/cookie\";\n\nconst mdBreakpoint = 768;\n\nexport default class extends Controller {\n static targets = [\"openMenuBtn\"];\n\n open() {\n this.setSideMenuClosedCookie(false);\n this.element.setAttribute(\"open\", \"open\");\n this.openMenuBtnTarget.setAttribute(\"aria-hidden\", \"true\");\n }\n\n close() {\n this.setSideMenuClosedCookie(true);\n this.element.removeAttribute(\"open\");\n this.openMenuBtnTarget.removeAttribute(\"aria-hidden\");\n }\n\n resize() {\n this.defaultAction();\n }\n\n defaultAction() {\n if (window.innerWidth < mdBreakpoint) {\n this.close();\n } else {\n this.open();\n }\n }\n\n setSideMenuClosedCookie(value) {\n if (window.innerWidth < mdBreakpoint) {\n setCookie(\"side_menu_closed\", true);\n } else {\n setCookie(\"side_menu_closed\", value);\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport { put } from \"@rails/request.js\";\nimport Sortable from \"sortablejs\";\n\nexport default class extends Controller {\n static values = { url: String };\n\n connect() {\n this.sortable = Sortable.create(this.element, {\n onEnd: this.onEnd.bind(this),\n handle: \"[data-sortable-handle]\",\n });\n }\n\n disconnect() {\n this.sortable.destroy();\n }\n\n onEnd(event) {\n const { newIndex, item } = event;\n const id = item.dataset[\"sortableId\"];\n const url = this.urlValue.replace(\":id\", id);\n put(url, {\n body: JSON.stringify({ position: newIndex + 1 }),\n responseKind: \"turbo-stream\"\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"link\", \"content\"]\n static classes = [\"activeTab\"]\n\n selectTab(event) {\n this.linkTargets.forEach((link) => {\n link.classList.remove(...this.activeTabClasses);\n });\n event.target.classList.add(...this.activeTabClasses);\n this.contentTargets.forEach((content) => {\n if (content.id === event.params.contentId) {\n content.classList.remove(\"tw-hidden\");\n } else {\n content.classList.add(\"tw-hidden\");\n }\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"togglable\"]\n\n toggle() {\n this.togglableTargets.forEach(togglable => {\n togglable.classList.toggle(\"tw-hidden\");\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n// import { TomSelect } from \"tom-select\"; \"tom-select\";\nimport TomSelect from \"tom-select\";\n\nexport default class extends Controller {\n static values = { settings: Object };\n\n connect() {\n const controller = this;\n const globalOptions = {\n onInitialize() {\n controller.dispatch(\"initialize\");\n },\n onChange(value) {\n if (value) {\n controller.dispatch(\"change\", { detail: { value } });\n }\n },\n onBlur() {\n controller.dispatch(\"blur\");\n }\n };\n\n new TomSelect(this.element, Object.assign(globalOptions, this.settingsValue));\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static values = {\n url: String\n }\n\n connect() {\n navigator.clipboard.writeText(this.urlValue);\n }\n}\n","var map = {\n\t\"./af\": 5177,\n\t\"./af.js\": 5177,\n\t\"./ar\": 1509,\n\t\"./ar-dz\": 1488,\n\t\"./ar-dz.js\": 1488,\n\t\"./ar-kw\": 8676,\n\t\"./ar-kw.js\": 8676,\n\t\"./ar-ly\": 2353,\n\t\"./ar-ly.js\": 2353,\n\t\"./ar-ma\": 4496,\n\t\"./ar-ma.js\": 4496,\n\t\"./ar-sa\": 2682,\n\t\"./ar-sa.js\": 2682,\n\t\"./ar-tn\": 9756,\n\t\"./ar-tn.js\": 9756,\n\t\"./ar.js\": 1509,\n\t\"./az\": 5533,\n\t\"./az.js\": 5533,\n\t\"./be\": 8959,\n\t\"./be.js\": 8959,\n\t\"./bg\": 7777,\n\t\"./bg.js\": 7777,\n\t\"./bm\": 4903,\n\t\"./bm.js\": 4903,\n\t\"./bn\": 1290,\n\t\"./bn-bd\": 7357,\n\t\"./bn-bd.js\": 7357,\n\t\"./bn.js\": 1290,\n\t\"./bo\": 1545,\n\t\"./bo.js\": 1545,\n\t\"./br\": 1470,\n\t\"./br.js\": 1470,\n\t\"./bs\": 4429,\n\t\"./bs.js\": 4429,\n\t\"./ca\": 7306,\n\t\"./ca.js\": 7306,\n\t\"./cs\": 6464,\n\t\"./cs.js\": 6464,\n\t\"./cv\": 3635,\n\t\"./cv.js\": 3635,\n\t\"./cy\": 4226,\n\t\"./cy.js\": 4226,\n\t\"./da\": 3601,\n\t\"./da.js\": 3601,\n\t\"./de\": 7853,\n\t\"./de-at\": 6111,\n\t\"./de-at.js\": 6111,\n\t\"./de-ch\": 4697,\n\t\"./de-ch.js\": 4697,\n\t\"./de.js\": 7853,\n\t\"./dv\": 708,\n\t\"./dv.js\": 708,\n\t\"./el\": 4691,\n\t\"./el.js\": 4691,\n\t\"./en-au\": 3872,\n\t\"./en-au.js\": 3872,\n\t\"./en-ca\": 8298,\n\t\"./en-ca.js\": 8298,\n\t\"./en-gb\": 6195,\n\t\"./en-gb.js\": 6195,\n\t\"./en-ie\": 6584,\n\t\"./en-ie.js\": 6584,\n\t\"./en-il\": 5543,\n\t\"./en-il.js\": 5543,\n\t\"./en-in\": 9033,\n\t\"./en-in.js\": 9033,\n\t\"./en-nz\": 9402,\n\t\"./en-nz.js\": 9402,\n\t\"./en-sg\": 3004,\n\t\"./en-sg.js\": 3004,\n\t\"./eo\": 2934,\n\t\"./eo.js\": 2934,\n\t\"./es\": 7650,\n\t\"./es-do\": 838,\n\t\"./es-do.js\": 838,\n\t\"./es-mx\": 7730,\n\t\"./es-mx.js\": 7730,\n\t\"./es-us\": 6575,\n\t\"./es-us.js\": 6575,\n\t\"./es.js\": 7650,\n\t\"./et\": 3035,\n\t\"./et.js\": 3035,\n\t\"./eu\": 3508,\n\t\"./eu.js\": 3508,\n\t\"./fa\": 119,\n\t\"./fa.js\": 119,\n\t\"./fi\": 527,\n\t\"./fi.js\": 527,\n\t\"./fil\": 5995,\n\t\"./fil.js\": 5995,\n\t\"./fo\": 4858,\n\t\"./fo.js\": 4858,\n\t\"./fr\": 5498,\n\t\"./fr-ca\": 6435,\n\t\"./fr-ca.js\": 6435,\n\t\"./fr-ch\": 7892,\n\t\"./fr-ch.js\": 7892,\n\t\"./fr.js\": 5498,\n\t\"./fy\": 7071,\n\t\"./fy.js\": 7071,\n\t\"./ga\": 1734,\n\t\"./ga.js\": 1734,\n\t\"./gd\": 217,\n\t\"./gd.js\": 217,\n\t\"./gl\": 7329,\n\t\"./gl.js\": 7329,\n\t\"./gom-deva\": 2124,\n\t\"./gom-deva.js\": 2124,\n\t\"./gom-latn\": 3383,\n\t\"./gom-latn.js\": 3383,\n\t\"./gu\": 5050,\n\t\"./gu.js\": 5050,\n\t\"./he\": 1713,\n\t\"./he.js\": 1713,\n\t\"./hi\": 3861,\n\t\"./hi.js\": 3861,\n\t\"./hr\": 6308,\n\t\"./hr.js\": 6308,\n\t\"./hu\": 609,\n\t\"./hu.js\": 609,\n\t\"./hy-am\": 7160,\n\t\"./hy-am.js\": 7160,\n\t\"./id\": 4063,\n\t\"./id.js\": 4063,\n\t\"./is\": 9374,\n\t\"./is.js\": 9374,\n\t\"./it\": 8383,\n\t\"./it-ch\": 1827,\n\t\"./it-ch.js\": 1827,\n\t\"./it.js\": 8383,\n\t\"./ja\": 3827,\n\t\"./ja.js\": 3827,\n\t\"./jv\": 9722,\n\t\"./jv.js\": 9722,\n\t\"./ka\": 1794,\n\t\"./ka.js\": 1794,\n\t\"./kk\": 7088,\n\t\"./kk.js\": 7088,\n\t\"./km\": 6870,\n\t\"./km.js\": 6870,\n\t\"./kn\": 4451,\n\t\"./kn.js\": 4451,\n\t\"./ko\": 3164,\n\t\"./ko.js\": 3164,\n\t\"./ku\": 8174,\n\t\"./ku.js\": 8174,\n\t\"./ky\": 8474,\n\t\"./ky.js\": 8474,\n\t\"./lb\": 9680,\n\t\"./lb.js\": 9680,\n\t\"./lo\": 5867,\n\t\"./lo.js\": 5867,\n\t\"./lt\": 5766,\n\t\"./lt.js\": 5766,\n\t\"./lv\": 9532,\n\t\"./lv.js\": 9532,\n\t\"./me\": 8076,\n\t\"./me.js\": 8076,\n\t\"./mi\": 1848,\n\t\"./mi.js\": 1848,\n\t\"./mk\": 306,\n\t\"./mk.js\": 306,\n\t\"./ml\": 3739,\n\t\"./ml.js\": 3739,\n\t\"./mn\": 9053,\n\t\"./mn.js\": 9053,\n\t\"./mr\": 6169,\n\t\"./mr.js\": 6169,\n\t\"./ms\": 3386,\n\t\"./ms-my\": 2297,\n\t\"./ms-my.js\": 2297,\n\t\"./ms.js\": 3386,\n\t\"./mt\": 7075,\n\t\"./mt.js\": 7075,\n\t\"./my\": 2264,\n\t\"./my.js\": 2264,\n\t\"./nb\": 2274,\n\t\"./nb.js\": 2274,\n\t\"./ne\": 8235,\n\t\"./ne.js\": 8235,\n\t\"./nl\": 2572,\n\t\"./nl-be\": 3784,\n\t\"./nl-be.js\": 3784,\n\t\"./nl.js\": 2572,\n\t\"./nn\": 4566,\n\t\"./nn.js\": 4566,\n\t\"./oc-lnc\": 9330,\n\t\"./oc-lnc.js\": 9330,\n\t\"./pa-in\": 9849,\n\t\"./pa-in.js\": 9849,\n\t\"./pl\": 4418,\n\t\"./pl.js\": 4418,\n\t\"./pt\": 9834,\n\t\"./pt-br\": 8303,\n\t\"./pt-br.js\": 8303,\n\t\"./pt.js\": 9834,\n\t\"./ro\": 4457,\n\t\"./ro.js\": 4457,\n\t\"./ru\": 2271,\n\t\"./ru.js\": 2271,\n\t\"./sd\": 1221,\n\t\"./sd.js\": 1221,\n\t\"./se\": 3478,\n\t\"./se.js\": 3478,\n\t\"./si\": 7538,\n\t\"./si.js\": 7538,\n\t\"./sk\": 5784,\n\t\"./sk.js\": 5784,\n\t\"./sl\": 6637,\n\t\"./sl.js\": 6637,\n\t\"./sq\": 6794,\n\t\"./sq.js\": 6794,\n\t\"./sr\": 5719,\n\t\"./sr-cyrl\": 3322,\n\t\"./sr-cyrl.js\": 3322,\n\t\"./sr.js\": 5719,\n\t\"./ss\": 6000,\n\t\"./ss.js\": 6000,\n\t\"./sv\": 1011,\n\t\"./sv.js\": 1011,\n\t\"./sw\": 748,\n\t\"./sw.js\": 748,\n\t\"./ta\": 1025,\n\t\"./ta.js\": 1025,\n\t\"./te\": 1885,\n\t\"./te.js\": 1885,\n\t\"./tet\": 8861,\n\t\"./tet.js\": 8861,\n\t\"./tg\": 6571,\n\t\"./tg.js\": 6571,\n\t\"./th\": 5802,\n\t\"./th.js\": 5802,\n\t\"./tk\": 9527,\n\t\"./tk.js\": 9527,\n\t\"./tl-ph\": 9231,\n\t\"./tl-ph.js\": 9231,\n\t\"./tlh\": 1052,\n\t\"./tlh.js\": 1052,\n\t\"./tr\": 5096,\n\t\"./tr.js\": 5096,\n\t\"./tzl\": 9846,\n\t\"./tzl.js\": 9846,\n\t\"./tzm\": 1765,\n\t\"./tzm-latn\": 7711,\n\t\"./tzm-latn.js\": 7711,\n\t\"./tzm.js\": 1765,\n\t\"./ug-cn\": 8414,\n\t\"./ug-cn.js\": 8414,\n\t\"./uk\": 6618,\n\t\"./uk.js\": 6618,\n\t\"./ur\": 158,\n\t\"./ur.js\": 158,\n\t\"./uz\": 7609,\n\t\"./uz-latn\": 2475,\n\t\"./uz-latn.js\": 2475,\n\t\"./uz.js\": 7609,\n\t\"./vi\": 1135,\n\t\"./vi.js\": 1135,\n\t\"./x-pseudo\": 4051,\n\t\"./x-pseudo.js\": 4051,\n\t\"./yo\": 2218,\n\t\"./yo.js\": 2218,\n\t\"./zh-cn\": 2648,\n\t\"./zh-cn.js\": 2648,\n\t\"./zh-hk\": 1632,\n\t\"./zh-hk.js\": 1632,\n\t\"./zh-mo\": 1541,\n\t\"./zh-mo.js\": 1541,\n\t\"./zh-tw\": 304,\n\t\"./zh-tw.js\": 304\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 = 5358;"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","colorPreset","initDeleteBtnAlert","document","querySelectorAll","forEach","deleteBtn","deleteIcon","querySelector","addEventListener","event","preventDefault","link","text","confirmText","cancelText","denyButtonText","arguments","length","undefined","Swal","html","icon","showCancelButton","showDenyButton","confirmButtonText","cancelButtonText","confirmButtonColor","cancelButtonColor","customClass","confirmButton","cancelButton","denyButton","showClass","popup","hideClass","requireConfirmation","dataset","confirmBtnText","cancelBtnText","then","result","isConfirmed","click","Turbo","start","$","tooltip","selector","delay","boundary","on","tab","target","hash","substring","url","concat","window","location","origin","pathname","history","pushState","modal","selectedColor","selectedIcon","currentName","profileForm","getElementById","customClassName","cardExampleName","cardExampleImg","cardExampleIcon","nameInput","colorInputs","iconInputs","name","value","placeholder","innerText","colorInput","newClass","className","iconInput","newIcon","setAttributeNS","find","checked","initProfileForm","primaryColorPickerContainer","secondaryColorPickerContainer","primaryColorPickerInstance","colorPicker","container","color","primaryColor","preset","primaryColorInput","getColor","ev","navProjectNameEl","style","secondaryColorPickerInstance","secondaryColor","secondaryColorInput","initColorPicker","_default","_Controller","_classCallCheck","_callSuper","_inherits","key","useClickOutside","this","close","element","getAttribute","open","firstElementChild","setAttribute","removeAttribute","Controller","_this","dropzoneConfig","autoProcessQueue","clickable","maxFilesize","addRemoveLinks","dictInvalidFileType","errorMessageValue","acceptedFiles","acceptedFilesValue","maxFiles","previewTemplate","templateTarget","innerHTML","dropzone","Dropzone","dropzoneTarget","file","fileList","DataTransfer","items","add","fileInputTarget","files","Array","from","existingFile","targets","values","String","type","default","_getValueInput","_classPrivateFieldLooseKey","_refreshForm","_len","args","_key","defineProperty","_refreshForm2","_getValueInput2","_ref","params","submitBtnTarget","_classPrivateFieldLooseBase","index","disabled","_ref2","operatorNeedsInput","options","selectedIndex","needsInput","valueInput","removeProperty","display","_ref3","_ref3$target","conjonctionText","conjonctionTargets","conjonctionTarget","stopPropagation","currentTarget","parentElement","remove","_ref4","tomselect","blur","trigger","_step","URL","filtersPathValue","_iterator","_createForOfIteratorHelper","FormData","entries","s","n","done","_ref6","_slicedToArray","searchParams","append","err","f","_step2","_iterator2","elements","fetch","response","renderStreamMessage","filtersPath","_SORT_INPUT_ID","_filterableFormElement","get","_get_filterableFormElement","set","writable","previousSort","order","columnName","columnNameValue","insertAdjacentHTML","submit","formIdValue","formId","_viewsListOpened","closeViews","viewsListTarget","classList","hiddenClass","closeViewsListOnClickOutside","bind","contains","removeEventListener","_filtersFormOpened","closeFilters","filtersFormTarget","closeFiltersFormOnClickOutside","closeFiltersFormBtnTarget","classes","globalOptions","locale","altInput","onClose","selectedDates","_dateStr","_instance","dispatch","detail","onChange","Flatpickr","assign","settingsValue","en","fr","French","es","Spanish","localeValue","settings","mainSiteSelectorPageNumberTarget","submitForm","form","mainFilterFormTarget","requestSubmit","changeUrlParams","startDate","endDate","selectedSiteIds","siteId","replaceState","toString","mainSiteSelector","option","rankingDataContainerTarget","rankingKpisDataContainerTarget","chartDataContainerTarget","rankingWaitingForDataContainerTarget","rankingKpisWaitingForDataContainerTarget","chartWaitingForDataContainerTarget","submitLaterDelayValue","submitLater","debounce","leading","buttonTarget","submitLaterDelay","Number","title","sidePeekController","application","getControllerForElementAndIdentifier","sidePeekTarget","body","overflow","titleTarget","enter","innerPanelTarget","backdropTarget","leave","contentTarget","footerTarget","triggerEvent","render","chart","Chart","canvas","optionsValue","canvasId","Tooltip","positioners","bottom","eventPosition","_chart","pos","average","x","y","chartArea","_ChartController","position","tooltips","mode","xPadding","yPadding","xAlign","intersect","backgroundColor","bodyFontColor","bodyFontStyle","bodyFontSize","bodySpacing","borderColor","borderWidth","titleFontColor","titleFontStyle","displayColors","callbacks","tooltipTitleCallback","label","tooltipLabelCallback","scales","yAxes","xAxes","time","displayFormats","hour","day","month","ticks","beginAtZero","autoSkip","maxTicksLimit","major","enabled","fontStyle","gridLines","animation","duration","hover","animationDuration","responsiveAnimationDuration","responsive","maintainAspectRatio","legend","setChartLegend","chartLegendItemsHtml","data","datasets","item","datasetIndex","itemHidden","getDatasetMeta","hidden","labelColor","checkColor","borderDash","borderStyle","opacity","labelTextDecoration","legendContainerTarget","join","tooltipItems","date","Date","getHours","getMinutes","getSeconds","toLocaleDateString","minute","tooltipItem","unit","yLabel","includes","Intl","NumberFormat","minimumFractionDigits","format","itemDatasetIndex","meta","update","yLabelStringArray","offset","scaleLabel","labelString","padding","fontSize","isArray","ylabelString","of","ChartController","formTarget","unavailabilitiesIds","unavailabilityCardTargets","unavailabilityCard","unavailabilityId","parseInt","highlightClasses","acousticCardTargets","acousticCard","JSON","parse","unavailabilityIds","some","_this2","min","max","max_value","highlightUnavailabilities","maintenances_ids","overlayTarget","hasInputTarget","inputTarget","validateAtConnectValue","requireValidation","hasValidationSubmitBtnTarget","validationSubmitBtnTarget","codeInputTarget","siteAndCodeSubmitBtnTarget","detailsTarget","validateAtConnect","Boolean","newDate","startDateInputTarget","endDateInputTarget","dispatchEvent","Event","dataImportParamsInputTarget","dataImportParamsSubmitBtnTarget","triggerTarget","actionTarget","actionValue","delayValue","reload","setTimeout","num","padStart","getFullYear","padTo2Digits","getMonth","getDate","dateRangeInputTarget","_flatpickr","config","minDate","maxDate","maxDateValue","newStartDate","formatDate","newEndDate","hasPeriodOptionInputTarget","periodOptionInputTarget","periodOption","periodOptionsValue","setDate","maxDaysValue","toUTCString","periodOptions","maxDays","dateInputTarget","clear","monthSelectorTarget","_selectedDates","plugins","monthSelectPlugin","shorthand","dateFormat","altFormat","defaultDate","defaultDateValue","register","annotationPlugin","dataValue","xlabelString","annotation","events","annotations","annotationsValue","xAxesLabel","yAxesLabel","footerFontColor","footerFontStyle","footer","tooltipFooterCallback","stacked","stackedValue","maxBarThickness","distribution","source","fontColor","callback","yAxesTickCallback","isNaN","reduce","sum","Math","round","parseFloat","ylabelLeftString","ylabelRightString","scaleDataAxesToUnifyZeroesOnOptions","axes","line","axis","yAxisID","filter","ax","minValue","apply","_toConsumableArray","min_value","floor","maxValue","ceil","range","min_ratio","max_ratio","largest","a","b","rankingSortIconTarget","toggle","rankingTableContainerTarget","selectedFlexSiteIdTarget","flexSiteId","selectedActivityLevelTarget","activityLevel","selectedWorkHoursTarget","workHours","waitingForData","isWaitingForData","hasRankingFormTarget","rankingFormTarget","KuartzSelector","multiple","optionCategory","category","t","choices","generateId","labelsAndValues","selectorHTML","nextElementSibling","insertOptionsHTML","insertCountContainerHTML","updateSelectAllStatus","addGlobalEventListeners","addEventListenersForMultipleSelector","addEventListenersForSingleSelector","onInitialize","isInContainer","toggleOptionDropdownContainer","removeSelectedInputOption","inputOptionsWrapperTarget","inputSearchTarget","search","inputTargets","toggleOption","handleKeyDown","_this3","selectAllBtnTarget","toggleOptions","_this4","optionContainerTargets","optionContainerTarget","closeOptionDropdownContainer","random","choice","searchInputPlaceholder","noResultsFound","selected","labelAndValue","indexOf","push","selectAllContainerHTML","labelContentHTML","checkedHTML","choiceColor","count","checkedCount","optionCount","countContainerHTML","countTarget","_this5","checkedOption","optionsContainerTarget","optionHTML","addOption","indeterminate","iconHTML","optionDropdownContainerTarget","dropdownIconContainerTarget","_this6","isInBody","isDropdownOpen","selectedOption","afterChangeWithEnterKey","clearOptions","selectUpOption","selectDownOption","ctrlKey","altKey","metaKey","openOptionDropdownContainer","focus","previousOption","previousVisibleOptionContainerTarget","removeAllSelectedOptions","lastOption","nextOption","nextVisibleOptionContainerTarget","firstOption","optionContainer","previousIndex","visibleOptionContainerTargets","nextIndex","force","setDropdownIcon","selectOption","onDropdownOpen","onDropdownClose","inputOptionsContainerTarget","inputOption","_this7","selectedInputOptions","removeOption","checkAllOptions","uncheckAllOptions","_this8","_this9","input","replaceOption","removeInputOptions","uncheckOptions","toggleSelectOptions","addInputOptions","checkOptions","removeAllInputOptions","selectOnlySelectOptions","_this10","inputOptionHTML","lastElementChild","selectInputOption","removeOptionFromInputOption","foundOptionCount","toLowerCase","noResultsFoundTarget","removeSelectedOptions","addSelectedOptions","updateCountHTML","controller","categoryValue","computationModeTarget","activeOption","action","pathValue","selectedOptionTarget","formTypeValue","disableSubmitButton","selectedDate","firstDayOfWeekInputTargets","submitWeekPickerForm","dateStr","weekPickerFormTarget","siteIdInputTargets","submitSiteForm","siteFormTarget","editableInputTargets","originalValue","enableSubmitButton","submitButtonTarget","formType","hasWeekPickerTarget","initFlatpickr","displayReadOnlyDescription","alreadyFilledFutureDates","firstEditableFirstDayOfWeek","firstEditableFirstDayOfWeekValue","weekPickerTarget","disable","getDay","getTime","alreadyFilledFutureDatesValue","inputThatCouldBeReadOnlyTargets","readOnlyDescriptionTarget","activityLevelInput","TomSelect","activityLevelInputTarget","startTimeInput","startTimeInputTarget","endTimeInput","endTimeInputTarget","availabilityInput","availabilityInputTarget","lock","timesAndAvailabilityTarget","activityLevelOnIconTarget","activityLevelOffIconTarget","setValue","allHalfHoursOfADayValue","availabilityOnIconTarget","availabilityOffIconTarget","isStartTimeValueBeforeEndTimeValue","addInvalidErrorsForEmptyTimes","startTime","endTime","allHalfHoursOfADay","hasFormTarget","closeAndSubmitForm","formSelected","initialPageNumberValue","pageNumberInputTarget","initialPageNumber","_run","_insertRangeText","_insertRangeText2","_run2","isToggling","isRemoving","startClasses","interClasses","endClasses","_hour$previousSibling","_hour$nextSibling","_label$classList","_label$classList2","_label$classList3","prevInput","previousSibling","nextInput","nextSibling","startInput","hoveredInput","_map$sort2","sort","end","hoursInputs","slice","hoursTarget","children","_label$classList4","updateHour","menuTarget","hide","mapboxgl","accessTokenValue","center","defaultCoordinatesValue","zoom","minZoom","maxZoom","addSource","clustersValue","clusterMaxZoom","clusterRadius","markers","addLayer","paint","layout","getCanvas","cursor","coordinates","features","geometry","description","properties","descriptionHTML","setLngLat","setHTML","addTo","pointsValue","point","accessToken","clusters","points","defaultCoordinates","draw","productionPills","productions","typeRegionalProductionValue","regionData","production","maxProduction","regionPaths","regionId","rank","regionPath","BBox","getBBox","width","height","rankColor","regionBackgroundColor","pillHTML","circleRadius","pillBackgroundColor","rankIndex","rankColors","typeRegionalProduction","disableLastInput","enableAllInputs","siteInputTargets","checkedSiteInputs","Column","number","Cell","grid","rowNumber","columnNumber","rowIndex","updateUrl","updateMethod","editable","column","attribute","_this$column$options","actions","status","navigable","cellClassName","columnClassName","handleCut","handleCopy","handlePaste","cut","copy","paste","modelName","selectCallbacks","inWriteMode","editionModeValue","setReadMode","readHTML","writeHTML","addEventListeners","previousValue","edit","save","inReadMode","navigator","clipboard","writeText","readText","clipText","newValue","csrfToken","content","method","headers","stringify","_defineProperty","json","updateDependentCells","cells_to_update","selectDownCell","History","undo","cell","lastCell","pop","TextCell","_Cell","_get","_getPrototypeOf","prototype","call","handleDblClick","inputName","setWriteMode","setSelectionRange","empty","SelectCell","choiceHTML","optionsHTML","selectHTML","choiceByName","NumberCell","toLocaleString","unitSymbol","unit_symbol","unitSymbolHTML","DateCell","formattedValue","date_format","moment","Grid","columnData","cellData","gridHistory","selectedCell","setColumns","setCells","setEventListeners","insertTableHTML","handleNavigation","onScroll","clickOutside","passive","destroy","cells","row","columns","tableHTML","setCellContainers","headerHTML","bodyHTML","headerCellHTML","rowData","bodyRowHTML","bodyCells","columnIndex","bodyCellHTML","firstCellContainerHTML","select","Field","cellIndex","cellRowIndex","record_id","update_url","update_method","cellTypes","selectCell","onDownCell","cellContainer","initializeContainer","onTopCell","shiftKey","onLeftCell","onRightCell","scrollLeft","firstCell","currentRow","previousRow","previousElementSibling","colIndex","nextRow","_this$selectedCell$co","_this$selectedCell$co2","cellEl","_this$selectedCell","unselectCell","unselect","isInTableBody","flat","cellsArray","cellsToUpdate","findCellById","updateWithoutSave","columnDataValue","cellDataValue","modelNameValue","checkInputChange","displayUpdateButton","displayConfirmButton","inputChanged","formattedTomselectOriginalValue","isEqual","confirmButtonTarget","updateButtonTarget","Application","Stimulus","context","require","load","definitionsFromContext","PageController","SidePeekController","DatasetChartController","MainFilterController","RenUnavailabilitiesSummaryController","RenUnavailabilitiesChartController","RenUnavailabilitiesNewDetailsRenChildDeviceController","RenUnavailabilitiesFormController","RenUnavailabilitiesPeriodController","RenUnavailabilitiesImportController","RenUnavailabilitiesMainFilterController","ControlCenterMainFilterController","ControlCenterKpisController","DateRangePickerController","DatePickerController","MonthPickerController","LineChartController","BarChartController","DoubleAxisBarChartController","FlexPerformanceChartController","FlexPerformanceRankingController","FlexPerformanceMainFilterController","MainSiteSelectorController","MainClientSelectorController","FlexAnnualDeliveriesMainFilterController","ProgramsAndMeasurementsChartController","ProgramsAndMeasurementsMainFilterController","ProgramsAndMeasurementsTableController","ProgramsAndMeasurementsSelectListController","FlexCollectionFormsFormController","FlexCollectionFormsSitePartController","FlexCollectionFormsDayAttributesController","PaginationController","TestPolicyProfileController","SpainSettlementTableController","CalendarController","DropdownController","MapController","RenSpainChartController","RenSpainMaintenancePlansFormController","RenFranceNegativePriceTrackingDayDetailsController","PdoDashboardMapController","FlexLoadShiftsMultiSiteSelector","FlexLoadShiftsLoadShiftSelector","GridController","SorterController","RenFranceContactsFormController","modalTarget","toFixed","currentScroll","elementTarget","scrollTop","scrollBack","searchQuery","searchInputTarget","searchElementTargets","filterElements","setCookie","encodeURIComponent","expires","now","cookie","setSideMenuClosedCookie","openMenuBtnTarget","defaultAction","innerWidth","sortable","Sortable","create","onEnd","handle","newIndex","urlValue","replace","put","responseKind","_event$target$classLi","linkTargets","_link$classList","activeTabClasses","contentTargets","contentId","togglableTargets","togglable","onBlur"],"sourceRoot":""}