JSFiddle - React, Tailwind, and code Playground

by gabriela b

JavaScript

class BaseOption {
    commercialName: string;

    constructor(commercialName: string = '') {
        this.commercialName = commercialName;
    }
}

class BaseProduct extends BaseOption {
  date: string;
  origin: string;

  constructor(date: string = '', commercialName: string = '', origin: string = '') {
    super(commercialName);
    this.date = date;
    this.origin = origin;
  }
}

class BaseProductHighlighted extends BaseProduct {
    iconHighlighted: boolean;
    inPack: boolean;
    constructor(iconHighlighted?: boolean, inPack?: boolean, date?: string, commercialName?: string);
}

class BaseProductOptions extends BaseProductHighlighted {
    options: Array<BaseProduct>;
    constructor(options?: Array<BaseProduct>, iconHighlighted?: boolean, date?: string, commercialName?: string);
}


class Address {

public filterFls(){

var address = {
"linkedProducts": {
"FLS" : [
	{
   "productDescription": "inPack - a",
   "inPack" : true,
   "plc": "FI"
  }
]
}
}
   
   let inPackFLS = address.linkedProducts.FLS.filter(p => p.inPack);
                let outPackFLS = address.linkedProducts.FLS.filter(p => !p.inPack);

var concateneted =inPackFLS.concat(outPackFLS)
                .filter(prod => prod.plc === 'FI')
                .map(internet => new BaseProductOptions(
                internet.activeOptions ? internet.activeOptions.map(option => new BaseProduct(option.activateDate, option.name, '')) : new Array<BaseProduct>(),
                true,
                inPackFLS.indexOf(internet) !== -1,
                internet.activationDate,
                internet.productDescription));

console.log(concateneted);
}

}

var address = new Address();
address.filterFls();