genCSS method

  1. @override
void genCSS (
  1. Contexts context,
  2. Output output
)
override

Implementation

@override
void genCSS(Contexts context, Output output) {
  if ((context?.strictUnits ?? false) && !unit.isSingular()) {
    throw LessExceptionError(LessError(
        message:
            'Multiple units in dimension. Correct the units or use the unit function. Bad unit: ${unit.toString()}'));
  }

  if (cleanCss != null) return genCleanCSS(context, output);

  final double value = fround(context, this.value);
  var strValue = numToString(value); //10.0 -> '10'

  if (value != 0 && value < 0.000001 && value > -0.000001) {
    // would be output 1e-6 etc.
    strValue = value.toStringAsFixed(20).replaceFirst(RegExp(r'0+$'), '');
  }

  if (context?.compress ?? false) {
    // Zero values doesn't need a unit
    if (value == 0 && unit.isLength(context)) {
      output.add(strValue);
      return null;
    }

    // Float values doesn't need a leading zero
    if (value > 0 && value < 1) strValue = strValue.substring(1);
  }

  output.add(strValue);
  unit.genCSS(context, output);

//2.3.1
//  Dimension.prototype.genCSS = function (context, output) {
//      if ((context && context.strictUnits) && !this.unit.isSingular()) {
//          throw new Error("Multiple units in dimension. Correct the units or use the unit function. Bad unit: " + this.unit.toString());
//      }
//
//      var value = this.fround(context, this.value),
//          strValue = String(value);
//
//      if (value !== 0 && value < 0.000001 && value > -0.000001) {
//          // would be output 1e-6 etc.
//          strValue = value.toFixed(20).replace(/0+$/, "");
//      }
//
//      if (context && context.compress) {
//          // Zero values doesn't need a unit
//          if (value === 0 && this.unit.isLength()) {
//              output.add(strValue);
//              return;
//          }
//
//          // Float values doesn't need a leading zero
//          if (value > 0 && value < 1) {
//              strValue = (strValue).substr(1);
//          }
//      }
//
//      output.add(strValue);
//      this.unit.genCSS(context, output);
//  };
}