handleClick()

in modules/edit-modes/src/lib/extend-line-string-mode.ts [16:46]


  handleClick(event: ClickEvent, props: ModeProps<FeatureCollection>) {
    const { selectedIndexes } = props;
    const selectedLineString = this.getSingleSelectedLineString(props);

    if (!selectedLineString) {
      console.warn(`ExtendLineStringMode only supported for single LineString selection`); // eslint-disable-line
      return;
    }

    // Extend the LineString
    let positionIndexes = [selectedLineString.coordinates.length];

    const modeConfig = props.modeConfig;
    if (modeConfig && modeConfig.drawAtFront) {
      positionIndexes = [0];
    }
    const featureIndex = selectedIndexes[0];
    const updatedData = new ImmutableFeatureCollection(props.data)
      .addPosition(featureIndex, positionIndexes, event.mapCoords)
      .getObject();

    props.onEdit({
      updatedData,
      editType: 'addPosition',
      editContext: {
        featureIndexes: [featureIndex],
        positionIndexes,
        position: event.mapCoords,
      },
    });
  }