{"version":3,"file":"js/7166-b186ace6db39c5d815e8.js","mappings":"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","sources":["webpack://Chouette/./app/packs/src/journey_patterns/actions/index.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/journeyPatterns.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/pagination.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/modal.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/index.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/editMode.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/status.js","webpack://Chouette/./app/packs/src/journey_patterns/reducers/stopPointsList.js","webpack://Chouette/./app/packs/src/journey_patterns/components/ShapeSelector.jsx","webpack://Chouette/./app/packs/src/journey_patterns/components/ShapeMap.jsx","webpack://Chouette/./app/packs/src/journey_patterns/components/CreateModal.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/AddJourneyPattern.js","webpack://Chouette/./app/packs/src/journey_patterns/components/Navigate.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/Navigate.js","webpack://Chouette/./app/packs/src/journey_patterns/components/EditModal.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/Modal.js","webpack://Chouette/./app/packs/src/journey_patterns/components/ConfirmModal.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/ConfirmModal.js","webpack://Chouette/./app/packs/src/journey_patterns/components/CancelJourneyPattern.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/CancelJourneyPattern.js","webpack://Chouette/./app/packs/src/journey_patterns/components/SaveJourneyPattern.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/SaveJourneyPattern.js","webpack://Chouette/./app/packs/src/journey_patterns/components/JourneyPattern.js","webpack://Chouette/./app/packs/src/journey_patterns/components/JourneyPatterns.js","webpack://Chouette/./app/packs/src/journey_patterns/containers/JourneyPatternList.js","webpack://Chouette/./app/packs/src/journey_patterns/components/App.js","webpack://Chouette/./app/packs/entrypoints/journey_patterns/index.js","webpack://Chouette/./app/packs/src/components/MapWrapper.jsx","webpack://Chouette/./app/packs/src/helpers/shapeMapStyle.jsx","webpack://Chouette/./app/packs/src/helpers/xCrsfToken.js"],"sourcesContent":["const actions = {\n enterEditMode: () => ({\n type: \"ENTER_EDIT_MODE\"\n }),\n exitEditMode: () => ({\n type: \"EXIT_EDIT_MODE\"\n }),\n receiveJourneyPatterns : (json) => ({\n type: \"RECEIVE_JOURNEY_PATTERNS\",\n json\n }),\n receiveErrors : (json) => ({\n type: \"RECEIVE_ERRORS\",\n json\n }),\n receiveRouteCosts: (costs, key, index) => ({\n type: \"RECEIVE_ROUTE_COSTS\",\n costs,\n key,\n index\n }),\n unavailableServer : () => ({\n type: 'UNAVAILABLE_SERVER'\n }),\n goToPreviousPage : (dispatch, pagination) => ({\n type: 'GO_TO_PREVIOUS_PAGE',\n dispatch,\n pagination,\n nextPage : false\n }),\n goToNextPage : (dispatch, pagination) => ({\n type: 'GO_TO_NEXT_PAGE',\n dispatch,\n pagination,\n nextPage : true\n }),\n updateCheckboxValue : (e, index) => ({\n type : 'UPDATE_CHECKBOX_VALUE',\n position : e.currentTarget.id,\n index\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 openConfirmModal : (callback) => ({\n type : 'OPEN_CONFIRM_MODAL',\n callback\n }),\n openEditModal : (index, journeyPattern) => ({\n type : 'EDIT_JOURNEYPATTERN_MODAL',\n index,\n journeyPattern\n }),\n openCreateModal : () => ({\n type : 'CREATE_JOURNEYPATTERN_MODAL'\n }),\n deleteJourneyPattern : (index) => ({\n type : 'DELETE_JOURNEYPATTERN',\n index,\n }),\n updateJourneyPatternCosts : (index, costs) => ({\n type : 'UPDATE_JOURNEYPATTERN_COSTS',\n index,\n costs\n }),\n closeModal : () => ({\n type : 'CLOSE_MODAL'\n }),\n saveModal : (index, data) => ({\n type: 'SAVE_MODAL',\n data,\n index\n }),\n addJourneyPattern : (data) => ({\n type: 'ADD_JOURNEYPATTERN',\n data,\n }),\n savePage : (dispatch, currentPage) => ({\n type: 'SAVE_PAGE',\n dispatch\n }),\n updateTotalCount: (diff) => ({\n type: 'UPDATE_TOTAL_COUNT',\n diff\n }),\n fetchingApi: () =>({\n type: 'FETCH_API'\n }),\n duplicateJourneyPattern: () => ({\n type: 'DUPLICATE_JOURNEY_PATTERN'\n }),\n selectShape: selectedItem => ({\n type: 'SELECT_SHAPE_EDIT_MODAL',\n selectedItem\n }),\n unselectShape: () => ({\n type: 'UNSELECT_SHAPE_EDIT_MODAL',\n }),\n resetValidation: (target) => {\n $(target).parent().removeClass('has-error').children('.help-block').remove()\n },\n validateFields : (fields) => {\n const test = []\n\n Object.keys(fields).map(function(key) {\n test.push(fields[key].validity.valid)\n })\n if(test.indexOf(false) >= 0) {\n // Form is invalid\n test.map(function(item, i) {\n if(item == false) {\n const k = Object.keys(fields)[i]\n $(fields[k]).parent().addClass('has-error').children('.help-block').remove()\n $(fields[k]).parent().append(\"\" + fields[k].validationMessage + \"\")\n }\n })\n return false\n } else {\n // Form is valid\n return true\n }\n },\n submitJourneyPattern : (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 })\n .then(response => {\n if(!response.ok) {\n hasError = true\n }\n return response.json()\n })\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 }\n }\n })\n .then(() => {\n if (!hasError) {\n dispatch(actions.exitEditMode())\n actions.fetchJourneyPatterns(dispatch)\n }\n })\n },\n fetchJourneyPatterns : (dispatch, currentPage, nextPage) => {\n if(currentPage == undefined){\n currentPage = 1\n }\n let journeyPatterns = []\n let page\n\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 if(page > 1){\n str = '.json?page=' + page.toString()\n }\n let urlJSON = window.location.pathname + str\n let hasError = false\n\n return 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 if(json.length != 0){\n let j = 0\n while(j < json.length){\n let val = json[j]\n let i = 0\n while(i < val.route_short_description.stop_points.length){\n let stop_point = val.route_short_description.stop_points[i]\n stop_point.checked = false\n val.stop_area_short_descriptions.map((element) => {\n if(element.stop_area_short_description.position === stop_point.position){\n stop_point.checked = true\n }\n })\n i ++\n }\n journeyPatterns.push(\n _.assign({}, val, {\n stop_points: val.route_short_description.stop_points,\n costs: val.costs || {},\n deletable: false\n })\n )\n j ++\n }\n }\n window.currentItemsLength = journeyPatterns.length\n dispatch(actions.receiveJourneyPatterns(journeyPatterns))\n }\n })\n },\n getChecked : (jp) => {\n return jp.filter((obj) => {\n return obj.checked\n })\n }\n}\n\nexport default actions\n","import _ from 'lodash'\nimport actions from \"../actions\"\n\nconst journeyPattern = (state = {}, action) =>{\n switch (action.type) {\n case 'ADD_JOURNEYPATTERN':\n let stopPoints = window.stopPoints\n\n if(stopPoints != undefined) {\n stopPoints.map((s)=>{\n s.checked = false\n return s\n })\n }\n return {\n name: action.data.name.value,\n published_name: action.data.published_name.value,\n registration_number: action.data.registration_number.value,\n stop_points: stopPoints,\n costs: {},\n custom_fields: action.data.custom_fields,\n deletable: false,\n shape: action.data.shape\n }\n case 'UPDATE_CHECKBOX_VALUE':\n var updatedStopPoints = state.stop_points.map((s) => {\n if (String(s.position) == action.position) {\n return _.assign({}, s, {checked : !s.checked})\n }else {\n return s\n }\n })\n return _.assign({}, state, {stop_points: updatedStopPoints})\n default:\n return state\n }\n}\n\nexport default function journeyPatterns (state = [], action) {\n switch (action.type) {\n case 'RECEIVE_JOURNEY_PATTERNS':\n return [...action.json]\n case 'RECEIVE_ERRORS':\n return [...action.json]\n case 'RECEIVE_ROUTE_COSTS':\n return state.map((j, i) =>{\n if(i == action.index) {\n const new_costs = Object.assign({}, j.costs)\n new_costs[action.key] = action.costs[action.key] ||\n {distance: 0, time: 0}\n return _.assign({}, j, {costs: new_costs})\n } else {\n return j\n }\n })\n case 'GO_TO_PREVIOUS_PAGE':\n $('#ConfirmModal').modal('hide')\n if(action.pagination.page > 1){\n actions.fetchJourneyPatterns(action.dispatch, action.pagination.page, action.nextPage)\n }\n return state\n case 'GO_TO_NEXT_PAGE':\n $('#ConfirmModal').modal('hide')\n if (action.pagination.totalCount - (action.pagination.page * action.pagination.perPage) > 0){\n actions.fetchJourneyPatterns(action.dispatch, action.pagination.page, action.nextPage)\n }\n return state\n case 'UPDATE_CHECKBOX_VALUE':\n return state.map((j, i) =>{\n if(i == action.index) {\n return journeyPattern(j, action)\n } else {\n return j\n }\n })\n case 'DELETE_JOURNEYPATTERN':\n return state.map((j, i) =>{\n if(i == action.index) {\n return _.assign({}, j, {deletable: true})\n } else {\n return j\n }\n })\n case 'UPDATE_JOURNEYPATTERN_COSTS':\n return state.map((j, i) =>{\n if(i == action.index) {\n const new_costs = Object.assign({}, j.costs)\n Object.keys(action.costs).map((key) => {\n let new_costs_for_key = Object.assign({}, j.costs[key] || {}, action.costs[key])\n new_costs[key] = new_costs_for_key\n })\n return _.assign({}, j, {costs: new_costs})\n } else {\n return j\n }\n })\n case 'ADD_JOURNEYPATTERN':\n return [\n journeyPattern(state, action),\n ...state\n ]\n case 'SAVE_MODAL':\n return state.map((j, i) =>{\n if(i == action.index) {\n return _.assign({}, j, {\n name: action.data.name.value,\n published_name: action.data.published_name.value,\n registration_number: action.data.registration_number.value,\n custom_fields: action.data.custom_fields,\n shape: action.data.shape\n })\n } else {\n return j\n }\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 return _.assign({}, state, {stateChanged: false})\n case 'GO_TO_PREVIOUS_PAGE':\n if (action.pagination.page > 1){\n toggleOnConfirmModal()\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 toggleOnConfirmModal()\n return _.assign({}, state, {page : action.pagination.page + 1, stateChanged: false})\n }\n return state\n case 'UPDATE_CHECKBOX_VALUE':\n case 'ADD_JOURNEYPATTERN':\n case 'SAVE_MODAL':\n toggleOnConfirmModal('modal')\n return _.assign({}, state, {stateChanged: true})\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 journeyPattern, newModalProps\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_JOURNEYPATTERN_MODAL':\n return {\n type: 'edit',\n modalProps: {\n index: action.index,\n journeyPattern: action.journeyPattern\n },\n confirmModal: {}\n }\n case 'SELECT_SHAPE_EDIT_MODAL':\n journeyPattern = _.assign({}, state.modalProps.journeyPattern, {shape: action.selectedItem})\n newModalProps = _.assign({}, state.modalProps, {journeyPattern})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'UNSELECT_SHAPE_EDIT_MODAL':\n journeyPattern = _.assign({}, state.modalProps.journeyPattern, {shape: undefined})\n newModalProps = _.assign({}, state.modalProps, {journeyPattern})\n return _.assign({}, state, {modalProps: newModalProps})\n case 'CREATE_JOURNEYPATTERN_MODAL':\n return {\n type: 'create',\n modalProps: {},\n confirmModal: {}\n }\n case 'DELETE_JOURNEYPATTERN':\n return _.assign({}, state, { type: '' })\n case 'SAVE_MODAL':\n return _.assign({}, state, { type: '' })\n case 'CLOSE_MODAL':\n return {\n type: '',\n modalProps: {},\n confirmModal: {}\n }\n default:\n return state\n }\n}\n","import { combineReducers } from 'redux'\nimport editMode from './editMode'\nimport status from './status'\nimport journeyPatterns from './journeyPatterns'\nimport pagination from './pagination'\nimport modal from './modal'\nimport stopPointsList from './stopPointsList'\n\nconst journeyPatternsApp = combineReducers({\n editMode,\n status,\n journeyPatterns,\n pagination,\n stopPointsList,\n modal,\n custom_fields: (state = [], action) => state\n})\n\nexport default journeyPatternsApp\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 status (state = {}, action) {\n switch (action.type) {\n case 'UNAVAILABLE_SERVER':\n return { ...state, fetchSuccess: false }\n case 'FETCH_API':\n return { ...state, isFetching: true }\n case 'DUPLICATE_JOURNEY_PATTERN':\n return { ...state, isFetching: true }\n case 'RECEIVE_JOURNEY_PATTERNS':\n return { ...state, fetchSuccess: true, isFetching: false }\n case 'RECEIVE_ERRORS':\n return { ...state, isFetching: false }\n case 'ENTER_EDIT_MODE':\n return { ...state, editMode: true }\n case 'EXIT_EDIT_MODE':\n return { ...state, editMode: false }\n default:\n return state\n }\n}","export default function stopPointsList (state = [], action) {\n switch (action.type) {\n default:\n return state\n }\n}","import React from 'react'\nimport { Async as Select } from 'react-select'\n\nconst ShapeSelect2 = ({ disabled, onSelectShape, onUnselectShape, shape }) => (\n
}\n getOptionLabel={({ text }) => text}\n getOptionValue={({ id }) => id}\n placeholder={I18n.t('journey_patterns.form.shape_placeholder')}\n loadOptions={async inputValue => {\n const response = await fetch(`${window.shapes_url}?${new URLSearchParams({ q: inputValue }).toString()}`)\n return await response.json()\n }}\n onChange={(selectedItem, meta) => {\n switch(meta.action) {\n case 'select-option':\n onSelectShape(selectedItem)\n break\n case 'deselect-option':\n case 'clear':\n onUnselectShape()\n break\n }\n }}\n />\n)\n\nexport default ShapeSelect2\n","import React from 'react'\n\nimport MapWrapper from '../../components/MapWrapper'\nimport shapeMapStyle from '../../helpers/shapeMapStyle'\nimport { useGeoJSONFeatures } from '../../helpers/hooks'\n\n\nfunction ShapeMap({ shapeId }) {\n const features = useGeoJSONFeatures([`${window.shape_url}/${shapeId}.geojson`])\n\n return (\n
\n \n
\n )\n}\n\nexport default ShapeMap\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../actions'\nimport CustomFieldsInputs from '../../helpers/CustomFieldsInputs'\nimport ShapeSelector from './ShapeSelector'\nimport ShapeMap from './ShapeMap'\nimport _ from 'lodash'\n\nexport default class CreateModal extends Component {\n constructor(props) {\n super(props)\n this.custom_fields = _.assign({}, this.props.custom_fields)\n }\n\n handleSubmit() {\n if(actions.validateFields(this.refs) == true) {\n this.props.onAddJourneyPattern(_.assign({}, this.refs, {\n custom_fields: this.custom_fields,\n shape: this.props?.journeyPattern?.shape ? { id: this.props.journeyPattern.shape.id, name: this.props.journeyPattern.shape.name, uuid: this.props.journeyPattern.shape.uuid } : undefined\n }\n ))\n this.props.onModalClose()\n $('#NewJourneyPatternModal').modal('hide')\n }\n }\n\n render() {\n const {\n editMode, journeyPattern, status, type,\n onModalClose, onOpenCreateModal, onSelectShape, onUnselectShape\n } = this.props\n \n if(status.isFetching == true || status.policy['journey_patterns.create'] == false || editMode == false) {\n return false\n }\n if(status.fetchSuccess == true) {\n return (\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n

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

