{"version":3,"sources":["webpack://pricesandbenefits/webpack/universalModuleDefinition","webpack://pricesandbenefits/webpack/bootstrap","webpack://pricesandbenefits/external {\"commonjs\":\"@shop/common\",\"commonjs2\":\"@shop/common\",\"amd\":\"@shop/common\",\"root\":\"common\"}","webpack://pricesandbenefits/./src/web/ts/components/IPricesAndBenefitsComponentService.ts","webpack://pricesandbenefits/./src/web/ts/domain/PricesRequestOfferType.ts","webpack://pricesandbenefits/./src/web/ts/domain/PaymentCycleType.ts","webpack://pricesandbenefits/./src/web/ts/domain/PricesAndBenefitsRequestValue.ts","webpack://pricesandbenefits/./src/web/ts/domain/AdditionalBenefitValue.ts","webpack://pricesandbenefits/./src/web/ts/services/IDataService.ts","webpack://pricesandbenefits/./src/web/ts/main.ts","webpack://pricesandbenefits/./src/web/ts/services/DataService.ts","webpack://pricesandbenefits/./src/web/ts/components/PricesAndBenefitsComponentService.ts","webpack://pricesandbenefits/./src/web/ts/domain/PricesAndBenefitsPageValue.ts","webpack://pricesandbenefits/./src/web/ts/domain/ChargesValue.ts","webpack://pricesandbenefits/./src/web/ts/domain/NextPriceValue.ts","webpack://pricesandbenefits/./src/web/ts/domain/DiscountValue.ts","webpack://pricesandbenefits/./src/web/ts/components/coDiscountsTable/coDiscountsTable.ts","webpack://pricesandbenefits/./src/web/ts/components/coDiscountsTable/DiscountsTableController.ts","webpack://pricesandbenefits/./src/web/ts/components/coDiscountsTable/coDiscountsTableTemplate.html","webpack://pricesandbenefits/./src/web/ts/components/coChargesTable/coChargesTable.ts","webpack://pricesandbenefits/./src/web/ts/components/coChargesTable/ChargesTableController.ts","webpack://pricesandbenefits/./src/web/ts/components/coChargesTable/coChargesTableTemplate.html","webpack://pricesandbenefits/./src/web/ts/components/coDiscountsAccordion/coDiscountsAccordion.ts","webpack://pricesandbenefits/./src/web/ts/components/coDiscountsAccordion/DiscountsAccordionController.ts","webpack://pricesandbenefits/./src/web/ts/components/coDiscountsAccordion/coDiscountsAccordionTemplate.html"],"names":["webpackUniversalModuleDefinition","root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","IPricesAndBenefitsComponentService","injectableName","common_1","PricesAndBenefitsRequestOfferType","this","argsContract","arguments","_values","forName","obj","values","_","META_INFO","enumMetaInfo","MOBILE_TARIFF_OFFER","FMS_OFFER","DSL_OFFER","BUNDLE","PaymentCycleType","ONE_MONTH","TWENTY_EIGHT_DAYS","PricesRequestOfferType_1","AdditionalBenefitValue_1","PricesAndBenefitsRequestValue","shopContextName","tariffOfferName","hardwareOfferName","rentHardwareSessionId","insuranceOptionName","packList","additionalBenefits","offerType","recalculateBenefits","associatedFrameContractNumber","mapAdditionalBenefits","result","_i","additionalBenefits_1","length","additionalBenefit","push","AdditionalBenefitValue","amount","duration","contentId","additionalContentId","sourceType","type","__decorate","ValueMetaProperty","ValueMetaInfo","Boolean","String","valueMetaInfo","IDataService","DataService_1","PricesAndBenefitsComponentService_1","PricesAndBenefitsPageValue_1","ChargesValue_1","NextPriceValue_1","DiscountValue_1","coDiscountsTable_1","IDataService_1","IPricesAndBenefitsComponentService_1","PricesAndBenefitsRequestValue_1","coChargesTable_1","coDiscountsAccordion_1","PaymentCycleType_1","angular","component","CoChargesTable","CoDiscountsTable","CoDiscountsAccordion","classToFactory","DataService","PricesAndBenefitsComponentService","config","mappingServiceProvider","addAnnotatedType","PricesAndBenefitsPageValue","ChargesValue","NextPriceValue","DiscountValue","pageValueProvider","callService","busyService","cachedCharges","cachedDiscounts","$onInit","getInitialChargesMap","getInitialDiscountsMap","getChargesList","shopContext","tariffOffer","hardwareOffer","packs","_this","isUndefined","getKey","priceRequestData","getChargesListRequestCall","withData","busy","handleCall","then","chargesList","getDiscountsList","getDiscountListRequestCall","discountsList","getPaymentCycleType","getPageValue","paymentCycle","isEmpty","join","isNull","initialChargesMap","initialDiscountsMap","chargesListRequestCall","discountsListRequestCall","getDiscountHeadingTextCart","discountHeadingTextCart","getDiscountDescriptionTextCart","discountDescriptionTextCart","Injectables","IPageValueProvider","ICallService","IBusyService","dataService","mobileTariffOffer","fmsTariffOffer","dslTariffOffer","determineTariffOffer","determineOfferType","PostCall","DiscountsTableController_1","coDiscountsTableTemplate_html_1","controller","DiscountsTableController","template","default","bindings","pricesAndBenefitsComponentService","isDiscountListEmpty","__webpack_exports__","ChargesTableController_1","coChargesTableTemplate_html_1","ChargesTableController","getPaymentCycleDescription","DiscountsAccordionController_1","coDiscountsAccordionTemplate_html_1","DiscountsAccordionController","accordionIndex","routerProvisioningFeeId","routerProvisioningFee","filter","discount","discountId","totalDiscount","getTotalDiscountAmount","find","getIndex"],"mappings":"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","file":"pricesandbenefitsBundle.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@shop/common\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@shop/common\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pricesandbenefits\"] = factory(require(\"@shop/common\"));\n\telse\n\t\troot[\"pricesandbenefits\"] = factory(root[\"common\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","import { ChargesValue } from '../domain/ChargesValue';\nimport { DiscountValue } from '../domain/DiscountValue';\nimport {AdditionalBenefitValue} from \"../domain/AdditionalBenefitValue\";\nimport {PaymentCycleType} from \"../domain/PaymentCycleType\";\n\nexport interface IPricesAndBenefitsComponentService {\n    getChargesList(shopContext: string,\n                   mobileTariffOffer: string,\n                   fmsTariffOffer: string,\n                   dslTariffOffer: string,\n                   hardwareOffer: string,\n                   rentHardwareSessionId: string,\n                   insuranceOptionName: string,\n                   packs: string[],\n                   additionalBenefits: AdditionalBenefitValue[],\n                   recalculateBenefits: boolean,\n                   associatedFrameContractNumber: string): ChargesValue[];\n\n    getDiscountsList(shopContext: string,\n                     mobileTariffOffer: string,\n                     fmsTariffOffer: string,\n                     dslTariffOffer: string,\n                     hardwareOffer: string,\n                     rentHardwareSessionId: string,\n                     insuranceOptionName: string,\n                     packs: string[],\n                     additionalBenefits: AdditionalBenefitValue[],\n                     recalculateBenefits: boolean,\n                     associatedFrameContractNumber: string): DiscountValue[];\n\n    getPaymentCycleType(): PaymentCycleType;\n    getDiscountHeadingTextCart(): string\n    getDiscountDescriptionTextCart(): string\n}\n\nexport class IPricesAndBenefitsComponentService {\n    static injectableName: string = 'pricesAndBenefitsComponentService';\n}","import {MetaInfo, enumMetaInfo} from \"@shop/common\";\n\nexport class PricesAndBenefitsRequestOfferType {\n\n    static META_INFO:MetaInfo = enumMetaInfo('pricesAndBenefits:PricesAndBenefitsRequestOfferType');\n\n    private static _values:{ [s:string]:PricesAndBenefitsRequestOfferType; } = {};\n\n    static forName(obj):PricesAndBenefitsRequestOfferType {\n        argsContract(arguments, 'str');\n        if (obj === null) {\n            return null;\n        }\n        return PricesAndBenefitsRequestOfferType._values[obj];\n    }\n\n    static values():PricesAndBenefitsRequestOfferType[] {\n        return _.values(PricesAndBenefitsRequestOfferType._values);\n    }\n\n    static MOBILE_TARIFF_OFFER:PricesAndBenefitsRequestOfferType = new PricesAndBenefitsRequestOfferType(\"MOBILE_TARIFF_OFFER\");\n    static FMS_OFFER:PricesAndBenefitsRequestOfferType = new PricesAndBenefitsRequestOfferType(\"FMS_OFFER\");\n    static DSL_OFFER:PricesAndBenefitsRequestOfferType = new PricesAndBenefitsRequestOfferType(\"DSL_OFFER\");\n    static BUNDLE:PricesAndBenefitsRequestOfferType = new PricesAndBenefitsRequestOfferType(\"BUNDLE\");\n\n    constructor(public  name:string) {\n        argsContract(arguments, 'str');\n        PricesAndBenefitsRequestOfferType._values[name] = this;\n    }\n}","import { enumMetaInfo } from \"@shop/common\";\nexport class PaymentCycleType {\n\n    static META_INFO = enumMetaInfo('pricesAndBenefits:PaymentCycleType');\n\n    private static _values:{ [s:string]:PaymentCycleType; } = {};\n\n    static forName(obj):PaymentCycleType {\n        argsContract(arguments, 'str');\n        if (obj === null) {\n            return null;\n        }\n        return PaymentCycleType._values[obj];\n    }\n\n    static values():PaymentCycleType[] {\n        return _.values(PaymentCycleType._values);\n    }\n\n\n    static ONE_MONTH = new PaymentCycleType(\"ONE_MONTH\");\n    static TWENTY_EIGHT_DAYS = new PaymentCycleType(\"TWENTY_EIGHT_DAYS\");\n\n    constructor(public  name:string) {\n        argsContract(arguments, 'str');\n        PaymentCycleType._values[name] = this;\n    }\n\n}","import {ValueMetaInfo, ValueMetaProperty} from \"@shop/common\";\nimport {PricesAndBenefitsRequestOfferType} from \"./PricesRequestOfferType\";\nimport {AdditionalBenefitValue} from \"./AdditionalBenefitValue\";\n\n@ValueMetaInfo('pricesAndBenefits:PricesAndBenefitsRequestValue')\nexport class PricesAndBenefitsRequestValue {\n\n    constructor(shopContextName: string,\n                tariffOfferName: string,\n                hardwareOfferName: string,\n                rentHardwareSessionId: string,\n                insuranceOptionName: string,\n                packList: string[],\n                additionalBenefits: AdditionalBenefitValue[],\n                offerType: PricesAndBenefitsRequestOfferType,\n                recalculateBenefits: boolean,\n                associatedFrameContractNumber: string) {\n        this.shopContextName = shopContextName;\n        this.tariffOfferName = tariffOfferName;\n        this.hardwareOfferName = hardwareOfferName;\n        this.rentHardwareSessionId = rentHardwareSessionId;\n        this.insuranceOptionName = insuranceOptionName;\n        this.packList = packList;\n        this.additionalBenefits = this.mapAdditionalBenefits(additionalBenefits);\n        this.offerType = offerType;\n        this.recalculateBenefits = recalculateBenefits;\n        this.associatedFrameContractNumber = associatedFrameContractNumber;\n    }\n\n    @ValueMetaProperty()\n    shopContextName: string;\n\n    @ValueMetaProperty()\n    tariffOfferName: string;\n\n    @ValueMetaProperty()\n    hardwareOfferName: string;\n\n    @ValueMetaProperty()\n    rentHardwareSessionId: string;\n\n    @ValueMetaProperty()\n    insuranceOptionName: string;\n\n    @ValueMetaProperty()\n    packList: string[];\n\n    @ValueMetaProperty()\n    additionalBenefits: AdditionalBenefitValue[];\n\n    @ValueMetaProperty('PricesAndBenefitsRequestOfferType | null')\n    offerType: PricesAndBenefitsRequestOfferType;\n\n    @ValueMetaProperty()\n    recalculateBenefits: boolean;\n\n    @ValueMetaProperty()\n    associatedFrameContractNumber: string;\n\n\n    /*\n     * This is a super dirty but currently necessary hack to correct the META_INO attribute of AdditionalBenefitValue\n     * The input parameter has a META_INFO attribute containing the cart namespace ('cart:AdditionalBenefitValue') as\n     * it originally comes from cart vertical and is passed to pricesAndBenefits vertical via directive binding in context of edge side include\n     * The alternative to this hack would have been converting the cart additional benefits to a string array and than converting it back to an priceAndBenefits additional benefit\n     * which would have been even uglier and more error prone\n     *\n     * We plan to refactor ESI client side integration soon, so the hack is acceptable for now\n     *\n     */\n    private mapAdditionalBenefits(additionalBenefits: AdditionalBenefitValue[]): AdditionalBenefitValue[] {\n        const result: AdditionalBenefitValue[] = [];\n        for (let additionalBenefit of additionalBenefits) {\n            result.push(new AdditionalBenefitValue(\n                additionalBenefit.amount,\n                additionalBenefit.duration,\n                additionalBenefit.contentId,\n                additionalBenefit.additionalContentId,\n                additionalBenefit.sourceType,\n                additionalBenefit.type\n            ));\n        }\n        return result;\n    }\n\n}\n","import {valueMetaInfo} from \"@shop/common\";\n\nexport class AdditionalBenefitValue {\n\n    static META_INFO = valueMetaInfo('pricesAndBenefits:AdditionalBenefitValue', {\n        amount: 'number',\n        duration: 'number',\n        contentId: 'string',\n        additionalContentId: 'string | null',\n        sourceType: 'string',\n        type: 'string',\n    });\n\n    amount: number;\n    duration: number;\n    contentId: string;\n    additionalContentId: string;\n\n    /**\n     * Used to identify where the benefit comes from (e.g. Backoffice,\n     * Combi-Benefit, Voucher). Currently this is intended to be used only by\n     * the server-side - if that changes, it should be converted to an enum.\n     */\n    sourceType: string;\n\n    /**\n     * Used to identify the type of benefit (e.g. monthly discount, activation\n     * fee compensation). Currently this is intended to be used only by the\n     * server-side - if that changes, it should be converted to an enum.\n     */\n    type: string;\n\n    constructor(\n        amount: number,\n        duration: number,\n        contentId: string,\n        additionalContentId: string,\n        sourceType: string,\n        type: string)\n    {\n        this.amount = amount;\n        this.duration = duration;\n        this.contentId = contentId;\n        this.additionalContentId = additionalContentId;\n        this.sourceType = sourceType;\n        this.type = type;\n    }\n}\n","import {ChargesValue} from \"../domain/ChargesValue\";\nimport {DiscountValue} from \"../domain/DiscountValue\";\nimport {PricesAndBenefitsRequestOfferType} from \"../domain/PricesRequestOfferType\";\nimport {AdditionalBenefitValue} from \"../domain/AdditionalBenefitValue\";\nimport {PaymentCycleType} from \"../domain/PaymentCycleType\";\n\nexport interface IDataService {\n\n    getChargesList(shopContext: string,\n                   tariffOffer: string,\n                   hardwareOffer: string,\n                   rentHardwareSessionId: string,\n                   insuranceOptionName: string,\n                   packs: string[],\n                   additionalBenefits: AdditionalBenefitValue[],\n                   offerType: PricesAndBenefitsRequestOfferType,\n                   recalculateBenefits: boolean,\n                   associatedFrameContractNumber: string): ChargesValue[];\n\n    getDiscountsList(shopContext: string,\n                     tariffOffer: string,\n                     hardwareOffer: string,\n                     rentHardwareSessionId: string,\n                     insuranceOptionName: string,\n                     packs: string[],\n                     additionalBenefits: AdditionalBenefitValue[],\n                     offerType: PricesAndBenefitsRequestOfferType,\n                     recalculateBenefits: boolean,\n                     associatedFrameContractNumber: string): DiscountValue[];\n\n    getPaymentCycleType():PaymentCycleType;\n    getDiscountHeadingTextCart(): string\n    getDiscountDescriptionTextCart(): string\n}\n\n\nexport class IDataService {\n    static injectableName: string = 'pab.dataService';\n}","import { IMappingServiceProvider, classToFactory } from \"@shop/common\";\nimport { DataService } from './services/DataService';\nimport { PricesAndBenefitsComponentService } from './components/PricesAndBenefitsComponentService';\nimport { PricesAndBenefitsPageValue } from './domain/PricesAndBenefitsPageValue';\nimport { ChargesValue } from './domain/ChargesValue';\nimport { NextPriceValue } from './domain/NextPriceValue';\nimport { DiscountValue } from './domain/DiscountValue';\nimport { CoDiscountsTable } from './components/coDiscountsTable/coDiscountsTable';\nimport { IDataService } from './services/IDataService';\nimport { IPricesAndBenefitsComponentService } from './components/IPricesAndBenefitsComponentService';\nimport { PricesAndBenefitsRequestOfferType } from './domain/PricesRequestOfferType';\nimport { PricesAndBenefitsRequestValue } from './domain/PricesAndBenefitsRequestValue';\nimport { CoChargesTable } from './components/coChargesTable/coChargesTable';\nimport { CoDiscountsAccordion } from './components/coDiscountsAccordion/coDiscountsAccordion';\nimport {AdditionalBenefitValue} from \"./domain/AdditionalBenefitValue\";\nimport {PaymentCycleType} from \"./domain/PaymentCycleType\";\n\nangular.module('prices_and_benefits', ['commerce_common'])\n\n    .component('coChargesTable', new CoChargesTable())\n    .component('coDiscountsTable', new CoDiscountsTable())\n    .component('coDiscountsAccordion', new CoDiscountsAccordion())\n\n    .factory(IDataService.injectableName, classToFactory(DataService))\n    .factory(IPricesAndBenefitsComponentService.injectableName, classToFactory(PricesAndBenefitsComponentService))\n\n    .config(['mappingServiceProvider', (mappingServiceProvider: IMappingServiceProvider) => {\n        mappingServiceProvider.addAnnotatedType(PricesAndBenefitsPageValue);\n        mappingServiceProvider.addAnnotatedType(ChargesValue);\n        mappingServiceProvider.addAnnotatedType(NextPriceValue);\n        mappingServiceProvider.addAnnotatedType(DiscountValue);\n        mappingServiceProvider.addAnnotatedType(PricesAndBenefitsRequestOfferType);\n        mappingServiceProvider.addAnnotatedType(PricesAndBenefitsRequestValue);\n        mappingServiceProvider.addAnnotatedType(AdditionalBenefitValue);\n        mappingServiceProvider.addAnnotatedType(PaymentCycleType);\n    }]);\n\n","import {IDataService} from './IDataService';\nimport {PricesAndBenefitsPageValue} from \"../domain/PricesAndBenefitsPageValue\";\nimport {IBusyService, ICallService, Injectables, IPageValueProvider, PostCall} from \"@shop/common\";\nimport {ChargesValue} from \"../domain/ChargesValue\";\nimport {DiscountValue} from \"../domain/DiscountValue\";\nimport {PricesAndBenefitsRequestOfferType} from \"../domain/PricesRequestOfferType\";\nimport {PricesAndBenefitsRequestValue} from \"../domain/PricesAndBenefitsRequestValue\";\nimport {AdditionalBenefitValue} from \"../domain/AdditionalBenefitValue\";\nimport {PaymentCycleType} from \"../domain/PaymentCycleType\";\n\n@Injectables(IPageValueProvider, ICallService, IBusyService)\nexport class DataService implements IDataService {\n\n    constructor(private pageValueProvider: IPageValueProvider<PricesAndBenefitsPageValue>, private callService: ICallService, private busyService: IBusyService) {\n    }\n\n    public cachedCharges: { [key: string]: ChargesValue[]; } = {};\n    public cachedDiscounts: { [key: string]: DiscountValue[]; } = {};\n\n    // retrieve initial charges and discounts from pagevalue\n    $onInit(): void {\n        this.cachedCharges = this.getInitialChargesMap();\n        this.cachedDiscounts = this.getInitialDiscountsMap();\n    }\n\n    public getChargesList(shopContext: string,\n                          tariffOffer: string,\n                          hardwareOffer: string,\n                          rentHardwareSessionId: string,\n                          insuranceOptionName: string,\n                          packs: string[],\n                          additionalBenefits: AdditionalBenefitValue[],\n                          offerType: PricesAndBenefitsRequestOfferType,\n                          recalculateBenefits: boolean,\n                          associatedFrameContractNumber: string): ChargesValue[] {\n        if (_.isUndefined(additionalBenefits)) {\n            additionalBenefits = [];\n        }\n        if (_.isUndefined(associatedFrameContractNumber)) {\n            associatedFrameContractNumber = '';\n        }\n\n        let key = this.getKey(shopContext, tariffOffer, hardwareOffer, rentHardwareSessionId, insuranceOptionName, packs, additionalBenefits, recalculateBenefits, associatedFrameContractNumber);\n\n        if (_.isUndefined(this.cachedCharges[key])) {\n            this.cachedCharges[key] = [];\n            let priceRequestData = new PricesAndBenefitsRequestValue(\n                shopContext,\n                tariffOffer,\n                hardwareOffer,\n                rentHardwareSessionId,\n                insuranceOptionName,\n                packs,\n                additionalBenefits,\n                offerType,\n                recalculateBenefits,\n                associatedFrameContractNumber\n            );\n            let call: PostCall<ChargesValue[]> = this.getChargesListRequestCall().withData(priceRequestData);\n\n            this.busyService.busy(this.callService.handleCall(call))\n                .then((chargesList: ChargesValue[]) => {\n                    this.cachedCharges[key] = chargesList;\n                });\n        }\n\n        return this.cachedCharges[key];\n    }\n\n    public getDiscountsList(shopContext: string,\n                            tariffOffer: string,\n                            hardwareOffer: string,\n                            rentHardwareSessionId: string,\n                            insuranceOptionName: string,\n                            packs: string[],\n                            additionalBenefits: AdditionalBenefitValue[],\n                            offerType: PricesAndBenefitsRequestOfferType,\n                            recalculateBenefits: boolean,\n                            associatedFrameContractNumber: string): DiscountValue[] {\n\n        if (_.isUndefined(additionalBenefits)) {\n            additionalBenefits = [];\n        }\n        if (_.isUndefined(associatedFrameContractNumber)) {\n                    associatedFrameContractNumber = '';\n        }\n\n        let key = this.getKey(shopContext, tariffOffer, hardwareOffer, rentHardwareSessionId, insuranceOptionName, packs, additionalBenefits, recalculateBenefits, associatedFrameContractNumber);\n\n        if (_.isUndefined(this.cachedDiscounts[key])) {\n            this.cachedDiscounts[key] = [];\n            let priceRequestData = new PricesAndBenefitsRequestValue(\n                shopContext,\n                tariffOffer,\n                hardwareOffer,\n                rentHardwareSessionId,\n                insuranceOptionName,\n                packs,\n                additionalBenefits,\n                offerType,\n                recalculateBenefits,\n                associatedFrameContractNumber\n            );\n            let call: PostCall<DiscountValue[]> = this.getDiscountListRequestCall().withData(priceRequestData);\n\n            this.busyService.busy(this.callService.handleCall(call))\n                .then((discountsList: DiscountValue[]) => {\n                    this.cachedDiscounts[key] = discountsList;\n                });\n        }\n\n        return this.cachedDiscounts[key];\n    }\n\n    public getPaymentCycleType():PaymentCycleType {\n        return this.getPageValue().paymentCycle;\n    }\n\n    private getKey(shopContext: string,\n                   tariffOffer: string,\n                   hardwareOffer: string,\n                   rentHardwareSessionId: string,\n                   insuranceOptionName: string,\n                   packs: string[],\n                   additionalBenefits: AdditionalBenefitValue[],\n                   recalculateBenefits: boolean,\n                   associatedFrameContractNumber: string) {\n        let key = `${shopContext}-${tariffOffer}`;\n\n        key += hardwareOffer ? `-${hardwareOffer}` : '';\n        key += rentHardwareSessionId ? `-${rentHardwareSessionId}` : '';\n        key += insuranceOptionName ? `-${insuranceOptionName}` : '';\n\n        if (!_.isEmpty(packs)) {\n            key = key + `-${packs.join(',')}`;\n        }\n\n        for (let additionalBenefit of additionalBenefits) {\n            const additionalBenefitAsString =\n                (additionalBenefit.amount + ','\n                    + additionalBenefit.duration + ','\n                    + additionalBenefit.contentId + ','\n                    + (additionalBenefit.additionalContentId ? additionalBenefit.additionalContentId : '') + ','\n                    + additionalBenefit.sourceType + ','\n                    + additionalBenefit.type);\n\n            key = key + '-' + additionalBenefitAsString;\n        }\n\n        key += `-${recalculateBenefits}`;\n        key += associatedFrameContractNumber ? `-${associatedFrameContractNumber}` : '';\n\n        return key;\n    }\n\n    private getPageValue(): PricesAndBenefitsPageValue {\n        return this.pageValueProvider.getPageValue('pricesAndBenefitsPageValue');\n    }\n\n    private getInitialChargesMap(): { [key: string]: ChargesValue[]; } {\n        if (!_.isNull(this.getPageValue().initialChargesMap)) {\n            return this.getPageValue().initialChargesMap;\n        }\n\n        return {};\n    }\n\n    private getInitialDiscountsMap(): { [key: string]: DiscountValue[]; } {\n        if (!_.isNull(this.getPageValue().initialDiscountsMap)) {\n            return this.getPageValue().initialDiscountsMap;\n        }\n\n        return {};\n    }\n\n    private getChargesListRequestCall(): PostCall<ChargesValue[]> {\n        return this.getPageValue().chargesListRequestCall;\n    }\n\n    private getDiscountListRequestCall(): PostCall<DiscountValue[]> {\n        return this.getPageValue().discountsListRequestCall;\n    }\n    public getDiscountHeadingTextCart(): string {\n        return this.getPageValue().discountHeadingTextCart;\n    }\n\n    public getDiscountDescriptionTextCart(): string {\n        return this.getPageValue().discountDescriptionTextCart;\n    }\n}","import {IDataService} from '../services/IDataService';\nimport {IPricesAndBenefitsComponentService} from './IPricesAndBenefitsComponentService';\nimport {ChargesValue} from '../domain/ChargesValue';\nimport {DiscountValue} from '../domain/DiscountValue';\nimport {Injectables} from \"@shop/common\";\nimport {PricesAndBenefitsRequestOfferType} from '../domain/PricesRequestOfferType';\nimport {AdditionalBenefitValue} from \"../domain/AdditionalBenefitValue\";\nimport {PaymentCycleType} from \"../domain/PaymentCycleType\";\n\n@Injectables(IDataService)\nexport class PricesAndBenefitsComponentService implements IPricesAndBenefitsComponentService {\n\n    constructor(private dataService: IDataService) {\n    }\n\n    public getChargesList(shopContext: string,\n                          mobileTariffOffer: string,\n                          fmsTariffOffer: string,\n                          dslTariffOffer: string,\n                          hardwareOffer: string,\n                          rentHardwareSessionId: string,\n                          insuranceOptionName: string,\n                          packs: string[],\n                          additionalBenefits: AdditionalBenefitValue[],\n                          recalculateBenefits: boolean,\n                          associatedFrameContractNumber: string): ChargesValue[] {\n        return this.dataService.getChargesList(\n            shopContext,\n            this.determineTariffOffer(mobileTariffOffer, fmsTariffOffer, dslTariffOffer),\n            hardwareOffer ? hardwareOffer : '',\n            rentHardwareSessionId ? rentHardwareSessionId : '',\n            insuranceOptionName ? insuranceOptionName : '',\n            packs,\n            additionalBenefits,\n            this.determineOfferType(mobileTariffOffer, fmsTariffOffer, dslTariffOffer, hardwareOffer),\n            recalculateBenefits,\n            associatedFrameContractNumber ? associatedFrameContractNumber : ''\n        );\n    }\n\n    public getDiscountsList(shopContext: string,\n                            mobileTariffOffer: string,\n                            fmsTariffOffer: string,\n                            dslTariffOffer: string,\n                            hardwareOffer: string,\n                            rentHardwareSessionId: string,\n                            insuranceOptionName: string,\n                            packs: string[],\n                            additionalBenefits: AdditionalBenefitValue[],\n                            recalculateBenefits: boolean,\n                            associatedFrameContractNumber: string): DiscountValue[] {\n        return this.dataService.getDiscountsList(\n            shopContext,\n            this.determineTariffOffer(mobileTariffOffer, fmsTariffOffer, dslTariffOffer),\n            hardwareOffer ? hardwareOffer : '',\n            rentHardwareSessionId ? rentHardwareSessionId : '',\n            insuranceOptionName ? insuranceOptionName : '',\n            packs,\n            additionalBenefits,\n            this.determineOfferType(mobileTariffOffer, fmsTariffOffer, dslTariffOffer, hardwareOffer),\n            recalculateBenefits,\n            associatedFrameContractNumber ? associatedFrameContractNumber : ''\n        );\n    }\n\n    public getPaymentCycleType(): PaymentCycleType {\n        return this.dataService.getPaymentCycleType();\n    }\n\n    private determineTariffOffer(mobileTariffOffer: string, fmsTariffOffer: string, dslTariffOffer: string): string {\n        return mobileTariffOffer ? mobileTariffOffer : (fmsTariffOffer ? fmsTariffOffer : dslTariffOffer);\n    }\n\n    private determineOfferType(mobileTariffOffer: string, fmsTariffOffer: string, dslTariffOffer: string, hardwareOffer: string): PricesAndBenefitsRequestOfferType {\n        if (dslTariffOffer) {\n            return PricesAndBenefitsRequestOfferType.DSL_OFFER;\n        } else if (mobileTariffOffer && hardwareOffer) {\n            return PricesAndBenefitsRequestOfferType.BUNDLE;\n        } else if (mobileTariffOffer) {\n            return PricesAndBenefitsRequestOfferType.MOBILE_TARIFF_OFFER;\n        } else if (fmsTariffOffer) {\n            return PricesAndBenefitsRequestOfferType.FMS_OFFER;\n        } else {\n            return null;\n        }\n    }\n\n    public getDiscountHeadingTextCart(): string {\n        return this.dataService.getDiscountHeadingTextCart();\n    }\n    public getDiscountDescriptionTextCart(): string {\n        return this.dataService.getDiscountDescriptionTextCart();\n    }\n}","import {ValueMetaInfo, ValueMetaProperty, PostCall} from \"@shop/common\";\nimport {ChargesValue} from \"./ChargesValue\";\nimport {DiscountValue} from \"./DiscountValue\";\nimport {PricesAndBenefitsRequestValue} from \"./PricesAndBenefitsRequestValue\";\nimport {PaymentCycleType} from \"./PaymentCycleType\";\n\n@ValueMetaInfo('pricesAndBenefits:PricesAndBenefitsPageValue')\nexport class PricesAndBenefitsPageValue {\n\n    @ValueMetaProperty()\n    initialChargesMap: { [key: string]: ChargesValue[]; };\n\n    @ValueMetaProperty()\n    initialDiscountsMap: { [key: string]: DiscountValue[]; }\n\n    @ValueMetaProperty('PostCall | null')\n    chargesListRequestCall: PostCall<PricesAndBenefitsRequestValue>;\n\n    @ValueMetaProperty('PostCall | null')\n    discountsListRequestCall: PostCall<PricesAndBenefitsRequestValue>;\n\n    @ValueMetaProperty('PaymentCycleType')\n    paymentCycle: PaymentCycleType;\n\n    @ValueMetaProperty()\n    discountDescriptionTextCart:string;\n\n    @ValueMetaProperty()\n    discountHeadingTextCart:string;\n\n}","import {ValueMetaInfo, ValueMetaProperty} from \"@shop/common\";\nimport {NextPriceValue} from \"./NextPriceValue\";\n\n\n@ValueMetaInfo('pricesAndBenefits:ChargesValue')\nexport class ChargesValue {\n\n    @ValueMetaProperty()\n    name: string;\n\n    @ValueMetaProperty('number | null')\n    oneTime: number;\n\n    @ValueMetaProperty('string | null')\n    textToBeDisplayedInsteadOneTime: string;\n\n    @ValueMetaProperty('string | null')\n    oneTimeHint: string;\n\n    @ValueMetaProperty('number | null')\n    monthly: number;\n\n    @ValueMetaProperty('[NextPriceValue] | null')\n    nextPriceValueList: NextPriceValue[];\n\n    @ValueMetaProperty()\n    totalCharges: boolean;\n}\n","import {ValueMetaInfo, ValueMetaProperty} from \"@shop/common\";\n\n@ValueMetaInfo('pricesAndBenefits:NextPriceValue')\nexport class NextPriceValue {\n\n    @ValueMetaProperty('number | null')\n    nextMonthlyPayment: number;\n\n    @ValueMetaProperty('number | null')\n    nextMonthlyPaymentBegin: number;\n\n}\n","import {ValueMetaInfo, ValueMetaProperty} from \"@shop/common\";\n\n@ValueMetaInfo('pricesAndBenefits:DiscountValue')\nexport class DiscountValue {\n\n    @ValueMetaProperty()\n    name: string;\n\n    @ValueMetaProperty('number | null')\n    amount: number;\n\n    @ValueMetaProperty()\n    totalDiscount: boolean;\n\n    @ValueMetaProperty('string | null')\n    discountId: string;\n\n    @ValueMetaProperty()\n    discountDuration: string;\n\n    @ValueMetaProperty()\n    monthlyDiscountAmount: string;\n\n}\n","import {DiscountsTableController} from \"./DiscountsTableController\";\nimport coDiscountsTableTemplateHtml from \"./coDiscountsTableTemplate.html\";\n\nexport class CoDiscountsTable implements ng.IComponentOptions {\n    controller:any = DiscountsTableController;\n    template:string = coDiscountsTableTemplateHtml;\n    bindings: any = {\n        shopContext: '<',\n        mobileTariffOffer: '<',\n        fmsTariffOffer: '<',\n        dslTariffOffer: '<',\n        hardwareOffer: '<',\n        insuranceOptionName: '<',\n        rentHardwareSessionId: '<',\n        packs: '<',\n        additionalBenefits: '<',\n        recalculateBenefits: '<',\n        associatedFrameContractNumber: '<'\n    };\n}","import { IPricesAndBenefitsComponentService } from '../IPricesAndBenefitsComponentService';\nimport { DiscountValue } from '../../domain/DiscountValue';\nimport { Injectables } from \"@shop/common\";\nimport {AdditionalBenefitValue} from \"../../domain/AdditionalBenefitValue\";\n\n@Injectables(IPricesAndBenefitsComponentService)\nexport class DiscountsTableController {\n\n    // bindings\n    public shopContext: string;\n    public mobileTariffOffer: string;\n    public fmsTariffOffer: string;\n    public dslTariffOffer: string;\n    public hardwareOffer: string;\n    public insuranceOptionName: string;\n    public rentHardwareSessionId: string;\n    public packs: string[];\n    public additionalBenefits: AdditionalBenefitValue[] = [];\n    public recalculateBenefits: boolean;\n    public associatedFrameContractNumber: string;\n\n    constructor(private pricesAndBenefitsComponentService: IPricesAndBenefitsComponentService) {\n    }\n\n    $onInit() {\n        this.getDiscountsList();\n    }\n\n    public getDiscountsList(): DiscountValue[] {\n        return this.pricesAndBenefitsComponentService.getDiscountsList(\n            this.shopContext,\n            this.mobileTariffOffer,\n            this.fmsTariffOffer,\n            this.dslTariffOffer,\n            this.hardwareOffer,\n            this.rentHardwareSessionId,\n            this.insuranceOptionName,\n            this.packs,\n            this.additionalBenefits,\n            this.recalculateBenefits,\n            this.associatedFrameContractNumber\n        );\n    }\n\n    public isDiscountListEmpty(): boolean {\n        return _.isEmpty(this.getDiscountsList());\n    }\n}","export default \"<div class=co-discounts-table data-ng-if=!$ctrl.isDiscountListEmpty()> <div class=table-responsive> <table class=\\\"table table-listing\\\"> <thead> <tr> <th><span class=\\\"glyphicon glyphicon-percent\\\"></span> Rabatte und Vorteile</th> <th class=text-right>Ersparnis</th> </tr> </thead> <tbody> <tr data-ng-repeat=\\\"discount in $ctrl.getDiscountsList()\\\" data-ng-class=\\\"{'co-discounts-table__row--highlighted': discount.totalDiscount}\\\"> <td> <span data-ng-bind-html=\\\"discount.name | coUnsafeHtml\\\"></span> </td> <td class=text-right> {{discount.amount | coPrice}} </td> </tr> </tbody> </table> </div> </div>\";","import {ChargesTableController} from \"./ChargesTableController\";\nimport coChargesTableTemplateHtml from \"./coChargesTableTemplate.html\";\n\nexport class CoChargesTable implements ng.IComponentOptions {\n    controller: any = ChargesTableController;\n    template: string = coChargesTableTemplateHtml;\n    bindings: any = {\n        shopContext: '<',\n        mobileTariffOffer: '<',\n        fmsTariffOffer: '<',\n        dslTariffOffer: '<',\n        hardwareOffer: '<',\n        insuranceOptionName: '<',\n        rentHardwareSessionId: '<',\n        packs: '<',\n        additionalBenefits: '<',\n        recalculateBenefits: '<',\n        associatedFrameContractNumber: '<'\n    };\n}","import {IPricesAndBenefitsComponentService} from \"../IPricesAndBenefitsComponentService\";\nimport {ChargesValue} from \"../../domain/ChargesValue\";\nimport {Injectables} from \"@shop/common\";\nimport {AdditionalBenefitValue} from \"../../domain/AdditionalBenefitValue\";\nimport {PaymentCycleType} from \"../../domain/PaymentCycleType\";\n\n@Injectables(IPricesAndBenefitsComponentService)\nexport class ChargesTableController {\n\n    // bindings\n    public shopContext: string;\n    public mobileTariffOffer: string;\n    public fmsTariffOffer: string;\n    public dslTariffOffer: string;\n    public hardwareOffer: string;\n    public insuranceOptionName: string;\n    public rentHardwareSessionId: string;\n    public packs: string[];\n    public additionalBenefits: AdditionalBenefitValue[] = [];\n    public recalculateBenefits: boolean;\n    public associatedFrameContractNumber: string;\n\n    constructor(private pricesAndBenefitsComponentService: IPricesAndBenefitsComponentService) {\n    }\n\n    $onInit() {\n        this.getChargesList();\n    }\n\n    public getChargesList(): ChargesValue[] {\n        return this.pricesAndBenefitsComponentService.getChargesList(\n            this.shopContext,\n            this.mobileTariffOffer,\n            this.fmsTariffOffer,\n            this.dslTariffOffer,\n            this.hardwareOffer,\n            this.rentHardwareSessionId,\n            this.insuranceOptionName,\n            this.packs,\n            this.additionalBenefits,\n            this.recalculateBenefits,\n            this.associatedFrameContractNumber\n        );\n    }\n\n    public getPaymentCycleDescription(): string {\n        if(this.pricesAndBenefitsComponentService.getPaymentCycleType() == PaymentCycleType.TWENTY_EIGHT_DAYS){\n            return \"für 4 Wochen\";\n        } else {\n            return \"monatlich\";\n        }\n    }\n}","export default \"<div class=co-prices-table> <div class=table-responsive> <table class=\\\"table table-listing\\\"> <thead> <tr> <th></th> <th scope=col data-co-uitest-element=product-details-tariff-table-payment-cycle class=text-right>{{$ctrl.getPaymentCycleDescription()}}</th> <th scope=col class=\\\"text-right non-recurring-mobile-view\\\">einmalig</th> </tr> </thead> <tbody> <tr data-ng-repeat=\\\"charges in $ctrl.getChargesList()\\\" class=co-prices-table__row data-ng-class=\\\"{'co-prices-table__row--highlighted': charges.totalCharges}\\\"> <td data-co-uitest-element=product-details-tariff-table-charges-name data-ng-bind-html=\\\"charges.name | coUnsafeHtml\\\"></td> <td class=text-right data-co-uitest-element=product-details-tariff-table-charges-price> {{charges.monthly | coPrice}} <span data-ng-if=charges.totalCharges>*</span> <br> <span data-ng-repeat=\\\"nextPrice in charges.nextPriceValueList\\\" class=co-prices-table__next-price> ab {{ nextPrice.nextMonthlyPaymentBegin }}. Monat {{ nextPrice.nextMonthlyPayment | coPrice }} <br> </span> </td> <td class=\\\"text-right non-recurring-mobile-view\\\"> <span data-ng-if=\\\"charges.textToBeDisplayedInsteadOneTime != null\\\"> <strong data-co-uitest-element=product-details-tariff-table-one-time-text> {{charges.textToBeDisplayedInsteadOneTime}} </strong> </span> <span data-ng-if=\\\"charges.textToBeDisplayedInsteadOneTime == null\\\"> {{charges.oneTime | coPrice}} </span> <br> {{charges.oneTimeHint}} </td> </tr> </tbody> </table> </div> </div>\";","import { DiscountsAccordionController } from './DiscountsAccordionController';\nimport  coDiscountsAccordionTemplateHtml  from \"./coDiscountsAccordionTemplate.html\";\n\nexport class CoDiscountsAccordion implements ng.IComponentOptions {\n    controller: any = DiscountsAccordionController;\n    template: string = coDiscountsAccordionTemplateHtml;\n    bindings: any = {\n        shopContext: '<',\n        mobileTariffOffer: '<',\n        fmsTariffOffer: '<',\n        dslTariffOffer: '<',\n        hardwareOffer: '<',\n        insuranceOptionName: '<',\n        rentHardwareSessionId: '<',\n        packs: '<',\n        accordionIndex: '<',\n        additionalBenefits: '<',\n        recalculateBenefits: '<',\n        associatedFrameContractNumber: '<'\n    };\n}","import { IPricesAndBenefitsComponentService } from '../IPricesAndBenefitsComponentService';\nimport { DiscountValue } from '../../domain/DiscountValue';\nimport { Injectables } from \"@shop/common\";\nimport {AdditionalBenefitValue} from \"../../domain/AdditionalBenefitValue\";\n\n@Injectables(IPricesAndBenefitsComponentService)\nexport class DiscountsAccordionController {\n\n    routerProvisioningFeeId : string = \"routerbereitstellungsgebühr\";\n    routerProvisioningFee : string = \"Routerbereitstellungsgebühr\";\n\n    // bindings\n    public shopContext: string;\n    public mobileTariffOffer: string;\n    public fmsTariffOffer: string;\n    public dslTariffOffer: string;\n    public hardwareOffer: string;\n    public insuranceOptionName: string;\n    public rentHardwareSessionId: string;\n    public packs: string[];\n    public accordionIndex: number;\n    public additionalBenefits: AdditionalBenefitValue[] = [];\n    public recalculateBenefits: boolean;\n    public associatedFrameContractNumber: string;\n\n    constructor(private pricesAndBenefitsComponentService: IPricesAndBenefitsComponentService) {\n    }\n\n    $onInit() {\n        this.getDiscountsList();\n    }\n\n    public getDiscountsList(): DiscountValue[] {\n        return _.filter(\n            this.pricesAndBenefitsComponentService.getDiscountsList(\n                this.shopContext,\n                this.mobileTariffOffer,\n                this.fmsTariffOffer,\n                this.dslTariffOffer,\n                this.hardwareOffer,\n                this.rentHardwareSessionId,\n                this.insuranceOptionName,\n                this.packs,\n                this.additionalBenefits,\n                this.recalculateBenefits,\n                this.associatedFrameContractNumber\n            ),\n            (discount: DiscountValue) => {\n                if (discount.discountId === this.routerProvisioningFeeId){\n                    discount.name = this.routerProvisioningFee;\n                }\n                return !discount.totalDiscount;\n            }\n        );\n    }\n\n    public getTotalDiscountAmount(): DiscountValue {\n        let discountsList: DiscountValue[] = this.pricesAndBenefitsComponentService.getDiscountsList(\n            this.shopContext,\n            this.mobileTariffOffer,\n            this.fmsTariffOffer,\n            this.dslTariffOffer,\n            this.hardwareOffer,\n            this.rentHardwareSessionId,\n            this.insuranceOptionName,\n            this.packs,\n            this.additionalBenefits,\n            this.recalculateBenefits,\n            this.associatedFrameContractNumber\n        );\n\n        let totalDiscount: DiscountValue = _.find(discountsList, (discount) => {\n            return discount.totalDiscount;\n        });\n\n        return totalDiscount;\n    }\n\n    public getIndex(): number {\n        return this.accordionIndex;\n    }\n\n    public isDiscountListEmpty(): boolean {\n        return _.isEmpty(this.getDiscountsList());\n    }\n    public getDiscountHeadingTextCart(){\n        return this.pricesAndBenefitsComponentService.getDiscountHeadingTextCart();\n    }\n    public getDiscountDescriptionTextCart(){\n        return this.pricesAndBenefitsComponentService.getDiscountDescriptionTextCart();\n    }\n}","export default \"<div class=co-discounts-accordion data-ng-if=!$ctrl.isDiscountListEmpty()> <tef-collapsible cloak=\\\"\\\" breakpoints=[&quot;all&quot;] headline-level=h3 layout=minimum ng-attr-icon-position=\\\"{{ $ctrl.shopContext === 'blau' ? 'start' : 'end' }}\\\" layout=default> <div data-toggle=collapse data-parent=#accordion-discount-{{$ctrl.getIndex()}} data-target=#discount-collapse-{{$ctrl.getIndex()}} data-co-uitest-element=discountButton data-co-tracking-attributes data-co-tracking-attributes-action=accordion data-co-tracking-attributes-element-id=toggle-discounts-accordion slot=title> <span class=flex-container> <span data-ng-bind-html=\\\"$ctrl.getDiscountHeadingTextCart() | coUnsafeHtml\\\"></span> <span class=\\\"pull-right co-discounts-accordion__totals--header\\\" data-co-uitest-element=btn-benefit-outer> <span class=full-text> Du sparst insgesamt: <strong>{{ $ctrl.getTotalDiscountAmount().amount | coPrice }}</strong> </span> <span class=short-text> <strong>{{ $ctrl.getTotalDiscountAmount().amount | coPrice }}</strong> </span></span> </span></div> <div slot=content> <div id=discount-collapse-{{$ctrl.getIndex()}} class=accordion-content> <p data-ng-bind-html=\\\"$ctrl.getDiscountDescriptionTextCart() | coUnsafeHtml\\\"></p> <div class=co-discounts-accordion__entry> <div class=co-discounts-accordion-entry-line> <div data-ng-repeat=\\\"discount in $ctrl.getDiscountsList()\\\"> <div class=\\\"row co-discounts-accordion__entry-details\\\" data-co-uitest-element={{discount.discountId}}> <div class=\\\"col-xs-8 col-sm-9\\\"> <div data-ng-bind-html=\\\"discount.name | coUnsafeHtml\\\"></div> </div> <div class=\\\"col-xs-4 col-sm-3\\\"> <p><span class=\\\"co-discounts-accordion__entry-price pull-right\\\">{{ discount.amount | coPrice }}</span> </p> </div> </div> </div> </div> </div> <br/> <div style=height:1.5em> <span class=\\\"pull-right co-discounts-accordion__totals--footer\\\" data-co-uitest-element=btn-benefit-inner> Du sparst insgesamt: <strong>{{ $ctrl.getTotalDiscountAmount().amount | coPrice }}</strong> </span> </div> </div> </div> </tef-collapsible> </div> \";"],"sourceRoot":""}