decodeArcLabelDecorator<D> static method

ArcLabelDecorator<D>? decodeArcLabelDecorator<D>(
  1. dynamic map, {
  2. bool validate = false,
})

Decodes the object from a Map-like dynamic structure. This expects the JSON format to be of the following structure:

{
  "insideLabelStyleSpec": <TextStyleSpec>,
  "labelPadding": <int>,
  "labelPosition": <ArcLabelPosition>,
  "leaderLineColor": <Color>,
  "leaderLineStyleSpec": <ArcLabelLeaderLineStyleSpec>,
  "outsideLabelStyleSpec": <TextStyleSpec>,
  "showLeaderLines": <bool>
}

See also:

Implementation

static common.ArcLabelDecorator<D>? decodeArcLabelDecorator<D>(
  dynamic map, {
  bool validate = false,
}) {
  common.ArcLabelDecorator<D>? result;

  if (map is common.ArcLabelDecorator<D>) {
    result = map;
  } else if (map != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/arc_label_decorator',
      value: map,
      validate: validate,
    ));

    result = common.ArcLabelDecorator<D>(
      insideLabelStyleSpec: decodeTextStyleSpec(
        map['insideLabelStyleSpec'],
        validate: false,
      ),
      labelPadding: JsonClass.parseInt(map['labelPadding']) ?? 5,
      labelPosition: decodeArcLabelPosition(
            map['labelPosition'],
            validate: false,
          ) ??
          common.ArcLabelPosition.auto,
      leaderLineColor: decodeColor(
        map['leaderLineColor'],
        validate: false,
      ),
      leaderLineStyleSpec: decodeArcLabelLeaderLineStyleSpec(
        map['leaderLineStyleSpec'],
        validate: false,
      ),
      outsideLabelStyleSpec: decodeTextStyleSpec(
        map['outsideLabelStyleSpec'],
        validate: false,
      ),
      showLeaderLines: JsonClass.parseBool(
        map['showLeaderLines'],
        whenNull: true,
      ),
    );
  }

  return result;
}