\n
\n\n {(type == 'create') && (\n
\n
\n
\n
\n
\n \n actions.resetValidation(e.currentTarget)}\n required\n />\n
\n
\n
\n
\n
\n
\n \n actions.resetValidation(e.currentTarget)}\n />\n
\n
\n
\n
\n \n actions.resetValidation(e.currentTarget)}\n />\n
\n
\n
\n\n
\n this.custom_fields[code][\"value\"] = value}\n disabled={false}\n />\n
\n
\n
\n
\n \n \n
\n
\n
\n {journeyPattern?.shape?.id && (\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 onOpenCreateModal: PropTypes.func.isRequired,\n onModalClose: PropTypes.func.isRequired,\n onAddJourneyPattern: PropTypes.func.isRequired\n}\n","import { connect } from 'react-redux'\nimport actions from '../actions'\nimport CreateModal from '../components/CreateModal'\n\nconst mapStateToProps = (state) => {\n\n return {\n editMode: state.editMode,\n status: state.status,\n custom_fields: state.custom_fields,\n status: state.status,\n type: state.modal.type,\n ...state.modal.modalProps\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n onAddJourneyPattern: (data) =>{\n dispatch(actions.addJourneyPattern(data))\n },\n onOpenCreateModal: () =>{\n dispatch(actions.openCreateModal())\n },\n onSelectShape: selectedShape => {\n dispatch(actions.selectShape(selectedShape))\n },\n onUnselectShape: () => {\n dispatch(actions.unselectShape())\n }\n }\n}\n\nconst AddJourneyPattern = connect(mapStateToProps, mapDispatchToProps)(CreateModal)\n\nexport default AddJourneyPattern\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, journeyPatterns, pagination, status }) {\n let firstPage = 1\n let lastPage = Math.ceil(pagination.totalCount / window.journeyPatternsPerPage)\n\n let firstItemOnPage = firstPage + (pagination.perPage * (pagination.page - firstPage))\n let lastItemOnPage = firstItemOnPage + (pagination.perPage - firstPage)\n\n if(status.isFetching == true) {\n return false\n }\n if(status.fetchSuccess == true) {\n return (\n
\n
\n
\n {I18n.t('will_paginate.page_entries_info.multi_page', { model: capitalize(I18n.model_name('journey_pattern', { plural: true })), from: firstItemOnPage, to: lastItemOnPage, count: pagination.totalCount})}\n
{\n e.preventDefault()\n }}>\n {\n e.preventDefault()\n dispatch(actions.checkConfirmModal(e, actions.goToPreviousPage(dispatch, pagination), pagination.stateChanged, dispatch))\n }}\n type='button'\n data-toggle=''\n data-target='#ConfirmModal'\n className={'previous_page' + (pagination.page == firstPage ? ' disabled' : '')}\n disabled={(pagination.page == firstPage ? ' disabled' : '')}\n >\n \n {\n e.preventDefault()\n dispatch(actions.checkConfirmModal(e, actions.goToNextPage(dispatch, pagination), pagination.stateChanged, dispatch))\n }}\n type='button'\n data-toggle=''\n data-target='#ConfirmModal'\n className={'next_page' + (pagination.page == lastPage ? ' disabled' : '')}\n disabled={(pagination.page == lastPage ? 'disabled' : '')}\n >\n \n \n
\n
\n
\n )\n } else {\n return false\n }\n}\n\nNavigate.propTypes = {\n journeyPatterns: PropTypes.array.isRequired,\n status: PropTypes.object.isRequired,\n pagination: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired\n}","import { connect } from 'react-redux'\nimport actions from '../actions'\nimport NavigateComponent from '../components/Navigate'\n\nconst mapStateToProps = (state) => {\n return {\n journeyPatterns: state.journeyPatterns,\n status: state.status,\n pagination: state.pagination\n }\n}\n\nconst Navigate = connect(mapStateToProps)(NavigateComponent)\n\nexport default Navigate","import _ from 'lodash'\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport actions from '../actions'\nimport CustomFieldsInputs from '../../helpers/CustomFieldsInputs'\nimport ShapeSelector from './ShapeSelector'\nimport ShapeMap from './ShapeMap'\n\nexport default class EditModal 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 this.props.saveModal(this.props.index,\n _.assign({}, this.refs, {\n custom_fields: this.custom_fields,\n shape: this.props.journeyPattern.shape ? {id: this.props.journeyPattern.shape.id, name: this.props.journeyPattern.shape.name, uuid: this.props.journeyPattern.shape.uuid } : undefined\n })\n )\n $('#JourneyPatternModal').modal('hide')\n }\n }\n\n updateValue(attribute, e) {\n actions.resetValidation(e.currentTarget)\n this.props.journeyPattern[attribute] = e.target.value\n this.forceUpdate()\n }\n\n renderModalTitle() {\n if (this.props.editMode) {\n return (\n

\n {I18n.t('journey_patterns.actions.edit')}\n {this.props.type == 'edit' && \"{this.props.journeyPattern.name}\"}\n

\n )\n } else {\n return

{I18n.t('journey_patterns.show.informations')}

\n }\n }\n\n render() {\n const {\n editMode, index, journeyPattern, type,\n onModalClose, onSelectShape, onUnselectShape\n } = this.props\n if(journeyPattern){\n this.custom_fields = _.assign({}, journeyPattern.custom_fields)\n }\n return (\n
\n
\n
\n
\n
\n {this.renderModalTitle()}\n ×\n
\n {(type == 'edit') && (\n
\n
\n
\n
\n
\n \n this.updateValue('name', e)}\n required\n />\n
\n
\n
\n
\n
\n
\n \n this.updateValue('published_name', e)}\n />\n
\n
\n
\n
\n \n this.updateValue('registration_number', e)}\n />\n
\n
\n
\n
\n this.custom_fields[code][\"value\"] = value}\n disabled={!editMode}\n />\n
\n
\n
\n
\n \n \n
\n
\n
\n {journeyPattern.shape?.id && (\n
\n
\n \n
\n
\n )}\n
\n \n \n
\n
\n {\n 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\nEditModal.propTypes = {\n index: PropTypes.number,\n modal: PropTypes.object,\n onModalClose: PropTypes.func.isRequired,\n saveModal: PropTypes.func.isRequired\n}\n","import { connect } from 'react-redux'\nimport actions from '../actions'\nimport EditModal from '../components/EditModal'\nimport CreateModal from '../components/CreateModal'\n\nconst mapStateToProps = state => ({\n editMode: state.editMode,\n custom_fields: state.custom_fields,\n status: state.status,\n type: state.modal.type,\n ...state.modal.modalProps\n})\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalClose: () =>{\n dispatch(actions.closeModal())\n },\n saveModal: (index, data) =>{\n dispatch(actions.saveModal(index, data))\n },\n onSelectShape: selectedShape => {\n dispatch(actions.selectShape(selectedShape))\n },\n onUnselectShape: () => {\n dispatch(actions.unselectShape())\n }\n }\n}\n\nconst ModalContainer = connect(mapStateToProps, mapDispatchToProps)(EditModal)\n\nexport default ModalContainer\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\n\nexport default function ConfirmModal({dispatch, modal, onModalAccept, onModalCancel, journeyPatterns}) {\n return (\n
\n
\n
\n
\n
\n

{I18n.t('journey_patterns.show.confirmation')}

\n
\n
\n
\n

{I18n.t('journey_patterns.show.confirm_page_change')}

\n
\n
\n
\n { onModalCancel(modal.confirmModal.callback) }}\n >\n {I18n.t('cancel')}\n \n { onModalAccept(modal.confirmModal.callback, journeyPatterns) }}\n >\n {I18n.t('actions.submit')}\n \n
\n
\n
\n
\n
\n )\n}\n\nConfirmModal.propTypes = {\n modal: PropTypes.object.isRequired,\n onModalAccept: PropTypes.func.isRequired,\n onModalCancel: PropTypes.func.isRequired\n}","import { connect } from 'react-redux'\nimport actions from '../actions'\nimport ConfirmModal from '../components/ConfirmModal'\n\nconst mapStateToProps = (state) => {\n return {\n modal: state.modal,\n journeyPatterns: state.journeyPatterns\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onModalAccept: (next, state) =>{\n dispatch(actions.fetchingApi())\n actions.submitJourneyPattern(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 CancelButton from '../../helpers/cancel_button'\n\nexport default class CancelJourneyPattern extends CancelButton {\n constructor(props) {\n super(props)\n }\n\n formClassName() {\n return 'jp_collection'\n }\n}","import { connect } from 'react-redux'\nimport CancelJourneyPatternComponent from '../components/CancelJourneyPattern'\n\nconst mapStateToProps = (state) => {\n return {\n editMode: state.editMode,\n status: state.status\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onConfirmCancel: () => {\n location.reload()\n },\n }\n}\n\nconst CancelJourneyPatterns = connect(mapStateToProps, mapDispatchToProps)(CancelJourneyPatternComponent)\n\nexport default CancelJourneyPatterns\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 SaveJourneyPattern extends SaveButton {\n hasPolicy(){\n return this.props.status.policy['journey_patterns.update'] == true\n }\n\n formClassName(){\n return 'jp_collection'\n }\n\n submitForm(){\n this.props.onSubmitJourneyPattern(this.props.dispatch, this.props.journeyPatterns)\n }\n}\n\nSaveJourneyPattern.propTypes = {\n journeyPatterns: PropTypes.array.isRequired,\n status: PropTypes.object.isRequired,\n page: PropTypes.number.isRequired\n}\n","import { connect } from 'react-redux'\nimport actions from '../actions'\nimport SaveJourneyPatternComponent from '../components/SaveJourneyPattern'\n\nconst mapStateToProps = (state) => {\n return {\n journeyPatterns: state.journeyPatterns,\n editMode: state.editMode,\n page: state.pagination.page,\n status: state.status\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onExitEditMode: () => {\n dispatch(actions.exitEditMode())\n },\n onEnterEditMode: () => {\n dispatch(actions.enterEditMode())\n },\n onSubmitJourneyPattern: (next, state) => {\n actions.submitJourneyPattern(dispatch, state, next)\n }\n }\n}\n\nconst SaveJourneyPattern = connect(mapStateToProps, mapDispatchToProps)(SaveJourneyPatternComponent)\n\nexport default SaveJourneyPattern\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Path } from 'path-parser'\nimport Alpine from 'alpinejs'\n\nimport actions from '../actions'\nimport xCrsfToken from '../../helpers/xCrsfToken'\n\nconst path = new Path('/workbenches/:workbenchId/referentials/:referentialId/lines/:lineId/routes/:routeId')\nconst vehicleJourneysPath = new Path('/workbenches/:workbenchId/referentials/:referentialId/routes/:routeId/vehicle_journeys')\nconst params = path.partialTest(location.pathname)\nclass MutationBuilder {\n constructor(fetchingApi, fetchJourneyPatterns, enterEditMode) {\n this.fetchingApi = fetchingApi\n this.fetchJourneyPatterns = fetchJourneyPatterns\n this.enterEditMode = enterEditMode\n }\n\n prepare(url, action) {\n return () => fetch(url, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRF-Token': xCrsfToken\n }\n })\n .then(res => res.json())\n .then(async () => {\n await this.fetchJourneyPatterns()\n await this.enterEditMode()\n\n this.handleResponse(action, 'notice')\n })\n .catch(() => this.handleResponse(action, 'error'))\n }\n\n handleResponse = (action, status) => {\n Alpine.store('flash').add({\n type: 'success',\n text: I18n.t(`flash.actions.${action}.${status}`, {\n resource_name: I18n.t(`activerecord.models.journey_pattern.one`)\n })\n })\n }\n}\nexport default function JourneyPattern({\n editMode,\n enterEditMode,\n fetchingApi,\n fetchJourneyPatterns,\n index,\n onCheckboxChange,\n onDeleteJourneyPattern,\n onOpenEditModal,\n onUpdateJourneyPatternCosts,\n showHeader,\n status,\n value: journeyPattern\n}) {\n let previousSpId = undefined\n const basePath = `${path.build(params)}/journey_patterns/${journeyPattern.id}`\n const shape = journeyPattern.shape || {}\n\n const hasShape = !!shape.id\n const canEditShape = !!shape?.has_waypoints\n\n const mutationBuilder = new MutationBuilder(fetchingApi, fetchJourneyPatterns, enterEditMode)\n const duplicateJourneyPattern = mutationBuilder.prepare(`${basePath}/duplicate`, 'duplicate')\n const unassociateShape = mutationBuilder.prepare(`${basePath}/unassociate_shape`, 'update')\n\n const updateCosts = ({ target: { dataset, name, value } }) => {\n const costs = {\n [dataset.costsKey]: {\n [name]: parseFloat(value)\n }\n }\n onUpdateJourneyPatternCosts(costs)\n }\n\n const vehicleJourneyURL = jpOid => {\n const vjURL = vehicleJourneysPath.build(params) + '?jp=' + jpOid\n\n return {I18n.t('journey_patterns.journey_pattern.vehicle_journey_at_stops')}\n }\n\n const hasFeature = key => status.features[key]\n\n const cityNameChecker = (sp, i) => showHeader((sp.stop_area_object_id || sp.object_id) + \"-\" + i)\n\n const spNode = (sp, headlined) => (\n \n
\n \n \n \n \n \n
\n )\n\n const isDisabled = action => !status.policy[`journey_patterns.${action}`]\n\n const totals = (onlyCommercial = false) =>{\n let totalTime = 0\n let totalDistance = 0\n let from = null\n journeyPattern.stop_points.map((stopPoint, i) => {\n let usePoint = stopPoint.checked\n if (onlyCommercial && (i == 0 || i == journeyPattern.stop_points.length - 1) && stopPoint.kind == \"non_commercial\") {\n usePoint = false\n }\n if (from && usePoint) {\n let [_costsKey, _costs, time, distance] = getTimeAndDistanceBetweenStops(from, stopPoint.id)\n totalTime += time\n totalDistance += distance\n }\n if (usePoint) {\n from = stopPoint.id\n }\n })\n return [formatTime(totalTime), formatDistance(totalDistance)]\n }\n\n const getTimeAndDistanceBetweenStops = (from, to) => {\n const costsKey = from + \"-\" + to\n const costs = getCosts(costsKey)\n const time = costs['time'] || 0\n const distance = costs['distance'] || 0\n return [costsKey, costs, time, distance]\n }\n\n const getCosts = costsKey => {\n const cost = journeyPattern.costs[costsKey]\n\n if (cost) return cost\n\n return { distance: 0, time: 0 }\n }\n\n const formatDistance = distance => {\n if (distance < 1000) {\n return distance + \" m\"\n }\n else {\n return (distance / 1000).toFixed(2) + \" km\"\n }\n }\n\n const formatTime = time => {\n time = Number(time);\n var h = Math.floor(time / 3600);\n var m = Math.floor(time % 3600 / 60);\n var s = Math.floor(time % 3600 % 60);\n\n var hDisplay = h > 0 ? h + (\" h \") : \"\";\n var mDisplay = m > 0 ? m + (\" m \") : \"\";\n var sDisplay = s > 0 ? s + (\" sec \") : \"\";\n return hDisplay + mDisplay + sDisplay;\n }\n\n const renderShapeEditorButtons = () => {\n const { id } = journeyPattern\n\n if (!hasFeature('shape_editor_experimental') || !editMode || !id) return []\n\n if (!hasShape) {\n return [\n
  • \n \n {I18n.t('journey_patterns.actions.create_shape')}\n \n
  • \n ]\n } else {\n return [\n ...canEditShape ?\n [\n
  • \n \n {I18n.t('journey_patterns.actions.edit_shape')}\n \n
  • \n ] :\n [],\n
  • \n \n {I18n.t('journey_patterns.actions.unassociate_shape')}\n \n
  • \n ]\n }\n }\n\n const onCreateShape = () => { location.replace(`${basePath}/shapes/new`) }\n\n const onEditShape = () => { location.replace(`${basePath}/shapes/edit`) }\n\n const [totalTime, totalDistance] = totals(false)\n const [commercialTotalTime, commercialTotalDistance] = totals(true)\n\n const { deletable, id, object_id, short_id, stop_points } = journeyPattern\n\n return (\n
    \n
    \n
    {object_id ? short_id : '-'}
    \n
    {journeyPattern.registration_number}
    \n
    {I18n.t('journey_patterns.show.stop_points_count', { count: actions.getChecked(stop_points).length })}
    \n {journeyPattern.costs &&\n
    \n {totalDistance}\n {totalTime}\n
    \n }\n {journeyPattern.costs &&\n
    \n {commercialTotalDistance}\n {commercialTotalTime}\n
    \n }\n
    \n \n \n
    \n
      \n
    • \n \n {editMode ? I18n.t('actions.edit') : I18n.t('actions.show')}\n \n
    • \n {editMode && !!id && (\n
    • \n duplicateJourneyPattern()}\n >\n {I18n.t('actions.duplicate')}\n \n
    • \n )}\n {renderShapeEditorButtons()}\n
    • \n {object_id ? vehicleJourneyURL(object_id) : {I18n.t('journey_patterns.journey_pattern.vehicle_journey_at_stops')}}\n
    • \n
    • \n {\n e.preventDefault()\n onDeleteJourneyPattern(index)\n }\n }\n >\n {I18n.t('actions.destroy')}\n \n
    • \n
    \n
    \n
    \n\n {stop_points.map((stopPoint, i) => {\n let costs = null\n let costsKey = null\n let time = null\n let distance = null\n let time_in_words = null\n if (previousSpId && stopPoint.checked) {\n [costsKey, costs, time, distance] = getTimeAndDistanceBetweenStops(previousSpId, stopPoint.id)\n time_in_words = formatTime(time)\n }\n if (stopPoint.checked) {\n previousSpId = stopPoint.id\n }\n let headlined = cityNameChecker(stopPoint, i)\n return (\n
    \n
    \n {spNode(stopPoint, headlined)}\n
    \n { costs &&
    \n {editMode &&
    \n

    \n \n m\n

    \n

    \n \n sec\n

    \n
    }\n {!editMode &&
    \n

    {formatDistance(costs['distance'] || 0)}

    \n

    {time_in_words}

    \n
    }\n
    }\n
    \n )\n })}\n \n )\n}\n\nJourneyPattern.propTypes = {\n value: PropTypes.object,\n index: PropTypes.number,\n onCheckboxChange: PropTypes.func.isRequired,\n onOpenEditModal: PropTypes.func.isRequired,\n onDeleteJourneyPattern: PropTypes.func.isRequired,\n showHeader: PropTypes.func.isRequired,\n onDuplicateJourneyPattern: PropTypes.func.isRequired,\n fetchJourneyPatterns: PropTypes.func.isRequired\n}\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport _ from 'lodash'\nimport JourneyPattern from './JourneyPattern'\nimport StopAreaHeaderManager from '../../helpers/stop_area_header_manager'\n\nexport default class JourneyPatterns extends Component {\n constructor(props){\n super(props)\n this.headerManager = new StopAreaHeaderManager(\n _.map(this.props.stopPointsList, (sp, i)=>{return sp.stop_area_object_id + \"-\" + i}),\n this.props.stopPointsList,\n this.props.status.features\n )\n }\n\n componentDidMount() {\n this.props.onLoadFirstPage()\n }\n\n componentDidUpdate(prevProps, prevState) {\n if(this.props.status.isFetching == false){\n $('.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 $(this).find('.td:nth-child('+ (nth + 1) +')').css('height', refCol[nth]);\n }\n });\n }\n }\n\n showHeader(object_id) {\n return this.headerManager.showHeader(object_id)\n }\n\n hasFeature(key) {\n return this.props.status.features[key]\n }\n\n render() {\n this.previousCity = undefined\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.t('error')} : \n {I18n.t('journeys_patterns.journey_pattern.fetching_error')}\n
    \n )}\n\n { _.some(this.props.journeyPatterns, 'errors') && (\n
    \n {I18n.t('error')} : \n {this.props.journeyPatterns.map((jp, index) =>\n jp.errors && Object.keys(jp.errors).map((key) =>\n jp.errors[key].map((error, i) => {\n return (\n
      \n
    • {jp.errors[key]}
    • \n
      \n
    \n )\n })\n )\n )}\n
    \n )}\n\n
    0) ? '' : ' no_result')}>\n
    \n
    \n
    {I18n.t('objectid')}
    \n
    {I18n.attribute_name('journey_pattern', 'registration_number')}
    \n
    {I18n.attribute_name('journey_pattern', 'stop_points')}
    \n
    \n {this.props.stopPointsList.map((sp, i) =>{\n return (\n
    \n {this.headerManager.stopPointHeader(sp.stop_area_object_id + \"-\" + i)}\n
    \n )\n })}\n
    \n\n
    \n
    \n {this.props.journeyPatterns.map((journeyPattern, index) =>\n this.props.onCheckboxChange(e, index)}\n onOpenEditModal= {() => this.props.onOpenEditModal(index, journeyPattern)}\n onDeleteJourneyPattern={() => this.props.onDeleteJourneyPattern(index)}\n onUpdateJourneyPatternCosts={(costs) => this.props.onUpdateJourneyPatternCosts(index, costs)}\n status= {this.props.status}\n editMode= {this.props.editMode}\n showHeader={this.showHeader.bind(this)}\n />\n )}\n
    \n
    \n
    \n
    \n
    \n )\n }\n }\n}\n\nJourneyPatterns.propTypes = {\n journeyPatterns: PropTypes.array.isRequired,\n stopPointsList: PropTypes.array.isRequired,\n status: PropTypes.object.isRequired,\n onCheckboxChange: PropTypes.func.isRequired,\n onLoadFirstPage: PropTypes.func.isRequired,\n fetchingApi: PropTypes.func.isRequired,\n fetchJourneyPatterns: PropTypes.func.isRequired,\n onOpenEditModal: PropTypes.func.isRequired,\n enterEditMode: PropTypes.func.isRequired\n}\n","import { connect } from 'react-redux'\nimport actions from '../actions'\nimport JourneyPatterns from '../components/JourneyPatterns'\n\nconst mapStateToProps = (state) => {\n return {\n journeyPatterns: state.journeyPatterns,\n status: state.status,\n editMode: state.editMode,\n stopPointsList: state.stopPointsList\n }\n}\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n onLoadFirstPage() {\n this.fetchingApi()\n this.fetchJourneyPatterns()\n },\n fetchingApi: () => {\n dispatch(actions.fetchingApi())\n },\n fetchJourneyPatterns: () => {\n return actions.fetchJourneyPatterns(dispatch)\n },\n enterEditMode: () => {\n dispatch(actions.enterEditMode())\n },\n onCheckboxChange: (e, index) =>{\n dispatch(actions.updateCheckboxValue(e, index))\n },\n onOpenEditModal: (index, journeyPattern) =>{\n dispatch(actions.openEditModal(index, journeyPattern))\n },\n onDeleteJourneyPattern: (index) =>{\n dispatch(actions.deleteJourneyPattern(index))\n },\n onUpdateJourneyPatternCosts: (index, costs) =>{\n dispatch(actions.updateJourneyPatternCosts(index, costs))\n },\n onDuplicateJourneyPattern: () => {\n dispatch(actions.duplicateJourneyPattern())\n }\n }\n}\n\nconst JourneyPatternList = connect(mapStateToProps, mapDispatchToProps)(JourneyPatterns)\n\nexport default JourneyPatternList\n","import React from 'react'\nimport AddJourneyPattern from '../containers/AddJourneyPattern'\nimport Navigate from '../containers/Navigate'\nimport Modal from '../containers/Modal'\nimport ConfirmModal from '../containers/ConfirmModal'\nimport CancelJourneyPattern from '../containers/CancelJourneyPattern'\nimport SaveJourneyPattern from '../containers/SaveJourneyPattern'\nimport JourneyPatternList from '../containers/JourneyPatternList'\n\nimport { useFlashMessage, useSubmitMover } from '../../helpers/hooks'\n\nconst App = () => {\n useFlashMessage()\n useSubmitMover()\n\n return (\n
    \n \n \n \n \n \n \n \n \n {/* That map has been deactivated until further specs */}\n {/*

    {I18n.t('lines.show.map')}

    \n */}\n
    \n )\n}\n\nexport default App\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'\nimport journeyPatternsApp from '../../src/journey_patterns/reducers'\nimport App from '../../src/journey_patterns/components/App'\n\nconst initialState = {\n editMode: false,\n status: {\n policy: window.perms,\n features: window.features,\n fetchSuccess: true,\n isFetching: false\n },\n journeyPatterns: [],\n stopPointsList: window.stopPoints,\n pagination: {\n page : 1,\n totalCount: window.journeyPatternLength,\n perPage: window.journeyPatternsPerPage,\n stateChanged: false\n },\n modal: {\n type: '',\n modalProps: {},\n confirmModal: {}\n },\n custom_fields: window.custom_fields\n}\n\nconst store = createStore(\n journeyPatternsApp,\n initialState,\n applyMiddleware()\n)\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n if (document.getElementById(\"journey_patterns\")) {\n render(\n \n \n ,\n document.getElementById('journey_patterns')\n )\n }\n})","import React, { useMemo, useEffect, useCallback, useState } from 'react'\nimport { PropTypes } from 'prop-types'\nimport { Map, View } from 'ol'\nimport { Tile as TileLayer, Vector as VectorLayer } from 'ol/layer'\nimport { OSM, Vector as VectorSource } from 'ol/source'\nimport { ScaleLine, Zoom, ZoomSlider } from 'ol/control'\nimport { toStringXY } from 'ol/coordinate'\n\nimport { toWgs84 } from '@turf/turf'\n\nimport { usePrevious } from '../helpers/hooks'\n\nfunction MapWrapper({ features, onInit, style, height, width }) {\n const [ selectedCoord , setSelectedCoord ] = useState()\n const previousFeatures = usePrevious(features)\n\n const featuresLayer = useMemo(\n () => new VectorLayer({ source: new VectorSource(), style }),\n []\n )\n\n const map = useMemo(\n () => new Map({\n layers: [\n // OSM Topo\n new TileLayer({ source: new OSM({ attributions: '© OpenStreetMap contributors' }) }),\n featuresLayer\n ],\n view: new View({ center: [0, 0], zoom: 2 }),\n controls: [new ScaleLine(), new Zoom(), new ZoomSlider()]\n }),\n []\n )\n\n // pull refs\n const mapRef = useCallback(node => { node !== null && map.setTarget(node) }, [])\n\n useEffect(() => {\n map.on('singleclick', e => { setSelectedCoord(toWgs84(e.coordinate)) })\n onInit(map)\n },[])\n\n // update map if features prop changes - logic formerly put into componentDidUpdate\n useEffect( () => {\n if (features && !previousFeatures) { // we just want to execute this block once\n\n // set features to map\n featuresLayer.setSource(new VectorSource({ features }))\n\n // Workaround to prevent openlayer rendering bugs within modal\n map.updateSize()\n\n // Fit map to feature extent (with 100px of padding)\n map.getView().fit(featuresLayer.getSource().getExtent(), {\n padding: [100,100,100,100],\n maxZoom: 18\n })\n }\n },[features])\n\n // render component\n return (\n
    \n
    \n
    \n

    { (selectedCoord) ? toStringXY(selectedCoord, 5) : '' }

    \n
    \n
    \n )\n}\n\nMapWrapper.defaultProps = {\n onInit: _map => {},\n height: 370,\n width: '100%'\n}\n\nMapWrapper.propTypes = {\n fetchFeatures: PropTypes.array,\n onInit: PropTypes.func,\n style: PropTypes.object,\n height: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n}\n\nexport default MapWrapper\n","import { Fill, Stroke, Circle, Style } from 'ol/style'\n\n// Return style for Route Map\nconst shapeMapStyle = (props={}) => {\n\n const white = [255, 255, 255, 1]\n const red = [255, 0, 0, 1]\n const width = 2\n\n const strokeColor = props.strokeColor || red\n const fillColor = props.fillColor || white\n\n const fill = new Fill({ color: fillColor })\n\n const stroke = new Stroke({ color: strokeColor, width })\n\n return new Style({\n image: new Circle({\n fill,\n stroke,\n radius: 5\n }),\n fill,\n stroke\n })\n}\n\nexport default shapeMapStyle\n","export default document.querySelector('meta[name=\"csrf-token\"]')?.attributes?.content?.value\n"],"names":["actions","enterEditMode","type","exitEditMode","receiveJourneyPatterns","json","receiveErrors","receiveRouteCosts","costs","key","index","unavailableServer","goToPreviousPage","dispatch","pagination","nextPage","goToNextPage","updateCheckboxValue","e","position","currentTarget","id","checkConfirmModal","event","callback","stateChanged","openConfirmModal","fetchingApi","openEditModal","journeyPattern","openCreateModal","deleteJourneyPattern","updateJourneyPatternCosts","closeModal","saveModal","data","addJourneyPattern","savePage","currentPage","updateTotalCount","diff","duplicateJourneyPattern","selectShape","selectedItem","unselectShape","resetValidation","target","$","parent","removeClass","children","remove","validateFields","fields","test","Object","keys","map","push","validity","valid","indexOf","item","i","k","addClass","append","validationMessage","submitJourneyPattern","state","next","urlJSON","window","location","pathname","hasError","fetch","credentials","method","contentType","Accept","body","JSON","stringify","headers","attr","then","response","ok","length","currentItemsLength","fetchJourneyPatterns","undefined","page","journeyPatterns","str","toString","status","j","val","route_short_description","stop_points","stop_point","checked","stop_area_short_descriptions","element","stop_area_short_description","_","assign","deletable","getChecked","jp","filter","obj","action","stopPoints","s","name","value","published_name","registration_number","custom_fields","shape","updatedStopPoints","String","toggleOnConfirmModal","arg","each","this","newModalProps","combineReducers","editMode","fetchSuccess","isFetching","new_costs","distance","time","modal","totalCount","perPage","new_costs_for_key","stopPointsList","confirmModal","modalProps","disabled","onSelectShape","onUnselectShape","isClearable","isDisabled","defaultValue","text","uuid","cacheOptions","defaultOptions","formatOptionLabel","option","_meta","dangerouslySetInnerHTML","__html","getOptionLabel","getOptionValue","placeholder","I18n","t","loadOptions","async","shapes_url","URLSearchParams","q","inputValue","onChange","meta","shapeId","features","useGeoJSONFeatures","shape_url","className","MapWrapper","style","shapeMapStyle","CreateModal","Component","constructor","props","super","handleSubmit","refs","onAddJourneyPattern","onModalClose","render","onOpenCreateModal","policy","onClick","attribute_name","ref","onKeyDown","required","CustomFieldsInputs","values","onUpdate","code","ShapeSelector","bind","propTypes","PropTypes","connect","selectedShape","Navigate","lastPage","Math","ceil","journeyPatternsPerPage","firstItemOnPage","lastItemOnPage","model","capitalize","model_name","plural","from","to","count","onSubmit","preventDefault","NavigateComponent","EditModal","updateValue","attribute","forceUpdate","renderModalTitle","readOnly","checksum","ConfirmModal","onModalAccept","onModalCancel","CancelJourneyPattern","CancelButton","formClassName","onConfirmCancel","reload","CancelJourneyPatternComponent","SaveJourneyPattern","SaveButton","hasPolicy","submitForm","onSubmitJourneyPattern","onExitEditMode","onEnterEditMode","SaveJourneyPatternComponent","path","Path","vehicleJourneysPath","params","partialTest","MutationBuilder","prepare","url","xCrsfToken","res","handleResponse","catch","Alpine","add","resource_name","JourneyPattern","onCheckboxChange","onDeleteJourneyPattern","onOpenEditModal","onUpdateJourneyPatternCosts","showHeader","previousSpId","basePath","build","hasShape","canEditShape","has_waypoints","mutationBuilder","unassociateShape","updateCosts","dataset","costsKey","parseFloat","totals","onlyCommercial","totalTime","totalDistance","stopPoint","usePoint","kind","_costsKey","_costs","getTimeAndDistanceBetweenStops","formatTime","formatDistance","getCosts","cost","toFixed","Number","h","floor","m","onCreateShape","replace","onEditShape","commercialTotalTime","commercialTotalDistance","object_id","short_id","errors","renderShapeEditorButtons","jpOid","vjURL","href","vehicleJourneyURL","time_in_words","headlined","sp","stop_area_object_id","cityNameChecker","spNode","min","step","onDuplicateJourneyPattern","JourneyPatterns","headerManager","StopAreaHeaderManager","componentDidMount","onLoadFirstPage","componentDidUpdate","prevProps","prevState","refH","refCol","find","getBoundingClientRect","height","n","css","nth","hasFeature","previousCity","requestAnimationFrame","document","trigger","marginTop","marginBottom","error","stopPointHeader","JourneyPatternList","useFlashMessage","useSubmitMover","Modal","initialState","perms","journeyPatternLength","store","createStore","journeyPatternsApp","applyMiddleware","addEventListener","getElementById","onInit","width","selectedCoord","setSelectedCoord","useState","previousFeatures","usePrevious","featuresLayer","useMemo","VectorLayer","source","VectorSource","Map","layers","TileLayer","OSM","attributions","view","View","center","zoom","controls","ScaleLine","Zoom","ZoomSlider","mapRef","useCallback","node","setTarget","useEffect","on","toWgs84","coordinate","setSource","updateSize","getView","fit","getSource","getExtent","padding","maxZoom","toStringXY","defaultProps","_map","fetchFeatures","strokeColor","fillColor","fill","Fill","color","stroke","Stroke","Style","image","Circle","radius","querySelector","attributes","content"],"sourceRoot":""}