{"version":3,"file":"js/4525-e974001f185dfa781ddb.js","mappings":"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","sources":["webpack://Chouette/./app/packs/src/vehicle_journeys/batch.js","webpack://Chouette/./app/packs/src/vehicle_journeys/actions/index.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/vehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/pagination.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/modal.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/filters.js","webpack://Chouette/./app/packs/src/vehicle_journeys/helpers/index.js","webpack://Chouette/./app/packs/src/vehicle_journeys/helpers/ClipboardHelper.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/stopPointsList.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/index.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/returnVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/status.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/editMode.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/missions.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/custom_fields.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/select2s/CompanySelect2.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/select2s/AccessibilityAssessmentSelect2.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/CodesInputs.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/EditVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/EditVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/VehicleJourneyInfoButton.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/VehicleJourneyInfoButton.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/VehicleJourneyAtStop.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/VehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/SelectableContainer.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/SelectableContainer.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/VehicleJourneysList.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/VehicleJourneysList.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/Navigate.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/Navigate.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/ToggleArrivals.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/ToggleArrivals.js","webpack://Chouette/./app/packs/src/helpers/url_params.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/select2s/MissionSelect2.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/select2s/VJSelect2.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/select2s/TimetableSelect2.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/Filters.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/Filters.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/CancelVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/CancelVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/SaveVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/SaveVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/ConfirmModal.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/ConfirmModal.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/CopyModal.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/CopyModal.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/CreateModal.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/AddVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/DeleteVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/DeleteVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/SelectVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/SelectVehicleJourneys.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/CopyButton.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/CopyButton.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/PasteButton.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/PasteButton.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/ShiftVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/ShiftVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/select2s/SpecificStopPlaceSelect2.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/SelectSpecificStop.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/SelectSpecificStop.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/DuplicateVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/DuplicateVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/NotesEditVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/NotesEditVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/tools/TimetablesEditVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/tools/TimetablesEditVehicleJourney.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/Tools.js","webpack://Chouette/./app/packs/src/vehicle_journeys/containers/Tools.js","webpack://Chouette/./app/packs/src/vehicle_journeys/components/App.js","webpack://Chouette/./app/packs/entrypoints/vehicle_journeys/index.js","webpack://Chouette/./app/packs/src/vehicle_journeys/reducers/selection.js","webpack://Chouette/./app/packs/src/helpers/CustomFieldsInputs.js","webpack://Chouette/./app/packs/src/helpers/SubmitMover.js","webpack://Chouette/./app/packs/src/helpers/cancel_button.js","webpack://Chouette/./app/packs/src/helpers/env.js","webpack://Chouette/./app/packs/src/helpers/geoJSON.js","webpack://Chouette/./app/packs/src/helpers/hooks/useDebounce.js","webpack://Chouette/./app/packs/src/helpers/hooks/useFlashMessage.js","webpack://Chouette/./app/packs/src/helpers/hooks/useGeoJSONFeatures.js","webpack://Chouette/./app/packs/src/helpers/hooks/usePrevious.js","webpack://Chouette/./app/packs/src/helpers/hooks/useStore.js","webpack://Chouette/./app/packs/src/helpers/hooks/useSubmitMover.js","webpack://Chouette/./app/packs/src/helpers/middlewares.js","webpack://Chouette/./app/packs/src/helpers/save_button.js","webpack://Chouette/./app/packs/src/helpers/select2/language.js","webpack://Chouette/./app/packs/src/helpers/stop_area_header_manager.js"],"sourcesContent":["// 'use strict';\n\n// Object.defineProperty(exports, \"__esModule\", {\n// \tvalue: true\n// });\n// exports.batchActions = batchActions;\n// exports.enableBatching = enableBatching;\n// var BATCH = exports.BATCH = 'BATCH';\n\nexport function batchActions(actions) {\n\treturn {\n type: 'BATCH',\n payload: actions\n };\n}\n\nexport function enableBatching(reduce) {\n\treturn function batchingReducer(state, action) {\n\t\tswitch (action.type) {\n\t\t\tcase 'BATCH':\n\t\t\t\treturn action.payload.reduce(batchingReducer, state);\n\t\t\tdefault:\n\t\t\t\treturn reduce(state, action);\n\t\t}\n\t}\n}","import { batchActions } from '../batch'\n\nconst actions = {\n enterEditMode: () => ({\n type: \"ENTER_EDIT_MODE\"\n }),\n exitEditMode: () => ({\n type: \"EXIT_EDIT_MODE\"\n }),\n onVisibilityChange: (event) => ({\n type: \"VISIBILITY_CHANGE\", event\n }),\n toggleTimesSelection: () => ({\n type: \"TOGGLE_SELECTION_MODE\"\n }),\n updateSelectedItems: items => ({\n type: 'UPDATE_SELECTED_ITEMS', items\n }),\n clearSelectedItems: () => ({\n type: 'CLEAR_SELECTED_ITEMS'\n }),\n updateSelectionDimensions: (width, height) => ({\n type: 'UPDATE_SELECTION_DIMENSIONS', width, height\n }),\n updateSelectionLocked: locked => ({\n type: 'UPDATE_SELECTION_LOCKED', locked\n }),\n copyClipboard: () => ({\n type: 'COPY_CLIPBOARD'\n }),\n pasteFromClipboard: ()=>({\n type: \"PASTE_CLIPBOARD\"\n }),\n closeCopyModal: ()=>({\n type: \"CLOSE_COPY_MODAL\"\n }),\n copyModalToPasteMode: ()=>({\n type: \"COPY_MODAL_TO_PASTE_MODE\"\n }),\n copyModalToCopyMode: () => ({\n type: \"COPY_MODAL_TO_COPY_MODE\"\n }),\n updateContentToPaste: content =>({\n type: \"UPDATE_CONTENT_TO_PASTE\", content\n }),\n pasteContent: ()=>({\n type: \"PASTE_CONTENT\"\n }),\n receiveVehicleJourneys : (json, returnJourneys) => ({\n type: (returnJourneys ? \"RECEIVE_RETURN_VEHICLE_JOURNEYS\" : \"RECEIVE_VEHICLE_JOURNEYS\"),\n json\n }),\n receiveErrors : (json) => ({\n type: \"RECEIVE_ERRORS\",\n json\n }),\n fetchingApi: () =>({\n type: 'FETCH_API'\n }),\n unavailableServer : () => ({\n type: 'UNAVAILABLE_SERVER'\n }),\n goToPreviousPage : (dispatch, pagination, queryString) => ({\n type: 'GO_TO_PREVIOUS_PAGE',\n dispatch,\n pagination,\n nextPage : false,\n queryString\n }),\n goToNextPage : (dispatch, pagination, queryString) => ({\n type: 'GO_TO_NEXT_PAGE',\n dispatch,\n pagination,\n nextPage : true,\n queryString\n }),\n checkConfirmModal : (event, callback, stateChanged, dispatch) => {\n if(stateChanged === true){\n return actions.openConfirmModal(callback)\n }else{\n dispatch(actions.fetchingApi())\n return callback\n }\n },\n openCreateModal : () => ({\n type : 'CREATE_VEHICLEJOURNEY_MODAL'\n }),\n selectJPCreateModal : (selectedJP) => ({\n type : 'SELECT_JP_CREATE_MODAL',\n selectedItem: _.assign({}, selectedJP, {\n objectid: selectedJP.object_id,\n stop_areas: selectedJP.stop_area_short_descriptions\n })\n }),\n openEditModal : (vehicleJourney) => ({\n type : 'EDIT_VEHICLEJOURNEY_MODAL',\n vehicleJourney\n }),\n openInfoModal : (vehicleJourney) => ({\n type : 'INFO_VEHICLEJOURNEY_MODAL',\n vehicleJourney\n }),\n openNotesEditModal : (vehicleJourney) => ({\n type : 'EDIT_NOTES_VEHICLEJOURNEY_MODAL',\n vehicleJourney\n }),\n toggleFootnoteModal : (footnote, isShown) => ({\n type: 'TOGGLE_FOOTNOTE_MODAL',\n footnote,\n isShown\n }),\n openCalendarsEditModal : (vehicleJourneys) => ({\n type : 'EDIT_CALENDARS_VEHICLEJOURNEY_MODAL',\n vehicleJourneys\n }),\n selectTTCalendarsModal: (selectedTT) =>({\n type: 'SELECT_TT_CALENDAR_MODAL',\n selectedItem:{\n id: selectedTT.id,\n comment: selectedTT.comment,\n objectid: selectedTT.objectid,\n color: selectedTT.color,\n bounding_dates: selectedTT.time_table_bounding,\n days: selectedTT.day_types\n }\n }),\n addSelectedTimetable: () => ({\n type: 'ADD_SELECTED_TIMETABLE'\n }),\n deleteCalendarModal : (timetable) => ({\n type : 'DELETE_CALENDAR_MODAL',\n timetable\n }),\n editVehicleJourneyTimetables : (vehicleJourneys, timetables) => ({\n type: 'EDIT_VEHICLEJOURNEYS_TIMETABLES',\n vehicleJourneys,\n timetables\n }),\n editVehicleJourneyConstraintZones : (vehicleJourneys, zones, stop_area_constraints) => ({\n type: 'EDIT_VEHICLEJOURNEYS_CONSTRAINT_ZONES',\n vehicleJourneys,\n zones,\n stop_area_constraints\n }),\n openConstraintExclusionEditModal : (vehicleJourneys) => ({\n type : 'EDIT_CONSTRAINT_EXCLUSIONS_VEHICLEJOURNEY_MODAL',\n vehicleJourneys\n }),\n selectConstraintZone: (selectedZone) =>({\n type: 'SELECT_CONSTRAINT_ZONE_MODAL',\n selectedZone: {\n id: selectedZone.id,\n name: selectedZone.text\n }\n }),\n selectStopAreasConstraint: (selectedZone) =>({\n type: 'SELECT_STOPAREAS_CONSTRAINT_MODAL',\n selectedZone: {\n id: selectedZone.id,\n name: selectedZone.text\n }\n }),\n deleteConstraintZone : (constraintZone) => ({\n type : 'DELETE_CONSTRAINT_ZONE_MODAL',\n constraintZone\n }),\n deleteStopAreasConstraint : (constraintZone) => ({\n type : 'DELETE_STOPAREAS_CONSTRAINT_MODAL',\n constraintZone\n }),\n openShiftModal : () => ({\n type : 'SHIFT_VEHICLEJOURNEY_MODAL'\n }),\n openSelectSpecificStopModal : (vehicleJourney) => ({\n type : 'SELECT_SPECIFIC_STOP_MODAL',\n vehicleJourney\n }),\n openDuplicateModal : () => ({\n type : 'DUPLICATE_VEHICLEJOURNEY_MODAL'\n }),\n selectVehicleJourney : (index) => ({\n type : 'SELECT_VEHICLEJOURNEY',\n index\n }),\n cancelSelection : () => ({\n type: 'CANCEL_SELECTION'\n }),\n addVehicleJourney : (data, selectedJourneyPattern, stopPointsList, selectedCompany, selectedAccessibilityAssessment) => ({\n type: 'ADD_VEHICLEJOURNEY',\n data,\n selectedJourneyPattern,\n stopPointsList,\n selectedCompany,\n selectedAccessibilityAssessment\n }),\n select2Company: selectedItem => ({\n type: 'SELECT_CP_EDIT_MODAL',\n selectedItem\n }),\n unselect2Company: () => ({\n type: 'UNSELECT_CP_EDIT_MODAL',\n }),\n select2AccessibilityAssessment: selectedItem => ({\n type: 'SELECT_AA_EDIT_MODAL',\n selectedItem\n }),\n unselect2AccessibilityAssessment: () => ({\n type: 'UNSELECT_AA_EDIT_MODAL',\n }),\n addReferentialCode: (newCode) => ({\n type: 'ADD_REFERENTIAL_CODE_EDIT_MODAL',\n newCode\n }),\n deleteReferentialCode: (index) => ({\n type: 'DELETE_REFERENTIAL_CODE_EDIT_MODAL',\n index\n }),\n updateReferentialCode: (index, attributes) => ({\n type: 'UPDATE_REFERENTIAL_CODE_EDIT_MODAL',\n index,\n attributes\n }),\n editVehicleJourney : (data, selectedCompany, selectedAccessibilityAssessment) => ({\n type: 'EDIT_VEHICLEJOURNEY',\n data,\n selectedCompany,\n selectedAccessibilityAssessment\n }),\n editVehicleJourneyNotes : (footnotes, line_notices) => ({\n type: 'EDIT_VEHICLEJOURNEY_NOTES',\n footnotes,\n line_notices\n }),\n shiftVehicleJourney : (addtionalTime) => ({\n type: 'SHIFT_VEHICLEJOURNEY',\n addtionalTime\n }),\n selectSpecificStop : (specific_stop_area_map) => ({\n type: 'SELECT_SPECIFIC_STOP',\n specific_stop_area_map\n }),\n duplicateVehicleJourney : (addtionalTime, duplicateNumber, departureDelta) => ({\n type: 'DUPLICATE_VEHICLEJOURNEY',\n addtionalTime,\n duplicateNumber,\n departureDelta\n }),\n deleteVehicleJourneys : () => ({\n type: 'DELETE_VEHICLEJOURNEYS'\n }),\n cancelDeletion : () => ({\n type: 'CANCEL_DELETION'\n }),\n openConfirmModal : (callback) => ({\n type : 'OPEN_CONFIRM_MODAL',\n callback\n }),\n closeModal : () => ({\n type : 'CLOSE_MODAL'\n }),\n resetValidation: (target) => {\n $(target).parent().removeClass('has-error').children('.help-block').remove()\n },\n validateFields : (fields) => {\n let valid = true\n Object.keys(fields).forEach((key) => {\n let field = fields[key]\n if(field.validity && !field.validity.valid){\n valid = false\n $(field).parent().parent().addClass('has-error').children('.help-block').remove()\n $(field).parent().append(\"\" + field.validationMessage + \"\")\n }\n })\n return valid\n },\n toggleArrivals : () => ({\n type: 'TOGGLE_ARRIVALS',\n }),\n updateTime : (val, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency=false) => ({\n type: 'UPDATE_TIME',\n val,\n subIndex,\n index,\n timeUnit,\n isDeparture,\n isArrivalsToggled,\n enforceConsistency\n }),\n resetStateFilters: () => ({\n type: 'RESET_FILTERS'\n }),\n toggleWithoutSchedule: () => ({\n type: 'TOGGLE_WITHOUT_SCHEDULE'\n }),\n toggleWithoutTimeTable: () => ({\n type: 'TOGGLE_WITHOUT_TIMETABLE'\n }),\n updateStartTimeFilter: (val, unit) => ({\n type: 'UPDATE_START_TIME_FILTER',\n val,\n unit\n }),\n updateEndTimeFilter: (val, unit) => ({\n type: 'UPDATE_END_TIME_FILTER',\n val,\n unit\n }),\n filterSelect2Timetable: (selectedTT) =>({\n type: 'SELECT_TT_FILTER',\n selectedItem:{\n id: selectedTT.id,\n comment: selectedTT.comment,\n objectid: selectedTT.objectid\n }\n }),\n filterSelect2JourneyPattern: (selectedJP) => ({\n type : 'SELECT_JP_FILTER',\n selectedItem: {\n id: selectedJP.id,\n objectid: selectedJP.object_id,\n name: selectedJP.name,\n published_name: selectedJP.published_name\n }\n }),\n filterSelect2VehicleJourney: (selectedVJ) => ({\n type : 'SELECT_VJ_FILTER',\n selectedItem: {\n objectid: selectedVJ.objectid\n }\n }),\n createQueryString: () => ({\n type: 'CREATE_QUERY_STRING'\n }),\n resetPagination: () => ({\n type: 'RESET_PAGINATION'\n }),\n queryFilterVehicleJourneys: (dispatch) => ({\n type: 'QUERY_FILTER_VEHICLEJOURNEYS',\n dispatch\n }),\n resetFilters: (dispatch) => (\n batchActions([\n actions.resetStateFilters(),\n actions.resetPagination(),\n actions.queryFilterVehicleJourneys(dispatch)\n ])\n ),\n filterQuery: (dispatch) => (\n batchActions([\n actions.createQueryString(),\n actions.resetPagination(),\n actions.queryFilterVehicleJourneys(dispatch)\n ])\n ),\n updateTotalCount: (diff) => ({\n type: 'UPDATE_TOTAL_COUNT',\n diff\n }),\n receiveTotalCount: (total) => ({\n type: 'RECEIVE_TOTAL_COUNT',\n total\n }),\n fetchVehicleJourneys : (dispatch, currentPage, nextPage, queryString, url) => {\n let returnJourneys = false\n if(currentPage == undefined){\n currentPage = 1\n }\n if(url == undefined){\n url = window.location.pathname\n }\n else{\n returnJourneys = true\n }\n let vehicleJourneys = []\n let page\n switch (nextPage) {\n case true:\n page = currentPage + 1\n break\n case false:\n if(currentPage > 1){\n page = currentPage - 1\n }\n break\n default:\n page = currentPage\n break\n }\n let str = \".json\"\n let sep = '?'\n if(page > 1){\n str = '.json?page=' + page.toString()\n sep = '&'\n }\n let urlJSON = url + str\n if (!returnJourneys && queryString){\n urlJSON = urlJSON + sep + queryString\n }\n let hasError = false\n\n fetch(urlJSON, {\n credentials: 'same-origin',\n }).then(response => {\n if(response.status == 500) {\n hasError = true\n }\n return response.json()\n }).then((json) => {\n if(hasError == true) {\n dispatch(actions.unavailableServer())\n } else {\n let i = 0\n while(i < json.vehicle_journeys.length){\n let val = json.vehicle_journeys[i]\n i++\n var timeTables = []\n let k = 0\n while(k < val.time_tables.length){\n let tt = val.time_tables[k]\n k++\n timeTables.push(tt)\n }\n let vjasWithDelta = val.vehicle_journey_at_stops.map((vjas, i) => {\n actions.fillEmptyFields(vjas)\n return actions.getDelta(vjas)\n })\n\n var line_notices = val['public.line_notices']\n if(! line_notices.map){\n line_notices = []\n }\n vehicleJourneys.push(\n _.assign({}, val, {\n time_tables: timeTables,\n vehicle_journey_at_stops: vjasWithDelta,\n deletable: false,\n selected: false,\n published_journey_name: val.published_journey_name || '',\n published_journey_identifier: val.published_journey_identifier || '',\n company: val.company || {name: ''},\n accessibility_assessment: val.accessibility_assessment || {name: ''},\n transport_mode: val.route.line.transport_mode || 'undefined',\n transport_submode: val.route.line.transport_submode || 'undefined',\n line_notices: line_notices\n })\n )\n }\n window.currentItemsLength = vehicleJourneys.length\n dispatch(actions.receiveVehicleJourneys(vehicleJourneys, returnJourneys))\n if(!returnJourneys){\n dispatch(actions.receiveTotalCount(json.total))\n }\n }\n })\n },\n\n validate : (dispatch, vehicleJourneys, next) => {\n dispatch(actions.didValidateVehicleJourneys(vehicleJourneys))\n actions.submitVehicleJourneys(dispatch, vehicleJourneys, next)\n return true\n },\n\n didValidateVehicleJourneys : (vehicleJourneys) => ({\n type: 'DID_VALIDATE_VEHICLE_JOURNEYS',\n vehicleJourneys\n }),\n\n submitVehicleJourneys : (dispatch, state, next) => {\n dispatch(actions.fetchingApi())\n let urlJSON = window.location.pathname + \".json\"\n let hasError = false\n fetch(urlJSON, {\n credentials: 'same-origin',\n method: 'PATCH',\n contentType: 'application/json; charset=utf-8',\n Accept: 'application/json',\n body: JSON.stringify(state),\n headers: {\n 'X-CSRF-Token': $('meta[name=\"csrf-token\"]').attr('content')\n }\n }).then(response => {\n if(!response.ok) {\n hasError = true\n }\n return response.json()\n }).then((json) => {\n if(hasError == true) {\n dispatch(actions.receiveErrors(json))\n } else {\n if(next) {\n dispatch(next)\n } else {\n if(json.length != window.currentItemsLength){\n dispatch(actions.updateTotalCount(window.currentItemsLength - json.length))\n }\n window.currentItemsLength = json.length\n dispatch(actions.exitEditMode())\n dispatch(actions.receiveVehicleJourneys(json))\n }\n }\n })\n },\n // VJAS HELPERS\n getSelected: (vj) => {\n return vj.filter((obj) =>{\n return obj.selected\n })\n },\n getSelectedDeletables: (vj) => {\n return actions.getSelected(vj).filter(obj => obj.deletable)\n },\n simplePad: (d) => {\n if(d.toString().length == 1){\n return '0' + d.toString()\n }else{\n return d.toString()\n }\n },\n pad: (d, timeUnit) => {\n let val = d.toString()\n if(d.toString().length == 1){\n val = (d < 10) ? '0' + d.toString() : d.toString();\n }\n if(val.length > 2){\n val = val.substr(1)\n }\n if(timeUnit == 'minute' && parseInt(val) > 59){\n val = '59'\n }\n if(timeUnit == 'hour' && parseInt(val) > 23){\n val = '23'\n }\n return val\n },\n encodeParams: (params) => {\n let esc = encodeURIComponent\n let queryString = Object.keys(params).map((k) => esc(k) + '=' + esc(params[k])).join('&')\n return queryString\n },\n fillEmptyFields: (vjas) => {\n if (vjas.departure_time.hour == null) vjas.departure_time.hour = '00'\n if (vjas.departure_time.minute == null) vjas.departure_time.minute = '00'\n if (vjas.arrival_time.hour == null) vjas.arrival_time.hour = '00'\n if (vjas.arrival_time.minute == null) vjas.arrival_time.minute = '00'\n return vjas\n },\n getDuplicateDelta: (original, newDeparture) => {\n if (original.departure_time.hour != '' && original.departure_time.minute != '' && newDeparture.departure_time.hour != undefined && newDeparture.departure_time.minute != undefined){\n return (newDeparture.departure_time.hour - parseInt(original.departure_time.hour)) * 60 + (newDeparture.departure_time.minute - parseInt(original.departure_time.minute))\n }\n return 0\n },\n getDelta: (vjas, allowNegative=false) => {\n let { hasAllAttributes, departure_time, arrival_time} = actions.scheduleToDates(vjas)\n let delta = 0\n\n if (hasAllAttributes) {\n if (arrival_time.getHours() == 23 && (departure_time.getHours() == 0 || (departure_time.getHours() == 1 && departure_time.getMinutes() == 0))) {\n departure_time.setDate(arrival_time.getDate() + 1)\n }\n\n // We want the delta in minutes\n delta = (departure_time.getTime() - arrival_time.getTime()) / 60000\n }\n\n if (!allowNegative && delta < 0) {\n delta = 0\n }\n vjas.delta = delta\n return vjas\n },\n adjustSchedule: (action, schedule, isFirstOrLastStop, enforceConsistency=false) => {\n // we enforce that the departure time remains after the arrival time\n if (!enforceConsistency) return actions.getDelta(schedule, false)\n\n let newSchedule = actions.getDelta(schedule, true)\n\n if (newSchedule.delta < 0 || isFirstOrLastStop) {\n if (action.isDeparture) {\n newSchedule.arrival_time = newSchedule.departure_time\n }\n else {\n newSchedule.departure_time = newSchedule.arrival_time\n }\n }\n return actions.getDelta(newSchedule)\n },\n getShiftedSchedule: ({departure_time, arrival_time}, additional_time) => {\n // We create dummy dates objects to manipulate time more easily\n let departureDT = new Date (Date.UTC(2017, 2, 1, parseInt(departure_time.hour), parseInt(departure_time.minute)))\n let arrivalDT = new Date (Date.UTC(2017, 2, 1, parseInt(arrival_time.hour), parseInt(arrival_time.minute)))\n\n let newDepartureDT = new Date (departureDT.getTime() + additional_time * 60000)\n let newArrivalDT = new Date (arrivalDT.getTime() + additional_time * 60000)\n\n return {\n departure_time: {\n hour: actions.simplePad(newDepartureDT.getUTCHours()),\n minute: actions.simplePad(newDepartureDT.getUTCMinutes())\n },\n arrival_time: {\n hour: actions.simplePad(newArrivalDT.getUTCHours()),\n minute: actions.simplePad(newArrivalDT.getUTCMinutes())\n }\n }\n },\n scheduleToDates: (vjas) =>{\n let { departure_time: { hour: depHour, minute: depMinute } } = vjas\n let { arrival_time: { hour: arrHour, minute: arrMinute } } = vjas\n\n let hasAllAttributes = depHour != '' && depMinute != '' && arrHour != '' && arrMinute != ''\n return {\n hasAllAttributes,\n departure_time: hasAllAttributes && new Date(2017, 2, 1, parseInt(depHour), parseInt(depMinute)),\n arrival_time: hasAllAttributes && new Date(2017, 2, 1, parseInt(arrHour), parseInt(arrMinute))\n }\n },\n addMinutesToTime: (time, minutes) => {\n let res = {\n hour: time.hour,\n minute: time.minute\n }\n let delta_hour = parseInt(minutes/60)\n let delta_minute = minutes - 60*delta_hour\n res.hour += delta_hour\n res.minute += delta_minute\n let extra_hours = parseInt(res.minute/60)\n res.hour += extra_hours\n res.minute -= extra_hours*60\n res.hour = res.hour % 24\n\n return res\n }\n}\n\nexport default actions\n","import _ from 'lodash'\nimport actions from '../actions'\n\nconst vehicleJourney= (state = {}, action, keep) => {\n switch (action.type) {\n case 'SELECT_VEHICLEJOURNEY':\n return _.assign({}, state, {selected: !state.selected})\n case 'CANCEL_SELECTION':\n return _.assign({}, state, {selected: false})\n case 'CANCEL_DELETION':\n return _.assign({}, state, {deletable: false})\n case 'ADD_VEHICLEJOURNEY':\n let pristineVjasList = []\n let prevSp\n let current_time = {\n hour: 0,\n minute: 0\n }\n let computeSchedule = false\n let initTZOffet = 0\n if(action.data[\"start_time.hour\"] && action.data[\"start_time.hour\"].value && action.data[\"start_time.hour\"].value.length > 0 && action.data[\"start_time.minute\"] && action.selectedJourneyPattern.full_schedule && action.selectedJourneyPattern.costs){\n computeSchedule = true\n initTZOffet = - action.stopPointsList[0].time_zone_offset / 60 || 0\n current_time.hour = parseInt(action.data[\"start_time.hour\"].value) + parseInt(initTZOffet / 60)\n current_time.minute = 0\n if(action.data[\"start_time.minute\"].value){\n current_time.minute = parseInt(action.data[\"start_time.minute\"].value) + (initTZOffet - 60 * parseInt(initTZOffet / 60))\n }\n }\n\n _.each(action.stopPointsList, (sp) => {\n let inJourney = false\n let newVjas\n\n if(computeSchedule){\n if(prevSp && action.selectedJourneyPattern.costs[prevSp.stop_area_id + \"-\" + sp.stop_area_id]){\n let delta = parseInt(action.selectedJourneyPattern.costs[prevSp.stop_area_id + \"-\" + sp.stop_area_id].time)\n delta = _.round(delta / 60);\n current_time = actions.addMinutesToTime(current_time, delta)\n prevSp = sp\n inJourney = true\n }\n if(!prevSp){\n _.each(action.selectedJourneyPattern.stop_areas, (jp) => {\n if (jp.stop_area_short_description.id == sp.id){\n prevSp = sp\n return\n }\n })\n }\n\n let offsetHours = sp.time_zone_offset / 3600\n let offsetminutes = sp.time_zone_offset/60 - 60*offsetHours\n\n newVjas = {\n delta: 0,\n arrival_time:{\n hour: (24 + current_time.hour + offsetHours) % 24,\n minute: current_time.minute + offsetminutes\n },\n stop_point_objectid: sp.object_id,\n stop_area_cityname: sp.city_name,\n dummy: true,\n stop_point_id: sp.id,\n stop_area_id: sp.stop_area_id\n }\n\n if(sp.waiting_time && inJourney){\n current_time = actions.addMinutesToTime(current_time, parseInt(sp.waiting_time))\n newVjas.delta = parseInt(sp.waiting_time)\n }\n\n newVjas.departure_time = {\n hour: (24 + current_time.hour + offsetHours) % 24,\n minute: current_time.minute + offsetminutes\n }\n\n if(current_time.hour + offsetHours > 24){\n newVjas.departure_day_offset = 1\n newVjas.arrival_day_offset = 1\n }\n }\n else{\n newVjas = {\n delta: 0,\n arrival_time: {\n hour: 0,\n minute: 0\n },\n departure_time: {\n hour: 0,\n minute: 0\n },\n stop_point_objectid: sp.object_id,\n stop_area_cityname: sp.city_name,\n dummy: true,\n stop_point_id: sp.id,\n stop_area_id: sp.stop_area_id\n }\n }\n\n let belongToJP = !!action.selectedJourneyPattern.stop_areas.find(({ stop_area_short_description: stopArea }) => stopArea.object_id == sp.area_object_id && stopArea.position == sp.position)\n\n if (belongToJP) newVjas.dummy = false\n\n let lastStop = action.selectedJourneyPattern.stop_areas && action.selectedJourneyPattern.stop_areas[action.selectedJourneyPattern.stop_areas.length - 1]\n if(lastStop && lastStop.stop_area_short_description.id == sp.id){\n newVjas.departure_time = newVjas.arrival_time\n newVjas.delta = 0\n }\n\n if(newVjas.dummy){\n newVjas.departure_time = {hour: \"00\", minute: \"00\"}\n newVjas.arrival_time = {hour: \"00\", minute: \"00\"}\n }\n pristineVjasList.push(newVjas)\n\n })\n\n return {\n company: action.selectedCompany,\n accessibility_assessment: action.selectedAccessibilityAssessment,\n journey_pattern: action.selectedJourneyPattern,\n published_journey_name: action.data.published_journey_name.value,\n published_journey_identifier: action.data.published_journey_identifier.value,\n objectid: '',\n short_id: '',\n footnotes: [],\n time_tables: [],\n line_notices: [],\n vehicle_journey_at_stops: pristineVjasList,\n selected: false,\n deletable: false,\n transport_mode: window.transportMode ? window.transportMode : 'undefined',\n transport_submode: window.transportSubmode ? window.transportSubmode : 'undefined',\n custom_fields: action.data.custom_fields,\n referential_codes: []\n }\n case 'DUPLICATE_VEHICLEJOURNEY':\n case 'SHIFT_VEHICLEJOURNEY':\n let shiftedArray, shiftedSchedule, shiftedVjas\n shiftedArray = state.vehicle_journey_at_stops.map((vjas, i) => {\n if (!vjas.dummy){\n shiftedSchedule = actions.getShiftedSchedule(vjas, action.addtionalTime)\n\n shiftedVjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedSchedule)\n vjas = _.assign({}, state.vehicle_journey_at_stops[i], shiftedVjas)\n if(!keep){\n delete vjas['id']\n }\n return vjas\n }else {\n if(!keep){\n delete vjas['id']\n }\n return vjas\n }\n })\n\n let custom_fields = JSON.parse(JSON.stringify(state.custom_fields))\n return _.assign({}, state, {vehicle_journey_at_stops: shiftedArray, custom_fields: custom_fields})\n case 'SELECT_SPECIFIC_STOP':\n let specific_stop_area_map = action.specific_stop_area_map\n let vjasList = state.vehicle_journey_at_stops.map((vjas, i) => {\n if (Object.keys(specific_stop_area_map).includes(vjas.stop_point_id.toString())) {\n vjas.specific_stop_area_id = specific_stop_area_map[vjas.stop_point_id]\n }\n return vjas\n })\n return _.assign({}, state, {vehicle_journey_at_stops: vjasList})\n case 'UPDATE_TIME':\n let vj, vjas, vjasArray, newSchedule\n let val = action.val\n let isFirstOrLastStop = action.subIndex == 0 || action.subIndex == (state.vehicle_journey_at_stops.length - 1)\n if(val != ''){\n val = parseInt(val)\n if(action.timeUnit == \"minute\"){\n val = (val + 60) % 60\n }\n else{\n val = (val + 24) % 24\n }\n }\n vjasArray = state.vehicle_journey_at_stops.map((vjas, i) => {\n if(i == action.subIndex){\n let schedule = {\n departure_time: _.assign({}, vjas.departure_time),\n arrival_time: _.assign({}, vjas.arrival_time)\n }\n newSchedule = _.assign({}, schedule)\n if (action.isDeparture){\n actions.getDelta(schedule, false)\n newSchedule.departure_time[action.timeUnit] = actions.pad(val, action.timeUnit)\n if(!action.isArrivalsToggled){\n schedule = actions.getShiftedSchedule({arrival_time: newSchedule.departure_time, departure_time: newSchedule.departure_time}, - schedule.delta)\n newSchedule.arrival_time = schedule.arrival_time\n }\n\n newSchedule = actions.adjustSchedule(action, newSchedule, isFirstOrLastStop, action.enforceConsistency)\n return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta})\n }else{\n newSchedule.arrival_time[action.timeUnit] = actions.pad(val, action.timeUnit)\n newSchedule = actions.adjustSchedule(action, newSchedule, isFirstOrLastStop, action.enforceConsistency)\n return _.assign({}, state.vehicle_journey_at_stops[action.subIndex], {arrival_time: newSchedule.arrival_time, departure_time: newSchedule.departure_time, delta: newSchedule.delta})\n }\n }else{\n return vjas\n }\n })\n return _.assign({}, state, {vehicle_journey_at_stops: vjasArray})\n default:\n return state\n }\n}\n\nexport default function vehicleJourneys(state = [], action) {\n switch (action.type) {\n case 'RECEIVE_VEHICLE_JOURNEYS':\n return [...action.json]\n case 'RECEIVE_ERRORS':\n return [...action.json]\n case 'GO_TO_PREVIOUS_PAGE':\n if(action.pagination.page > 1){\n actions.fetchVehicleJourneys(action.dispatch, action.pagination.page, action.nextPage, action.queryString)\n }\n return state\n case 'GO_TO_NEXT_PAGE':\n if (action.pagination.totalCount - (action.pagination.page * action.pagination.perPage) > 0){\n actions.fetchVehicleJourneys(action.dispatch, action.pagination.page, action.nextPage, action.queryString)\n }\n return state\n case 'ADD_VEHICLEJOURNEY':\n return [\n vehicleJourney(state, action),\n ...state\n ]\n case 'EDIT_VEHICLEJOURNEY':\n return state.map((vj, i) => {\n if (vj.selected){\n return _.assign({}, vj, {\n company: action.selectedCompany,\n accessibility_assessment: action.selectedAccessibilityAssessment,\n published_journey_name: action.data.published_journey_name.value,\n published_journey_identifier: action.data.published_journey_identifier.value,\n custom_fields: action.data.custom_fields,\n referential_codes: action.data.referential_codes\n })\n }else{\n return vj\n }\n })\n case 'EDIT_VEHICLEJOURNEY_NOTES':\n return state.map((vj, i) => {\n if (vj.selected){\n return _.assign({}, vj, {\n footnotes: action.footnotes,\n line_notices: action.line_notices\n })\n }else{\n return vj\n }\n })\n case 'EDIT_VEHICLEJOURNEYS_TIMETABLES':\n let newTimetables = JSON.parse(JSON.stringify(action.timetables))\n return state.map((vj,i) => {\n if(vj.selected){\n let updatedVJ = _.assign({}, vj)\n action.vehicleJourneys.map((vjm, j) => {\n if(vj.objectid == vjm.objectid){\n updatedVJ.time_tables = newTimetables\n }\n })\n return updatedVJ\n }else{\n return vj\n }\n })\n case 'SHIFT_VEHICLEJOURNEY':\n return state.map((vj, i) => {\n if (vj.selected){\n return vehicleJourney(vj, action, true)\n }else{\n return vj\n }\n })\n case 'SELECT_SPECIFIC_STOP':\n return state.map((vj, i) => {\n if (vj.selected){\n return vehicleJourney(vj, action, true)\n }else{\n return vj\n }\n })\n case 'DUPLICATE_VEHICLEJOURNEY':\n let dupeVj\n let dupes = []\n let selectedIndex\n let val = action.addtionalTime\n let departureDelta = action.departureDelta\n state.map((vj, i) => {\n if(vj.selected){\n selectedIndex = i\n for (i = 0; i< action.duplicateNumber; i++){\n // We check if the departureDelta is != 0 to create the first VJ on the updated deparure time if it is the case\n // let delta = departureDelta == 0 ? 1 : 0\n // action.addtionalTime = (val * (i + delta)) + departureDelta\n action.addtionalTime = (val * (i + 1)) + departureDelta\n dupeVj = vehicleJourney(vj, action, false)\n dupeVj.published_journey_name = dupeVj.published_journey_name + '-' + i\n dupeVj.selected = false\n dupeVj.referential_codes = []\n delete dupeVj['objectid']\n delete dupeVj['short_id']\n dupes.push(dupeVj)\n }\n }\n })\n let concatArray = state.slice(0, selectedIndex + 1).concat(dupes)\n concatArray = concatArray.concat(state.slice(selectedIndex + 1))\n return concatArray.map((vj, i) => {\n vj.index = i\n return vj\n })\n case 'DELETE_VEHICLEJOURNEYS':\n return state.map((vj, i) => {\n if (vj.selected){\n return _.assign({}, vj, {deletable: true, selected: false})\n } else {\n return vj\n }\n })\n case 'SELECT_VEHICLEJOURNEY':\n return state.map((vj, i) => {\n if (i == action.index){\n return vehicleJourney(vj, action)\n } else {\n return vj\n }\n })\n case 'CANCEL_SELECTION':\n return state.map((vj) => {\n return vehicleJourney(vj, action)\n })\n case 'CANCEL_DELETION':\n return state.map((vj) => {\n if (vj.selected && vj.deletable) {\n return vehicleJourney(vj, action)\n } else {\n return vj\n }\n })\n case 'UPDATE_TIME':\n return state.map((vj, i) => {\n if (i == action.index){\n return vehicleJourney(vj, action)\n } else {\n return vj\n }\n })\n case 'DID_VALIDATE_VEHICLE_JOURNEYS':\n return [...action.vehicleJourneys]\n\n default:\n return state\n }\n}\n","import _ from 'lodash'\n\nexport default function pagination(state = {}, action) {\n switch (action.type) {\n case 'RECEIVE_JOURNEY_PATTERNS':\n case 'RECEIVE_VEHICLE_JOURNEYS':\n return _.assign({}, state, {stateChanged: false})\n case 'GO_TO_PREVIOUS_PAGE':\n if (action.pagination.page > 1){\n return _.assign({}, state, {page : action.pagination.page - 1, stateChanged: false})\n }\n return state\n case 'GO_TO_NEXT_PAGE':\n if (state.totalCount - (action.pagination.page * action.pagination.perPage) > 0){\n return _.assign({}, state, {page : action.pagination.page + 1, stateChanged: false})\n }\n return state\n case 'ADD_VEHICLEJOURNEY':\n case 'UPDATE_TIME':\n toggleOnConfirmModal('modal')\n return _.assign({}, state, {stateChanged: true})\n case 'RESET_PAGINATION':\n return _.assign({}, state, {page: 1, stateChanged: false})\n case 'RECEIVE_TOTAL_COUNT':\n return _.assign({}, state, {totalCount: action.total})\n case 'UPDATE_TOTAL_COUNT':\n return _.assign({}, state, {totalCount : state.totalCount - action.diff })\n default:\n return state\n }\n}\n\nconst toggleOnConfirmModal = (arg = '') =>{\n $('.confirm').each(function(){\n $(this).data('toggle','')\n })\n}","import _ from 'lodash'\n\nlet vehicleJourneysModal, newModalProps, vehicleJourney, alreadyPresent, notAlreadyPresent, newReferentialCodesArray, selectedConstraintZones, selectedStopAreasConstraints\n\nexport default function modal(state = {}, action) {\n switch (action.type) {\n case 'OPEN_CONFIRM_MODAL':\n $('#ConfirmModal').modal('show')\n return _.assign({}, state, {\n type: 'confirm',\n confirmModal: {\n callback: action.callback,\n }\n })\n case 'EDIT_NOTES_VEHICLEJOURNEY_MODAL':\n // Prevent unwanted modification triggered by shallow copy\n let vehicleJourneyModal = _.cloneDeep(action.vehicleJourney)\n return {\n type: 'notes_edit',\n modalProps: {\n vehicleJourney: vehicleJourneyModal\n },\n confirmModal: {}\n }\n case 'TOGGLE_FOOTNOTE_MODAL':\n newModalProps = JSON.parse(JSON.stringify(state.modalProps))\n if(action.footnote.line_notice){\n if (action.isShown){\n newModalProps.vehicleJourney.line_notices.push(action.footnote)\n }else{\n newModalProps.vehicleJourney.line_notices = newModalProps.vehicleJourney.line_notices.filter((f) => {return f.id != action.footnote.id })\n }\n }\n else{\n if (action.isShown){\n newModalProps.vehicleJourney.footnotes.push(action.footnote)\n }else{\n newModalProps.vehicleJourney.footnotes = newModalProps.vehicleJourney.footnotes.filter((f) => {return f.id != action.footnote.id })\n }\n }\n return _.assign({}, state, {modalProps: newModalProps})\n case 'EDIT_VEHICLEJOURNEY_MODAL':\n return {\n type: 'edit',\n modalProps: {\n // Prevent unwanted modification triggered by shallow copy\n vehicleJourney: _.cloneDeep(action.vehicleJourney)\n },\n confirmModal: {}\n }\n case 'INFO_VEHICLEJOURNEY_MODAL':\n return {\n type: 'edit',\n modalProps: {\n vehicleJourney: action.vehicleJourney,\n info: true\n },\n confirmModal: {}\n }\n case 'EDIT_CALENDARS_VEHICLEJOURNEY_MODAL':\n vehicleJourneysModal = JSON.parse(JSON.stringify(action.vehicleJourneys))\n let uniqTimetables = []\n vehicleJourneysModal.map((vj, i) => {\n vj.time_tables.map((tt, j) =>{\n if(!(_.find(uniqTimetables, tt))){\n uniqTimetables.push(tt)\n }\n })\n })\n return {\n type: 'calendars_edit',\n modalProps: {\n vehicleJourneys: vehicleJourneysModal,\n timetables: uniqTimetables\n },\n confirmModal: {}\n }\n case 'SELECT_CP_EDIT_MODAL':\n vehicleJourney = _.assign({}, state.modalProps.vehicleJourney, {company: action.selectedItem})\n newModalProps = _.assign({}, state.modalProps, {vehicleJourney})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'UNSELECT_CP_EDIT_MODAL':\n vehicleJourney = _.assign({}, state.modalProps.vehicleJourney, {company: undefined})\n newModalProps = _.assign({}, state.modalProps, {vehicleJourney})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'SELECT_AA_EDIT_MODAL':\n vehicleJourney = _.assign({}, state.modalProps.vehicleJourney, {accessibility_assessment: action.selectedItem})\n newModalProps = _.assign({}, state.modalProps, {vehicleJourney})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'UNSELECT_AA_EDIT_MODAL':\n vehicleJourney = _.assign({}, state.modalProps.vehicleJourney, {accessibility_assessment: undefined})\n newModalProps = _.assign({}, state.modalProps, {vehicleJourney})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'ADD_REFERENTIAL_CODE_EDIT_MODAL':\n newReferentialCodesArray = state.modalProps.vehicleJourney.referential_codes\n newReferentialCodesArray.push(action.newCode)\n return {\n ...state,\n modalProps: {\n ...state.modalProps,\n vehicleJourney: {\n ...state.modalProps.vehicleJourney,\n referential_codes: newReferentialCodesArray\n }\n }\n }\n case 'DELETE_REFERENTIAL_CODE_EDIT_MODAL':\n newReferentialCodesArray = state.modalProps.vehicleJourney.referential_codes\n newReferentialCodesArray.splice(action.index, 1)\n return {\n ...state,\n modalProps: {\n ...state.modalProps,\n vehicleJourney: {\n ...state.modalProps.vehicleJourney,\n referential_codes: newReferentialCodesArray\n }\n }\n }\n case 'UPDATE_REFERENTIAL_CODE_EDIT_MODAL':\n return {\n ...state,\n modalProps: {\n ...state.modalProps,\n vehicleJourney: {\n ...state.modalProps.vehicleJourney,\n referential_codes: state.modalProps.vehicleJourney.referential_codes.map((code, index) =>\n index === action.index ? _.assign({}, code, action.attributes) : code\n )\n }\n }\n }\n case 'SELECT_TT_CALENDAR_MODAL':\n newModalProps = _.assign({}, state.modalProps, {selectedTimetable : action.selectedItem})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'SELECT_CONSTRAINT_ZONE_MODAL':\n selectedConstraintZones = state.modalProps.selectedConstraintZones\n alreadyPresent = false\n selectedConstraintZones.map((zone_id, i)=>{\n if(zone_id == parseInt(action.selectedZone.id)){\n alreadyPresent = true\n }\n })\n if(alreadyPresent){ return state }\n selectedConstraintZones.push(parseInt(action.selectedZone.id))\n newModalProps = _.assign({}, state.modalProps, {selectedConstraintZones})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'DELETE_CONSTRAINT_ZONE_MODAL':\n newModalProps = JSON.parse(JSON.stringify(state.modalProps))\n selectedConstraintZones = state.modalProps.selectedConstraintZones.slice(0)\n selectedConstraintZones.map((zone_id, i) =>{\n if(zone_id == parseInt(action.constraintZone.id)){\n selectedConstraintZones.splice(i, 1)\n }\n })\n newModalProps.selectedConstraintZones = selectedConstraintZones\n return _.assign({}, state, {modalProps: newModalProps})\n case 'SELECT_STOPAREAS_CONSTRAINT_MODAL':\n selectedStopAreasConstraints = state.modalProps.selectedStopAreasConstraints\n alreadyPresent = false\n selectedStopAreasConstraints.map((zone_id, i)=>{\n if(zone_id == parseInt(action.selectedZone.id)){\n alreadyPresent = true\n }\n })\n if(alreadyPresent){ return state }\n selectedStopAreasConstraints.push(parseInt(action.selectedZone.id))\n newModalProps = _.assign({}, state.modalProps, {selectedStopAreasConstraints})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'DELETE_STOPAREAS_CONSTRAINT_MODAL':\n newModalProps = JSON.parse(JSON.stringify(state.modalProps))\n selectedStopAreasConstraints = state.modalProps.selectedStopAreasConstraints.slice(0)\n selectedStopAreasConstraints.map((zone_id, i) =>{\n if(zone_id == parseInt(action.constraintZone.id)){\n selectedStopAreasConstraints.splice(i, 1)\n }\n })\n newModalProps.selectedStopAreasConstraints = selectedStopAreasConstraints\n return _.assign({}, state, {modalProps: newModalProps})\n case 'ADD_SELECTED_TIMETABLE':\n if(state.modalProps.selectedTimetable){\n newModalProps = JSON.parse(JSON.stringify(state.modalProps))\n if (!_.find(newModalProps.timetables, newModalProps.selectedTimetable)){\n newModalProps.timetables.push(newModalProps.selectedTimetable)\n }\n return _.assign({}, state, {modalProps: newModalProps})\n }\n case 'DELETE_CALENDAR_MODAL':\n newModalProps = JSON.parse(JSON.stringify(state.modalProps))\n let timetablesModal = state.modalProps.timetables.slice(0)\n timetablesModal.map((tt, i) =>{\n if(tt == action.timetable){\n timetablesModal.splice(i, 1)\n }\n })\n vehicleJourneysModal = state.modalProps.vehicleJourneys.slice(0)\n vehicleJourneysModal.map((vj) =>{\n vj.time_tables.map((tt, i) =>{\n if (_.isEqual(tt, action.timetable)){\n vj.time_tables.splice(i, 1)\n }\n })\n })\n newModalProps.vehicleJourneys = vehicleJourneysModal\n newModalProps.timetables = timetablesModal\n return _.assign({}, state, {modalProps: newModalProps})\n case 'CREATE_VEHICLEJOURNEY_MODAL':\n let selectedJP = {}\n if (window.jpOrigin){\n let stopAreas = _.map(window.jpOriginStopPoints, (sp, i) =>{\n return _.assign({}, { stop_area_short_description: { id: sp.stop_area_id, name: sp.name, position: sp.position, object_id: sp.area_object_id}})\n })\n selectedJP = _.assign({}, window.jpOrigin, {stop_areas: stopAreas})\n }\n return {\n type: 'create',\n modalProps: window.jpOrigin ? {selectedJPModal: selectedJP} : {},\n confirmModal: {}\n }\n case 'SELECT_JP_CREATE_MODAL':\n let selected = action.selectedItem\n delete selected[\"element\"]\n newModalProps = _.assign({}, state.modalProps, {selectedJPModal : selected})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'SHIFT_VEHICLEJOURNEY_MODAL':\n return {\n type: 'shift',\n modalProps: {},\n confirmModal: {}\n }\n case 'SELECT_SPECIFIC_STOP_MODAL':\n return {\n type: 'select_specific_stop',\n modalProps: {\n // Prevent unwanted modification triggered by shallow copy\n vehicleJourney: _.cloneDeep(action.vehicleJourney)\n },\n confirmModal: {}\n }\n case 'DUPLICATE_VEHICLEJOURNEY_MODAL':\n return {\n type: 'duplicate',\n modalProps: {},\n confirmModal: {}\n }\n case 'CLOSE_MODAL':\n return {\n type: '',\n modalProps: {},\n confirmModal: {}\n }\n default:\n return state\n }\n}\n","import _ from 'lodash'\nimport actions from '../actions'\nlet newQuery, newInterval\n\nexport default function filters(state = {}, action) {\n switch (action.type) {\n case 'RESET_FILTERS':\n let interval = {\n start:{\n hour: '00',\n minute: '00'\n },\n end:{\n hour: '23',\n minute: '59'\n }\n }\n newQuery = _.assign({}, state.query, {interval: interval, journeyPattern: {}, vehicleJourney: {}, timetable: {}, withoutSchedule: true, withoutTimeTable: true })\n return _.assign({}, state, {query: newQuery, queryString: ''})\n case 'TOGGLE_WITHOUT_SCHEDULE':\n newQuery = _.assign({}, state.query, {withoutSchedule: !state.query.withoutSchedule})\n return _.assign({}, state, {query: newQuery})\n case 'TOGGLE_WITHOUT_TIMETABLE':\n newQuery = _.assign({}, state.query, {withoutTimeTable: !state.query.withoutTimeTable})\n return _.assign({}, state, {query: newQuery})\n case 'UPDATE_END_TIME_FILTER':\n newInterval = JSON.parse(JSON.stringify(state.query.interval))\n newInterval.end[action.unit] = actions.pad(action.val, action.unit)\n if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){\n newQuery = _.assign({}, state.query, {interval: newInterval})\n return _.assign({}, state, {query: newQuery})\n }else{\n return state\n }\n case 'UPDATE_START_TIME_FILTER':\n newInterval = JSON.parse(JSON.stringify(state.query.interval))\n newInterval.start[action.unit] = actions.pad(action.val, action.unit)\n if(parseInt(newInterval.start.hour + newInterval.start.minute) < parseInt(newInterval.end.hour + newInterval.end.minute)){\n newQuery = _.assign({}, state.query, {interval: newInterval})\n return _.assign({}, state, {query: newQuery})\n }else{\n return state\n }\n case 'SELECT_TT_FILTER':\n newQuery = _.assign({}, state.query, {timetable : action.selectedItem})\n return _.assign({}, state, {query: newQuery})\n case 'SELECT_JP_FILTER':\n newQuery = _.assign({}, state.query, {journeyPattern : action.selectedItem})\n return _.assign({}, state, {query: newQuery})\n case 'SELECT_VJ_FILTER':\n newQuery = _.assign({}, state.query, {vehicleJourney : action.selectedItem})\n return _.assign({}, state, {query: newQuery})\n case 'TOGGLE_ARRIVALS':\n return _.assign({}, state, {toggleArrivals: !state.toggleArrivals})\n case 'QUERY_FILTER_VEHICLEJOURNEYS':\n actions.fetchVehicleJourneys(action.dispatch, undefined, undefined, state.queryString)\n return state\n case 'CREATE_QUERY_STRING':\n let params = {\n 'q[journey_pattern_id_eq]': state.query.journeyPattern.id || undefined,\n 'q[objectid_cont]': state.query.vehicleJourney.objectid || undefined,\n 'q[time_tables_id_eq]': state.query.timetable.id || undefined,\n 'q[vehicle_journey_at_stops_departure_time_gteq]': (state.query.interval.start.hour + ':' + state.query.interval.start.minute),\n 'q[vehicle_journey_at_stops_departure_time_lteq]': (state.query.interval.end.hour + ':' + state.query.interval.end.minute),\n 'q[vehicle_journey_without_departure_time]': state.query.withoutSchedule,\n 'q[vehicle_journey_without_time_table]': state.query.withoutTimeTable\n }\n let queryString = actions.encodeParams(params)\n return _.assign({}, state, {queryString: queryString})\n default:\n return state\n }\n}","import { isDate, isObject, isString, } from 'lodash'\nimport format from 'date-fns/format'\nimport parse from 'date-fns/parse'\nimport isBefore from 'date-fns/isBefore'\n\nconst timeFormat = 'HH:mm'\n\nexport const formatTime = time => {\n\tif (isDate(time)) {\n\t\treturn format(time, timeFormat)\n\t}\n\n\tif (isObject(time)) {\n\t\treturn format(\n\t\t\tnew Date(2000, 1, 1, time.hour, time.minute), timeFormat)\n\t}\n}\n\nexport const parseTime = time => {\n\tif (isString(time)) {\n\t\tconst match = time.match(/\\d{2}:\\d{2}/)\n\t\treturn parse(match && match[0], timeFormat, new Date())\n\t}\n\n\tif (isObject(time)) {\n\t\treturn parse(`${time.hour}:${time.minute}`, timeFormat, new Date())\n\t}\n}\n\t\n\nexport const passingTimeIsBefore = (nextStop, prevStop) =>\n\tisBefore(\n\t\tformatTime(nextStop.arrival_time),\n\t\tformatTime(prevStop.arrival_time)\n\t)\n\nexport const computeDayOffSet = (prevStop, stop) => {\n\tlet dayOffSet = (stop.departure_day_offset || 0) + !!prevStop\n\n\tif (!!prevStop && passingTimeIsBefore(stop, prevStop)) {\n\t\tdayOffSet += 1\n\t}\n\n\treturn {\n\t\tdeparture_day_offset: dayOffSet,\n\t\tarrival_day_offset: dayOffSet\n\t}\n}\n","import { chunk, isEmpty, isEqual, isNaN, last, map } from 'lodash'\nimport subMinutes from 'date-fns/subMinutes'\nimport getMinutes from 'date-fns/getMinutes'\nimport getHours from 'date-fns/getHours'\nimport differenceInMinutes from 'date-fns/differenceInMinutes'\nimport { formatTime, parseTime } from './index'\nimport { is } from 'date-fns/locale'\n\nconst computeArrivalTime = (departure, copyItem) => {\n\tif (copyItem.isDummy) return parseTime('00:00')\n\n\treturn subMinutes(departure, copyItem.delta)\n}\nclass ClipboardHelper {\n\tconstructor() {\n\t\tthis.error = null\n\t\tthis.content = {\n\t\t\tcopy: new CopyContent(this),\n\t\t\tpaste: new PasteContent(this)\n\t\t}\n\t}\n\n\tupdateCopyContent(items, width) {\n\t\tthis.content.copy.setContent(items, width)\n\t}\n\n\tupdatePasteContent(content) {\n\t\tthis.content.paste.setContent(content)\n\t}\n\n\tvalidatePasteContent(toggleArrivals) {\n\t\treturn this.content.paste.validate(toggleArrivals)\n\t}\n}\nexport class CopyContent {\n\tconstructor(clipboard) {\n\t\tthis.clipboard = clipboard\n\t}\n\n\tsetContent(items, width) {\n\t\tthis.contentTable = chunk(items, width)\n\t}\n\t\t\n\tserialize(toggleArrivals) {\n\t\treturn this.contentTable.map(row => {\n\t\t\treturn row.map(item => {\n\t\t\t\tconst { arrival_time, departure_time, dummy } = item\n\t\t\t\tconst out = []\n\n\t\t\t\ttoggleArrivals && out.push(\n\t\t\t\t\tdummy ? '00:00' : formatTime(arrival_time)\n\t\t\t\t)\n\n\t\t\t\tout.push(\n\t\t\t\t\tdummy ? '00:00' : formatTime(departure_time, dummy)\n\t\t\t\t)\n\t\t\t\n\t\t\t\treturn out.join('\\t')\n\t\t\t}).join('\\t')\n\t\t}\n\t\t).join('\\n')\n\t}\n\n\tdeserialize(toggleArrivals) {\n\t\treturn this.contentTable.map(row => {\n\t\t\treturn row.reduce((result, item) => {\n\t\t\t\tconst { arrival_time, departure_time } = item\n\t\t\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t...toggleArrivals ? [arrival_time] : [],\n\t\t\t\t\tdeparture_time\n\t\t\t\t]\n\n\t\t\t}, [])\n\t\t})\n\t}\n}\nexport class PasteContent {\n\tconstructor(clipboard) {\n\t\tthis.clipboard = clipboard\n\t}\n\n\tget copyContent() {\n\t\treturn this.clipboard.content.copy\n\t}\n\n\tsetContent(content) {\n\t\tthis.content = content\n\t}\n\n\tserialize() {\n\t\treturn this.content.replaceAll('↵', '\\n').trim()\n\t}\n\n\tget contentTable() {\n\t\treturn this.serialize().split('\\n').map(r => r.split(/\\s+|\\t/))\n\t}\n\n\tisDummy(content) {\n\t\treturn content.trim() == '-'\n\t}\n\n\tdeserialize(toggleArrivals) {\n\t\tconst chunkSize = toggleArrivals ? 2 : 1\n\n\t\treturn this.contentTable.map((row, i) => {\n\t\t\tconst deserializedCopyContent = this.copyContent.contentTable\n\t\t\tconst copyRow = deserializedCopyContent[i]\n\n\t\t\treturn chunk(row, chunkSize).map((cells, j) => {\n\t\t\t\t/*\n\t\t\t\t\tcells can be an array with:\n\t\t\t\t\t\t- one value if toggleArrivals is false => ['06:55']\n\t\t\t\t\t\t- two values if toggleArrivals is true => ['06:55', '06:56']\n\t\t\t\t*/\n\t\t\t\tconst copyItem = copyRow[j]\n\t\t\t\tconst cellContent = this.isDummy(last(cells)) ? '00:00' : last(cells)\n\t\t\t\tconst departure = parseTime(cellContent)\n\t\t\t\tconst arrival = toggleArrivals ? parseTime(cells[0]) : computeArrivalTime(departure, copyItem)\n\n\t\t\t\treturn {\n\t\t\t\t\tx: copyItem.x,\n\t\t\t\t\ty: copyItem.y,\n\t\t\t\t\tdeparture_time: {\n\t\t\t\t\t\thour: getHours(departure),\n\t\t\t\t\t\tminute: getMinutes(departure)\n\t\t\t\t\t},\n\t\t\t\t\tarrival_time: {\n\t\t\t\t\t\thour: getHours(arrival),\n\t\t\t\t\t\tminute: getMinutes(arrival)\n\t\t\t\t\t},\n\t\t\t\t\tdelta: differenceInMinutes(departure, arrival)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\tvalidate(toggleArrivals) {\n\t\tthis.clipboard.error = null\n\t\tconst deserializedContent = this.contentTable\n\t\tconst deserializedCopyContent = this.copyContent.deserialize(toggleArrivals)\n\n\t\ttry {\n\t\t\tif (isEmpty(deserializedContent)) {\n\t\t\t\tthrow ('missing_content')\n\t\t\t}\n\n\t\t\t// compare sizes\n\t\t\tconst sizeMatch = isEqual(\n\t\t\t\tmap(deserializedContent, 'length'),\n\t\t\t\tmap(deserializedCopyContent, 'length')\n\t\t\t)\n\n\t\t\tif (!sizeMatch) {\n\t\t\t\tthrow ('size_does_not_match')\n\t\t\t}\n\n\t\t\tdeserializedContent.forEach(row => {\n\t\t\t\trow.forEach(cell => {\n\t\t\t\t\tif (this.isDummy(cell)) return\n\n\t\t\t\t\tconst [hour, minute] = cell.split(':')\n\n\t\t\t\t\tif (!isEqual(hour.length, 2) || !isEqual((minute || '').length, 2)) {\n\t\t\t\t\t\tthrow ('wrong_time_format')\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tconst date = parseTime({ hour, minute })\n\n\t\t\t\t\tif(isNaN(date.getTime())) {\n\t\t\t\t\t\tthrow('wrong_time_format')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\n\t\t\treturn true\n\t\t} catch (error) {\n\t\t\tthis.clipboard.error = error\n\t\t\treturn false\n\t\t}\n\t}\n}\n\nexport default new ClipboardHelper()\n","export default function stopPointsList(state = [], action) {\n switch (action.type) {\n default:\n return state\n }\n}","import { combineReducers } from 'redux'\nimport actions from '../actions'\nimport vehicleJourneys from './vehicleJourneys'\nimport returnVehicleJourneys from './returnVehicleJourneys'\nimport pagination from './pagination'\nimport modal from './modal'\nimport status from './status'\nimport filters from './filters'\nimport editMode from './editMode'\nimport selection from './selection'\nimport stopPointsList from './stopPointsList'\nimport missions from './missions'\nimport custom_fields from './custom_fields'\n\nvar selectedJP = []\n\nif (window.journeyPatternId)\n selectedJP.push(window.journeyPatternId)\n\nconst initialState = {\n editMode: false,\n filters: {\n selectedJourneyPatterns: selectedJP,\n policy: window.perms,\n features: window.features,\n toggleArrivals: false,\n queryString: '',\n query: {\n interval: {\n start: {\n hour: '00',\n minute: '00'\n },\n end: {\n hour: '23',\n minute: '59'\n }\n },\n journeyPattern: {\n published_name: ''\n },\n vehicleJourney: {\n objectid: ''\n },\n company: {\n name: ''\n },\n accessibility_assessment: {\n name: ''\n },\n timetable: {\n comment: ''\n },\n withoutSchedule: true,\n withoutTimeTable: true\n }\n\n },\n status: {\n fetchSuccess: false,\n isFetching: false\n },\n vehicleJourneys: [],\n stopPointsList: window.stopPoints,\n returnStopPointsList: window.returnStopPoints,\n pagination: {\n page: 1,\n totalCount: 0,\n perPage: window.vehicleJourneysPerPage,\n stateChanged: false\n },\n modal: {\n type: '',\n modalProps: {},\n confirmModal: {}\n },\n missions: window.all_missions,\n custom_fields: window.custom_fields,\n selection: {\n active: false,\n width: 0,\n height: 0,\n copyModal: {\n visible: false,\n mode: 'copy',\n content: {\n copy: '',\n paste: ''\n }\n },\n items: []\n }\n}\n\nif (window.jpOrigin) {\n initialState.filters.query.journeyPattern = {\n id: window.jpOrigin.id,\n name: window.jpOrigin.name,\n published_name: window.jpOrigin.published_name,\n objectid: window.jpOrigin.objectid\n }\n let params = {\n 'q[journey_pattern_id_eq]': initialState.filters.query.journeyPattern.id,\n 'q[objectid_cont]': initialState.filters.query.vehicleJourney.objectid\n }\n initialState.filters.queryString = actions.encodeParams(params)\n}\n\nexport { initialState }\n\nconst combinedReducers = combineReducers({\n vehicleJourneys,\n returnVehicleJourneys,\n pagination,\n modal,\n status,\n filters,\n editMode,\n stopPointsList,\n returnStopPointsList: stopPointsList,\n missions,\n custom_fields,\n selection: (state = {}, action) => state\n})\n\nexport default function(state = {}, action) {\n const newState = combinedReducers(state, action)\n\n return selection(newState, action)\n}\n","import _ from 'lodash'\nimport actions from '../actions'\n\nexport default function returnVehicleJourneys(state = [], action) {\n switch (action.type) {\n case 'RECEIVE_RETURN_VEHICLE_JOURNEYS':\n return [...action.json]\n default:\n return state\n }\n}\n","import _ from 'lodash'\nimport actions from '../actions'\n\nexport default function status(state = {}, action) {\n switch (action.type) {\n case 'UNAVAILABLE_SERVER':\n return _.assign({}, state, {fetchSuccess: false})\n case 'FETCH_API':\n return _.assign({}, state, {isFetching: true})\n case 'RECEIVE_VEHICLE_JOURNEYS':\n return _.assign({}, state, {fetchSuccess: true, isFetching: false})\n case 'RECEIVE_ERRORS':\n return _.assign({}, state, {fetchSuccess: true, isFetching: false})\n default:\n return state\n }\n}","export default function editMode(state = {}, action ) {\n switch (action.type) {\n case \"ENTER_EDIT_MODE\":\n return true\n case \"EXIT_EDIT_MODE\":\n return false\n default:\n return state\n }\n}","export default function missions(state = [], action) {\n switch (action.type) {\n default:\n return state\n }\n}\n","export default function custom_fields(state = [], action) {\n switch (action.type) {\n default:\n return state\n }\n}\n","import React from 'react'\nimport { Async as Select } from 'react-select'\nimport { Path } from 'path-parser'\n\nconst params = new Path('/workbenches/:workbenchId/referentials/:referentialId/lines/:lineId/routes/:routeId').partialTest(location.pathname)\nconst comapniesPathParams = new Path('/workbenches/:workbenchId/line_referential/companies').partialTest(window.companiesPath || '') // Doing for to let specs pass (could not find a wat to mock window values properly)\n\nconst path = `/workbenches/${comapniesPathParams?.workbenchId}/autocomplete/companies`\n\nconst CompanySelect2 = ({ company, editMode, editModal, onSelect2Company, onUnselect2Company }) => (\n text}\n getOptionValue={({ id }) => id}\n loadOptions={async inputValue => {\n const response = await fetch(`${path}.json?${new URLSearchParams({ line_id: params?.lineId, q: inputValue }).toString()}`)\n const companies = await response.json()\n\n return companies\n }}\n isDisabled={!editMode && editModal}\n placeholder={I18n.t('vehicle_journeys.vehicle_journeys_matrix.affect_company')}\n onChange={(company, meta) => {\n switch(meta.action) {\n case 'select-option':\n onSelect2Company({ id: company.id, name: company.text })\n break\n case 'deselect-option':\n case 'clear':\n onUnselect2Company()\n break\n }\n }}\n styles={{\n control: (provided) => ({\n ...provided,\n minHeight: '51px',\n height: '51px'\n }),\n menu: base => ({ ...base, zIndex: 2000 })\n }}\n />\n)\n\nexport default CompanySelect2\n","import React from 'react'\nimport { Async as Select } from 'react-select'\nimport { Path } from 'path-parser'\n\nconst params = new Path('/workbenches/:workbenchId/referentials/:referentialId/lines/:lineId/routes/:routeId').partialTest(location.pathname)\nconst accessibility_assessmentsPathParams = new Path('/workbenches/:workbenchId/shape_referential/accessibility_assessments').partialTest(window.accessibilityAssessmentsPath || '') // Doing for to let specs pass (could not find a wat to mock window values properly)\n\nconst path = `/workbenches/${accessibility_assessmentsPathParams?.workbenchId}/shape_referential/accessibility_assessments/autocomplete`\n\nconst AccessibilityAssessmentSelect2 = ({ accessibility_assessment, editMode, editModal, onSelect2AccessibilityAssessment, onUnselect2AccessibilityAssessment }) => (\n text}\n getOptionValue={({ id }) => id}\n loadOptions={async inputValue => {\n const response = await fetch(`${path}.json?${new URLSearchParams({ q: inputValue }).toString()}`)\n const accessibility_assessments = await response.json()\n\n return accessibility_assessments\n }}\n isDisabled={!editMode && editModal}\n placeholder={I18n.t('vehicle_journeys.vehicle_journeys_matrix.affect_accessibility_assessment')}\n onChange={(accessibility_assessment, meta) => {\n switch(meta.action) {\n case 'select-option':\n onSelect2AccessibilityAssessment({ id: accessibility_assessment.id, name: accessibility_assessment.text })\n break\n case 'deselect-option':\n case 'clear':\n onUnselect2AccessibilityAssessment()\n break\n }\n }}\n styles={{\n control: (provided) => ({\n ...provided,\n minHeight: '51px',\n height: '51px'\n }),\n menu: base => ({ ...base, zIndex: 2000 })\n }}\n />\n)\n\nexport default AccessibilityAssessmentSelect2\n","import _ from 'lodash'\nimport Select2 from 'react-select2-wrapper'\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport shortid from 'shortid'\n\n\nexport default class CodesInputs extends Component {\n constructor(props) {\n super(props)\n }\n\n createNewReferentialCode() {\n return {\n id: null,\n code_space_id: window.available_code_spaces[0].id,\n value: \"\",\n fallback_id: shortid.generate()\n }\n }\n\n render() {\n return (\n
\n { this.props.values.map((code, index) =>\n
\n
\n
\n {this.props.onUpdateReferentialCode(index, {code_space_id: +e.target.value})} }\n >\n {window.available_code_spaces.map((code_space) =>\n \n )}\n \n
\n
\n\n
\n
\n {this.props.onUpdateReferentialCode(index, {value: e.target.value})} }\n\n />\n
\n
\n {!this.props.disabled &&\n
\n
\n { this.props.onDeleteReferentialCode(index) }}\n >\n \n \n
\n
\n }\n
\n )}\n {!this.props.disabled &&\n
\n { this.props.onAddReferentialCode(this.createNewReferentialCode()) }}\n >\n { I18n.t('vehicle_journeys.form.add_referential_code') }\n \n
\n }\n
\n )\n }\n}\n\nCodesInputs.propTypes = {\n onUpdateReferentialCode: PropTypes.func.isRequired,\n onDeleteReferentialCode: PropTypes.func.isRequired,\n onAddReferentialCode: PropTypes.func.isRequired,\n values: PropTypes.array.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport CompanySelect2 from './select2s/CompanySelect2'\nimport AccessibilityAssessmentSelect2 from './select2s/AccessibilityAssessmentSelect2'\nimport CustomFieldsInputs from '../../../helpers/CustomFieldsInputs'\nimport CodesInputs from './CodesInputs'\nimport _ from 'lodash'\n\nexport default class EditVehicleJourney extends Component {\n constructor(props) {\n super(props)\n this.updateValue = this.updateValue.bind(this)\n }\n\n handleSubmit() {\n if(actions.validateFields(this.refs) == true) {\n var company = undefined\n var accessibility_assessment = undefined\n\n if(this.props.modal.modalProps.selectedCompany) {\n company = this.props.modal.modalProps.selectedCompany\n } else if (typeof this.props.modal.modalProps.vehicleJourney.company === \"object\") {\n company = this.props.modal.modalProps.vehicleJourney.company\n }\n\n if(this.props.modal.modalProps.selectedAccessibilityAssessment) {\n accessibility_assessment = this.props.modal.modalProps.selectedAccessibilityAssessment\n } else if (typeof this.props.modal.modalProps.vehicleJourney.accessibility_assessment === \"object\") {\n accessibility_assessment = this.props.modal.modalProps.vehicleJourney.accessibility_assessment\n }\n\n this.props.onEditVehicleJourney(_.assign({}, this.refs, {custom_fields: this.props.modal.modalProps.vehicleJourney.custom_fields, referential_codes: this.props.modal.modalProps.vehicleJourney.referential_codes}), company, accessibility_assessment)\n this.props.onModalClose()\n $('#EditVehicleJourneyModal').modal('hide')\n }\n }\n\n updateValue(attribute, e) {\n this.props.modal.modalProps.vehicleJourney[attribute] = e.target.value\n actions.resetValidation(e.currentTarget)\n this.forceUpdate()\n }\n\n editMode() {\n return !this.props.modal.modalProps.info && this.props.editMode\n }\n\n render() {\n if(this.props.status.isFetching == true) {\n return false\n }\n if(this.props.status.fetchSuccess == true) {\n return (\n
  • \n this.props.onOpenEditModal(actions.getSelected(this.props.vehicleJourneys)[0])}\n >\n \n \n\n
    \n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.form.infos')}

    \n ×\n
    \n\n {(this.props.modal.type == 'edit') && (\n
    \n
    \n
    \n
    \n
    \n \n this.updateValue('published_journey_name', e)}\n />\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n this.updateValue('published_journey_identifier', e)}\n />\n
    \n
    \n
    \n
    \n \n this.props.onSelect2Company(e)}\n onUnselect2Company = {() => this.props.onUnselect2Company()}\n />\n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n this.props.onSelect2AccessibilityAssessment(e)}\n onUnselect2AccessibilityAssessment = {() => this.props.onUnselect2AccessibilityAssessment()}\n />\n
    \n
    \n this.custom_fields[code][\"value\"] = value}\n disabled={!this.editMode()}\n />\n
    \n { !(_.isEmpty(window.available_code_spaces)) &&\n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n }\n
    \n\n {\n this.editMode() &&\n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n }\n
    \n )}\n\n
    \n
    \n
    \n
    \n
  • \n )\n } else {\n return false\n }\n }\n}\n\nEditVehicleJourney.propTypes = {\n onOpenEditModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport EditComponent from '../../components/tools/EditVehicleJourney'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n editMode: state.editMode,\n disabled: ownProps.disabled,\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n onOpenEditModal: (vj) =>{\n dispatch(actions.openEditModal(vj))\n },\n onEditVehicleJourney: (data, selectedCompany, selectedAccessibilityAssessment) =>{\n dispatch(actions.editVehicleJourney(data, selectedCompany, selectedAccessibilityAssessment))\n },\n onSelect2Company: company => {\n dispatch(actions.select2Company(company))\n },\n onUnselect2Company: () => {\n dispatch(actions.unselect2Company())\n },\n onSelect2AccessibilityAssessment: accessibility_assessment => {\n dispatch(actions.select2AccessibilityAssessment(accessibility_assessment))\n },\n onUnselect2AccessibilityAssessment: () => {\n dispatch(actions.unselect2AccessibilityAssessment())\n },\n onAddReferentialCode: (code) => {\n dispatch(actions.addReferentialCode(code))\n },\n onDeleteReferentialCode: (index) => {\n dispatch(actions.deleteReferentialCode(index))\n },\n onUpdateReferentialCode: (index, attributes) => {\n dispatch(actions.updateReferentialCode(index, attributes))\n },\n }\n}\n\nconst EditVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(EditComponent)\n\nexport default EditVehicleJourney\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\n\nexport default class VehicleJourneyInfoButton extends Component {\n constructor(props) {\n super(props)\n }\n\n\n render() {\n return (\n
    \n this.props.onOpenEditModal(this.props.vehicleJourney)}\n >\n \n \n
    \n )\n }\n}\n\nVehicleJourneyInfoButton.propTypes = {\n onOpenEditModal: PropTypes.func.isRequired,\n vehicleJourney: PropTypes.object.isRequired,\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport VehicleJourneyInfoButtonComponent from '../../components/tools/VehicleJourneyInfoButton'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onOpenEditModal: (vj) =>{\n dispatch(actions.openInfoModal(vj))\n },\n }\n}\n\nconst VehicleJourneyInfoButton = connect(mapStateToProps, mapDispatchToProps)(VehicleJourneyInfoButtonComponent)\n\nexport default VehicleJourneyInfoButton\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { partial } from 'lodash'\nimport { createSelectable } from 'react-selectable-fast'\nimport autoBind from 'react-autobind'\n\nclass VehicleJourneyAtStop extends Component {\n\tconstructor(props) {\n\t\tsuper(props)\n\t\t\n\t\tautoBind(this)\n\t}\n\n\t// Getters\n\tget hasDelta() {\n\t\tconst { vjas: { delta } } = this.props\n\n\t\treturn delta > 0\n\t}\n\n\tget tdClasses() {\n\t\tconst {\n\t\t\tisSelecting,\n\t\t\tisSelected,\n\t\t\tisInSelection\n\t\t} = this.props\n\t\tconst out = ['td', 'text-center']\n\n\t\tout.push('selectable')\n\n\t\tif (isSelecting || isSelected || isInSelection) {\n\t\t\tout.push('selected')\t\n\t\t}\n\n\t\treturn out.join(' ')\n\t}\n\n\tdisplayDelta() {\n\t\tconst { vjas: { delta } } = this.props\n\n\t\treturn delta > 99 ? '+' : delta\n\t}\n\n\tonUpdateTime(subIndex, index, e, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency = false) {\n\t\tconst { value } = e.target\n\t\tthis.props.onUpdateTime(value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency)\n\t}\n\n\trenderSelectionSize() {\n\n\t\tconst { isSelectionBottomRight, selectionContentText, selectionMode } = this.props\n\n\t\tif (!selectionMode) return false\n\n\t\treturn isSelectionBottomRight && (\n\t\t\t
    \n\t\t\t\t{selectionContentText}\n\t\t\t
    \n\t\t)\n\t}\n\n\trenderDelta() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{this.hasDelta &&\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t
    \n\t\t)\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tvjas,\n\t\t\tx,\n\t\t\ty,\n\t\t\tisDisabled,\n\t\t\tisEditable,\n\t\t\tcityNameChecker,\n\t\t\ttoggleArrivals,\n\t\t\thasUpdatePermission,\n\t\t\tselectableRef,\n\t\t} = this.props\n\n\t\tconst onUpdateTime = partial(this.onUpdateTime, y, x)\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.renderSelectionSize()}\n\t\t\t\t
    \n\t\t\t\t\t{toggleArrivals &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t { isEditable && onUpdateTime(e, 'hour', false, false) }}\n\t\t\t\t\t\t\t\t\tonMouseOut={e => { isEditable && onUpdateTime(e, 'hour', false, false, true) }}\n\t\t\t\t\t\t\t\t\tonBlur={e => { isEditable && onUpdateTime(e, 'hour', false, false, true) }}\n\t\t\t\t\t\t\t\t\tvalue={vjas.arrival_time['hour']}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t { isEditable && onUpdateTime(e, 'minute', false, false) }}\n\t\t\t\t\t\t\t\t\tonMouseOut={e => { isEditable && onUpdateTime(e, 'minute', false, false, true) }}\n\t\t\t\t\t\t\t\t\tonBlur={e => { isEditable && onUpdateTime(e, 'minute', false, false, true) }}\n\t\t\t\t\t\t\t\t\tvalue={vjas.arrival_time['minute']}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t}\n\t\t\t\t\t{this.renderDelta()}\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t { isEditable && onUpdateTime(e, 'hour', true, toggleArrivals) }}\n\t\t\t\t\t\t\t\tonMouseOut={e => { isEditable && onUpdateTime(e, 'hour', true, toggleArrivals, true) }}\n\t\t\t\t\t\t\t\tonBlur={e => { isEditable && onUpdateTime(e, 'hour', true, toggleArrivals, true) }}\n\t\t\t\t\t\t\t\tvalue={vjas.departure_time['hour']}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t { isEditable && onUpdateTime(e, 'minute', true, toggleArrivals) }}\n\t\t\t\t\t\t\t\tonMouseOut={e => { isEditable && onUpdateTime(e, 'minute', true, toggleArrivals, true) }}\n\t\t\t\t\t\t\t\tonBlur={e => { isEditable && onUpdateTime(e, 'minute', true, toggleArrivals, true) }}\n\t\t\t\t\t\t\t\tvalue={vjas.departure_time['minute']}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t)\n\t}\n}\n\nexport default createSelectable(VehicleJourneyAtStop)\n\nVehicleJourneyAtStop.propTypes = {\n\tx: PropTypes.number.isRequired,\n\ty: PropTypes.number.isRequired,\n\tvjas: PropTypes.object.isRequired,\n\tisSelectionBottomRight: PropTypes.bool.isRequired,\n\tselectionContentText: PropTypes.string.isRequired,\n\tisEditable: PropTypes.bool.isRequired,\n\tisDisabled: PropTypes.bool.isRequired,\n\tvjas: PropTypes.object.isRequired,\n\thasUpdatePermission: PropTypes.bool.isRequired,\n\tonUpdateTime: PropTypes.func.isRequired,\n\tcityNameChecker: PropTypes.func.isRequired,\n\ttoggleArrivals: PropTypes.bool.isRequired,\n\tselectionMode: PropTypes.bool.isRequired,\n\tisInSelection: PropTypes.bool.isRequired,\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport autoBind from 'react-autobind'\nimport { last, truncate } from 'lodash'\nimport actions from '../actions'\nimport EditVehicleJourney from '../containers/tools/EditVehicleJourney'\nimport VehicleJourneyInfoButton from '../containers/tools/VehicleJourneyInfoButton'\nimport VehicleJourneyAtStop from './VehicleJourneyAtStop'\nexport default class VehicleJourney extends Component {\n constructor(props) {\n super(props)\n this.previousCity = undefined\n\n autoBind(this)\n }\n\n // Getters\n get isEditable() {\n return this.props.editMode && !this.props.selection.active\n }\n\n journey_length() {\n return this.formatDistance(this.props.value.journey_pattern.journey_length)\n }\n\n cityNameChecker(sp) {\n return this.props.vehicleJourneys.showHeader(sp.stop_point_objectid)\n }\n\n hasFeature(key) {\n return this.props.filters.features[key]\n }\n\n timeTableURL(tt) {\n let refURL = window.location.pathname.split('/', 5).join('/')\n let ttURL = refURL + '/time_tables/' + tt.id\n\n return (\n \n )\n }\n\n hasTimeTable(time_tables, tt) {\n let found = false\n time_tables.map((t, index) => {\n if(t.id == tt.id){\n found = true\n return\n }\n })\n return found\n }\n\n extraHeaderValue(header) {\n if(header.type == \"custom_field\"){\n let field = this.props.value.custom_fields[header[\"name\"]]\n if(field.field_type == \"list\"){\n return field.options.list_values[field.value]\n }\n else{\n return field.value\n }\n }\n else{\n return this.props.value[header[\"name\"]]\n }\n }\n\n formatDistance = distance => {\n if (distance < 1000) {\n return distance + \" m\"\n }\n else {\n return (distance / 1000).toFixed(2) + \" km\"\n }\n }\n\n render() {\n this.previousCity = undefined\n let detailed_calendars = this.hasFeature('detailed_calendars') && !this.disabled\n let detailed_calendars_shown = $('.detailed-timetables-bt').hasClass('active')\n let { time_tables } = this.props.value\n const {\n selection: {\n items: selectedItems,\n dimensionContent: selectionDimensionContent\n }\n } = this.props\n\n const lastSelectedItem = last(selectedItems) || {}\n\n\n return (\n
    \n \n !this.props.disabled && ($(e.target).parents(\"a\").length == 0) && this.props.onSelectVehicleJourney(this.props.index)\n }\n >\n
    {this.props.value.short_id || '-'}
    \n \n
    {this.props.value.journey_pattern.short_id || '-'}
    \n
    {this.props.value.company ? this.props.value.company.name : '-'}
    \n
    {this.props.value.accessibility_assessment ? truncate(this.props.value.accessibility_assessment.name, 20) : '-'}
    \n {\n this.props.extraHeaders.map((header, i) =>\n
    {this.extraHeaderValue(header)}
    \n )\n }\n { this.hasFeature('journey_length_in_vehicle_journeys') &&\n
    \n {this.journey_length()}\n
    \n }\n
    \n {time_tables.slice(0,3).map((tt, i)=>\n {this.timeTableURL(tt)}\n )}\n {time_tables.length > 3 && + {time_tables.length - 3}}\n
    \n {!this.props.disabled &&
    \n this.props.onSelectVehicleJourney(this.props.index)}\n type='checkbox'\n checked={this.props.value.selected}\n >\n \n
    }\n\n {this.props.disabled && }\n\n { detailed_calendars &&\n
    \n {this.props.allTimeTables.map((tt, i) =>\n
    \n )}\n
    \n }\n\n
    \n {this.props.value.vehicle_journey_at_stops.map((vjas, i) => {\n const isInSelection = !!(selectedItems || []).find(({ x, y }) => x == this.props.index && y == i)\n const isSelectionBottomRight = lastSelectedItem.y == i && lastSelectedItem.x == this.props.index\n\n return (\n \n )\n }\n )}\n \n )\n }\n}\n\nVehicleJourney.propTypes = {\n value: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n index: PropTypes.number.isRequired,\n onUpdateTime: PropTypes.func.isRequired,\n onSelectVehicleJourney: PropTypes.func.isRequired,\n vehicleJourneys: PropTypes.object.isRequired,\n allTimeTables: PropTypes.array.isRequired,\n extraHeaders: PropTypes.array.isRequired,\n selection: PropTypes.object.isRequired,\n}\n","import React, { useEffect, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport { SelectableGroup } from 'react-selectable-fast'\nimport { inRange, isEmpty, map, max, min, reduce } from 'lodash'\nimport { useDebounce } from '../../helpers/hooks'\n\nconst SelectableContainer = props => {\n\tconst {\n\t\tchildren,\n\t\tclearSelectedItems,\n\t\tselectionMode,\n\t\tselectedItems,\n\t\tupdateSelectedItems,\n\t\tupdateSelectionDimensions,\n\t\tupdateSelectionLocked,\n\t\tvehicleJourneysAtStops\n\t} = props\n\n\tconst [bounds, setBounds] = useState(null)\n\tconst [locked, setLocked] = useState(false)\n\n\tconst handleClear = () => {\n\t\tsetLocked(false)\n\t\tsetBounds(null)\n\t}\n\n\tconst handleNewSelection = done => items => {\n\t\tconst itemCollection = [...selectedItems, ...map(items, 'props')]\n\n\t\tsetLocked(done)\n\n\t\tsetBounds(() =>\n\t\t\treduce(itemCollection, (result, item) => {\n\t\t\t\tconst { minX, maxX, minY, maxY } = result\n\t\t\t\tconst { y, x } = item\n\n\t\t\t\treturn {\n\t\t\t\t\tminX: min([minX, x]),\n\t\t\t\t\tmaxX: max([maxX, x]),\n\t\t\t\t\tminY: min([minY, y]),\n\t\t\t\t\tmaxY: max([maxY, y])\n\t\t\t\t}\n\t\t\t}, {})\n\t\t)\n\t}\n\n\tconst handleSelecting = useDebounce(handleNewSelection(false), 300)\n\n\tconst handleSelectFinish = items => {\n\t\tconst hasItems = !isEmpty(items)\n\t\tsetTimeout(() => {\n\t\t\thasItems && handleNewSelection(true)(items)\n\t\t}, 301)\n\t}\n\n\tuseEffect(() => {\n\t\tif (bounds) {\n\t\t\tconst width = (bounds.maxX - bounds.minX) + 1\n\t\t\tconst height = (bounds.maxY - bounds.minY) + 1\n\n\t\t\tconst newSelectedItems = vehicleJourneysAtStops.filter(vjas =>\n\t\t\t\tinRange(vjas.x, bounds.minX, bounds.maxX + 1) &&\n\t\t\t\tinRange(vjas.y, bounds.minY, bounds.maxY + 1)\n\t\t\t)\n\n\t\t\tupdateSelectedItems(newSelectedItems)\n\t\t\tupdateSelectionDimensions(width, height)\n\t\t\tlocked && updateSelectionLocked(true)\n\t\t} else {\n\t\t\tclearSelectedItems()\n\t\t}\n\t}, [bounds])\n\n\tif (!selectionMode)\n\t\treturn children\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t)\n}\n\nexport default SelectableContainer\n\nSelectableContainer.propTypes = {\n\tselectionMode: PropTypes.bool.isRequired,\n\ttoggleArrivals: PropTypes.bool.isRequired,\n\tupdateSelectedItems: PropTypes.func.isRequired,\n\tupdateSelectionDimensions: PropTypes.func.isRequired,\n\tupdateSelectionLocked: PropTypes.func.isRequired,\n\tvehicleJourneysAtStops: PropTypes.array.isRequired\n}\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport { chain } from 'lodash'\nimport SelectableContainer from '../components/SelectableContainer'\n\nconst sortedVjas = vehicleJourneys => {\n\tconst vjMapper = (vj, x) => vj.vehicle_journey_at_stops.map(\n\t\t(vjas, y) => ({ ...vjas, x, y })\n\t)\n\n\treturn chain(vehicleJourneys)\n\t\t.flatMap(vjMapper)\n\t\t.sortBy(['y', 'x'])\n\t\t.value()\n}\n\nconst mapStateToProps = ({ selection, filters, vehicleJourneys }) => ({\n\tselectionMode: selection.active,\n\tselectedItems: selection.items || [],\n\ttoggleArrivals: filters.toggleArrivals,\n\tvehicleJourneysAtStops: sortedVjas(vehicleJourneys)\n})\n\nconst mapDispatchToProps = (dispatch) => ({\n\tupdateSelectedItems: items => {\n\t\tdispatch(actions.updateSelectedItems(items))\n\t},\n\tclearSelectedItems: () => dispatch(actions.clearSelectedItems()),\n\tupdateSelectionDimensions: (width, height) => {\n\t\tdispatch(actions.updateSelectionDimensions(width, height))\n\t},\n\tupdateSelectionLocked: bool => {\n\t\tdispatch(actions.updateSelectionLocked(bool))\n\t}\n})\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SelectableContainer)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { flatMap, isEmpty, map, some, uniqBy } from 'lodash'\nimport autoBind from 'react-autobind'\nimport VehicleJourney from './VehicleJourney'\nimport StopAreaHeaderManager from '../../helpers/stop_area_header_manager'\nimport SelectableContainer from '../containers/SelectableContainer'\n\nexport default class VehicleJourneysList extends Component {\n constructor(props){\n super(props)\n this.headerManager = new StopAreaHeaderManager(\n map(this.stopPoints, sp => sp.object_id),\n this.stopPoints,\n this.props.filters.features\n )\n autoBind(this)\n }\n\n // Getters\n get isReturn() {\n return this.props.routeUrl != undefined\n }\n\n get vehicleJourneysList() {\n const { returnVehicleJourneys, vehicleJourneys } = this.props\n\n return this.isReturn ? returnVehicleJourneys : vehicleJourneys\n }\n\n get stopPoints() {\n const { returnStopPointsList, stopPointsList } = this.props\n\n return this.isReturn ? returnStopPointsList : stopPointsList\n }\n\n get selectionClasses() {\n if (this.isReturn) return ''\n\n const out = []\n\n const { active, locked } = this.props.selection\n\n active && out.push('selection-mode')\n locked && out.push('selection-locked')\n\n return out.join(' ')\n }\n\n get allTimeTables() {\n const tt = flatMap(this.vehicleJourneysList, 'time_tables')\n return uniqBy(tt, 'id')\n }\n\n // Handlers\n onKeyDown(event) {\n const { selection, onKeyDown, filters } = this.props\n\n if (this.isReturn) return\n if (!selection.active) return\n if (!this.bubbleKeyEvent(event)) return\n\n onKeyDown(event, selection, filters.toggleArrivals)\n }\n\n // Helpers\n hasFeature(key) {\n return this.props.filters.features[key]\n }\n\n showHeader(object_id) {\n return this.headerManager.showHeader(object_id)\n }\n\n toggleTimetables(e) {\n let root = $(this.refs['vehicleJourneys'])\n root.find('.table-2entries .detailed-timetables').toggleClass('hidden')\n root.find('.table-2entries .detailed-timetables-bt').toggleClass('active')\n this.componentDidUpdate()\n e.preventDefault()\n false\n }\n\n timeTableURL(tt) {\n let refURL = window.location.pathname.split('/', 5).join('/')\n let ttURL = refURL + '/time_tables/' + tt.id\n\n return (\n {tt.days || tt.comment}\n )\n }\n\n extraHeaderLabel(header) {\n if (header[\"type\"] == \"custom_field\") {\n return this.props.customFields[header[\"name\"]][\"name\"]\n }\n else {\n return I18n.attribute_name(\"vehicle_journey\", header)\n }\n }\n\n bubbleKeyEvent(event) {\n const { key, metaKey, ctrlKey } = event\n return (\n key == 'Shift' ||\n (metaKey || ctrlKey) && ['Enter', 'c', 'v'].includes(key)\n )\n }\n\n // Lifecycle\n componentDidMount() {\n this.props.onLoadFirstPage(this.props.filters, this.props.routeUrl)\n }\n\n componentDidUpdate(prevProps, prevState) {\n if(this.props.status.isFetching == false){\n $('.table-2entries').each(function() {\n $(this).find('.th').css('height', 'auto')\n var refH = []\n var refCol = []\n\n $(this).find('.t2e-head').children('div').each(function() {\n var h = this.getBoundingClientRect().height;\n refH.push(h)\n });\n\n var i = 0\n $(this).find('.t2e-item').children('div').each(function() {\n var h = this.getBoundingClientRect().height;\n if(refCol.length < refH.length){\n refCol.push(h)\n } else {\n if(h > refCol[i]) {\n refCol[i] = h\n }\n }\n if(i == (refH.length - 1)){\n i = 0\n } else {\n i++\n }\n });\n\n for(var n = 0; n < refH.length; n++) {\n if(refCol[n] < refH[n]) {\n refCol[n] = refH[n]\n }\n }\n\n $(this).find('.th').css('height', refCol[0]);\n\n for(var nth = 1; nth < refH.length; nth++) {\n $(this).find('.td:nth-child('+ (nth + 1) +')').css('height', refCol[nth]);\n }\n })\n document.addEventListener(\"keydown\", this.onKeyDown)\n document.addEventListener(\"visibilitychange\", this.props.onVisibilityChange)\n document.addEventListener(\"webkitvisibilitychange\", this.props.onVisibilityChange)\n document.addEventListener(\"mozvisibilitychange\", this.props.onVisibilityChange)\n document.addEventListener(\"msvisibilitychange\", this.props.onVisibilityChange)\n // document.addEventListener(\"focusin\", this.props.onVisibilityChange)\n window.addEventListener(\"pageshow\", this.props.onVisibilityChange)\n window.addEventListener(\"focus\", this.props.onVisibilityChange)\n }\n }\n\n render() {\n this.previousBreakpoint = undefined\n let detailed_calendars = this.hasFeature('detailed_calendars') && !this.isReturn && !isEmpty(this.allTimeTables)\n requestAnimationFrame(function(){\n $(document).trigger(\"table:updated\")\n })\n if(this.props.status.isFetching == true) {\n return (\n
    \n
    \n
    \n )\n } else {\n return (\n \n
    \n {(this.props.status.fetchSuccess == false) && (\n
    \n {I18n.tc(\"error\")}\n {I18n.t(\"vehicle_journeys.vehicle_journeys_matrix.fetching_error\")}\n
    \n )}\n\n {some(this.vehicleJourneysList, 'errors') && (\n
    \n {I18n.tc(\"error\")}\n {this.vehicleJourneysList.map((vj, index) =>\n vj.errors && vj.errors.map((err, i) => {\n return (\n
      \n
    • {err}
    • \n
    \n )\n })\n )}\n
    \n )}\n\n
    \n
    \n
    \n
    {I18n.attribute_name(\"vehicle_journey\", \"id\")}
    \n
    {I18n.attribute_name(\"vehicle_journey\", \"name\")}
    \n
    {I18n.attribute_name(\"vehicle_journey\", \"journey_pattern_id\")}
    \n
    {I18n.model_name(\"company\")}
    \n
    {I18n.model_name(\"accessibility_assessment\")}
    \n {\n this.props.extraHeaders.map((header, i) =>\n
    {this.extraHeaderLabel(header)}
    \n )\n }\n { this.hasFeature('journey_length_in_vehicle_journeys') &&\n
    \n {I18n.attribute_name(\"vehicle_journey\", \"journey_length\")}\n
    \n }\n
    \n { detailed_calendars &&\n \n \n {I18n.model_name(\"time_table\", {\"plural\": true})}\n \n }\n { !detailed_calendars && I18n.model_name(\"time_table\", {\"plural\": true})}\n
    \n { detailed_calendars &&\n
    \n {this.allTimeTables.map((tt, i)=>\n
    \n

    \n {this.timeTableURL(tt)}\n

    \n

    {tt.bounding_dates.split(' ').join(' > ')}

    \n
    \n )}\n
    \n }\n
    \n {this.stopPoints.map((sp, i) =>{\n return (\n
    \n {this.headerManager.stopPointHeader(sp.object_id)}\n
    \n )\n })}\n
    \n \n
    \n
    \n {this.vehicleJourneysList.map((vj, index) =>\n \n )}\n
    \n
    \n
    \n
    \n
    \n \n )\n }\n }\n}\n\nVehicleJourneysList.propTypes = {\n status: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n extraHeaders: PropTypes.array.isRequired,\n customFields: PropTypes.object.isRequired,\n stopPointsList: PropTypes.array.isRequired,\n onLoadFirstPage: PropTypes.func.isRequired,\n onUpdateTime: PropTypes.func.isRequired,\n onSelectVehicleJourney: PropTypes.func.isRequired\n}\n\nVehicleJourneysList.defaultProps = {\n vehicleJourneys: [],\n returnVehicleJourneys: [],\n stopPointsList: [],\n returnStopPointsList: []\n}\n","import { toString } from 'lodash'\nimport { connect } from 'react-redux'\nimport actions from '../actions'\nimport VehicleJourneysList from '../components/VehicleJourneysList'\n\nconst mapStateToProps = (state) => {\n const { width, height } = state.selection\n const { toggleArrivals, } = state.filters\n const widthMultiplier = toggleArrivals ? 2 : 1\n const dimensionContent = `${toString(width * widthMultiplier)}x${toString(height)}`\n\n return {\n editMode: state.editMode,\n selection: {\n ...state.selection,\n dimensionContent\n },\n vehicleJourneys: state.vehicleJourneys,\n returnVehicleJourneys: state.returnVehicleJourneys,\n status: state.status,\n filters: state.filters,\n stopPointsList: state.stopPointsList,\n returnStopPointsList: state.returnStopPointsList,\n extraHeaders: window.extra_headers,\n customFields: window.custom_fields,\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onLoadFirstPage: (filters, routeUrl) =>{\n dispatch(actions.fetchingApi())\n actions.fetchVehicleJourneys(dispatch, undefined, undefined, filters.queryString, routeUrl)\n },\n onUpdateTime: (value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency=false) => {\n dispatch(actions.updateTime(value, subIndex, index, timeUnit, isDeparture, isArrivalsToggled, enforceConsistency))\n },\n onSelectVehicleJourney: (index) => {\n dispatch(actions.selectVehicleJourney(index))\n },\n onOpenInfoModal: (vj) =>{\n dispatch(actions.openInfoModal(vj))\n },\n onKeyDown: (e, selection, toggleArrivals) => {\n const { key, metaKey, ctrlKey } = e\n const { \n locked,\n copyModal: {\n mode,\n visible\n }\n } = selection\n \n if (visible) {\n if(mode == 'paste' && key == 'Enter') {\n dispatch(actions.pasteContent())\n }\n } else {\n if (!locked) return\n if (!metaKey && !ctrlKey) return\n\n key == 'c' && dispatch(actions.copyClipboard(toggleArrivals))\n key == 'v' && dispatch(actions.pasteFromClipboard())\n }\n },\n onVisibilityChange: (e)=>{\n dispatch(actions.onVisibilityChange(e))\n }\n }\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(VehicleJourneysList)\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport capitalize from 'lodash/capitalize'\nimport actions from'../actions'\n\nexport default function Navigate({ dispatch, vehicleJourneys, pagination, status, filters}) {\n let firstPage = 1\n let lastPage = Math.ceil(pagination.totalCount / pagination.perPage)\n let minVJ = (pagination.page - 1) * pagination.perPage + 1\n if (pagination.totalCount == 0){\n minVJ = 0\n lastPage = 1\n }\n let maxVJ = Math.min((pagination.page * pagination.perPage), pagination.totalCount)\n if(status.isFetching == true) {\n return false\n }\n if(status.fetchSuccess == true) {\n return (\n
    \n {I18n.t('will_paginate.page_entries_info.multi_page', { model: capitalize(I18n.model_name('vehicle_journey', { plural: true })), from: minVJ, to: maxVJ, count: pagination.totalCount })}\n
    {e.preventDefault()}}>\n {\n e.preventDefault()\n dispatch(actions.checkConfirmModal(e, actions.goToPreviousPage(dispatch, pagination, filters.queryString), pagination.stateChanged, dispatch))\n }}\n type='button'\n data-target='#ConfirmModal'\n className={(pagination.page == firstPage ? 'disabled ' : '') + 'previous_page'}\n disabled={(pagination.page == firstPage ? 'disabled' : '')}\n >\n {\n e.preventDefault()\n dispatch(actions.checkConfirmModal(e, actions.goToNextPage(dispatch, pagination, filters.queryString), pagination.stateChanged, dispatch))\n }}\n type='button'\n data-target='#ConfirmModal'\n className={(pagination.page == lastPage ? 'disabled ' : '') + 'next_page'}\n disabled={(pagination.page == lastPage ? 'disabled' : '')}\n >\n \n
    \n )\n } else {\n return false\n }\n}\n\nNavigate.propTypes = {\n vehicleJourneys: PropTypes.array.isRequired,\n status: PropTypes.object.isRequired,\n pagination: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired\n}\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport NavigateComponent from '../components/Navigate'\n\nconst mapStateToProps = (state) => {\n return {\n vehicleJourneys: state.vehicleJourneys,\n status: state.status,\n pagination: state.pagination,\n filters: state.filters\n }\n}\n\n\nconst Navigate = connect(mapStateToProps)(NavigateComponent)\n\nexport default Navigate\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\n\nexport default function ToggleArrivals({filters, onToggleArrivals}) {\n return (\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n )\n}\n\nToggleArrivals.propTypes = {\n filters : PropTypes.object.isRequired,\n onToggleArrivals: PropTypes.func.isRequired\n}\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport ToggleArrivals from '../components/ToggleArrivals'\n\nconst mapStateToProps = (state) => {\n return {\n filters: state.filters\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onToggleArrivals: () =>{\n dispatch(actions.toggleArrivals())\n }\n }\n}\n\nconst ToggleArrivalsList = connect(mapStateToProps, mapDispatchToProps)(ToggleArrivals)\n\nexport default ToggleArrivalsList\n","export const getId = type => {\n const match = window.location.pathname.match(new RegExp(`${type}\\/([0-9]+)`))\n\n return match ? match[1] : null\n}\n\nexport const getWorkgroupId = () => getId('workgroups')\nexport const getWorkbenchId = () => getId('workbenches')\nexport const getReferentialId = () => getId('referentials')\nexport const getLineId = () => getId('lines')\nexport const getRouteId = () => getId('routes')\n","import React from 'react'\nimport { Async as Select } from 'react-select'\n\nimport { getWorkbenchId, getReferentialId, getRouteId } from '../../../../helpers/url_params'\n\nconst path = `/workbenches/${getWorkbenchId()}/referentials/${getReferentialId()}/autocomplete/journey_patterns`\n\nconst JPSelect2 = ({ isFilter, onSelect2JourneyPattern, selectedItem }) => (\n
    }\n getOptionLabel={({ text }) => text}\n getOptionValue={({ id }) => id}\n placeholder={I18n.t('vehicle_journeys.vehicle_journeys_matrix.filters.journey_pattern')}\n loadOptions={async inputValue => {\n const queryParams = new URLSearchParams({ route_id: getRouteId(), q: inputValue })\n const response = await fetch(`${path}.json?${queryParams.toString()}`)\n const journeyPatterns = await response.json()\n\n return journeyPatterns\n }}\n onChange={(selectedItem, meta) => {\n meta.action == 'select-option' && onSelect2JourneyPattern(selectedItem)\n }}\n styles={{\n control: (provided) => ({\n ...provided,\n minHeight: '51px',\n height: '51px'\n }),\n menu: base => ({ ...base, zIndex: 2000 })\n }}\n isClearable\n />\n)\n\nexport default JPSelect2\n","import React from 'react'\nimport Select from 'react-select'\n\nconst VJSelect2 = ({ _isFilter, onSelect2VehicleJourney, options, selectedItem }) => (\n text}\n getOptionValue={({ id }) => id}\n formatOptionLabel={(option, _meta) =>
    }\n searchField={['short_id', 'published_journey_name']}\n placeholder={I18n.t('vehicle_journeys.vehicle_journeys_matrix.filters.id')}\n onChange={(selectedItem, meta) => {\n meta.action == 'select-option' && onSelect2VehicleJourney(selectedItem)\n }}\n styles={{\n control: (provided) => ({\n ...provided,\n minHeight: '51px',\n height: '51px'\n }),\n menu: base => ({ ...base, zIndex: 2000 })\n }}\n isClearable\n />\n)\n\nexport default VJSelect2","import React from 'react'\nimport { Async as Select } from 'react-select'\n\nimport { getWorkbenchId, getReferentialId, getRouteId } from '../../../../helpers/url_params'\n\nconst path = `/workbenches/${getWorkbenchId()}/referentials/${getReferentialId()}/autocomplete/time_tables`\n\nconst TTSelect2 = ({ isFilter, onSelect2Timetable, selectedItem }) => (\n
    }\n getOptionLabel={({ text }) => text}\n getOptionValue={({ id }) => id}\n placeholder={I18n.t('vehicle_journeys.vehicle_journeys_matrix.filters.timetable')}\n loadOptions={async inputValue => {\n const queryParams = new URLSearchParams({ q: inputValue })\n isFilter && queryParams.set('route_id', getRouteId())\n const response = await fetch(`${path}.json?${queryParams.toString()}`)\n const timeTables = await response.json()\n\n return timeTables\n }}\n onChange={(selectedItem, meta) => {\n meta.action == 'select-option' && onSelect2Timetable(selectedItem)\n }}\n styles={{\n control: (provided) => ({\n ...provided,\n minHeight: '51px',\n height: '51px'\n }),\n menu: base => ({ ...base, zIndex: 2000 })\n }}\n isClearable\n />\n)\n\nexport default TTSelect2\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\n\nimport MissionSelect2 from'./tools/select2s/MissionSelect2'\nimport VJSelect2 from'./tools/select2s/VJSelect2'\nimport TimetableSelect2 from'./tools/select2s/TimetableSelect2'\n\nexport default function Filters({filters, pagination, onFilter, onResetFilters, onUpdateStartTimeFilter, onUpdateEndTimeFilter, onToggleWithoutSchedule, onToggleWithoutTimeTable, onSelect2Timetable, onSelect2JourneyPattern, onSelect2VehicleJourney, vehicleJourneys }) {\n const [filtersKey, setFiltersKey] = useState(5)\n\n const resetFilters = e => {\n setFiltersKey(value => value ^ 5)\n onResetFilters(e, pagination)\n }\n\n const vjOptions = vehicleJourneys.reduce((options, vj) => {\n return [\n ...options,\n ...vj.objectid ? [{\n id: vj.objectid,\n text: `
    ${vj.short_id} - ${vj.published_journey_name}
    `,\n isOptionSelected: filters.query.vehicleJourney?.objectid == vj.objectid,\n ...vj\n }] : []\n ]\n }, [])\n\n return (\n
    \n
    \n
    \n
    \n {/* ID course */}\n
    \n \n
    \n \n
    \n
    \n\n {/* Missions */}\n
    \n \n
    \n \n
    \n
    \n\n {/* Calendriers */}\n
    \n \n
    \n \n
    \n
    \n
    \n\n
    \n {/* Plage horaire */}\n
    \n \n
    \n \n
    \n
    \n {onUpdateStartTimeFilter(e, 'hour')}}\n value={filters.query.interval.start.hour}\n />\n :\n {onUpdateStartTimeFilter(e, 'minute')}}\n value={filters.query.interval.start.minute}\n />\n
    \n
    \n
    \n
    \n \n
    \n
    \n {onUpdateEndTimeFilter(e, 'hour')}}\n value={filters.query.interval.end.hour}\n />\n :\n {onUpdateEndTimeFilter(e, 'minute')}}\n value={filters.query.interval.end.minute}\n />\n
    \n
    \n
    \n
    \n\n {/* Switch avec/sans horaires */}\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n {/* Switch avec/sans calendrier */}\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n {/* Actions */}\n
    \n \n {I18n.t('actions.erase')}\n \n onFilter(e, pagination)}>\n {I18n.t('actions.filter')}\n \n
    \n
    \n
    \n
    \n )\n}\n\nFilters.propTypes = {\n filters : PropTypes.object.isRequired,\n pagination : PropTypes.object.isRequired,\n onFilter: PropTypes.func.isRequired,\n onResetFilters: PropTypes.func.isRequired,\n onUpdateStartTimeFilter: PropTypes.func.isRequired,\n onUpdateEndTimeFilter: PropTypes.func.isRequired,\n onSelect2Timetable: PropTypes.func.isRequired,\n onSelect2JourneyPattern: PropTypes.func.isRequired,\n onSelect2VehicleJourney: PropTypes.func.isRequired\n}","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport Filters from '../components/Filters'\n\nconst mapStateToProps = (state) => {\n return {\n filters: state.filters,\n pagination: state.pagination,\n missions: state.missions,\n vehicleJourneys: state.vehicleJourneys\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onUpdateStartTimeFilter: (e, unit) =>{\n e.preventDefault()\n dispatch(actions.updateStartTimeFilter(e.target.value, unit))\n },\n onUpdateEndTimeFilter: (e, unit) =>{\n e.preventDefault()\n dispatch(actions.updateEndTimeFilter(e.target.value, unit))\n },\n onToggleWithoutSchedule: () =>{\n dispatch(actions.toggleWithoutSchedule())\n },\n onToggleWithoutTimeTable: () =>{\n dispatch(actions.toggleWithoutTimeTable())\n },\n onResetFilters: (e, pagination) =>{\n dispatch(actions.checkConfirmModal(e, actions.resetFilters(dispatch), pagination.stateChanged, dispatch))\n },\n onFilter: (e, pagination) =>{\n dispatch(actions.checkConfirmModal(e, actions.filterQuery(dispatch), pagination.stateChanged, dispatch))\n },\n onSelect2Timetable: selectedItem => {\n dispatch(actions.filterSelect2Timetable(selectedItem))\n },\n onSelect2JourneyPattern: selectedItem => {\n dispatch(actions.filterSelect2JourneyPattern(selectedItem))\n },\n onSelect2VehicleJourney: selectedItem => {\n dispatch(actions.filterSelect2VehicleJourney(selectedItem))\n }\n }\n}\n\nconst FiltersList = connect(mapStateToProps, mapDispatchToProps)(Filters)\n\nexport default FiltersList\n","import CancelButton from '../../helpers/cancel_button'\n\nexport default class CancelVehicleJourney extends CancelButton {\n constructor(props) {\n super(props)\n }\n\n hasPolicy(){\n return this.props.filters.policy['vehicle_journeys.update'] == true\n }\n\n formClassName() {\n return 'vj_collection'\n }\n}\n","import { connect } from 'react-redux'\nimport CancelVehicleJourneysComponent from '../components/CancelVehicleJourneys'\n\nconst mapStateToProps = (state) => {\n return {\n editMode: state.editMode,\n status: state.status,\n filters: state.filters\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onConfirmCancel: () => {\n window.location.reload()\n }\n }\n}\n\nconst CancelVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(CancelVehicleJourneysComponent)\n\nexport default CancelVehicleJourneys\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport SaveButton from '../../helpers/save_button'\nimport actions from '../actions'\n\nexport default class SaveVehicleJourneys extends SaveButton{\n hasPolicy(){\n return this.props.filters.policy['vehicle_journeys.update'] == true\n }\n\n formClassName(){\n return 'vehicle_journeys'\n }\n\n submitForm(){\n this.props.validate(this.props.vehicleJourneys, this.props.dispatch)\n }\n}\n\nSaveVehicleJourneys.propTypes = {\n vehicleJourneys: PropTypes.array.isRequired,\n page: PropTypes.number.isRequired,\n status: PropTypes.object.isRequired,\n filters: PropTypes.object.isRequired,\n onEnterEditMode: PropTypes.func.isRequired,\n onExitEditMode: PropTypes.func.isRequired,\n onSubmitVehicleJourneys: PropTypes.func.isRequired\n}\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport SaveVehicleJourneysComponent from '../components/SaveVehicleJourneys'\n\nconst mapStateToProps = (state) => {\n return {\n editMode: state.editMode,\n vehicleJourneys: state.vehicleJourneys,\n page: state.pagination.page,\n status: state.status,\n filters: state.filters\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onEnterEditMode: () => {\n dispatch(actions.enterEditMode())\n },\n onExitEditMode: () => {\n dispatch(actions.cancelSelection())\n dispatch(actions.exitEditMode())\n },\n onSubmitVehicleJourneys: (next, state) => {\n actions.submitVehicleJourneys(dispatch, state, next)\n },\n validate: (state) =>{\n actions.validate(dispatch, state)\n }\n }\n}\n\nconst SaveVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(SaveVehicleJourneysComponent)\n\nexport default SaveVehicleJourneys\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nexport default function ConfirmModal({dispatch, modal, onModalAccept, onModalCancel, vehicleJourneys}) {\n return (\n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.vehicle_journeys_matrix.modal_confirm')}

    \n
    \n
    \n { onModalCancel(modal.confirmModal.callback) }}\n >\n {I18n.t('cancel')}\n \n { onModalAccept(modal.confirmModal.callback, vehicleJourneys) }}\n >\n {I18n.t('actions.submit')}\n \n
    \n
    \n
    \n
    \n )\n}\n\nConfirmModal.propTypes = {\n vehicleJourneys: PropTypes.array.isRequired,\n modal: PropTypes.object.isRequired,\n onModalAccept: PropTypes.func.isRequired,\n onModalCancel: PropTypes.func.isRequired\n}\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport ConfirmModal from '../components/ConfirmModal'\n\nconst mapStateToProps = (state) => {\n return {\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalAccept: (next, state) =>{\n dispatch(actions.fetchingApi())\n actions.submitVehicleJourneys(dispatch, state, next)\n },\n onModalCancel: (next) =>{\n dispatch(actions.fetchingApi())\n dispatch(next)\n },\n onModalClose: () =>{\n dispatch(actions.closeModal())\n }\n }\n}\n\nconst ConfirmModalContainer = connect(mapStateToProps, mapDispatchToProps)(ConfirmModal)\n\nexport default ConfirmModalContainer\n","import React, { useRef, useEffect } from 'react'\nimport PropTypes from 'prop-types'\n\nimport { useDebounce } from '../../helpers/hooks'\nimport { CopyContent, PasteContent } from '../helpers/ClipboardHelper'\n\nconst CopyModal = props => {\n const copyContentRef = useRef(null)\n const pasteContentRef = useRef(null)\n\n const {\n closeModal,\n content,\n error,\n mode,\n pasteContent,\n pasteOnly,\n toCopyMode,\n toPasteMode,\n visible\n } = props\n\n const updatePasteContent = useDebounce(\n props.updatePasteContent,\n 200\n )\n\n const selectAll = () => {\n if (document.body.createTextRange) { // ms\n const range = document.body.createTextRange();\n range.moveToElementText(copyContentRef.current);\n range.select();\n } else if (window.getSelection) { // moz, opera, webkit\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(copyContentRef.current);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n const onKeyDown = event => {\n if (!visible) return\n\n if(mode == 'copy' && event.key == \"a\" && (event.metaKey || event.ctrlKey)){\n event.stopImmediatePropagation()\n event.preventDefault()\n selectAll()\n return false\n }\n }\n\n const pasteFromClipboardAvailable = () =>\n !!(navigator.clipboard && navigator.clipboard.readText)\n\n\n const pasteFromClipboard = async () => {\n try {\n const clipText = await navigator.clipboard.readText()\n props.updatePasteContent(clipText)\n } catch(e) {\n console.error(e)\n }\n }\n\n useEffect(() => {\n if (visible){\n mode == 'copy' ? selectAll() : pasteContentRef.current.focus()\n }\n\n document.addEventListener(\"keydown\", onKeyDown)\n })\n\n if (!visible) return false\n\n return (\n
    \n
    \n
    \n
    \n
    \n
    \n \n { I18n.t('courses_copy_paste.modal.head') }\n ×\n
    \n
    \n {error &&
    \n { I18n.t('courses_copy_paste.errors.' + error) }\n
    }\n {mode == 'copy' &&
    \n
    {content.copy}
    \n
    }\n {mode == 'paste' &&
    \n updatePasteContent(e.clipboardData.getData('text'))}\n onChange={e => updatePasteContent(e.target.value)}\n wrap=\"off\"\n >\n {content.paste}\n \n {pasteFromClipboardAvailable() && \n { I18n.t('courses_copy_paste.modal.paste_from_clipboard') }\n }\n
    \n
    }\n
    \n
    \n \n {I18n.t('cancel')}\n \n {mode == 'copy' && \n \n { I18n.t('courses_copy_paste.modal.to_paste_mode') }\n }\n {mode == 'paste' && !pasteOnly && \n \n { I18n.t('courses_copy_paste.modal.to_copy_mode') }\n }\n {mode == 'paste' && \n \n { I18n.t('courses_copy_paste.modal.paste_content') }\n }\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}\n\nCopyModal.propTypes = {\n visible: PropTypes.bool.isRequired,\n mode: PropTypes.oneOf(['copy', 'paste']),\n error: PropTypes.string,\n content: {\n copy: PropTypes.instanceOf(CopyContent),\n paste: PropTypes.instanceOf(PasteContent),\n }\n}\n\nexport default CopyModal\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport CopyModal from '../components/CopyModal'\n\nconst mapStateToProps = state => {\n const {\n selection: { copyModal }\n } = state\n\n return {\n ...copyModal\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n closeModal: ()=>{\n dispatch(actions.closeCopyModal())\n },\n toPasteMode: ()=>{\n dispatch(actions.copyModalToPasteMode())\n },\n toCopyMode: () => {\n dispatch(actions.copyModalToCopyMode())\n },\n updatePasteContent: content => {\n dispatch(actions.updateContentToPaste(content))\n },\n pasteContent: ()=>{\n dispatch(actions.pasteContent())\n },\n }\n}\n\nconst CopyModalContainer = connect(mapStateToProps, mapDispatchToProps)(CopyModal)\n\nexport default CopyModalContainer\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport MissionSelect2 from './select2s/MissionSelect2'\nimport CompanySelect2 from './select2s/CompanySelect2'\nimport AccessibilityAssessmentSelect2 from './select2s/AccessibilityAssessmentSelect2'\nimport CustomFieldsInputs from '../../../helpers/CustomFieldsInputs'\n\nexport default class CreateModal extends Component {\n constructor(props) {\n super(props)\n this.custom_fields = _.assign({}, this.props.custom_fields)\n _.map(this.custom_fields, (cf, k)=>{\n if(cf.options && cf.options.default){\n this.custom_fields[k][\"value\"] = cf.options.default\n }\n })\n }\n\n handleSubmit() {\n if(!this.props.modal.modalProps.selectedJPModal){\n let field = $('#NewVehicleJourneyModal').find(\".vjCreateSelectJP\")\n field.parent().parent().addClass('has-error')\n field.parent().children('.help-block').remove()\n field.parent().append(\"\" + I18n.t(\"simple_form.required.text\") + \"\")\n return\n }\n if (actions.validateFields(this.refs, $('.vjCreateSelectJP')[0])) {\n this.props.onAddVehicleJourney(_.assign({}, this.refs, {custom_fields: this.custom_fields}), this.props.modal.modalProps.selectedJPModal, this.props.stopPointsList, this.props.modal.modalProps.vehicleJourney && this.props.modal.modalProps.vehicleJourney.company, this.props.modal.modalProps.vehicleJourney && this.props.modal.modalProps.vehicleJourney.accessibility_assessment)\n this.props.onModalClose()\n $('#NewVehicleJourneyModal').modal('hide')\n }\n }\n\n render() {\n if(this.props.status.isFetching == true) {\n return false\n }\n if(this.props.status.fetchSuccess == true) {\n return (\n
  • \n \n \n \n\n
    \n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.actions.new')}

    \n ×\n
    \n\n {(this.props.modal.type == 'create') && (\n
    \n
    \n
    \n
    \n
    \n \n actions.resetValidation(e.currentTarget)}\n />\n
    \n
    \n
    \n
    \n \n this.props.onSelect2Company(e)}\n onUnselect2Company = {() => this.props.onUnselect2Company()}\n />\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n actions.resetValidation(e.currentTarget)}\n />\n
    \n
    \n
    \n
    \n \n this.props.onSelect2AccessibilityAssessment(e)}\n onUnselect2AccessibilityAssessment = {() => this.props.onUnselect2AccessibilityAssessment()}\n />\n
    \n
    \n this.custom_fields[code][\"value\"] = value}\n disabled={false}\n />\n { this.props.modal.modalProps.selectedJPModal && this.props.modal.modalProps.selectedJPModal.full_schedule &&
    \n
    \n \n
    \n actions.resetValidation(e.currentTarget)}\n />\n actions.resetValidation(e.currentTarget)}\n />\n \n
    \n
    \n
    \n }\n\n
    \n
    \n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n
  • \n )\n } else {\n return false\n }\n }\n}\n\nCreateModal.propTypes = {\n index: PropTypes.number,\n modal: PropTypes.object.isRequired,\n status: PropTypes.object.isRequired,\n stopPointsList: PropTypes.array.isRequired,\n onOpenCreateModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n onAddVehicleJourney: PropTypes.func.isRequired,\n onSelect2JourneyPattern: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n missions: PropTypes.array.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport CreateModal from '../../components/tools/CreateModal'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n disabled: ownProps.disabled,\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status,\n stopPointsList: state.stopPointsList,\n missions: state.missions,\n custom_fields: state.custom_fields,\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n onAddVehicleJourney: (data, selectedJourneyPattern, stopPointsList, selectedCompany, selectedAccessibilityAssessment) =>{\n dispatch(actions.addVehicleJourney(data, selectedJourneyPattern, stopPointsList, selectedCompany, selectedAccessibilityAssessment))\n },\n onOpenCreateModal: () =>{\n dispatch(actions.openCreateModal())\n },\n onSelect2JourneyPattern: selectedItem =>{\n dispatch(actions.selectJPCreateModal(selectedItem))\n },\n onSelect2Company: selectedItem => {\n dispatch(actions.select2Company(selectedItem))\n },\n onUnselect2Company: () => {\n dispatch(actions.unselect2Company())\n },\n onSelect2AccessibilityAssessment: selectedItem => {\n dispatch(actions.select2AccessibilityAssessment(selectedItem))\n },\n onUnselect2AccessibilityAssessment: () => {\n dispatch(actions.unselect2AccessibilityAssessment())\n }\n }\n}\n\nconst AddVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(CreateModal)\n\nexport default AddVehicleJourney\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport actions from '../../actions'\n\nexport default function DeleteVehicleJourneys({onDeleteVehicleJourneys, vehicleJourneys, disabled}) {\n return (\n
  • \n {\n e.preventDefault()\n onDeleteVehicleJourneys()\n }}\n title={ I18n.t('actions.delete') }\n className=\"delete-button\"\n >\n \n \n
  • \n )\n}\n\nDeleteVehicleJourneys.propTypes = {\n onDeleteVehicleJourneys: PropTypes.func.isRequired,\n vehicleJourneys: PropTypes.array.isRequired,\n disabled: PropTypes.bool.isRequired\n}","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport DeleteVJComponent from '../../components/tools/DeleteVehicleJourneys'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n disabled: ownProps.disabled,\n vehicleJourneys: state.vehicleJourneys\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onDeleteVehicleJourneys: () =>{\n dispatch(actions.deleteVehicleJourneys())\n },\n }\n}\n\nconst DeleteVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(DeleteVJComponent)\n\nexport default DeleteVehicleJourneys\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport actions from '../../actions'\n\nexport default function SelectVehicleJourneys({onToggleTimesSelection, disabled, selectionMode}) {\n return (\n
  • \n {\n e.preventDefault()\n onToggleTimesSelection()\n }}\n >\n \n \n
  • \n )\n}\n\nSelectVehicleJourneys.propTypes = {\n onToggleTimesSelection: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n selectionMode: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport SelectVJComponent from '../../components/tools/SelectVehicleJourneys'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n disabled: ownProps.disabled,\n selectionMode: state.selection.active\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onToggleTimesSelection: () =>{\n dispatch(actions.toggleTimesSelection())\n },\n }\n}\n\nconst SelectVehicleJourneys = connect(mapStateToProps, mapDispatchToProps)(SelectVJComponent)\n\nexport default SelectVehicleJourneys\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport default function CopyButton({ onClick, disabled }) {\n return (\n
  • \n {\n e.preventDefault()\n onClick()\n }}\n >\n \n \n
  • \n )\n}\n\nCopyButton.propTypes = {\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n selectionMode: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport CopyButtonComponent from '../../components/tools/CopyButton'\n\nconst mapStateToProps = (_, ownProps) => ({\n disabled: ownProps.disabled\n})\n\nconst mapDispatchToProps = dispatch => ({\n onClick: () => {\n dispatch(actions.copyClipboard())\n }\n})\n\nconst CopyButton = connect(mapStateToProps, mapDispatchToProps)(CopyButtonComponent)\n\nexport default CopyButton\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport actions from '../../actions'\n\nexport default function PasteButton({onClick, disabled, selectionMode}) {\n return (\n
  • \n {\n e.preventDefault()\n onClick()\n }}\n >\n \n \n
  • \n )\n}\n\nPasteButton.propTypes = {\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n selectionMode: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport PasteButtonComponent from '../../components/tools/PasteButton'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n disabled: ownProps.disabled,\n selectionMode: state.selection.active\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onClick: () =>{\n dispatch(actions.pasteFromClipboard())\n },\n }\n}\n\nconst PasteButton = connect(mapStateToProps, mapDispatchToProps)(PasteButtonComponent)\n\nexport default PasteButton\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport _ from 'lodash'\n\nexport default class ShiftVehicleJourney extends Component {\n constructor(props) {\n super(props)\n this.state = {\n additional_time: 0\n }\n }\n\n handleSubmit() {\n if(actions.validateFields(this.refs) == true) {\n this.props.onShiftVehicleJourney(this.state.additional_time)\n this.props.onModalClose()\n $('#ShiftVehicleJourneyModal').modal('hide')\n }\n }\n\n handleAdditionalTimeChange() {\n this.setState((state, props) => {\n if(this.refs.additional_time.value == \"-\" || this.refs.additional_time.value == \"\"){\n return {\n additional_time: this.refs.additional_time.value\n }\n }\n return {\n additional_time: parseInt(this.refs.additional_time.value)\n }\n })\n }\n\n render() {\n let id = _.get(actions.getSelected(this.props.vehicleJourneys), ['0', 'short_id'])\n\n if(this.props.status.isFetching == true) {\n return false\n }\n if(this.props.status.fetchSuccess == true) {\n return (\n
  • \n \n \n \n\n
    \n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.form.slide_title', {id: id})}

    \n ×\n
    \n\n {(this.props.modal.type == 'shift') && (\n
    \n
    \n
    \n
    \n
    \n \n actions.resetValidation(e.currentTarget)}\n required\n />\n
    \n
    \n
    \n
    \n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n
  • \n )\n } else {\n return false\n }\n }\n}\n\nShiftVehicleJourney.propTypes = {\n onOpenShiftModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport ShiftVJComponent from '../../components/tools/ShiftVehicleJourney'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status,\n disabled: ownProps.disabled\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n onOpenShiftModal: () =>{\n dispatch(actions.openShiftModal())\n },\n onShiftVehicleJourney: (data) =>{\n dispatch(actions.shiftVehicleJourney(data))\n }\n }\n}\n\nconst ShiftVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(ShiftVJComponent)\n\nexport default ShiftVehicleJourney\n","import _ from 'lodash'\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport Select2 from 'react-select2-wrapper'\nimport actions from '../../../actions'\nimport language from '../../../../../src/helpers/select2/language'\n\nexport default class BSelect4 extends Component {\n constructor(props) {\n super(props)\n }\n\n getSelectedStopAreaId(event) {\n let stop_area_id_string = _.get(event, 'params.data.id')\n return (parseInt(stop_area_id_string) || null)\n }\n\n render() {\n return (\n this.props.onSelectSpecificStop(this.getSelectedStopAreaId(e)) }\n onUnselect={(e) => this.props.onSelectSpecificStop(null)}\n multiple={false}\n disabled={!this.props.editMode}\n ref='stop_area_id'\n options={{\n language,\n allowClear: true,\n theme: 'bootstrap',\n width: '100%',\n placeholder: this.props.placeholder,\n escapeMarkup: function (markup) { return markup },\n templateResult: formatRepo\n }}\n />\n )\n }\n}\n\nconst formatRepo = (props) => {\n if(props.text) {return props.text}\n}\n","import _ from 'lodash'\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport StopAreaHeaderManager from '../../../helpers/stop_area_header_manager'\nimport SpecificStopPlaceSelect2 from './select2s/SpecificStopPlaceSelect2'\n\n\nexport default class SelectSpecificStop extends Component {\n constructor(props) {\n super(props)\n this.headerManager = new StopAreaHeaderManager(\n _.map(this.props.stopPointsList, (sp) => {return sp.object_id}),\n this.props.stopPointsList,\n this.props.filters.features\n )\n this.state = { available_specific_stop_places: {} }\n this.selected_specific_stops = {}\n\n this.addSpecificStopToVJAS = this.addSpecificStopToVJAS.bind(this)\n }\n\n handleSubmit() {\n if(actions.validateFields(this.refs) == true) {\n // On renvoie les données ici\n this.props.onSelectSpecificStop(this.selected_specific_stops)\n this.props.onModalClose()\n $('#SelectSpecificStopModal').modal('hide')\n }\n }\n\n addSpecificStopToVJAS(stop_point_id, specific_stop_area_id) {\n this.selected_specific_stops[stop_point_id] = specific_stop_area_id\n }\n\n componentDidUpdate(prevProps, prevState) {\n if(this.props.status.isFetching == false){\n // Don't forget the .modal pre selector to avoid modifying the DOM outside our modal\n $('.modal .table-2entries').each(function() {\n var refH = []\n var refCol = []\n\n $(this).find('.t2e-head').children('div').each(function() {\n var h = this.getBoundingClientRect().height\n refH.push(h)\n })\n\n var i = 0\n $(this).find('.t2e-item').children('div').each(function() {\n var h = this.getBoundingClientRect().height\n if(refCol.length < refH.length){\n refCol.push(h)\n } else {\n if(h > refCol[i]) {\n refCol[i] = h\n }\n }\n if(i == (refH.length - 1)){\n i = 0\n } else {\n i++\n }\n })\n\n for(var n = 0; n < refH.length; n++) {\n if(refCol[n] < refH[n]) {\n refCol[n] = refH[n]\n }\n }\n\n $(this).find('.th').css('height', refCol[0])\n\n for(var nth = 1; nth < refH.length; nth++) {\n\n // TODO fix this\n // $(this).find('.td:nth-child('+ (nth + 1) +')').css('height', refCol[nth])\n $(this).find('.td:nth-child('+ (nth + 1) +')').css('height', 40)\n }\n })\n }\n }\n\n fetch_available_specific_stop_places(journey_pattern_id) {\n if(!journey_pattern_id || this.fetching_specific_stops){ return }\n this.fetching_specific_stops = true\n\n let path = window.available_specific_stop_places_path + \".json\"\n let url = path.split(\":journey_pattern_id:\").join(this.props.modal.modalProps.vehicleJourney.journey_pattern.id)\n\n fetch(url, {\n credentials: 'same-origin',\n }).then(response => {\n return response.json()\n }).then((json) => {\n /** Adding a text field in each stop area json object is required for displaying it through Select2 **/\n let result = {}\n json.forEach((object1, index1) => {\n result[object1[0]] = object1[1].map((stop_area, index2) => {\n _.assign(stop_area, {\n text: stop_area.name + \" - \" + stop_area.short_id,\n is_referent: (stop_area.is_referent.toString() || '') /** Prevent \"Warning: Received `false` for a non-boolean attribute `is_referent`.\" **/\n }\n )\n return stop_area\n })\n })\n this.setState({ available_specific_stop_places: result })\n this.fetching_specific_stops = false\n })\n }\n\n render() {\n let journey_pattern_id = _.get(this.props.modal.modalProps, 'vehicleJourney.journey_pattern.id')\n this.fetch_available_specific_stop_places(journey_pattern_id)\n\n let id = _.get(this.props.modal.modalProps, 'vehicleJourney.short_id')\n\n return (\n
  • \n this.props.onOpenSelectSpecificStopModal(actions.getSelected(this.props.vehicleJourneys)[0])}\n >\n \n \n\n
    \n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.form.specific_stops_title', {id: id})}

    \n ×\n
    \n\n {(this.props.modal.type == 'select_specific_stop') && (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n { this.props.modal.modalProps.vehicleJourney.journey_pattern.stop_points && this.props.modal.modalProps.vehicleJourney.journey_pattern.stop_points.map((sp, i) => {\n return (\n
    \n {this.headerManager.stopPointHeader(sp.objectid, false)}\n
    \n )\n })}\n
    \n
    \n
    \n
    \n { this.props.modal.modalProps.vehicleJourney.vehicle_journey_at_stops.map((vjas, i) => {\n if (!vjas.dummy) {\n return (\n
    \n this.addSpecificStopToVJAS(vjas.stop_point_id ,e)}\n />\n
    \n )\n }\n })}\n
    \n
    \n
    \n
    \n
    \n {\n this.props.editMode &&\n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n }\n
    \n )}\n
    \n
    \n
    \n
    \n
  • \n )\n }\n }\n\n SelectSpecificStop.propTypes = {\n onOpenSelectSpecificStopModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n }\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport SelectSpecificStopComponent from '../../components/tools/SelectSpecificStop'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n editMode: state.editMode,\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status,\n filters: state.filters,\n stopPointsList: state.stopPointsList,\n disabled: ownProps.disabled\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () => {\n dispatch(actions.closeModal())\n },\n onOpenSelectSpecificStopModal: (data) => {\n dispatch(actions.openSelectSpecificStopModal(data))\n },\n onSelectSpecificStop: (data) => {\n dispatch(actions.selectSpecificStop(data))\n }\n }\n}\n\nconst SelectSpecificStop = connect(mapStateToProps, mapDispatchToProps)(SelectSpecificStopComponent)\n\nexport default SelectSpecificStop\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport _ from 'lodash'\n\nexport default class DuplicateVehicleJourney extends Component {\n constructor(props) {\n super(props)\n this.state = {}\n this.onFormChange = this.onFormChange.bind(this)\n this.handleSubmit = this.handleSubmit.bind(this)\n this.disableValidateButton = this.disableValidateButton.bind(this)\n }\n\n componentWillReceiveProps() {\n if (actions.getSelected(this.props.vehicleJourneys).length > 0) {\n let hour = parseInt(this.getDefaultValue('hour'))\n let miunte = parseInt(this.getDefaultValue('minute'))\n this.setState((state, props) => {\n return {\n originalDT: {\n hour: hour,\n minute: miunte\n },\n duplicate_time_hh: hour,\n duplicate_time_mm: miunte,\n additional_time: 0,\n duplicate_number: 1\n }\n })\n }\n }\n\n handleSubmit() {\n if(actions.validateFields(this.refs) == true) {\n let newDeparture = {\n departure_time : {\n hour: this.state.duplicate_time_hh,\n minute: this.state.duplicate_time_mm\n }\n }\n let val = actions.getDuplicateDelta(_.find(actions.getSelected(this.props.vehicleJourneys)[0].vehicle_journey_at_stops, {'dummy': false}), newDeparture)\n this.props.onDuplicateVehicleJourney(this.state.additional_time, this.state.duplicate_number, val)\n this.props.onModalClose()\n $('#DuplicateVehicleJourneyModal').modal('hide')\n }\n }\n\n onFormChange(e) {\n let {name, value} = e.target\n this.setState((state, props) => {\n return {\n [name]: parseInt(value)\n }\n })\n }\n\n getDefaultValue(type) {\n let vjas = _.find(actions.getSelected(this.props.vehicleJourneys)[0].vehicle_journey_at_stops, {'dummy': false})\n return vjas.departure_time[type]\n }\n\n disableValidateButton() {\n /* We disable the button in two cases :\n - if the additional_time_hh or additional_time_mm are above their input max value\n - if if their is no change in the other inputs to avoid making a coping of the selected VJ\n */\n let incorrectDT = isNaN(this.state.duplicate_time_hh) || isNaN(this.state.duplicate_time_mm) || this.state.duplicate_time_hh > 23 || this.state.duplicate_time_mm > 59\n let noInputChanges = this.state.additional_time == 0 && this.state.originalDT.hour == this.state.duplicate_time_hh && this.state.originalDT.minute == this.state.duplicate_time_mm\n return incorrectDT || noInputChanges\n }\n\n render() {\n if(this.props.status.isFetching == true) {\n return false\n }\n if(this.props.status.fetchSuccess == true) {\n return (\n
  • \n \n \n \n\n
    \n
    \n
    \n
    \n
    \n

    \n {I18n.t('vehicle_journeys.vehicle_journeys_matrix.duplicate', { count: actions.getSelected(this.props.vehicleJourneys).length })}\n

    \n ×\n
    \n\n {(this.props.modal.type == 'duplicate') && (\n
    \n
    \n
    1 ? 'hidden' : '' )}>\n \n \n 1 ? ' disabled' : '')}>\n this.onFormChange(e)}\n disabled={actions.getSelected(this.props.vehicleJourneys) && (actions.getSelected(this.props.vehicleJourneys).length > 1 ? 'disabled' : '')}\n />\n :\n this.onFormChange(e)}\n disabled={actions.getSelected(this.props.vehicleJourneys) && (actions.getSelected(this.props.vehicleJourneys).length > 1 ? 'disabled' : '')}\n />\n \n \n
    \n\n
    \n \n
    \n this.onFormChange(e)}\n onKeyDown={(e) => actions.resetValidation(e.currentTarget)}\n required\n />\n
    \n
    \n\n
    \n \n \n this.onFormChange(e)}\n onKeyDown={(e) => actions.resetValidation(e.currentTarget)}\n required\n />\n \n
    \n
    \n\n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n
    \n )}\n
    \n
    \n
    \n
    \n
  • \n )\n } else {\n return false\n }\n }\n}\n\nDuplicateVehicleJourney.propTypes = {\n onOpenDuplicateModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport DuplicateVJComponent from '../../components/tools/DuplicateVehicleJourney'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n disabled: ownProps.disabled,\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status,\n filters: state.filters\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n onOpenDuplicateModal: () =>{\n dispatch(actions.openDuplicateModal())\n },\n onDuplicateVehicleJourney: (addtionalTime, duplicateNumber, departureDelta) =>{\n dispatch(actions.duplicateVehicleJourney(addtionalTime, duplicateNumber, departureDelta))\n }\n }\n}\n\nconst DuplicateVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(DuplicateVJComponent)\n\nexport default DuplicateVehicleJourney\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport _ from 'lodash'\n\nexport default class NotesEditVehicleJourney extends Component {\n constructor(props) {\n super(props)\n }\n\n handleSubmit() {\n this.props.onNotesEditVehicleJourney(this.props.modal.modalProps.vehicleJourney.footnotes, this.props.modal.modalProps.vehicleJourney.line_notices)\n this.props.onModalClose()\n $('#NotesEditVehicleJourneyModal').modal('hide')\n }\n\n footnotes() {\n let { footnotes, line_notices } = this.props.modal.modalProps.vehicleJourney\n let fnIds = footnotes.map(fn => fn.id)\n let lnIds = line_notices.map(fn => fn.id)\n return {\n associated: footnotes.concat(line_notices),\n to_associate: window.line_footnotes.filter(fn => {\n if(fn.line_notice){\n return !lnIds.includes(fn.id)\n }\n else{\n return !fnIds.includes(fn.id)\n }\n })\n }\n }\n\n renderFootnoteButton(lf) {\n if (!this.props.editMode) return false\n\n if (this.footnotes().associated.includes(lf)) {\n return this.props.onToggleFootnoteModal(lf, false)}\n >{I18n.t('actions.remove')}\n } else {\n return this.props.onToggleFootnoteModal(lf, true)}\n >{I18n.t('actions.add')}\n }\n }\n\n noteUrl(lf) {\n if(lf.line_notice){\n return window.default_line_notices_path + \"/\" + lf.id\n }\n else {\n return \"/workbenches/\" + window.workbench_id + \"/referentials/\" + window.referential_id + \"/lines/\" + window.line_id + \"/footnotes\"\n }\n }\n\n renderAssociatedFN() {\n if (this.footnotes().associated.length == 0) {\n return

    {I18n.t('vehicle_journeys.vehicle_journeys_matrix.no_associated_footnotes')}

    \n } else {\n return (\n
    \n

    {I18n.t('vehicle_journeys.form.footnotes')} :

    \n {this.footnotes().associated.map((lf, i) =>\n \n \n

    {lf.label}

    \n
    \n )}\n
    \n )\n }\n }\n\n renderToAssociateFN() {\n if (window.line_footnotes.length == 0) return

    {I18n.t('vehicle_journeys.vehicle_journeys_matrix.no_line_footnotes')}

    \n\n if (this.footnotes().to_associate.length == 0) return false\n\n return (\n
    \n

    {I18n.t('vehicle_journeys.vehicle_journeys_matrix.select_footnotes')} :

    \n {this.footnotes().to_associate.map((lf, i) =>\n
    \n
    \n

    \n
    {lf.code}
    \n
    {this.renderFootnoteButton(lf)}
    \n

    \n
    \n

    {lf.label}

    \n
    \n )}\n
    \n )\n }\n\n render() {\n if (this.props.status.isFetching == true) return false\n\n if (this.props.status.fetchSuccess == true) {\n return (\n
  • \n this.props.onOpenNotesEditModal(actions.getSelected(this.props.vehicleJourneys)[0])}\n >\n \n \n\n
    \n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.form.footnotes')}

    \n ×\n
    \n\n {(this.props.modal.type == 'notes_edit') && (\n
    \n
    \n {this.renderAssociatedFN()}\n {this.props.editMode && this.renderToAssociateFN()}\n
    \n {\n this.props.editMode &&\n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n }\n
    \n )}\n\n
    \n
    \n
    \n
    \n
  • \n )\n } else {\n return false\n }\n }\n}\n\nNotesEditVehicleJourney.propTypes = {\n onOpenNotesEditModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n onToggleFootnoteModal: PropTypes.func.isRequired,\n onNotesEditVehicleJourney: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport NotesEditComponent from '../../components/tools/NotesEditVehicleJourney'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n editMode: state.editMode,\n disabled: ownProps.disabled,\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n onOpenNotesEditModal: (vj) =>{\n dispatch(actions.openNotesEditModal(vj))\n },\n onToggleFootnoteModal: (footnote, isShown) => {\n dispatch(actions.toggleFootnoteModal(footnote, isShown))\n },\n onNotesEditVehicleJourney: (footnotes, line_notices) =>{\n dispatch(actions.editVehicleJourneyNotes(footnotes, line_notices))\n }\n }\n}\n\nconst NotesEditVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(NotesEditComponent)\n\nexport default NotesEditVehicleJourney\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../../actions'\nimport TimetableSelect2 from './select2s/TimetableSelect2'\n\nexport default class TimetablesEditVehicleJourney extends Component {\n constructor(props) {\n super(props)\n this.handleSubmit = this.handleSubmit.bind(this)\n this.timeTableURL = this.timeTableURL.bind(this)\n }\n\n handleSubmit() {\n this.props.onTimetablesEditVehicleJourney(this.props.modal.modalProps.vehicleJourneys, this.props.modal.modalProps.timetables)\n this.props.onModalClose()\n $('#CalendarsEditVehicleJourneyModal').modal('hide')\n }\n\n timeTableURL(tt) {\n let refURL = window.location.pathname.split('/', 5).join('/')\n return refURL + '/time_tables/' + tt.id\n }\n\n render() {\n if(this.props.status.isFetching == true) {\n return false\n }\n if(this.props.status.fetchSuccess == true) {\n return (\n
  • \n this.props.onOpenCalendarsEditModal(actions.getSelected(this.props.vehicleJourneys))}\n title={ I18n.t('vehicle_journeys.form.hint_calendars') }\n >\n \n \n\n
    \n
    \n
    \n
    \n
    \n

    {I18n.t('vehicle_journeys.form.time_tables')}

    \n ×\n
    \n\n {(this.props.modal.type == 'calendars_edit') && (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n {this.props.modal.modalProps.timetables.map((tt, i) =>\n
    \n
    \n \n {\n this.props.editMode &&\n
    \n {\n e.preventDefault()\n this.props.onDeleteCalendarModal(tt)\n }}\n >\n \n \n
    \n }\n
    \n
    \n )}\n {\n this.props.editMode &&\n
    \n
    \n
    \n \n
    \n
    \n
    \n }\n
    \n
    \n
    \n
    \n {\n this.props.editMode &&\n
    \n \n {I18n.t('cancel')}\n \n \n {I18n.t('actions.submit')}\n \n
    \n }\n
    \n )}\n\n
    \n
    \n
    \n
    \n
  • \n )\n } else {\n return false\n }\n }\n}\n\nTimetablesEditVehicleJourney.propTypes = {\n onOpenCalendarsEditModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n onTimetablesEditVehicleJourney: PropTypes.func.isRequired,\n onDeleteCalendarModal: PropTypes.func.isRequired,\n onSelect2Timetable: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","import actions from '../../actions'\nimport { connect } from 'react-redux'\nimport TimetablesEditComponent from '../../components/tools/TimetablesEditVehicleJourney'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n editMode: state.editMode,\n modal: state.modal,\n vehicleJourneys: state.vehicleJourneys,\n status: state.status,\n disabled: ownProps.disabled\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () => {\n dispatch(actions.closeModal())\n },\n onOpenCalendarsEditModal: (vehicleJourneys) =>{\n dispatch(actions.openCalendarsEditModal(vehicleJourneys))\n },\n onDeleteCalendarModal: (timetable) => {\n dispatch(actions.deleteCalendarModal(timetable))\n },\n onTimetablesEditVehicleJourney: (vehicleJourneys, timetables) =>{\n dispatch(actions.editVehicleJourneyTimetables(vehicleJourneys, timetables))\n },\n onSelect2Timetable: selectedTT =>{\n dispatch(actions.selectTTCalendarsModal(selectedTT))\n dispatch(actions.addSelectedTimetable())\n }\n }\n}\n\nconst TimetablesEditVehicleJourney = connect(mapStateToProps, mapDispatchToProps)(TimetablesEditComponent)\n\nexport default TimetablesEditVehicleJourney\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../actions'\nimport AddVehicleJourney from '../containers/tools/AddVehicleJourney'\nimport DeleteVehicleJourneys from '../containers/tools/DeleteVehicleJourneys'\nimport SelectVehicleJourneys from '../containers/tools/SelectVehicleJourneys'\nimport CopyButton from '../containers/tools/CopyButton'\nimport PasteButton from '../containers/tools/PasteButton'\nimport ShiftVehicleJourney from '../containers/tools/ShiftVehicleJourney'\nimport SelectSpecificStop from '../containers/tools/SelectSpecificStop'\nimport DuplicateVehicleJourney from '../containers/tools/DuplicateVehicleJourney'\nimport EditVehicleJourney from '../containers/tools/EditVehicleJourney'\nimport NotesEditVehicleJourney from '../containers/tools/NotesEditVehicleJourney'\nimport TimetablesEditVehicleJourney from '../containers/tools/TimetablesEditVehicleJourney'\n\nexport default class Tools extends Component {\n constructor(props) {\n super(props)\n this.hasPolicy = this.hasPolicy.bind(this)\n this.hasFeature = this.hasFeature.bind(this)\n this.hasDeletedVJ = this.hasDeletedVJ.bind(this)\n }\n\n hasPolicy(key) {\n // Check if the user has the policy to disable or not the action\n return this.props.filters.policy[`vehicle_journeys.${key}`]\n }\n\n hasFeature(key) {\n // Check if the organisation has the given feature\n return this.props.filters.features[key]\n }\n\n hasDeletedVJ() {\n return actions.getSelectedDeletables(this.props.vehicleJourneys).length > 0\n }\n\n render() {\n let { hasPolicy, hasFeature, hasDeletedVJ, props: { vehicleJourneys, onCancelSelection, onCancelDeletion, editMode, selectionMode, selection, toggleArrivals } } = this\n return (\n
    \n
      \n { !selectionMode && }\n { !selectionMode && }\n { !selectionMode && }\n { !selectionMode && }\n { !selectionMode && }\n\n { !selectionMode && }\n { !selectionMode && }\n { !selectionMode && }\n { selectionMode && }\n { selectionMode && }\n \n
    \n { !selectionMode &&
    \n
    \n {I18n.t('vehicle_journeys.vehicle_journeys_matrix.selected_journeys', { count: actions.getSelected(vehicleJourneys).length })}\n
    \n \n \n
    \n }\n
    \n )\n }\n}\n\nTools.propTypes = {\n vehicleJourneys : PropTypes.array.isRequired,\n onCancelSelection: PropTypes.func.isRequired,\n filters: PropTypes.object.isRequired\n}\n","import actions from '../actions'\nimport { connect } from 'react-redux'\nimport ToolsComponent from '../components/Tools'\n\nconst mapStateToProps = (state) => {\n return {\n vehicleJourneys: state.vehicleJourneys,\n editMode: state.editMode,\n selectionMode: state.selection.active,\n filters: state.filters,\n selection: state.selection,\n toggleArrivals: state.filters.toggleArrivals\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onCancelSelection: () => {\n dispatch(actions.cancelSelection())\n },\n onCancelDeletion: () => {\n dispatch(actions.cancelDeletion())\n }\n }\n}\n\nconst Tools = connect(mapStateToProps, mapDispatchToProps)(ToolsComponent)\n\nexport default Tools\n","import React from 'react'\nimport VehicleJourneysList from '../containers/VehicleJourneysList'\nimport Navigate from '../containers/Navigate'\nimport ToggleArrivals from '../containers/ToggleArrivals'\nimport Filters from '../containers/Filters'\nimport CancelVehicleJourneys from '../containers/CancelVehicleJourneys'\nimport SaveVehicleJourneys from '../containers/SaveVehicleJourneys'\nimport ConfirmModal from '../containers/ConfirmModal'\nimport CopyModal from '../containers/CopyModal'\nimport Tools from '../containers/Tools'\n\nimport { useSubmitMover } from '../../helpers/hooks'\n\nexport default function App() {\n\n useSubmitMover()\n\n return (\n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n \n \n {window.returnRouteUrl && }\n \n\n
    \n
    \n \n
    \n
    \n\n \n \n \n\n \n \n
    \n )\n}\n","import React from 'react'\nimport { render } from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { createStore } from 'redux'\nimport applyMiddleware from '../../src/helpers/middlewares'\n\nimport vehicleJourneysApp from '../../src/vehicle_journeys/reducers'\nimport App from '../../src/vehicle_journeys/components/App'\nimport { enableBatching } from '../../src/vehicle_journeys/batch'\n\nimport { initialState } from '../../src/vehicle_journeys/reducers'\n\nlet store = createStore(\n enableBatching(vehicleJourneysApp),\n initialState,\n applyMiddleware()\n)\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n if (document.getElementById(\"vehicle_journeys_wip\")) {\n render(\n \n \n ,\n document.getElementById('vehicle_journeys_wip')\n )\n }\n})","import { flatten } from 'lodash'\nimport ClipboardHelper from '../helpers/ClipboardHelper'\nimport { initialState } from '../reducers'\n// import { computeDayOffSet } from '../helpers'\n\nexport default function selection(state = initialState, action) {\n\tconst { selection, filters: { toggleArrivals } } = state\n\tconst { copyModal } = selection\n\n\tswitch(action.type) {\n\t\tcase 'TOGGLE_ARRIVALS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\tactive: selection.active,\n\t\t\t\t\titems: [],\n\t\t\t\t\twidth: 0,\n\t\t\t\t\theight: 0,\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'TOGGLE_SELECTION_MODE':\t\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\tactive: !selection.active\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'UPDATE_SELECTED_ITEMS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\titems: action.items\n\t\t\t\t},\n\t\t\t}\n\t\tcase 'CLEAR_SELECTED_ITEMS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\titems: [],\n\t\t\t\t\twidth: null,\n\t\t\t\t\theight: null\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'UPDATE_SELECTION_DIMENSIONS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\twidth: action.width,\n\t\t\t\t\theight: action.height\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'UPDATE_SELECTION_LOCKED':\n\t\t\tClipboardHelper.updateCopyContent(selection.items, selection.width)\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tlocked: action.locked,\n\t\t\t\t\tcopyModal: {\n\t\t\t\t\t\t...copyModal,\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\tcopy: ClipboardHelper.content.copy.serialize(toggleArrivals)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'COPY_CLIPBOARD':\n\t\tcase 'COPY_MODAL_TO_COPY_MODE':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tcopyModal: {\n\t\t\t\t\t\t...copyModal,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tmode: 'copy'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'CLOSE_COPY_MODAL':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tcopyModal: {\n\t\t\t\t\t\t...copyModal,\n\t\t\t\t\t\tvisible: false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'COPY_MODAL_TO_PASTE_MODE':\n\t\tcase 'PASTE_CLIPBOARD':\n\t\t\tClipboardHelper.updatePasteContent('')\t\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tcopyModal: {\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tmode: 'paste',\n\t\t\t\t\t\tpasteOnly: action.type == 'PASTE_CLIPBOARD',\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t...copyModal.content,\n\t\t\t\t\t\t\tpaste: ''\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'UPDATE_CONTENT_TO_PASTE':\n\t\t\tClipboardHelper.updatePasteContent(action.content)\n\t\t\tClipboardHelper.validatePasteContent(toggleArrivals)\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tselection: {\n\t\t\t\t\t...selection,\n\t\t\t\t\tcopyModal: {\n\t\t\t\t\t\t...copyModal,\n\t\t\t\t\t\terror: ClipboardHelper.error,\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t...copyModal.content,\n\t\t\t\t\t\t\tpaste: ClipboardHelper.content.paste.serialize(toggleArrivals)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'PASTE_CONTENT':\n\t\t\tif (ClipboardHelper.error) return state\n\n\t\t\tconst pasteContent = ClipboardHelper.content.paste.deserialize(toggleArrivals)\n\t\t\tconst stops = flatten(pasteContent)\n\n\t\t\t// let prevStop\n\n\t\t\tconst vehicleJourneys = state.vehicleJourneys.map((vj, x) => {\n\t\t\t\tconst newStops = vj.vehicle_journey_at_stops.map((vjas, y) => {\n\t\t\t\t\tif (vjas.dummy) return vjas // We dont want data to be uptaded in this case\n\n\t\t\t\t\tconst stopParams = stops.find(stop => stop.x == x && stop.y == y) || vjas\n\t\t\t\t\t// const dayOffSets = computeDayOffSet(prevStop, stopParams)\n\n\t\t\t\t\t// prevStop = vjas\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...vjas,\n\t\t\t\t\t\t// ...dayOffSets,\n\t\t\t\t\t\tdeparture_time: stopParams.departure_time,\n\t\t\t\t\t\tarrival_time: stopParams.arrival_time,\n\t\t\t\t\t\tdelta: stopParams.delta\n\t\t\t\t\t}\n\t\t\t\t})\n\n\n\t\t\t\treturn {\n\t\t\t\t\t...vj,\n\t\t\t\t\tvehicle_journey_at_stops: newStops\n\t\t\t\t}\n\t\t\t})\n\t\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tvehicleJourneys,\n\t\t\t\tselection: initialState.selection\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t\t}\n}\n","import _ from 'lodash'\nimport Select2 from 'react-select2-wrapper'\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nexport default class CustomFieldsInputs extends Component {\n constructor(props) {\n super(props)\n }\n\n options(cf){\n if(cf.options){\n return cf.options\n }\n return {\n default: \"\"\n }\n }\n\n listInput(cf){\n let list_values = this.options(cf).list_values\n let required = !!this.options(cf).required\n let keys = _.orderBy(_.keys(list_values), function(key){ return list_values[key] })\n let data = _.map(keys, (k) => {\n let v = this.options(cf).list_values[k]\n return {id: k, text: (v.length > 0 ? v : '\\u00A0')}\n })\n if(!required){\n data.unshift({id: \"\", text: I18n.t('none')})\n }\n return(\n this.props.onUpdate(cf.code, e.params.data.id) }\n />\n )\n }\n\n stringInput(cf){\n return(\n {this.props.onUpdate(cf.code, e.target.value); this.forceUpdate()} }\n />\n )\n }\n\n integerInput(cf){\n return(\n {this.props.onUpdate(cf.code, e.target.value); this.forceUpdate()} }\n />\n )\n }\n\n render() {\n return (\n
    \n {_.map(this.props.values, (cf, code) =>\n
    \n
    \n \n {this[cf.field_type + \"Input\"](cf)}\n
    \n
    \n )}\n
    \n )\n }\n}\n\nCustomFieldsInputs.propTypes = {\n onUpdate: PropTypes.func.isRequired,\n values: PropTypes.object.isRequired,\n disabled: PropTypes.bool.isRequired\n}\n","export default {\n\tinit() {\n\t\tdocument.dispatchEvent(new Event('submitMover'))\n\t}\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nexport default class CancelButton extends Component {\n constructor(props) {\n super(props)\n }\n\n btnDisabled() {\n return !this.props.status.fetchSuccess || this.props.status.isFetching || (this.props.editMode == false)\n }\n\n btnClass() {\n let className = ['btn btn-cancel']\n if (this.btnDisabled()) {\n className.push('disabled')\n }\n return className.join(' ')\n }\n\n hasPolicy() {\n return true\n }\n\n render() {\n if (!this.hasPolicy()) {\n return false\n }\n return (\n
    \n
    \n
    { e.preventDefault() }}>\n
    \n {\n e.preventDefault()\n $('#CancelButtonModal').modal('show')\n }}\n >\n {I18n.t('cancel')}\n \n
    \n
    \n
    \n
    \n < div className=\"modal-container\" >\n
    \n
    \n
    \n

    {I18n.t('warning')}

    \n
    \n
    \n

    {I18n.t('cancel_confirm')}

    \n
    \n \n
    \n
    \n
    \n
    \n
    \n )\n }\n}\n\nCancelButton.propTypes = {\n onConfirmCancel: PropTypes.func.isRequired\n}\n\nCancelButton.defaultProps = {\n status: {\n fetchSuccess: false,\n isFetching: false\n }\n}","const { NODE_ENV } = process.env\n\nexport const isDev = NODE_ENV == 'development'\nexport const isProd = NODE_ENV == 'production'\n","import GeoJSON from 'ol/format/GeoJSON'\n\nexport default new GeoJSON({ dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857' })\n","import { useCallback } from 'react'\nimport { debounce } from 'lodash'\n\nconst useDebounce = (callback, debounceTime) =>\n\tuseCallback(\n\t\tdebounce(callback, debounceTime)\n\t)\n\nexport default useDebounce\n","import { useEffect } from \"react\"\nimport Alpine from 'alpinejs'\n\n/*\nThis custom hook display a flash message based on data set previoulsy in the session storage.\nThe value in the session storage should be a JSON string with the following format :\n\t{\n\t\tresource: string,\n\t\taction: string,\n\t\tstatus: string\n\t}\n*/\n\nexport default function useFlashMessage(key = 'previousAction') {\n\tuseEffect(() => {\n\t\tconst previousAction = sessionStorage.getItem(key)\n\n\t\tif (!previousAction) return\n\n\t\ttry {\n\t\t\tconst { resource, action, status } = JSON.parse(previousAction)\n\n\t\t\tAlpine.store('flash').add({\n\t\t\t\ttype: 'success',\n\t\t\t\ttext: I18n.t(`flash.actions.${action}.${status}`, {\n\t\t\t\t\tresource_name: I18n.t(`activerecord.models.${resource}.one`)\n\t\t\t\t})\n\t\t\t})\n\n\t\t} catch (_error) {\n\t\t\t// CHOUETTE-1522\n\t\t\tsessionStorage.clear()\n\t\t} finally {\n\t\t\tsessionStorage.removeItem(key)\n\t\t}\n\t}, [])\n}\n","import { useEffect, useState } from 'react'\nimport useSWR from 'swr'\nimport { isArray, isEmpty } from 'lodash'\n\nimport geoJSON from '../geoJSON'\n\nconst useGeoJSONFeatures = (\n\turls,\n\tcallback = () => {}\n) => {\n\tconst [loadingStatus, setLoadingStatus] = useState(() =>\n\t\tnew Map(urls.map(url => [url, true]))\n\t)\n\tconst [features, setFeatures] = useState()\n\n\tconst doneFetching = Array.from(loadingStatus.entries()).every(([_key, isFetching]) => !isFetching)\n\n\tconst onSuccess = (data, key) => {\n\t\tconst fetchFeatures = isArray(data) ? data : [data]\n\n\t\t!isEmpty(fetchFeatures) && setFeatures(prevFeatures => [\n\t\t\t...(prevFeatures || []),\n\t\t\t...fetchFeatures.map(featureCollection => geoJSON.readFeatures(featureCollection)).flat()\n\t\t])\n\n\t\tsetLoadingStatus(prevLoadingStatus =>\n\t\t\tnew Map([\n\t\t\t\t...prevLoadingStatus.entries(),\n\t\t\t\t[key, false]\n\t\t\t])\n\t\t)\n\t}\n\n\turls.forEach(url => {\n\t\tuseSWR(url, { onSuccess, revalidateOnFocus: false })\n\t})\n\n\tuseEffect(() => {\n\t\tdoneFetching && callback(features)\n\t}, [doneFetching])\n\n\treturn doneFetching ? features : null\n}\n\nexport default useGeoJSONFeatures\n","import { useEffect, useRef } from 'react'\n\nconst usePrevious = value => {\n const ref = useRef()\n\n useEffect(() => {\n ref.current = value\n })\n\n return ref.current\n}\n\nexport default usePrevious\n\n// https://blog.logrocket.com/how-to-get-previous-props-state-with-react-hooks/","import { useState, useEffect } from 'react'\nimport { filter, map } from 'rxjs/operators'\nimport { isEqual } from 'lodash'\n\nexport default function useStore(\n store,\n mapStateToProps = state => state\n) {\n const [state, setState] = useState(() => mapStateToProps(store.initialState))\n\n useEffect(() => {\n const sub = store.pipe(\n map(mapStateToProps),\n filter(newState => !isEqual(state, newState))\n ).subscribe(setState)\n\n // return () => sub.unsubsribe()\n }, [])\n\n return state\n}","import { useEffect } from 'react'\n\nimport SubmitMover from '../SubmitMover'\n\nexport default function useSubmitMover() {\n\tuseEffect(() => { SubmitMover.init() }, [])\n}\n","import { applyMiddleware } from 'redux'\nimport logger from 'redux-logger';\nimport { isDev } from './env'\n\nexport default function applyMiddlewareWrapper(...middlewares) {\n\tconst list = [\n\t\t...isDev ? [logger] : [],\n\t\t...middlewares\n\t]\n\n\treturn applyMiddleware(...list)\n}\n","import React, { PropTypes, Component } from 'react'\nimport { bindAll } from 'lodash'\n\nexport default class SaveButton extends Component{\n constructor(props){\n super(props)\n\n bindAll(this, 'handleClick')\n }\n\n btnDisabled(){\n return !this.props.status.fetchSuccess || this.props.status.isFetching\n }\n\n btnClass(){\n let className = ['btn btn-default']\n if(this.btnDisabled()){\n className.push('disabled')\n }\n return className.join(' ')\n }\n\n handleClick(e) {\n e.preventDefault()\n this.props.editMode ? this.submitForm() : this.props.onEnterEditMode()\n }\n\n render() {\n if (!this.hasPolicy()) {\n return false\n }else{\n return (\n
    \n
    \n
    {e.preventDefault()}}>\n
    \n \n {this.props.editMode ? I18n.t('actions.submit') : I18n.t('actions.edit')}\n \n
    \n
    \n
    \n
    \n )\n }\n }\n}\n\nSaveButton.defaultProps = {\n status: {\n fetchSuccess: false,\n isFetching: false\n }\n}\n","export default {\n errorLoading: () => I18n.t('select2.error_loading'),\n inputTooLong: (e) => I18n.t('select2.input_too_long', { count: e.input.length - e.maximum}),\n inputTooShort: (e) => I18n.t('select2.input_too_short', { count: e.minimum - e.input.length }),\n loadingMore: () => I18n.t('select2.loading_more'),\n maximumSelected: (e) => I18n.t('select2.maximum_selected', {count: e.maximum}),\n noResults: () => I18n.t('select2.no_results'),\n searching: () => I18n.t('select2.searching')\n}","import React, { Component } from 'react'\n\nexport default class StopAreaHeaderManager {\n constructor(ids_list, stopPointsList, features) {\n this.ids_list = ids_list\n this.stopPointsList = stopPointsList\n this.features = features\n }\n\n hasFeature(key) {\n return this.features[key]\n }\n\n stopPointHeader(object_id, show_details=true) {\n let index = this.ids_list.indexOf(object_id)\n let sp = this.stopPointsList[index]\n let showHeadline = show_details && this.showHeader(object_id)\n let title = sp.city_name ? sp.city_name + ' (' + sp.zip_code +')' : \"\"\n if(sp.waiting_time > 0){\n title += \" | \" + sp.waiting_time_text\n }\n return (\n \n \n \n {sp.name}\n {sp.time_zone_formatted_offset && show_details && \n  ({sp.time_zone_formatted_offset})\n }\n {sp.area_kind == 'non_commercial' && \n }\n \n \n
    \n )\n }\n\n showHeader(object_id) {\n let showHeadline = false\n let headline = \"\"\n let attribute_to_check = this.hasFeature('long_distance_routes') ? \"country_code\" : \"city_name\"\n let index = this.ids_list.indexOf(object_id)\n let sp = this.stopPointsList[index]\n let previousBreakpoint = this.stopPointsList[index - 1]\n if(sp == undefined){\n console.log(\"STOP_POINT NOT FOUND: \" + object_id)\n console.log(\"AVAILABLE IDS:\" + this.ids_list)\n return\n }\n if(index == 0 || (sp[attribute_to_check] != previousBreakpoint[attribute_to_check])){\n showHeadline = true\n headline = this.hasFeature('long_distance_routes') ? sp.country_name : sp.city_name\n }\n return showHeadline ? headline : \"\"\n }\n}\n"],"names":["batchActions","actions","type","payload","enterEditMode","exitEditMode","onVisibilityChange","event","toggleTimesSelection","updateSelectedItems","items","clearSelectedItems","updateSelectionDimensions","width","height","updateSelectionLocked","locked","copyClipboard","pasteFromClipboard","closeCopyModal","copyModalToPasteMode","copyModalToCopyMode","updateContentToPaste","content","pasteContent","receiveVehicleJourneys","json","returnJourneys","receiveErrors","fetchingApi","unavailableServer","goToPreviousPage","dispatch","pagination","queryString","nextPage","goToNextPage","checkConfirmModal","callback","stateChanged","openConfirmModal","openCreateModal","selectJPCreateModal","selectedJP","selectedItem","_","assign","objectid","object_id","stop_areas","stop_area_short_descriptions","openEditModal","vehicleJourney","openInfoModal","openNotesEditModal","toggleFootnoteModal","footnote","isShown","openCalendarsEditModal","vehicleJourneys","selectTTCalendarsModal","selectedTT","id","comment","color","bounding_dates","time_table_bounding","days","day_types","addSelectedTimetable","deleteCalendarModal","timetable","editVehicleJourneyTimetables","timetables","editVehicleJourneyConstraintZones","zones","stop_area_constraints","openConstraintExclusionEditModal","selectConstraintZone","selectedZone","name","text","selectStopAreasConstraint","deleteConstraintZone","constraintZone","deleteStopAreasConstraint","openShiftModal","openSelectSpecificStopModal","openDuplicateModal","selectVehicleJourney","index","cancelSelection","addVehicleJourney","data","selectedJourneyPattern","stopPointsList","selectedCompany","selectedAccessibilityAssessment","select2Company","unselect2Company","select2AccessibilityAssessment","unselect2AccessibilityAssessment","addReferentialCode","newCode","deleteReferentialCode","updateReferentialCode","attributes","editVehicleJourney","editVehicleJourneyNotes","footnotes","line_notices","shiftVehicleJourney","addtionalTime","selectSpecificStop","specific_stop_area_map","duplicateVehicleJourney","duplicateNumber","departureDelta","deleteVehicleJourneys","cancelDeletion","closeModal","resetValidation","target","$","parent","removeClass","children","remove","validateFields","fields","valid","Object","keys","forEach","key","field","validity","addClass","append","validationMessage","toggleArrivals","updateTime","val","subIndex","timeUnit","isDeparture","isArrivalsToggled","enforceConsistency","resetStateFilters","toggleWithoutSchedule","toggleWithoutTimeTable","updateStartTimeFilter","unit","updateEndTimeFilter","filterSelect2Timetable","filterSelect2JourneyPattern","published_name","filterSelect2VehicleJourney","selectedVJ","createQueryString","resetPagination","queryFilterVehicleJourneys","resetFilters","filterQuery","updateTotalCount","diff","receiveTotalCount","total","fetchVehicleJourneys","currentPage","url","undefined","window","location","pathname","page","str","sep","toString","urlJSON","hasError","fetch","credentials","then","response","status","i","vehicle_journeys","length","timeTables","k","time_tables","tt","push","vjasWithDelta","vehicle_journey_at_stops","map","vjas","fillEmptyFields","getDelta","deletable","selected","published_journey_name","published_journey_identifier","company","accessibility_assessment","transport_mode","route","line","transport_submode","currentItemsLength","validate","next","didValidateVehicleJourneys","submitVehicleJourneys","state","method","contentType","Accept","body","JSON","stringify","headers","attr","ok","getSelected","vj","filter","obj","getSelectedDeletables","simplePad","d","pad","substr","parseInt","encodeParams","params","esc","encodeURIComponent","join","departure_time","hour","minute","arrival_time","getDuplicateDelta","original","newDeparture","allowNegative","hasAllAttributes","scheduleToDates","delta","getHours","getMinutes","setDate","getDate","getTime","adjustSchedule","action","schedule","isFirstOrLastStop","newSchedule","getShiftedSchedule","additional_time","departureDT","Date","UTC","arrivalDT","newDepartureDT","newArrivalDT","getUTCHours","getUTCMinutes","depHour","depMinute","arrHour","arrMinute","addMinutesToTime","time","minutes","res","delta_hour","delta_minute","extra_hours","keep","prevSp","pristineVjasList","current_time","computeSchedule","initTZOffet","value","full_schedule","costs","time_zone_offset","sp","newVjas","inJourney","stop_area_id","jp","stop_area_short_description","offsetHours","offsetminutes","stop_point_objectid","stop_area_cityname","city_name","dummy","stop_point_id","waiting_time","departure_day_offset","arrival_day_offset","find","stopArea","area_object_id","position","lastStop","journey_pattern","short_id","transportMode","transportSubmode","custom_fields","referential_codes","shiftedArray","shiftedSchedule","shiftedVjas","parse","vjasList","includes","specific_stop_area_id","vjasArray","toggleOnConfirmModal","arg","each","this","vehicleJourneysModal","newModalProps","alreadyPresent","newReferentialCodesArray","selectedConstraintZones","selectedStopAreasConstraints","newQuery","newInterval","timeFormat","formatTime","isDate","format","isObject","parseTime","isString","match","CopyContent","constructor","clipboard","setContent","contentTable","chunk","serialize","row","item","out","deserialize","reduce","result","PasteContent","copyContent","copy","replaceAll","trim","split","r","isDummy","chunkSize","copyRow","cells","j","copyItem","cellContent","last","departure","arrival","subMinutes","computeArrivalTime","x","y","differenceInMinutes","error","deserializedContent","deserializedCopyContent","isEmpty","isEqual","cell","date","isNaN","paste","updateCopyContent","updatePasteContent","validatePasteContent","journeyPatternId","initialState","editMode","filters","selectedJourneyPatterns","policy","perms","features","query","interval","start","end","journeyPattern","withoutSchedule","withoutTimeTable","fetchSuccess","isFetching","stopPoints","returnStopPointsList","returnStopPoints","totalCount","perPage","vehicleJourneysPerPage","modal","modalProps","confirmModal","missions","all_missions","selection","active","copyModal","visible","mode","jpOrigin","combinedReducers","combineReducers","newTimetables","updatedVJ","vjm","dupeVj","selectedIndex","dupes","concatArray","slice","concat","returnVehicleJourneys","line_notice","f","info","uniqTimetables","splice","code","selectedTimetable","zone_id","timetablesModal","stopAreas","jpOriginStopPoints","selectedJPModal","Path","partialTest","comapniesPathParams","companiesPath","path","workbenchId","editModal","onSelect2Company","onUnselect2Company","cacheOptions","isClearable","defaultOptions","defaultValue","getOptionLabel","getOptionValue","loadOptions","async","URLSearchParams","line_id","lineId","q","inputValue","isDisabled","placeholder","I18n","t","onChange","meta","styles","control","provided","minHeight","menu","base","zIndex","accessibility_assessmentsPathParams","accessibilityAssessmentsPath","onSelect2AccessibilityAssessment","onUnselect2AccessibilityAssessment","CodesInputs","Component","props","super","createNewReferentialCode","code_space_id","available_code_spaces","fallback_id","shortid","render","values","className","disabled","e","onUpdateReferentialCode","code_space","short_name","title","onClick","onDeleteReferentialCode","onAddReferentialCode","propTypes","PropTypes","EditVehicleJourney","updateValue","bind","handleSubmit","refs","onEditVehicleJourney","onModalClose","attribute","currentTarget","forceUpdate","onOpenEditModal","attribute_name","ref","enumerize","readOnly","checksum","CustomFieldsInputs","onUpdate","connect","ownProps","EditComponent","VehicleJourneyInfoButton","VehicleJourneyInfoButtonComponent","VehicleJourneyAtStop","autoBind","hasDelta","tdClasses","isSelecting","isSelected","isInSelection","displayDelta","onUpdateTime","renderSelectionSize","isSelectionBottomRight","selectionContentText","selectionMode","renderDelta","isEditable","cityNameChecker","hasUpdatePermission","selectableRef","partial","onMouseOut","onBlur","createSelectable","VehicleJourney","previousCity","journey_length","formatDistance","showHeader","hasFeature","timeTableURL","ttURL","href","style","hasTimeTable","found","extraHeaderValue","header","field_type","options","list_values","distance","toFixed","detailed_calendars","detailed_calendars_shown","hasClass","selectedItems","dimensionContent","selectionDimensionContent","lastSelectedItem","errors","parents","onSelectVehicleJourney","stopPropagation","preventDefault","onOpenInfoModal","truncate","extraHeaders","display","checked","htmlFor","allTimeTables","SelectableContainer","vehicleJourneysAtStops","bounds","setBounds","useState","setLocked","handleNewSelection","done","itemCollection","minX","maxX","minY","maxY","min","max","handleSelecting","useDebounce","useEffect","newSelectedItems","inRange","duringSelection","onSelectionFinish","hasItems","setTimeout","onSelectionClear","scrollContainer","sortedVjas","chain","flatMap","sortBy","bool","VehicleJourneysList","headerManager","StopAreaHeaderManager","isReturn","routeUrl","vehicleJourneysList","selectionClasses","uniqBy","onKeyDown","bubbleKeyEvent","toggleTimetables","root","toggleClass","componentDidUpdate","extraHeaderLabel","customFields","metaKey","ctrlKey","componentDidMount","onLoadFirstPage","prevProps","prevState","css","refH","refCol","h","getBoundingClientRect","n","nth","document","addEventListener","previousBreakpoint","requestAnimationFrame","trigger","marginTop","marginBottom","tc","some","err","model_name","stopPointHeader","onSelectCell","defaultProps","widthMultiplier","extra_headers","Navigate","lastPage","Math","ceil","minVJ","maxVJ","model","capitalize","plural","from","to","count","onSubmit","NavigateComponent","ToggleArrivals","onToggleArrivals","getId","RegExp","getWorkbenchId","getReferentialId","getRouteId","isFilter","onSelect2JourneyPattern","formatOptionLabel","option","_meta","dangerouslySetInnerHTML","__html","queryParams","route_id","_isFilter","onSelect2VehicleJourney","searchField","onSelect2Timetable","set","Filters","onFilter","onResetFilters","onUpdateStartTimeFilter","onUpdateEndTimeFilter","onToggleWithoutSchedule","onToggleWithoutTimeTable","filtersKey","setFiltersKey","vjOptions","isOptionSelected","MissionSelect2","TimetableSelect2","padding","FiltersList","CancelVehicleJourney","CancelButton","hasPolicy","formClassName","onConfirmCancel","reload","CancelVehicleJourneysComponent","SaveVehicleJourneys","SaveButton","submitForm","onEnterEditMode","onExitEditMode","onSubmitVehicleJourneys","SaveVehicleJourneysComponent","ConfirmModal","onModalAccept","onModalCancel","CopyModal","copyContentRef","useRef","pasteContentRef","pasteOnly","toCopyMode","toPasteMode","selectAll","createTextRange","range","moveToElementText","current","select","getSelection","createRange","selectNodeContents","removeAllRanges","addRange","stopImmediatePropagation","focus","onPaste","clipboardData","getData","wrap","navigator","readText","clipText","console","CreateModal","cf","default","onAddVehicleJourney","onOpenCreateModal","getTimezoneOffset","AddVehicleJourney","DeleteVehicleJourneys","onDeleteVehicleJourneys","DeleteVJComponent","SelectVehicleJourneys","onToggleTimesSelection","SelectVJComponent","CopyButton","CopyButtonComponent","PasteButton","PasteButtonComponent","ShiftVehicleJourney","onShiftVehicleJourney","handleAdditionalTimeChange","setState","onOpenShiftModal","required","ShiftVJComponent","BSelect4","getSelectedStopAreaId","stop_area_id_string","onSelect","onSelectSpecificStop","onUnselect","multiple","language","allowClear","theme","escapeMarkup","markup","templateResult","formatRepo","SelectSpecificStop","available_specific_stop_places","selected_specific_stops","addSpecificStopToVJAS","fetch_available_specific_stop_places","journey_pattern_id","fetching_specific_stops","available_specific_stop_places_path","object1","index1","stop_area","index2","is_referent","onOpenSelectSpecificStopModal","stop_points","SelectSpecificStopComponent","DuplicateVehicleJourney","onFormChange","disableValidateButton","componentWillReceiveProps","getDefaultValue","miunte","originalDT","duplicate_time_hh","duplicate_time_mm","duplicate_number","onDuplicateVehicleJourney","incorrectDT","noInputChanges","onOpenDuplicateModal","DuplicateVJComponent","NotesEditVehicleJourney","onNotesEditVehicleJourney","fnIds","fn","lnIds","associated","to_associate","line_footnotes","renderFootnoteButton","lf","onToggleFootnoteModal","noteUrl","default_line_notices_path","workbench_id","referential_id","renderAssociatedFN","paddingTop","label","renderToAssociateFN","onOpenNotesEditModal","NotesEditComponent","TimetablesEditVehicleJourney","onTimetablesEditVehicleJourney","onOpenCalendarsEditModal","lineHeight","onDeleteCalendarModal","TimetablesEditComponent","Tools","hasDeletedVJ","onCancelSelection","onCancelDeletion","ToolsComponent","App","useSubmitMover","returnRouteUrl","store","createStore","ClipboardHelper","stops","flatten","newStops","stopParams","stop","batchingReducer","applyMiddleware","getElementById","listInput","v","unshift","stringInput","integerInput","init","dispatchEvent","Event","btnDisabled","btnClass","tabIndex","role","NODE_ENV","process","isDev","GeoJSON","dataProjection","featureProjection","debounceTime","useCallback","debounce","useFlashMessage","previousAction","sessionStorage","getItem","resource","Alpine","add","resource_name","_error","clear","removeItem","urls","loadingStatus","setLoadingStatus","Map","setFeatures","doneFetching","Array","entries","every","_key","onSuccess","fetchFeatures","isArray","prevFeatures","featureCollection","geoJSON","flat","prevLoadingStatus","useSWR","revalidateOnFocus","useStore","mapStateToProps","pipe","newState","subscribe","SubmitMover","applyMiddlewareWrapper","middlewares","list","logger","bindAll","handleClick","errorLoading","inputTooLong","input","maximum","inputTooShort","minimum","loadingMore","maximumSelected","noResults","searching","ids_list","show_details","indexOf","showHeadline","zip_code","waiting_time_text","time_zone_formatted_offset","area_kind","area_type_i18n","headline","attribute_to_check","log","country_name"],"sourceRoot":""}