{"version":3,"names":["lqtCardCss","LqtCard","render","h","Host","class","name","isFunction","value","createErrorClass","createImpl","_super","instance","Error","call","stack","ctorFunc","prototype","Object","create","constructor","UnsubscriptionError","UnsubscriptionErrorImpl","errors","this","message","length","map","err","i","toString","join","arrRemove","arr","item","index","indexOf","splice","Subscription","initialTeardown","closed","_parentage","_finalizers","unsubscribe","Array","isArray","parent","remove","initialFinalizer","e","finalizer","execFinalizer","push","add","teardown","_a","_hasParent","_addParent","includes","_removeParent","EMPTY","empty","EMPTY_SUBSCRIPTION","isSubscription","config","onUnhandledError","onStoppedNotification","Promise","undefined","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","setTimeout","handler","timeout","args","delegate","clearTimeout","handle","reportUnhandledError","noop","COMPLETE_NOTIFICATION","createNotification","errorNotification","error","nextNotification","kind","errorContext","cb","Subscriber","destination","super","isStopped","EMPTY_OBSERVER","static","next","complete","SafeSubscriber","handleStoppedNotification","_next","_error","_complete","_bind","Function","bind","fn","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context","defaultErrorHandler","notification","subscriber","observable","Symbol","identity","x","pipeFromArray","fns","piped","input","reduce","prev","Observable","subscribe","_subscribe","lift","operator","source","isSubscriber","_trySubscribe","sink","forEach","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","pipe","operations","toPromise","isObserver","hasLift","operate","init","liftedSource","TypeError","createOperatorSubscriber","onNext","onComplete","onError","onFinalize","OperatorSubscriber","shouldUnsubscribe","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","Subject","currentObservers","observers","hasError","thrownError","subject","AnonymousSubject","_throwIfClosed","from","observer","shift","observed","_checkFinalizedStatuses","_innerSubscribe","asObservable","_b","BehaviorSubject","_value","getValue","subscription","dateTimestampProvider","now","Date","Action","scheduler","work","schedule","state","delay","intervalProvider","setInterval","clearInterval","AsyncAction","pending","id","recycleAsyncId","requestAsyncId","_id","flush","_scheduler","execute","_execute","_delay","errored","errorValue","actions","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","_active","action","asyncScheduler","EmptyError","EmptyErrorImpl","firstValueFrom","hasConfig","defaultValue","project","filter","predicate","debounceTime","dueTime","activeTask","lastValue","lastTime","emit","emitWhenIdle","targetTime","tap","tapObserver","isUnsub","finalize","ConsentConfirmState","ConsentType","CookieService","singletonInstace","domain","window","location","hostname","prefix","expireInDays","set","key","document","cookie","encodeURIComponent","getExpiryDate","get","fullKey","split","r","v","parts","decodeURIComponent","setDomain","setPrefix","toUTCString","createElementsFromHTML","html","doc","container","createElement","innerHTML","querySelectorAll","scriptNode","replacementEl","type","attributes","attribute","attrKey","attrValue","setAttribute","replaceWith","childNodes","ConsentService","options","consentConfirmState$","REJECTED","optinChange$","actualConsentsHash","hashConsents","cookieConsentsHash","getCookieConsentsHash","CLEAN","getCookieState","addOption","newOption","isConsentGiven","onOptinAccept","optIn","revokeOptIn","onOptinReject","getInstance","getAll","values","o","persistConsent","localStorage","setItem","save","option","FUNCTION","persist","SAVED","rejectAll","rejectType","acceptAll","ACCEPTED","acceptType","persistConsentsHash","persistState","keys","sort","a","b","hash","optin","getElementById","injectOnAccept","acceptContainer","el","appendChild","querySelector","accept","injectOnReject","rejectContainer","lqtCookieBannerCss","LqtCookieBanner","hostRef","consentService","cookieService","async","cookieDomain","cookiePrefix","persistSub","consentConfirmStateChange","disconnectedCallback","logo","label","privacyUrl","imprintUrl","detailOnly","textFunctionCheckbox","textMonitoringCheckbox","textMarketingCheckbox","textSaveButton","textRejectButton","textAcceptButton","textMoreSettingsButton","textPrivacyButton","textImprintButton","textBackButton","slot","lqtCookieBannerConfirmButtonsCss","LqtCookieBannerConfirmButtons","onClickSave","onClickReject","onClickAccept","onClick","lqtCookieBannerConsentButtonsCss","LqtCookieBannerConsentButtons","updateCheckboxes","consentChangeSub","onClickCheckbox","target","checked","messungChecked","MONITORING","c","marketingChecked","_d","_c","MARKETING","disabled","onInput","lqtCookieBannerConsentListCss","LqtCookieBannerConsentList","lqtCookieBannerContentDetailCss","LqtCookieBannerContentDetail","active","activeTab","lqtCookieBannerContentSimpleCss","LqtCookieBannerContentSimple","lqtCookieBannerHeaderCss","LqtCookieBannerHeader","src","alt","lqtCookieBannerInlineCss","LqtCookieBannerInline","connectedCallback","onShowDetailsClick","showDetails","detail","enabled","onDetailsClick","lqtCookieBannerMoreButtonsCss","LqtCookieBannerMoreButtons","detailsClick","style","display","href","title","lqtCookieBannerOpenButtonCss","LqtCookieBannerOpenButton","lqtCookieBannerOptinCss","LqtCookieBannerOptin","element","getAttribute","description","externalUrl","changeSub","onCheckedChange","textExternalUrl","defineProperty","exports","toStringTag","l","f","encodeURI","u","n","t","entries","String","d","p","s","Boolean","replace","allowReserved","delimited","encode","encodeReserved","joinUrl","$","y","j","m","JSON","stringify","q","deep","explode","form","json","query","space","Headers","fromEntries","mergeHeaders","normalizeHeaders","D","defineProperties","A","getOwnPropertyDescriptors","g","getOwnPropertySymbols","hasOwnProperty","O","propertyIsEnumerable","H","enumerable","configurable","writable","S","E","throw","done","then","apply","F","text","status","headers","contentType","data","arguments","w","Accept","parse","blob","baseUrl","fetch","B","ok","C","fetchText","fetchJson","fetchBlob","body","U","multipart","formDataConstructor","FormData","Blob","append","k","N","default","J","some","T","z","HttpError","SUCCESS_CODES","okify","optimistic","runtime","defaults","oazapfts","Oazapfts.runtime","getOptinsAgent","opts","assign","getOptinsCustomer","LqtCookieBannerSmart","frontendcontentUrl","loadOptins","url","res","optIns","items","console","textOptInPrivacyUrl","lqtTabCss","LqtTab","lqtTabHeaderCss","LqtTabHeader","lqtTabsCss","LqtTabs","CustomerTypeEnum","SignupCustomerPortalBridgeService","customerPortalUrl","redirectToPrivateCustomer","usage","address","category","promocode","promocodeProducts","redirectToCustomerPortal","PRIVATE_HOUSEHOLD","redirectToCorporateCustomer","CORPORATE","customerType","sanitizedUsage","sanitizeUsage","isInputValid","redirect","postCode","city","streetName","streetNumber","getCustomerPortalUrl","URL","params","services","estimate","categories","route","locality","postalCode","productIds","searchParams","hostUrl","trackingQueryParam","ALLOWED_TRACKING_QUERY_PARAMS","has","open","lqtTariffCalculatorCss","LqtTariffCalculator","handleSubmit","preventDefault","formDirty","promocodeProductPower","power","promocodeProductGas","gas","powerUsage","gasUsage","selectedAddress","onSubmit","bffUrl","onZipcodeSelect","dirty","zipcodeLabel","placeholder","zipcodePlaceholder","zipcode","onStreetSelect","streetLabel","streetPlaceholder","street","_e","onStreetnumberSelect","streetNumberLabel","streetNumberPlaceholder","powerUsageDefaults","powerHeader","powerSliderLabel","onUsageChange","usageSliderInputLabel","gasUsageDefaults","gasHeader","gasSliderLabel","promocodeEnabled","onPromocodeUpdate","promocodeApplyText","promocodeRemoveText","promocodeValidatingText","promocodeInvalidText","promocodeValidText","promocodePlaceholder","confirmButtonText","lqtTariffCalculatorBusinessGasCss","LqtTariffCalculatorBusinessGas","handleUsageChange","usageDirty","lqtTariffCalculatorBusinessPowerCss","LqtTariffCalculatorBusinessPower","lqtTariffCalculatorBusinessTabbedCss","LqtTariffCalculatorBusinessTabbed","clickTabHeader","headerAnchor","host","header","removeAttribute","tab","tabId","role","tabindex","hidden","lqtTariffCalculatorChargeCurrentCss","LqtTariffCalculatorChargeCurrent","chargeUsage","CategoryEnum","STROM_LADESTROM","onValueChange","usageDefaults","lqtTariffCalculatorChargeSelectInputCss","LqtTariffCalculatorChargeSelectInput","handleSelectChange","event","valueChange","handleTooltipOpen","isTooltipOpen","handleTooltipClose","distanceLabel","selected","selectValue","usageLabel","lqtTariffCalculatorGreenGasCss","LqtTariffCalculatorGreenGas","lqtTariffCalculatorGreenPowerCss","LqtTariffCalculatorGreenPower","STROM_OEKOPRODUKT","lqtTariffCalculatorHeatCurrentCss","LqtTariffCalculatorHeatCurrent","onInputGroupChanged","STROM_HEIZSTROM","lqtTariffCalculatorHeatCurrentTooltipCss","LqtTariffCalculatorHeatCurrentTooltip","handleOpenClick","isOpen","handleCloseClick","lqtTariffCalculatorHeatInputGroupCss","HeatingTypes","ReadingMethods","LqtTariffCalculatorHeatInputGroup","getUsage","handleHtChange","htUsage","htDirty","handleNtChange","ntUsage","ntDirty","handleTypeChange","showNt","ntUsageRequiredTypes","handleReadingTypeChange","readingType","Number","isNaN","warmPumpSingle","warmPumpDouble","nightStorageSingle","nightStorageDouble","separated","sum","htmlFor","PromocodeService","apiUrl","products","response","method","code","statusText","results","lqtTariffCalculatorPromocodeInputCss","LqtTariffCalculatorPromocodeInput","_interalState","promocodeUpdate","promocodeInputValue","runEmptyStateEffects","runDirtyStateEffects","runValidatingStateEffects","promocodeInputElement","validate","transitionInteralState","inputmode","handleChange","autocomplete","ref","tryApplyOrRemovePromocode","lqtTariffCalculatorSolarPowerCss","LqtTariffCalculatorSolarPower","STROM_SOLARSTROM","PostCdService","zipCode","lqtTariffCalculatorStreetInputCss","LqtTariffCalculatorStreetInput","onAddressChange","addresses","loadAddressesByStreet","onClickStreetAutocomplete","streetSelect","handleStreetChange","lqtTariffCalculatorStreetnumberInputCss","LqtTariffCalculatorStreetnumberInput","handleStreetNumberChange","streetnumberSelect","lqtTariffCalculatorTabbedCss","LqtTariffCalculatorTabbed","oekoPowerDefaults","oekoGasUsageDefaults","chargeCurrentPowerDefaults","solarPowerDefaults","lqtTariffCalculatorUsageSliderInputCss","LqtTariffCalculatorUsageSliderInput","usageOptions","usageMap","sliderValue","usageChange","handleUsageSliderChange","isSelected","indexUsage","min","max","step","lqtTariffCalculatorZipcodeInputCss","LqtTariffCalculatorZipcodeInput","zipcodeRegExp","match","RegExp","loadAddressesByZipCode","onClickZipcodeAutocomplete","zipcodeSelect","handleZipcodeChange","pattern"],"sources":["./src/components/lqt-card/lqt-card.css?tag=lqt-card&encapsulation=shadow","./src/components/lqt-card/lqt-card.tsx","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/firstValueFrom.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./src/enums/consent-confirm-state.enum.ts","./src/enums/consent-type.enum.ts","./src/services/cookie.service.ts","./src/helper/dom.helper.ts","./src/services/consent.service.ts","./src/components/lqt-cookie-banner/lqt-cookie-banner/lqt-cookie-banner.css?tag=lqt-cookie-banner&encapsulation=shadow","./src/components/lqt-cookie-banner/lqt-cookie-banner/lqt-cookie-banner.tsx","./src/components/lqt-cookie-banner/confirm-buttons/lqt-cookie-banner-confirm-buttons.css?tag=lqt-cookie-banner-confirm-buttons&encapsulation=shadow","./src/components/lqt-cookie-banner/confirm-buttons/lqt-cookie-banner-confirm-buttons.tsx","./src/components/lqt-cookie-banner/consent-buttons/lqt-cookie-banner-consent-buttons.css?tag=lqt-cookie-banner-consent-buttons&encapsulation=shadow","./src/components/lqt-cookie-banner/consent-buttons/lqt-cookie-banner-consent-buttons.tsx","./src/components/lqt-cookie-banner/consent-list/lqt-cookie-banner-consent-list.css?tag=lqt-cookie-banner-consent-list&encapsulation=shadow","./src/components/lqt-cookie-banner/consent-list/lqt-cookie-banner-consent-list.tsx","./src/components/lqt-cookie-banner/content-detail/lqt-cookie-banner-content-detail.css?tag=lqt-cookie-banner-content-detail&encapsulation=shadow","./src/components/lqt-cookie-banner/content-detail/lqt-cookie-banner-content-detail.tsx","./src/components/lqt-cookie-banner/content-simple/lqt-cookie-banner-content-simple.css?tag=lqt-cookie-banner-content-simple&encapsulation=shadow","./src/components/lqt-cookie-banner/content-simple/lqt-cookie-banner-content-simple.tsx","./src/components/lqt-cookie-banner/header/lqt-cookie-banner-header.css?tag=lqt-cookie-banner-header&encapsulation=shadow","./src/components/lqt-cookie-banner/header/lqt-cookie-banner-header.tsx","./src/components/lqt-cookie-banner/inline/lqt-cookie-banner-inline.css?tag=lqt-cookie-banner-inline&encapsulation=shadow","./src/components/lqt-cookie-banner/inline/lqt-cookie-banner-inline.tsx","./src/components/lqt-cookie-banner/more-buttons/lqt-cookie-banner-more-buttons.css?tag=lqt-cookie-banner-more-buttons&encapsulation=shadow","./src/components/lqt-cookie-banner/more-buttons/lqt-cookie-banner-more-buttons.tsx","./src/components/lqt-cookie-banner/open-button/lqt-cookie-banner-open-button.css?tag=lqt-cookie-banner-open-button&encapsulation=shadow","./src/components/lqt-cookie-banner/open-button/lqt-cookie-banner-open-button.tsx","./src/components/lqt-cookie-banner/optin/lqt-cookie-banner-optin.css?tag=lqt-cookie-banner-optin&encapsulation=shadow","./src/components/lqt-cookie-banner/optin/lqt-cookie-banner-optin.tsx","./node_modules/@oazapfts/runtime/util.cjs","./node_modules/@oazapfts/runtime/query.cjs","./node_modules/@oazapfts/runtime/headers.cjs","./node_modules/@oazapfts/runtime/index.cjs","./src/clients/frontendcontent.ts","./src/components/lqt-cookie-banner/smart/lqt-cookie-banner-smart.tsx","./src/components/lqt-tabs/lqt-tab/lqt-tab.css?tag=lqt-tab&encapsulation=shadow","./src/components/lqt-tabs/lqt-tab/lqt-tab.tsx","./src/components/lqt-tabs/lqt-tab-header/lqt-tab-header.css?tag=lqt-tab-header&encapsulation=shadow","./src/components/lqt-tabs/lqt-tab-header/lqt-tab-header.tsx","./src/components/lqt-tabs/lqt-tabs/lqt-tabs.css?tag=lqt-tabs&encapsulation=shadow","./src/components/lqt-tabs/lqt-tabs/lqt-tabs.tsx","./src/enum/customer-type.enum.ts","./src/services/signup-customer-portal-bridge.service.ts","./src/components/lqt-tariff-calculator/private/default/lqt-tariff-calculator.css?tag=lqt-tariff-calculator","./src/components/lqt-tariff-calculator/private/default/lqt-tariff-calculator.tsx","./src/components/lqt-tariff-calculator/business/business-gas/lqt-tariff-calculator-business-gas.css?tag=lqt-tariff-calculator-business-gas","./src/components/lqt-tariff-calculator/business/business-gas/lqt-tariff-calculator-business-gas.tsx","./src/components/lqt-tariff-calculator/business/business-power/lqt-tariff-calculator-business-power.css?tag=lqt-tariff-calculator-business-power","./src/components/lqt-tariff-calculator/business/business-power/lqt-tariff-calculator-business-power.tsx","./src/components/lqt-tariff-calculator/business/business-tabbed/lqt-tariff-calculator-business-tabbed.css?tag=lqt-tariff-calculator-business-tabbed","./src/components/lqt-tariff-calculator/business/business-tabbed/lqt-tariff-calculator-business-tabbed.tsx","./src/components/lqt-tariff-calculator/private/charge-current/lqt-tariff-calculator-charge-current.css?tag=lqt-tariff-calculator-charge-current","./src/components/lqt-tariff-calculator/private/charge-current/lqt-tariff-calculator-charge-current.tsx","./src/components/lqt-tariff-calculator/input/charge-select/lqt-tariff-calculator-charge-select-input.css?tag=lqt-tariff-calculator-charge-select-input","./src/components/lqt-tariff-calculator/input/charge-select/lqt-tariff-calculator-charge-select-input.tsx","./src/components/lqt-tariff-calculator/private/green-gas/lqt-tariff-calculator-green-gas.css?tag=lqt-tariff-calculator-green-gas","./src/components/lqt-tariff-calculator/private/green-gas/lqt-tariff-calculator-green-gas.tsx","./src/components/lqt-tariff-calculator/private/green-power/lqt-tariff-calculator-green-power.css?tag=lqt-tariff-calculator-green-power","./src/components/lqt-tariff-calculator/private/green-power/lqt-tariff-calculator-green-power.tsx","./src/components/lqt-tariff-calculator/private/heat-current/lqt-tariff-calculator-heat-current.css?tag=lqt-tariff-calculator-heat-current","./src/components/lqt-tariff-calculator/private/heat-current/lqt-tariff-calculator-heat-current.tsx","./src/components/lqt-tariff-calculator/private/heat-current/tooltip/lqt-tariff-calculator-heat-current-tooltip.css?tag=lqt-tariff-calculator-heat-current-tooltip","./src/components/lqt-tariff-calculator/private/heat-current/tooltip/lqt-tariff-calculator-heat-current-tooltip.tsx","./src/components/lqt-tariff-calculator/input/heat-input-group/lqt-tariff-calculator-heat-input-group.css?tag=lqt-tariff-calculator-heat-input-group","./src/components/lqt-tariff-calculator/input/heat-input-group/lqt-tariff-calculator-heat-input-group.tsx","./src/services/promocode.service.ts","./src/components/lqt-tariff-calculator/input/promocode/lqt-tariff-calculator-promocode-input.css?tag=lqt-tariff-calculator-promocode-input","./src/components/lqt-tariff-calculator/input/promocode/lqt-tariff-calculator-promocode-input.tsx","./src/components/lqt-tariff-calculator/private/solar-power/lqt-tariff-calculator-solar-power.css?tag=lqt-tariff-calculator-solar-power","./src/components/lqt-tariff-calculator/private/solar-power/lqt-tariff-calculator-solar-power.tsx","./src/services/post-cd.service.ts","./src/components/lqt-tariff-calculator/input/street/lqt-tariff-calculator-street-input.css?tag=lqt-tariff-calculator-street-input","./src/components/lqt-tariff-calculator/input/street/lqt-tariff-calculator-street-input.tsx","./src/components/lqt-tariff-calculator/input/streetnumber/lqt-tariff-calculator-streetnumber-input.css?tag=lqt-tariff-calculator-streetnumber-input","./src/components/lqt-tariff-calculator/input/streetnumber/lqt-tariff-calculator-streetnumber-input.tsx","./src/components/lqt-tariff-calculator/private/tabbed/lqt-tariff-calculator-tabbed.css?tag=lqt-tariff-calculator-tabbed","./src/components/lqt-tariff-calculator/private/tabbed/lqt-tariff-calculator-tabbed.tsx","./src/components/lqt-tariff-calculator/input/usage-slider/lqt-tariff-calculator-usage-slider-input.css?tag=lqt-tariff-calculator-usage-slider-input","./src/components/lqt-tariff-calculator/input/usage-slider/lqt-tariff-calculator-usage-slider-input.tsx","./src/components/lqt-tariff-calculator/input/zipcode/lqt-tariff-calculator-zipcode-input.css?tag=lqt-tariff-calculator-zipcode-input","./src/components/lqt-tariff-calculator/input/zipcode/lqt-tariff-calculator-zipcode-input.tsx"],"sourcesContent":[":host {\n display: block;\n font-size: var(--lqt-card-font-size, 14px);\n line-height: 1.15;\n font-family: var(--lqt-card-font-family, 'Arial');\n}\n\n.card {\n display: block;\n border: 1px solid #dddddd;\n background-color: #ffffff;\n border-radius: 4px;\n padding: 12px;\n margin-bottom: 12px;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'lqt-card',\n styleUrl: 'lqt-card.css',\n shadow: true,\n})\nexport class LqtCard {\n render() {\n return (\n \n
\n
\n \n
\n
\n \n
\n
\n
\n );\n }\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n//# sourceMappingURL=OperatorSubscriber.js.map","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n//# sourceMappingURL=Subject.js.map","import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n//# sourceMappingURL=BehaviorSubject.js.map","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n//# sourceMappingURL=Action.js.map","export const intervalProvider = {\n setInterval(handler, timeout, ...args) {\n const { delegate } = intervalProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n var _a;\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, _id, delay = 0) {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(_scheduler, id, delay = 0) {\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, _delay) {\n let errored = false;\n let errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n super.unsubscribe();\n }\n }\n}\n//# sourceMappingURL=AsyncAction.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class Scheduler {\n constructor(schedulerActionCtor, now = Scheduler.now) {\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\nScheduler.now = dateTimestampProvider.now;\n//# sourceMappingURL=Scheduler.js.map","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, now);\n this.actions = [];\n this._active = false;\n }\n flush(action) {\n const { actions } = this;\n if (this._active) {\n actions.push(action);\n return;\n }\n let error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n//# sourceMappingURL=AsyncScheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n//# sourceMappingURL=EmptyError.js.map","import { EmptyError } from './util/EmptyError';\nimport { SafeSubscriber } from './Subscriber';\nexport function firstValueFrom(source, config) {\n const hasConfig = typeof config === 'object';\n return new Promise((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n resolve(value);\n subscriber.unsubscribe();\n },\n error: reject,\n complete: () => {\n if (hasConfig) {\n resolve(config.defaultValue);\n }\n else {\n reject(new EmptyError());\n }\n },\n });\n source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=firstValueFrom.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler = asyncScheduler) {\n return operate((source, subscriber) => {\n let activeTask = null;\n let lastValue = null;\n let lastTime = null;\n const emit = () => {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n const value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n const targetTime = lastTime + dueTime;\n const now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, () => {\n emit();\n subscriber.complete();\n }, undefined, () => {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","export enum ConsentConfirmState {\n CLEAN = 'clean',\n REJECTED = 'rejected',\n ACCEPTED = 'accepted',\n SAVED = 'saved',\n}\n","export enum ConsentType {\n FUNCTION = 'function',\n MONITORING = 'monitoring',\n MARKETING = 'marketing',\n}\n","export class CookieService {\n static singletonInstace: CookieService;\n\n static getInstance(): CookieService {\n if (CookieService.singletonInstace) {\n return CookieService.singletonInstace;\n }\n CookieService.singletonInstace = new CookieService();\n return CookieService.singletonInstace;\n }\n\n private domain = window.location.hostname;\n private prefix = 'lqt-cookie-banner';\n private expireInDays = 365;\n\n private constructor() {}\n\n set(key: string, value: string): void {\n document.cookie = `${this.prefix}.${key}=${encodeURIComponent(value)}; domain=${this.domain}; expires=${this.getExpiryDate()}; Path=/`;\n }\n\n get(key: string): string | null {\n const fullKey = `${this.prefix}.${key}`;\n if (!document.cookie.length || document.cookie.indexOf(fullKey) === -1) {\n return null;\n }\n const value = document.cookie.split('; ').reduce((r, v) => {\n const parts = v.split('=');\n return parts[0] === fullKey ? decodeURIComponent(parts[1]) : r;\n }, '');\n return value;\n }\n\n setDomain(domain: string): void {\n if (!domain) {\n this.domain = window.location.hostname;\n return;\n }\n this.domain = domain;\n }\n\n setPrefix(prefix: string): void {\n this.prefix = prefix;\n }\n\n private getExpiryDate(): string {\n return new Date(Date.now() + this.expireInDays * 24 * 60 * 60 * 1000).toUTCString();\n }\n}\n","/**\n * Since element.innerHTML = '' does not work by definition,\n * use this to inject HTML with innerHTML and to parse it afterwards for script tags\n * & to execute them manually\n */\nexport function createElementsFromHTML(html: string, doc?: Document): NodeListOf {\n if (!doc) {\n doc = document;\n }\n const container = doc.createElement('div');\n container.innerHTML = html;\n container.querySelectorAll('script').forEach((scriptNode: HTMLScriptElement) => {\n // copy script element created by innerHTML and replace it in the DOM to execute it\n const replacementEl = doc.createElement('script');\n replacementEl.type = scriptNode.type ?? 'text/javascript';\n for (let i = 0; i < scriptNode.attributes.length; i++) {\n const attribute = scriptNode.attributes[i];\n const attrKey = attribute.name;\n const attrValue = attribute.value;\n replacementEl.setAttribute(attrKey, attrValue);\n }\n replacementEl.innerHTML = scriptNode.innerHTML;\n scriptNode.replaceWith(replacementEl);\n });\n return container.childNodes;\n}\n","import { ConsentType } from '../enums/consent-type.enum';\nimport { Consent } from '../interfaces/consent.interface';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { ConsentConfirmState } from '../enums/consent-confirm-state.enum';\nimport { CookieService } from './cookie.service';\nimport { Optin } from '../clients/frontendcontent';\nimport { createElementsFromHTML } from '../helper/dom.helper';\n\nexport class ConsentService {\n static singletonInstace: ConsentService;\n\n static getInstance(): ConsentService {\n if (ConsentService.singletonInstace) {\n return ConsentService.singletonInstace;\n }\n ConsentService.singletonInstace = new ConsentService();\n return ConsentService.singletonInstace;\n }\n\n private options: { [name: string]: Consent } = {};\n\n consentConfirmState$: BehaviorSubject;\n optinChange$: Subject;\n\n private constructor() {\n this.consentConfirmState$ = new BehaviorSubject(ConsentConfirmState.REJECTED);\n this.optinChange$ = new Subject();\n }\n\n init() {\n const actualConsentsHash = this.hashConsents(this.options);\n const cookieConsentsHash = this.getCookieConsentsHash();\n if (cookieConsentsHash != actualConsentsHash) {\n // If consents saved (in cookie) are not the actual consents\n // for example if a consent was added after the user saved\n // we need to get confirmation for the new consent\n this.consentConfirmState$.next(ConsentConfirmState.CLEAN);\n } else {\n this.consentConfirmState$.next(this.getCookieState());\n }\n }\n\n addOption(newOption: Consent) {\n this.options[newOption.name] = newOption;\n if (this.isConsentGiven(newOption.name)) {\n this.onOptinAccept(newOption);\n }\n }\n\n optIn(name: string) {\n this.options[name].value = true;\n this.optinChange$.next(this.options[name]);\n this.onOptinAccept(this.options[name]);\n }\n\n revokeOptIn(name: string) {\n this.options[name].value = false;\n this.optinChange$.next(this.options[name]);\n this.onOptinReject(this.options[name]);\n }\n\n isConsentGiven(name: string): boolean {\n return CookieService.getInstance().get(`consent.${name}`) === '1';\n }\n\n getAll(type?: ConsentType): Consent[] {\n if (type) {\n return Object.values(this.options).filter(o => o.type === type);\n }\n return Object.values(this.options);\n }\n\n persistConsent(name: string): void {\n CookieService.getInstance().set(`consent.${name}`, this.options[name].value ? '1' : '0');\n // backwards compatibility\n localStorage.setItem(`consent.${name}`, this.options[name].value ? '1' : '0');\n }\n\n save() {\n for (const option of Object.values(this.options)) {\n option.type === ConsentType.FUNCTION ? this.optIn(option.name) : this.revokeOptIn(option.name);\n }\n this.persist(ConsentConfirmState.SAVED);\n }\n\n rejectAll() {\n for (const option of Object.values(this.options)) {\n option.type === ConsentType.FUNCTION ? this.optIn(option.name) : this.revokeOptIn(option.name);\n }\n this.persist(ConsentConfirmState.REJECTED);\n }\n\n rejectType(type: ConsentType): void {\n for (const option of Object.values(this.options).filter(o => o.type === type)) {\n this.revokeOptIn(option.name);\n }\n }\n\n acceptAll() {\n for (const option of Object.values(this.options)) {\n this.optIn(option.name);\n }\n this.persist(ConsentConfirmState.ACCEPTED);\n }\n\n acceptType(type: ConsentType) {\n for (const option of Object.values(this.options).filter(o => o.type === type)) {\n this.optIn(option.name);\n }\n }\n\n private persist(state: ConsentConfirmState) {\n for (const option of Object.values(this.options)) {\n this.persistConsent(option.name);\n }\n this.persistConsentsHash();\n this.persistState(state);\n }\n\n hashConsents(options: { [name: string]: Consent }) {\n // Currently just a sorted string of consent keys (aws, contentful...)\n // but more values can be hashed with it easily like \"injectOnAccept\" etc. here\n return Object.keys(options)\n .map(key => key)\n .sort((a, b) => {\n if (a[0] < b[0]) return -1;\n if (b[0] > a[0]) return 1;\n return 0;\n })\n .join(',');\n }\n\n persistConsentsHash() {\n // We persist all consents (not if consept accepted true/false) here\n // so that we can check on init() if there were new consents added after save\n var hash = this.hashConsents(this.options);\n CookieService.getInstance().set(`consents-hash`, hash);\n }\n\n private persistState(state: ConsentConfirmState) {\n CookieService.getInstance().set('state', state);\n // backwards compatibility\n localStorage.setItem('lqt-cookie-banner.state', state);\n this.consentConfirmState$.next(state);\n }\n\n private getCookieState(): ConsentConfirmState {\n return (CookieService.getInstance().get('state') as ConsentConfirmState) ?? ConsentConfirmState.CLEAN;\n }\n\n private getCookieConsentsHash(): string {\n return (CookieService.getInstance().get('consents-hash') as string) ?? '';\n }\n\n private onOptinAccept(optin: Optin): void {\n const reject = document.getElementById(`${optin.name}-reject-container`);\n if (reject) {\n reject.remove();\n }\n if (!optin.injectOnAccept) {\n return;\n }\n const acceptContainer = document.createElement('div');\n acceptContainer.setAttribute('id', `${optin.name}-accept-container`);\n createElementsFromHTML(optin.injectOnAccept, document).forEach(el => acceptContainer.appendChild(el));\n document.querySelector('body').appendChild(acceptContainer);\n }\n\n private onOptinReject(optin: Optin): void {\n const accept = document.getElementById(`${optin.name}-accept-container`);\n if (accept) {\n accept.remove();\n }\n if (!optin.injectOnReject) {\n return;\n }\n const rejectContainer = document.createElement('div');\n rejectContainer.setAttribute('id', `${optin.name}-reject-container`);\n createElementsFromHTML(optin.injectOnReject, document).forEach(el => rejectContainer.appendChild(el));\n document.querySelector('body').appendChild(rejectContainer);\n }\n}\n",":host > div {\n display: flex;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1200;\n}\n\n#lqt-cookie-banner-overlay {\n background-color: #333333;\n opacity: 0.7;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n#lqt-cookie-banner-content {\n position: fixed;\n background: var(--lqt-cookie-banner-background, #fff);\n width: 100%;\n overflow: hidden;\n}\n\n@media (min-width: 768px) {\n #lqt-cookie-banner-content {\n max-height: 85vh;\n max-width: 625px;\n flex-direction: column;\n align-self: center;\n border-radius: 8px;\n box-shadow:\n 0 5px 26px 0px rgba(0, 0, 0, 0.22),\n 0 20px 28px 0px rgba(0, 0, 0, 0.3);\n margin-left: auto;\n margin-right: auto;\n position: relative;\n }\n}\n\n@media (max-width: 768px) {\n #lqt-cookie-banner-content {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n max-width: 100%;\n border-top-right-radius: 8px;\n border-top-left-radius: 8px;\n }\n}\n","import { Component, Host, h, Prop, State, EventEmitter, Event } from '@stencil/core';\nimport { debounceTime, firstValueFrom, Subscription, tap } from 'rxjs';\nimport { ConsentConfirmState } from '../../../enums/consent-confirm-state.enum';\nimport { ConsentService } from '../../../services/consent.service';\nimport { CookieService } from '../../../services/cookie.service';\n\n@Component({\n tag: 'lqt-cookie-banner',\n styleUrl: 'lqt-cookie-banner.css',\n shadow: true,\n})\nexport class LqtCookieBanner {\n /**\n * Domain that cookies, that save consent states, are applied to.\n * You can use domain wildcards like `.xtk-dev.de` to share the state of this cookieBanner between applications under the same domain.\n *\n * This will default to the current domain, if omitted.\n */\n @Prop() cookieDomain: string;\n\n /**\n * Cookie naming schema.\n */\n @Prop() cookiePrefix = 'lqt-cookie-banner';\n\n /**\n * logo url shown at the top of the cookie banner\n */\n @Prop() logo: string;\n /**\n * link to the privacy page related to this cookie banner\n */\n @Prop() privacyUrl: string;\n /**\n * link to the imprint url of the owners website\n */\n @Prop() imprintUrl: string;\n\n /**\n * Label on top - what is this cookie banner used in?\n */\n @Prop() label: string;\n /**\n * Overwrite the text for the checkbox 'Function'\n */\n @Prop() textFunctionCheckbox = 'Function';\n /**\n * Overwrite the text for the checkbox 'Monitoring'\n */\n @Prop() textMonitoringCheckbox = 'Monitoring';\n /**\n * Overwrite the text for the checkbox 'Marketing'\n */\n @Prop() textMarketingCheckbox = 'Marketing';\n /**\n * Overwrite the text for the 'Save Settings' button\n */\n @Prop() textSaveButton = 'Save Settings';\n /**\n * Overwrite the text for the 'Reject' button\n */\n @Prop() textRejectButton = 'Reject';\n /**\n * Overwrite the text for the 'Accept all' button\n */\n @Prop() textAcceptButton = 'Accept all';\n /**\n * Overwrite the text for the 'More Settings' button\n */\n @Prop() textMoreSettingsButton = 'More Settings';\n /**\n * Overwrite the text for the general privacy link\n */\n @Prop() textPrivacyButton = 'Privacy Declaration';\n /**\n * Overwrite the text for the imprint link\n */\n @Prop() textImprintButton = 'Imprint';\n /**\n * Overwrite the text for the back button\n */\n @Prop() textBackButton = 'Back';\n /**\n * Overwrite the text for the opt-in privacy urls\n */\n @Prop() textOptInPrivacyUrl = 'More information from this provider';\n /**\n * Only show the 'More Settings' section\n */\n @Prop() detailOnly = false;\n\n @State() state: ConsentConfirmState;\n\n @Event() consentConfirmStateChange: EventEmitter;\n\n private consentService: ConsentService;\n private cookieService: CookieService;\n private persistSub: Subscription;\n\n constructor() {\n this.consentService = ConsentService.getInstance();\n this.cookieService = CookieService.getInstance();\n }\n\n async connectedCallback() {\n this.cookieService.setDomain(this.cookieDomain);\n this.cookieService.setPrefix(this.cookiePrefix);\n }\n\n async componentDidLoad() {\n // Consents are added to cookie-banner as slots\n // so we init the consentService on ComponentDidLoad\n // because we want all slots/options to be loaded/rendered first\n this.consentService.init();\n this.state = await firstValueFrom(this.consentService.consentConfirmState$);\n this.persistSub = this.consentService.consentConfirmState$\n .pipe(\n debounceTime(200),\n tap((state: ConsentConfirmState) => (this.state = state)),\n tap((state: ConsentConfirmState) => this.consentConfirmStateChange.emit(state)),\n )\n .subscribe();\n }\n\n disconnectedCallback() {\n this.persistSub.unsubscribe();\n }\n\n render() {\n return (\n \n {this.state === ConsentConfirmState.CLEAN ? (\n
\n \n \n
\n ) : null}\n
\n );\n }\n}\n",":host {\n padding: 12px 24px 12px;\n display: flex;\n flex-direction: row;\n}\n\n:host > div {\n display: flex;\n flex-direction: row;\n flex: 2 1 auto;\n text-align: center;\n}\n\nbutton {\n margin: 0 6px;\n align-items: center;\n border: none;\n border-radius: 4px;\n display: flex;\n justify-content: center;\n flex: 1 1 auto;\n font-size: 1em;\n font-weight: 700;\n outline: none;\n padding: 12px 16px;\n width: 100%;\n cursor: pointer;\n transition: background-color 0.2s ease-in-out;\n color: var(--lqt-cookie-banner-color-lightgrey-contrast, #000);\n background: var(--lqt-cookie-banner-color-lightgrey, #f5f5f5);\n}\n\nbutton:hover {\n background: var(--lqt-cookie-banner-color-lightgrey-tint, #dcdcdc);\n}\n\nbutton.primary {\n color: var(--lqt-cookie-banner-color-primary-contrast, #fff);\n background: var(--lqt-cookie-banner-color-primary, #a2c73b);\n}\n\nbutton.primary:hover {\n background: var(--lqt-cookie-banner-color-primary-tint, #76912c);\n}\n\n@media (max-width: 450px) {\n :host > div {\n flex-direction: column;\n }\n\n button {\n margin-bottom: 6px;\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { ConsentService } from '../../../services/consent.service';\n\n@Component({\n tag: 'lqt-cookie-banner-confirm-buttons',\n styleUrl: 'lqt-cookie-banner-confirm-buttons.css',\n shadow: true,\n})\nexport class LqtCookieBannerConfirmButtons {\n @Prop() textSaveButton = 'Save Settings';\n @Prop() textRejectButton = 'Reject';\n @Prop() textAcceptButton = 'Accept all';\n\n private consentService: ConsentService;\n\n constructor() {\n this.consentService = ConsentService.getInstance();\n }\n\n onClickSave() {\n this.consentService.save();\n }\n\n onClickReject() {\n this.consentService.rejectAll();\n }\n\n onClickAccept() {\n this.consentService.acceptAll();\n }\n\n render() {\n return (\n \n
\n \n \n \n
\n
\n );\n }\n}\n",":host {\n display: flex;\n flex-direction: column;\n}\n\n:host div {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n:host div label {\n align-items: center;\n display: inline-flex;\n margin: 4px 16px 16px 0;\n color: var(--lqt-cookie-banner-color-darkgrey, #303030);\n}\n\n:host div label input[type='checkbox'] {\n width: 20px;\n height: 20px;\n accent-color: var(--lqt-cookie-banner-color-primary, #a2c73b);\n margin-left: 10px;\n}\n","import { Component, Host, h, State, Prop } from '@stencil/core';\nimport { Subscription, tap } from 'rxjs';\nimport { ConsentType } from '../../../enums/consent-type.enum';\nimport { ConsentService } from '../../../services/consent.service';\n\n@Component({\n tag: 'lqt-cookie-banner-consent-buttons',\n styleUrl: 'lqt-cookie-banner-consent-buttons.css',\n shadow: true,\n})\nexport class LqtCookieBannerConsentButtons {\n @Prop() textFunctionCheckbox = 'Function';\n @Prop() textMonitoringCheckbox = 'Monitoring';\n @Prop() textMarketingCheckbox = 'Marketing';\n\n @State() messungChecked: boolean;\n @State() marketingChecked: boolean;\n\n private consentService: ConsentService;\n private consentChangeSub: Subscription;\n\n constructor() {\n this.consentService = ConsentService.getInstance();\n }\n\n async connectedCallback() {\n this.updateCheckboxes();\n this.consentChangeSub = this.consentService.optinChange$.pipe(tap(() => this.updateCheckboxes())).subscribe();\n }\n\n disconnectedCallback() {\n this.consentChangeSub.unsubscribe();\n }\n\n onClickCheckbox(e, type: ConsentType): void {\n if (e.target.checked) {\n this.consentService.acceptType(type);\n } else {\n this.consentService.rejectType(type);\n }\n }\n\n private updateCheckboxes(): void {\n this.messungChecked = !this.consentService.getAll(ConsentType.MONITORING)?.filter(c => !c.value)?.length;\n this.marketingChecked = !this.consentService.getAll(ConsentType.MARKETING)?.filter(c => !c.value)?.length;\n }\n\n render() {\n return (\n \n
\n \n \n \n
\n
\n );\n }\n}\n",":host {\n display: block;\n padding: 12px 14px;\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 40vh;\n}\n\n@media (max-width: 768px) {\n :host {\n max-height: 20vh;\n }\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'lqt-cookie-banner-consent-list',\n styleUrl: 'lqt-cookie-banner-consent-list.css',\n shadow: true,\n})\nexport class LqtCookieBannerConsentList {\n render() {\n return (\n \n \n \n );\n }\n}\n",":host {\n display: block;\n}\n\n:host > div {\n line-height: 1.25;\n padding: 0 24px 12px;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { ConsentType } from '../../../enums/consent-type.enum';\n\n@Component({\n tag: 'lqt-cookie-banner-content-detail',\n styleUrl: 'lqt-cookie-banner-content-detail.css',\n shadow: true,\n})\nexport class LqtCookieBannerContentDetail {\n @Prop() textFunctionCheckbox = 'Funktion';\n @Prop() textMonitoringCheckbox = 'Messung';\n @Prop() textMarketingCheckbox = 'Marketing';\n @Prop({ mutable: true }) activeTab: ConsentType = ConsentType.FUNCTION;\n\n render() {\n return (\n \n
\n \n
\n \n (this.activeTab = ConsentType.FUNCTION)}\n >\n {this.textFunctionCheckbox}\n \n (this.activeTab = ConsentType.MONITORING)}\n >\n {this.textMonitoringCheckbox}\n \n (this.activeTab = ConsentType.MARKETING)}\n >\n {this.textMarketingCheckbox}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n }\n}\n",":host {\n display: block;\n padding: 0 24px;\n}\n\n:host > div {\n line-height: 1.25;\n padding-bottom: 12px;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'lqt-cookie-banner-content-simple',\n styleUrl: 'lqt-cookie-banner-content-simple.css',\n shadow: true,\n})\nexport class LqtCookieBannerContentSimple {\n @Prop() textFunctionCheckbox: string;\n @Prop() textMonitoringCheckbox: string;\n @Prop() textMarketingCheckbox: string;\n\n render() {\n return (\n \n
\n \n
\n \n
\n );\n }\n}\n",":host {\n display: block;\n padding: 24px 24px 0;\n overflow: hidden;\n}\n\n:host > div > div {\n height: 48px;\n max-height: 48px;\n max-width: 300px;\n width: 300px;\n margin-right: auto;\n margin-bottom: 24px;\n}\n\n:host > div > div > img {\n height: 100%;\n object-fit: contain;\n object-position: left 0;\n width: 100%;\n}\n\n:host > h1 {\n border: 0;\n color: var(--lqt-cookie-banner-color-darkgrey, #303030);\n font-size: 1.125em;\n font-weight: 700;\n margin: 0 0 8px 0;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'lqt-cookie-banner-header',\n styleUrl: 'lqt-cookie-banner-header.css',\n shadow: true,\n})\nexport class LqtCookieBannerHeader {\n @Prop() logo: string;\n @Prop() label = 'Privacy Settings';\n\n render() {\n return (\n \n {this.logo ? (\n
\n
\n \"brand\n
\n
\n ) : null}\n

{this.label}

\n
\n );\n }\n}\n",":host {\n font-size: var(--lqt-cookie-banner-font-size, 14px);\n line-height: 1.15;\n font-family: var(--lqt-cookie-banner-font-family, 'Arial');\n color: var(--lqt-cookie-banner-color, '#000');\n}\n","import { Component, Host, h, State, Prop } from '@stencil/core';\nimport { CookieService } from '../../../services/cookie.service';\n\n@Component({\n tag: 'lqt-cookie-banner-inline',\n styleUrl: 'lqt-cookie-banner-inline.css',\n shadow: true,\n})\nexport class LqtCookieBannerInline {\n /**\n * Domain that cookies, that save consent states, are applied to.\n * You can use domain wildcards like `.xtk-dev.de` to share the state of this cookieBanner between applications under the same domain.\n *\n * This will default to the current domain, if omitted.\n */\n @Prop() cookieDomain: string;\n\n /**\n * Cookie naming schema.\n */\n @Prop() cookiePrefix = 'lqt-cookie-banner';\n\n /**\n * logo url shown at the top of the cookie banner\n */\n @Prop() logo: string;\n /**\n * link to the privacy page related to this cookie banner\n */\n @Prop() privacyUrl: string;\n /**\n * link to the imprint url of the owners website\n */\n @Prop() imprintUrl: string;\n\n /**\n * Label on top - what is this cookie banner used in?\n */\n @Prop() label: string;\n /**\n * Overwrite the text for the checkbox 'Function'\n */\n @Prop() textFunctionCheckbox = 'Function';\n /**\n * Overwrite the text for the checkbox 'Monitoring'\n */\n @Prop() textMonitoringCheckbox = 'Monitoring';\n /**\n * Overwrite the text for the checkbox 'Marketing'\n */\n @Prop() textMarketingCheckbox = 'Marketing';\n /**\n * Overwrite the text for the 'Save Settings' button\n */\n @Prop() textSaveButton = 'Save Settings';\n /**\n * Overwrite the text for the 'Reject' button\n */\n @Prop() textRejectButton = 'Reject';\n /**\n * Overwrite the text for the 'Accept all' button\n */\n @Prop() textAcceptButton = 'Accept all';\n /**\n * Overwrite the text for the 'More Settings' button\n */\n @Prop() textMoreSettingsButton = 'More Settings';\n /**\n * Overwrite the text for the general privacy link\n */\n @Prop() textPrivacyButton = 'Privacy Declaration';\n /**\n * Overwrite the text for the imprint link\n */\n @Prop() textImprintButton = 'Imprint';\n /**\n * Overwrite the text for the back button\n */\n @Prop() textBackButton = 'Back';\n /**\n * Overwrite the text for the opt-in privacy urls\n */\n @Prop() textOptInPrivacyUrl = 'More information from this provider';\n /**\n * Only show the 'More Settings' section\n */\n @Prop() detailOnly = false;\n\n @State() showDetails = false;\n\n connectedCallback() {\n const cookieService = CookieService.getInstance();\n cookieService.setDomain(this.cookieDomain);\n cookieService.setPrefix(this.cookiePrefix);\n }\n\n onShowDetailsClick(e) {\n this.showDetails = e.detail.enabled;\n }\n\n render() {\n return (\n \n \n {this.showDetails || this.detailOnly ? (\n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n ) : (\n \n
\n \n
\n \n )}\n \n this.onShowDetailsClick(e)}\n showDetails={this.showDetails}\n detailOnly={this.detailOnly}\n textMoreSettingsButton={this.textMoreSettingsButton}\n textPrivacyButton={this.textPrivacyButton}\n textImprintButton={this.textImprintButton}\n textBackButton={this.textBackButton}\n >\n
\n );\n }\n}\n",":host {\n padding: 0 24px 12px;\n display: flex;\n flex-direction: row;\n}\n\n:host > div {\n display: flex;\n flex-direction: row;\n flex: 2 1 auto;\n text-align: center;\n}\n\nbutton,\na {\n margin: 0 6px;\n align-items: center;\n border: none;\n background: transparent;\n display: flex;\n justify-content: center;\n flex: 1 1 auto;\n font-size: 1em;\n outline: none;\n width: 100%;\n cursor: pointer;\n text-decoration: none;\n color: inherit;\n}\n\nbutton:hover {\n text-decoration: underline;\n}\n\n@media (max-width: 400px) {\n :host > div {\n flex-direction: column;\n }\n\n button {\n margin-bottom: 6px;\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'lqt-cookie-banner-more-buttons',\n styleUrl: 'lqt-cookie-banner-more-buttons.css',\n shadow: true,\n})\nexport class LqtCookieBannerMoreButtons {\n @Prop() privacyUrl: string;\n @Prop() imprintUrl: string;\n @Prop() showDetails = false;\n @Prop() detailOnly = false;\n\n @Prop() textMoreSettingsButton = 'More Settings';\n @Prop() textPrivacyButton = 'Privacy Declaration';\n @Prop() textImprintButton = 'Imprint';\n @Prop() textBackButton = 'Back';\n\n @Event() detailsClick: EventEmitter<{ enabled: boolean }>;\n\n render() {\n return (\n \n
\n this.detailsClick.emit({ enabled: !this.showDetails })}\n style={{ display: this.detailOnly ? 'none' : 'inline' }}\n >\n {this.showDetails ? this.textBackButton : this.textMoreSettingsButton}\n \n \n \n \n \n \n \n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h } from '@stencil/core';\nimport { ConsentConfirmState } from '../../../enums/consent-confirm-state.enum';\nimport { ConsentService } from '../../../services/consent.service';\n\n@Component({\n tag: 'lqt-cookie-banner-open-button',\n styleUrl: 'lqt-cookie-banner-open-button.css',\n shadow: true,\n})\nexport class LqtCookieBannerOpenButton {\n private consentService: ConsentService;\n\n constructor() {\n this.consentService = ConsentService.getInstance();\n }\n\n onClick() {\n this.consentService.consentConfirmState$.next(ConsentConfirmState.CLEAN);\n }\n\n render() {\n return (\n this.onClick()}>\n \n \n );\n }\n}\n",":host {\n display: block;\n font-size: var(--lqt-cookie-banner-font-size, 14px);\n line-height: 1.15;\n font-family: var(--lqt-cookie-banner-font-family, 'Arial');\n}\n\nlabel {\n display: block;\n cursor: pointer;\n}\n\nlabel > div {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.text {\n flex: 11;\n}\n\n.text p {\n margin-bottom: 0.2em;\n}\n\n.text a {\n flex: 11;\n color: var(--lqt-cookie-banner-color-grey, #7b7b7b);\n font-weight: 200;\n font-size: 0.9em;\n}\n\n.text a:hover {\n text-decoration: underline;\n}\n\n.checkbox {\n flex: 1;\n text-align: right;\n}\n\n.checkbox input[type='checkbox'] {\n width: 20px;\n height: 20px;\n accent-color: var(--lqt-cookie-banner-color-primary, #a2c73b);\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\nimport { filter, map, Subscription, tap } from 'rxjs';\nimport { ConsentType } from '../../../enums/consent-type.enum';\nimport { ConsentService } from '../../../services/consent.service';\n\n@Component({\n tag: 'lqt-cookie-banner-optin',\n styleUrl: 'lqt-cookie-banner-optin.css',\n shadow: true,\n})\nexport class LqtCookieBannerOptin {\n @Prop() name: string;\n @Prop() label: string;\n @Prop() description: string;\n @Prop() externalUrl: string;\n @Prop() textExternalUrl = 'More information from this provider';\n @Prop({ mutable: true }) value: boolean;\n @Prop() disabled = false;\n @Prop() injectOnAccept: string;\n @Prop() injectOnReject: string;\n\n @Element() private element: HTMLElement;\n private consentService: ConsentService;\n\n private changeSub: Subscription;\n\n constructor() {\n this.consentService = ConsentService.getInstance();\n }\n\n connectedCallback() {\n const type = this.element.getAttribute('slot') as ConsentType;\n const value = type === ConsentType.FUNCTION ? true : this.consentService.isConsentGiven(this.name);\n this.consentService.addOption({\n name: this.name,\n label: this.label,\n description: this.description,\n externalUrl: this.externalUrl,\n type,\n value,\n injectOnAccept: this.injectOnAccept,\n injectOnReject: this.injectOnReject,\n });\n this.value = value;\n this.changeSub = this.consentService.optinChange$\n .pipe(\n filter(optIn => optIn.name === this.name),\n map(optIn => optIn.value),\n tap(value => (this.value = value)),\n )\n .subscribe();\n }\n\n disconnectedCallback() {\n this.changeSub.unsubscribe();\n }\n\n onCheckedChange(e) {\n if (e.target.checked) {\n this.consentService.optIn(this.name);\n } else {\n this.consentService.revokeOptIn(this.name);\n }\n }\n\n render() {\n return (\n \n \n \n \n \n \n \n );\n }\n}\n","\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const l=[encodeURIComponent,encodeURIComponent],f=[encodeURIComponent,encodeURI];function u(o,n=\",\"){const t=(e,r)=>{const c=o[r%o.length];return typeof e==\"undefined\"?\"\":typeof e==\"object\"?Array.isArray(e)?e.map(c).join(n):Object.entries(e).reduce((i,a)=>[...i,...a],[]).map(c).join(n):c(String(e))};return(e,...r)=>e.reduce((c,d,i)=>`${c}${d}${t(r[i],i)}`,\"\")}function p(o=\",\"){return(n,t=l)=>Object.entries(n).filter(([,e])=>e!==void 0).map(([e,r])=>u(t,o)`${e}=${r}`).join(\"&\")}function s(...o){return o.filter(Boolean).map((n,t)=>t===0?n:n.replace(/^\\/+/,\"\")).map((n,t,e)=>t===e.length-1?n:n.replace(/\\/+$/,\"\")).join(\"/\")}exports.allowReserved=f;exports.delimited=p;exports.encode=u;exports.encodeReserved=l;exports.joinUrl=s;\n//# sourceMappingURL=util.cjs.map\n","\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const t=require(\"./util.cjs\");function $(...o){const n=o.filter(Boolean).join(\"&\");return n&&`?${n}`}function l(o,[n,i]=t.encodeReserved){const e=t.encode([s=>s,n]),r=t.encode([s=>s,i]),c=(s,f=\"\")=>Object.entries(s).filter(([,d])=>d!==void 0).map(([d,u])=>{const y=Array.isArray(s)?\"\":d,p=f?e`${f}[${y}]`:d;return typeof u==\"object\"?c(u,p):r`${p}=${u}`}).join(\"&\");return c(o)}function j(o,n=t.encodeReserved){const i=t.encode(n);return Object.entries(o).filter(([,e])=>e!==void 0).map(([e,r])=>Array.isArray(r)?r.map(c=>i`${e}=${c}`).join(\"&\"):typeof r==\"object\"?j(r,n):i`${e}=${r}`).join(\"&\")}function m(o,n=t.encodeReserved){const i=t.encode(n);return Object.entries(o).filter(([,e])=>e!==void 0).map(([e,r])=>{const c=JSON.stringify(r);return i`${e}=${c}`}).join(\"&\")}const a=t.delimited(),q=t.delimited(\"|\"),b=t.delimited(\"%20\");exports.deep=l;exports.explode=j;exports.form=a;exports.json=m;exports.pipe=q;exports.query=$;exports.space=b;\n//# sourceMappingURL=query.cjs.map\n","\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});function s(e,r){const t=n(e);return n(r).forEach((a,i)=>{t.set(i,a)}),t}function n(e){return e&&!(e instanceof Headers)&&!Array.isArray(e)?new Headers(Object.fromEntries(Object.entries(e).filter(([,r])=>r!=null).map(([r,t])=>[r,String(t)]))):new Headers(e)}exports.mergeHeaders=s;exports.normalizeHeaders=n;\n//# sourceMappingURL=headers.cjs.map\n","\"use strict\";var D=Object.defineProperty,x=Object.defineProperties;var A=Object.getOwnPropertyDescriptors;var g=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var H=(r,e,t)=>e in r?D(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,u=(r,e)=>{for(var t in e||(e={}))j.call(e,t)&&H(r,t,e[t]);if(g)for(var t of g(e))O.call(e,t)&&H(r,t,e[t]);return r},y=(r,e)=>x(r,A(e));var S=(r,e)=>{var t={};for(var s in r)j.call(r,s)&&e.indexOf(s)<0&&(t[s]=r[s]);if(r!=null&&g)for(var s of g(r))e.indexOf(s)<0&&O.call(r,s)&&(t[s]=r[s]);return t};var E=(r,e,t)=>(H(r,typeof e!=\"symbol\"?e+\"\":e,t),t);var m=(r,e,t)=>new Promise((s,h)=>{var a=n=>{try{c(t.next(n))}catch(o){h(o)}},i=n=>{try{c(t.throw(n))}catch(o){h(o)}},c=n=>n.done?s(n.value):Promise.resolve(n.value).then(a,i);c((t=t.apply(r,e)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const U=require(\"./query.cjs\"),B=require(\"./util.cjs\"),w=require(\"./headers.cjs\");function F(r={}){function e(a,i){return m(this,null,function*(){const c=yield h(a,i);let n;try{n=yield c.text()}catch(o){}return{status:c.status,headers:c.headers,contentType:c.headers.get(\"content-type\"),data:n}})}function t(c){return m(this,arguments,function*(a,i={}){const{status:n,headers:o,contentType:f,data:p}=yield e(a,y(u({},i),{headers:w.mergeHeaders({Accept:\"application/json\"},i.headers)}));return(f?f.includes(\"json\"):!1)?{status:n,headers:o,data:p?JSON.parse(p):null}:{status:n,headers:o,data:p}})}function s(c){return m(this,arguments,function*(a,i={}){const n=yield h(a,i);let o;try{o=yield n.blob()}catch(f){}return{status:n.status,headers:n.headers,data:o}})}function h(c){return m(this,arguments,function*(a,i={}){const d=y(u(u({},r),i),{headers:w.mergeHeaders(r.headers,i.headers)}),{baseUrl:n,fetch:o}=d,f=S(d,[\"baseUrl\",\"fetch\"]),p=B.joinUrl(n,a);return yield(o||fetch)(p,f)})}return{ok:C,fetchText:e,fetchJson:t,fetchBlob:s,mergeHeaders:w.mergeHeaders,json(n){var o=n,{body:a,headers:i}=o,c=S(o,[\"body\",\"headers\"]);return y(u(u({},c),a!=null&&{body:JSON.stringify(a)}),{headers:w.mergeHeaders({\"Content-Type\":\"application/json\"},i)})},form(n){var o=n,{body:a,headers:i}=o,c=S(o,[\"body\",\"headers\"]);return y(u(u({},c),a!=null&&{body:U.form(a)}),{headers:w.mergeHeaders({\"Content-Type\":\"application/x-www-form-urlencoded\"},i)})},multipart(n){var o=n,{body:a,headers:i}=o,c=S(o,[\"body\",\"headers\"]);if(a==null)return y(u({},c),{body:a,headers:w.normalizeHeaders(i)});const f=new(r.formDataConstructor||c.formDataConstructor||FormData),p=(l,d)=>{typeof d==\"string\"||d instanceof Blob?f.append(l,d):f.append(l,new Blob([JSON.stringify(d)],{type:\"application/json\"}))};return Object.entries(a).forEach(([l,d])=>{Array.isArray(d)?d.forEach(k=>p(l,k)):p(l,d)}),y(u({},c),{body:f,headers:w.normalizeHeaders(i)})}}}function N(r,e){return m(this,null,function*(){const{status:t,data:s,headers:h}=yield r,a=e[t];if(a)return a(s);if(e.default)return e.default(t,s);throw new b(t,s,h)})}const J=[200,201,202,204];function C(r){return m(this,null,function*(){const e=yield r;if(J.some(t=>t==e.status))return e.data;throw new b(e.status,e.data,e.headers)})}function T(r){return(...e)=>C(r(...e))}function z(r){const e={};return Object.entries(r).forEach(([t,s])=>{e[t]=typeof s==\"function\"?T(s):s}),e}class b extends Error{constructor(t,s,h){super(`Error: ${t}`);E(this,\"status\");E(this,\"data\");E(this,\"headers\");this.status=t,this.data=s,this.headers=h}}exports.HttpError=b;exports.SUCCESS_CODES=J;exports.handle=N;exports.ok=C;exports.okify=T;exports.optimistic=z;exports.runtime=F;\n//# sourceMappingURL=index.cjs.map\n","/**\n * frontendcontent\n * 2.5.1\n * DO NOT MODIFY - This file has been generated using oazapfts.\n * See https://www.npmjs.com/package/oazapfts\n */\nimport * as Oazapfts from \"@oazapfts/runtime\";\nimport * as QS from \"@oazapfts/runtime/query\";\nexport const defaults: Oazapfts.Defaults = {\n headers: {},\n baseUrl: \"https://frontendcontent.xtk-dev.de\",\n};\nconst oazapfts = Oazapfts.runtime(defaults);\nexport const servers = {\n server1: \"https://frontendcontent.xtk-dev.de\"\n};\nexport type LocaleKeyObject = {\n /** The german translation of the property */\n \"de-DE\"?: object;\n /** The english translation of the property */\n \"en-GB\"?: object;\n};\nexport type CiConfig = {\n environmentName: LocaleKeyObject;\n [key: string]: any;\n};\nexport type AgentPortalCiConfigResponseWithRelations = {\n agentPortalCiConfig: CiConfig;\n};\nexport type AgremeentsDetailsResponseWithRelations = {\n [key: string]: any;\n};\nexport type CustomerPortalConfigResponseWithRelations = {\n customerPortalConfig: CiConfig;\n};\nexport type DictionaryObject = {\n [key: string]: any;\n};\nexport type DictionaryResponseWithRelations = {\n dictionary: DictionaryObject;\n /** The dictionary item count */\n dictionaryCount: number;\n};\nexport type NotificationItem = {\n /** The id of the notification item */\n id: string;\n /** The text of the notification item */\n text: string;\n};\nexport type NotificationItemDetailsResponseWithRelations = {\n WELCOME_TO_ED4?: NotificationItem;\n [key: string]: any;\n};\nexport type Optin = {\n /** The category for the cookie banner */\n \"type\": string;\n /** The name that is used to access the optin status from the code */\n name: string;\n /** The label is displayed to the user in the cookie-banner */\n label: string;\n /** The description is displayed under the label to the user in the cookie-banner. This is used to justify the need of this optin. */\n description?: string;\n /** This url is meant to be a link to a GDPR Compliance page. */\n externalUrl?: string;\n /** Add one or multiple JS Scripts (in HTML Tags) that will be injected as soon as the user accepts this opt-in */\n injectOnAccept?: string;\n /** Add one or multiple JS Scripts (in HTML Tags) that will be injected as soon as the user rejects this opt-in */\n injectOnReject?: string;\n [key: string]: any;\n};\nexport type OptinsResponseWithRelations = {\n items: Optin[];\n};\nexport type TitlesOptionsResponseWithRelations = {\n titles: string[];\n};\nexport type ProductDetailWithRelations = {\n /** The system name for the product */\n name: string;\n /** The display name of the product */\n displayName?: string;\n /** The type of the product */\n productType?: string;\n /** The name of the product */\n productName?: string;\n /** The service of the product */\n service?: string;\n /** The contract duration of the product */\n contractDuration?: string;\n /** Boolean to indicate if its the best option */\n bestOption?: string;\n /** The description of the product */\n shortDescription?: string;\n /** The detail of the product */\n detail?: string;\n tariffInformation?: any[];\n /** The legal text of the product */\n legalText?: string;\n};\nexport type ProductDetailsResponseWithRelations = object;\nexport type ProductDocumentsResponseWithRelations = {\n [key: string]: any;\n};\nexport type ProductOverviewResponseWithRelations = object;\nexport type Supplier = {\n /** The suppliers code */\n code: number;\n /** The suppliers name */\n name: string;\n /** The suppliers type */\n \"type\": string;\n /** The suppliers service */\n service: string;\n};\nexport type SuppliersResponseWithRelations = {\n results: Supplier[];\n /** The count of suppliers */\n count: number;\n};\nexport type TimelineItem = {\n /** The id of the timeline item */\n id: string;\n /** The title of the timeline item */\n title: string;\n /** The long title of the timeline item */\n titleLong: string;\n /** The description of the timeline item */\n description: string;\n /** The icon id of the timeline item */\n iconId: string;\n};\nexport type TimelineItemDetailsResponseWithRelations = {\n CUSTOMER_CREATION?: TimelineItem;\n [key: string]: any;\n};\nexport type VersionResponseWithRelations = {\n /** The commit hash the build was created from */\n commitId: string;\n /** The package.json description field */\n description: string;\n /** The package.json version field */\n version: string;\n};\nexport type WebhookFlushResponseWithRelations = {\n /** A boolean indicating wether or not the flush was successful */\n flushed: boolean;\n};\nexport type WebhookRequestBody = {\n /** The content type of the entry that changed */\n contentType: string;\n /** The space of the entry that changed */\n space: string;\n};\nexport function getAgentPortalCiConfiguration(environment: \"DEV\" | \"STAGE\" | \"MIGRATION\" | \"PROD\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: AgentPortalCiConfigResponseWithRelations;\n }>(`/agentPortalCiConfiguration${QS.query(QS.explode({\n environment\n }))}`, {\n ...opts\n });\n}\nexport function getAgreementsDetails(ids: string[], locale: \"de-DE\" | \"en-GB\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: AgremeentsDetailsResponseWithRelations;\n }>(`/agreements/details${QS.query(QS.explode({\n ids,\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getCustomerPortalConfiguration(environment: \"DEV\" | \"STAGE\" | \"MIGRATION\" | \"PROD\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: CustomerPortalConfigResponseWithRelations;\n }>(`/customerPortalConfiguration${QS.query(QS.explode({\n environment\n }))}`, {\n ...opts\n });\n}\nexport function getDictionaryApKeys(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 410;\n data: any;\n }>(\"/dictionary/ap/keys\", {\n ...opts\n });\n}\nexport function getDictionaryAp({ locale }: {\n locale?: \"de-DE\" | \"en-GB\";\n} = {}, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: DictionaryResponseWithRelations;\n }>(`/dictionary/ap${QS.query(QS.explode({\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getDictionaryKeys(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 410;\n data: any;\n }>(\"/dictionary/keys\", {\n ...opts\n });\n}\nexport function getDictionary({ locale }: {\n locale?: \"de-DE\" | \"en-GB\";\n} = {}, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: DictionaryResponseWithRelations;\n }>(`/dictionary${QS.query(QS.explode({\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getHealthy(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: boolean;\n }>(\"/healthy\", {\n ...opts\n });\n}\nexport function getNotificationsDetails(ids: string[], locale: \"de-DE\" | \"en-GB\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: NotificationItemDetailsResponseWithRelations;\n }>(`/notifications/details${QS.query(QS.explode({\n ids,\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getOptinsAgent(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: OptinsResponseWithRelations;\n }>(\"/optins/agent\", {\n ...opts\n });\n}\nexport function getOptinsCustomer(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: OptinsResponseWithRelations;\n }>(\"/optins/customer\", {\n ...opts\n });\n}\nexport function getOptionsTitlesNoGender(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: TitlesOptionsResponseWithRelations;\n }>(\"/options/titles/noGender\", {\n ...opts\n });\n}\nexport function getOptionsTitles(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: TitlesOptionsResponseWithRelations;\n }>(\"/options/titles\", {\n ...opts\n });\n}\nexport function getProductsDetailsById(id: string, { locale }: {\n locale?: \"de-DE\" | \"en-GB\";\n} = {}, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: ProductDetailWithRelations;\n }>(`/products/details/${encodeURIComponent(id)}${QS.query(QS.explode({\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getProductsDetails(ids: string[], { locale }: {\n locale?: \"de-DE\" | \"en-GB\";\n} = {}, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: ProductDetailsResponseWithRelations;\n }>(`/products/details${QS.query(QS.explode({\n ids,\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getProductsDocuments(locale: \"de-DE\" | \"en-GB\", { ids }: {\n ids?: string[];\n} = {}, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: ProductDocumentsResponseWithRelations;\n }>(`/products/documents${QS.query(QS.explode({\n locale,\n ids\n }))}`, {\n ...opts\n });\n}\nexport function getProductsOverviewsById(id: string, locale: \"de-DE\" | \"en-GB\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: ProductDetailWithRelations;\n }>(`/products/overviews/${encodeURIComponent(id)}${QS.query(QS.explode({\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getProductsOverviews(ids: string[], locale: \"de-DE\" | \"en-GB\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: ProductOverviewResponseWithRelations;\n }>(`/products/overviews${QS.query(QS.explode({\n ids,\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getReadiness(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: boolean;\n }>(\"/readiness\", {\n ...opts\n });\n}\nexport function getSuppliersCode(code: number, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: SuppliersResponseWithRelations;\n }>(`/suppliers/code${QS.query(QS.explode({\n code\n }))}`, {\n ...opts\n });\n}\nexport function getSuppliers({ input, service }: {\n input?: string;\n service?: \"GAS\" | \"POWER\";\n} = {}, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: SuppliersResponseWithRelations;\n }>(`/suppliers${QS.query(QS.explode({\n input,\n service\n }))}`, {\n ...opts\n });\n}\nexport function getTimelineDetails(ids: string[], locale: \"de-DE\" | \"en-GB\", opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: TimelineItemDetailsResponseWithRelations;\n }>(`/timeline/details${QS.query(QS.explode({\n ids,\n locale\n }))}`, {\n ...opts\n });\n}\nexport function getVersion(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: VersionResponseWithRelations;\n }>(\"/version\", {\n ...opts\n });\n}\nexport function postWebhookFlush(opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: WebhookFlushResponseWithRelations;\n }>(\"/webhook/flush\", {\n ...opts,\n method: \"POST\"\n });\n}\nexport function postWebhook(webhookRequestBody?: WebhookRequestBody, opts?: Oazapfts.RequestOpts) {\n return oazapfts.fetchJson<{\n status: 200;\n data: Blob;\n }>(\"/webhook\", oazapfts.json({\n ...opts,\n method: \"POST\",\n body: webhookRequestBody\n }));\n}\n","import { Component, Host, h, Prop, Event, EventEmitter, Watch, State } from '@stencil/core';\nimport { Optin, getOptinsAgent, getOptinsCustomer } from '../../../clients/frontendcontent';\nimport { ConsentConfirmState } from '../../../enums/consent-confirm-state.enum';\nimport { CookieService } from '../../../services/cookie.service';\n\n@Component({\n tag: 'lqt-cookie-banner-smart',\n shadow: true,\n})\nexport class LqtCookieBannerSmart {\n /**\n * Target url of the frontendcontent service instance where the opt-ins get retrieved from.\n */\n @Prop() frontendcontentUrl: string;\n\n /**\n * Type of optins the service should load - customers for customer facing applications - agent for agent facing applications\n */\n @Prop() type: 'AGENT' | 'CUSTOMER' = 'CUSTOMER';\n\n /**\n * Domain that cookies, that save consent states, are applied to.\n * You can use domain wildcards like `.xtk-dev.de` to share the state of this cookieBanner between applications under the same domain.\n *\n * This will default to the current domain, if omitted.\n */\n @Prop() cookieDomain: string;\n\n /**\n * Cookie naming schema.\n */\n @Prop() cookiePrefix = 'lqt-cookie-banner';\n\n /**\n * logo url shown at the top of the cookie banner\n */\n @Prop() logo: string;\n /**\n * link to the privacy page related to this cookie banner\n */\n @Prop() privacyUrl: string;\n /**\n * link to the imprint url of the owners website\n */\n @Prop() imprintUrl: string;\n\n /**\n * Label on top - what is this cookie banner used in?\n */\n @Prop() label: string;\n /**\n * Overwrite the text for the checkbox 'Function'\n */\n @Prop() textFunctionCheckbox = 'Function';\n /**\n * Overwrite the text for the checkbox 'Monitoring'\n */\n @Prop() textMonitoringCheckbox = 'Monitoring';\n /**\n * Overwrite the text for the checkbox 'Marketing'\n */\n @Prop() textMarketingCheckbox = 'Marketing';\n /**\n * Overwrite the text for the 'Save Settings' button\n */\n @Prop() textSaveButton = 'Save Settings';\n /**\n * Overwrite the text for the 'Reject' button\n */\n @Prop() textRejectButton = 'Reject';\n /**\n * Overwrite the text for the 'Accept all' button\n */\n @Prop() textAcceptButton = 'Accept all';\n /**\n * Overwrite the text for the 'More Settings' button\n */\n @Prop() textMoreSettingsButton = 'More Settings';\n /**\n * Overwrite the text for the general privacy link\n */\n @Prop() textPrivacyButton = 'Privacy Declaration';\n /**\n * Overwrite the text for the imprint link\n */\n @Prop() textImprintButton = 'Imprint';\n /**\n * Overwrite the text for the back button\n */\n @Prop() textBackButton = 'Back';\n /**\n * Overwrite the text for the opt-in privacy urls\n */\n @Prop() textOptInPrivacyUrl = 'More information from this provider';\n\n @Event() consentConfirmStateChange: EventEmitter;\n\n @State() optIns: Optin[] = null;\n\n async componentWillLoad() {\n if (this.frontendcontentUrl) {\n await this.loadOptins(this.frontendcontentUrl, this.type);\n }\n }\n\n connectedCallback() {\n const cookieService = CookieService.getInstance();\n cookieService.setDomain(this.cookieDomain);\n cookieService.setPrefix(this.cookiePrefix);\n }\n\n @Watch('frontendcontentUrl')\n async onChangeFrontendcontentUrl(url: string) {\n this.loadOptins(url, this.type);\n }\n\n @Watch('type')\n async onChangeType(type: 'AGENT' | 'CUSTOMER') {\n this.loadOptins(this.frontendcontentUrl, type);\n }\n\n private async loadOptins(url: string, type: 'AGENT' | 'CUSTOMER' | undefined) {\n try {\n if (type === 'AGENT') {\n const res = await getOptinsAgent({\n baseUrl: url,\n });\n this.optIns = res.data.items;\n return;\n }\n const res = await getOptinsCustomer({\n baseUrl: url,\n });\n this.optIns = res.data.items;\n } catch (error) {\n console.error('lqt-cookie-banner-smart - Error loading opt-ins', error);\n // reject consents on error, so the user can still use the page\n this.consentConfirmStateChange.emit(ConsentConfirmState.REJECTED);\n }\n }\n\n render() {\n return (\n \n {this.optIns ? (\n \n
\n \n
\n
\n \n
\n {this.optIns.map(optIn => (\n \n ))}\n \n ) : null}\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tab',\n styleUrl: 'lqt-tab.css',\n shadow: true,\n})\nexport class LqtTab {\n @Prop() active = false;\n\n render() {\n return {this.active ? : null};\n }\n}\n",":host {\n display: block;\n}\n\n:host .header-content {\n display: block;\n padding: 12px 48px;\n font-size: 1.25em;\n cursor: pointer;\n}\n\n:host .header-content.active {\n border-bottom: 3px solid var(--lqt-cookie-banner-color-primary, #a2c73b);\n color: var(--lqt-cookie-banner-color-primary, #a2c73b);\n font-weight: 700;\n}\n\n@media (max-width: 510px) {\n :host .header-content {\n padding: 12px 24px;\n }\n}\n\n@media (max-width: 400px) {\n :host .header-content {\n padding: 12px;\n }\n}\n\n@media (max-width: 310px) {\n :host .header-content {\n padding: 12px 6px;\n }\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tab-header',\n styleUrl: 'lqt-tab-header.css',\n shadow: true,\n})\nexport class LqtTabHeader {\n @Prop() active = false;\n\n render() {\n return (\n \n
\n \n
\n
\n );\n }\n}\n",":host {\n display: block;\n width: 100%;\n font-size: var(--lqt-cookie-banner-font-size, 14px);\n line-height: 1.15;\n font-family: var(--lqt-cookie-banner-font-family, 'Arial');\n}\n\n:host > div.tab-headers {\n display: flex;\n align-items: center;\n justify-content: center;\n border-bottom: 1px solid var(--lqt-cookie-banner-color-lightgrey, #f5f5f5);\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tabs',\n styleUrl: 'lqt-tabs.css',\n shadow: true,\n})\nexport class LqtTabs {\n render() {\n return (\n \n
\n \n
\n
\n \n
\n
\n );\n }\n}\n","export enum CustomerTypeEnum {\n PRIVATE_HOUSEHOLD = 'PRIVAT',\n CORPORATE = 'GEWERBE',\n}\n","import { Address } from '../interfaces/address.interface';\nimport { CategoryEnum } from '../enum/category.enum';\nimport { CustomerTypeEnum } from '../enum/customer-type.enum';\n\ninterface Usage {\n [type: string]: number;\n}\n\nexport class SignupCustomerPortalBridgeService {\n /**\n * Source: https://github.com/mpchadwick/tracking-query-params-registry/blob/master/_data/params.csv\n */\n static ALLOWED_TRACKING_QUERY_PARAMS = [\n 'fbclid',\n 'gclid',\n 'gclsrc',\n 'dclid',\n 'gbraid',\n 'wbraid',\n 'twclid',\n 'yclid',\n 'utm_content',\n 'utm_term',\n 'utm_campaign',\n 'utm_medium',\n 'utm_source',\n 'utm_id',\n '_ga',\n 'mc_cid',\n 'mc_eid',\n '_bta_tid',\n '_bta_c',\n 'trk_contact',\n 'trk_msg',\n 'trk_module',\n 'trk_sid',\n 'gdfms',\n 'gdftrk',\n 'gdffi',\n '_ke',\n '_kx',\n 'redirect_log_mongo_id',\n 'redirect_mongo_id',\n 'sb_referer_host',\n 'mkwid',\n 'pcrid',\n 'ef_id',\n 's_kwcid',\n 'msclkid',\n 'dm_i',\n 'epik',\n 'pk_campaign',\n 'pk_kwd',\n 'pk_keyword',\n 'piwik_campaign',\n 'piwik_kwd',\n 'piwik_keyword',\n 'mtm_campaign',\n 'mtm_keyword',\n 'mtm_source',\n 'mtm_medium',\n 'mtm_content',\n 'mtm_cid',\n 'mtm_group',\n 'mtm_placement',\n 'matomo_campaign',\n 'matomo_keyword',\n 'matomo_source',\n 'matomo_medium',\n 'matomo_content',\n 'matomo_cid',\n 'matomo_group',\n 'matomo_placement',\n 'hsa_cam',\n 'hsa_grp',\n 'hsa_mt',\n 'hsa_src',\n 'hsa_ad',\n 'hsa_acc',\n 'hsa_net',\n 'hsa_kw',\n 'hsa_tgt',\n 'hsa_ver',\n '_branch_match_id',\n 'mkevt',\n 'mkcid',\n 'mkrid',\n 'campid',\n 'toolid',\n 'customid',\n 'igshid',\n 'si',\n 'sms_source',\n 'sms_click',\n 'sms_uph',\n 's_id',\n ];\n\n static singletonInstace: SignupCustomerPortalBridgeService;\n\n static getInstance(\n customerPortalUrl: string,\n target: '_self' | '_parent' | '_top' | '_blank' | string,\n ): SignupCustomerPortalBridgeService {\n if (SignupCustomerPortalBridgeService.singletonInstace) {\n return SignupCustomerPortalBridgeService.singletonInstace;\n }\n SignupCustomerPortalBridgeService.singletonInstace = new SignupCustomerPortalBridgeService(\n customerPortalUrl,\n target,\n );\n return SignupCustomerPortalBridgeService.singletonInstace;\n }\n\n private constructor(\n private customerPortalUrl: string,\n private target: '_self' | '_parent' | '_top' | '_blank' | string,\n ) {}\n\n redirectToPrivateCustomer(\n usage: Usage,\n address: Address,\n category?: CategoryEnum,\n promocode?: string,\n promocodeProducts?: { [key: string]: string[] },\n ) {\n this.redirectToCustomerPortal(\n usage,\n address,\n category,\n CustomerTypeEnum.PRIVATE_HOUSEHOLD,\n promocode,\n promocodeProducts,\n );\n }\n\n redirectToCorporateCustomer(\n usage: Usage,\n address: Address,\n promocode?: string,\n promocodeProducts?: { [key: string]: string[] },\n ) {\n this.redirectToCustomerPortal(usage, address, undefined, CustomerTypeEnum.CORPORATE, promocode, promocodeProducts);\n }\n\n private redirectToCustomerPortal(\n usage: Usage,\n address: Address,\n category?: CategoryEnum,\n customerType?: CustomerTypeEnum,\n promocode?: string,\n promocodeProducts?: { [key: string]: string[] },\n ) {\n if (!this.customerPortalUrl) {\n throw new Error('Error 23100 - Customer Portal Url not set');\n }\n const sanitizedUsage = this.sanitizeUsage(usage);\n if (!this.isInputValid(sanitizedUsage, address)) {\n throw new Error('Bitte ergänzen Sie die fehlenden Felder');\n }\n this.redirect(sanitizedUsage, address, category, customerType, promocode, promocodeProducts);\n }\n\n private sanitizeUsage(usage: Usage): Usage {\n const sanitizedUsage: Usage = {};\n for (const key of Object.keys(usage)) {\n if (!usage[key]) {\n continue;\n }\n sanitizedUsage[key] = usage[key];\n }\n return sanitizedUsage;\n }\n\n private isInputValid(usage: Usage, address: Address) {\n if (!Object.keys(usage).length) {\n return false;\n }\n for (const value of Object.values(usage)) {\n if (typeof value !== 'number' || value <= 0) {\n return false;\n }\n }\n return (\n !!address?.postCode && !!address?.postCode && !!address.city && !!address.streetName && !!address.streetNumber\n );\n }\n\n private getCustomerPortalUrl(\n usage: Usage,\n address: Address,\n category?: CategoryEnum,\n customerType?: CustomerTypeEnum,\n promocode?: string,\n promocodeProducts?: { [key: string]: string[] },\n ): string {\n const customerPortalUrl = new URL('/vertragsabschluss/vertragsabschluss-starten', this.customerPortalUrl);\n\n // build data param used for the signup on CP side\n let params: {\n services?: {\n [key: string]: {\n estimate: number;\n categories: CategoryEnum[];\n customerType: CustomerTypeEnum;\n address: {\n streetNumber: string;\n route: string;\n locality: string;\n postalCode: string;\n };\n };\n };\n promocode?: string;\n productIds?: { [key: string]: string[] };\n } = {};\n params.services = {};\n for (const type of Object.keys(usage)) {\n params.services[type] = {\n estimate: usage[type],\n categories: [category],\n customerType: customerType,\n address: {\n streetNumber: address.streetNumber,\n route: address.streetName,\n locality: address.city,\n postalCode: address.postCode,\n },\n };\n }\n if (promocode && promocode !== '') {\n params.promocode = promocode;\n // If promocode is set we directly preset a product matching the code\n if (promocodeProducts && Object.keys(promocodeProducts).length > 0) {\n params.productIds = {};\n for (const type of Object.keys(promocodeProducts)) {\n params.productIds[type] = promocodeProducts[type];\n }\n }\n }\n\n customerPortalUrl.searchParams.set('data', JSON.stringify(params));\n\n // copy tracking query params\n const hostUrl = new URL(window.location.href);\n for (const trackingQueryParam of SignupCustomerPortalBridgeService.ALLOWED_TRACKING_QUERY_PARAMS) {\n if (!hostUrl.searchParams.has(trackingQueryParam)) {\n continue;\n }\n customerPortalUrl.searchParams.set(trackingQueryParam, hostUrl.searchParams.get(trackingQueryParam));\n }\n\n return customerPortalUrl.toString();\n }\n\n private redirect(\n usage: Usage,\n address: Address,\n category?: CategoryEnum,\n customerType?: CustomerTypeEnum,\n promocode?: string,\n promocodeProducts?: { [key: string]: string[] },\n ) {\n if (this.target === '_self') {\n window.location.href = this.getCustomerPortalUrl(\n usage,\n address,\n category,\n customerType,\n promocode,\n promocodeProducts,\n );\n return;\n }\n window.open(\n this.getCustomerPortalUrl(usage, address, category, customerType, promocode, promocodeProducts),\n this.target,\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Prop } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { SignupCustomerPortalBridgeService } from '../../../../services/signup-customer-portal-bridge.service';\nimport { CategoryEnum } from '../../../../enum/category.enum';\n\n@Component({\n tag: 'lqt-tariff-calculator',\n styleUrl: 'lqt-tariff-calculator.css',\n})\nexport class LqtTariffCalculator {\n /**\n * Target url of the customer-portal instance where the signup will be completed\n */\n @Prop() customerPortalUrl: string;\n /**\n * Service url to retreive address data\n */\n @Prop() bffUrl: string;\n /**\n * Header text for gas\n */\n @Prop() gasHeader = '';\n /**\n * Header text for power\n */\n @Prop() powerHeader = '';\n /**\n * Label for the gas slider\n */\n @Prop() gasSliderLabel = 'Personen im Haushalt';\n /**\n * Label for the power slider\n */\n @Prop() powerSliderLabel = 'Personen im Haushalt';\n /**\n * Browser target for the click on the submit button\n */\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n /**\n * Comma separated usage slider options\n */\n @Prop() powerUsageDefaults: string;\n /**\n * Comma separated usage slider options\n */\n @Prop() gasUsageDefaults: string;\n /**\n * Optional filter category to show only certain products\n */\n @Prop() category?: CategoryEnum;\n\n /**\n * Street input label\n */\n @Prop() streetLabel: string;\n /**\n * Street input placeholder\n */\n @Prop() streetPlaceholder: string;\n\n /**\n * Streetnumber input label\n */\n @Prop() streetNumberLabel: string;\n /**\n * Streetnumber input placeholder\n */\n @Prop() streetNumberPlaceholder: string;\n\n /**\n * Zipcode input label\n */\n @Prop() zipcodeLabel: string;\n /**\n * Zipcode input placeholder\n */\n @Prop() zipcodePlaceholder: string;\n\n /**\n * Usage slider input label\n */\n @Prop() usageSliderInputLabel: string;\n /**\n * Confirm button text\n */\n @Prop() confirmButtonText = 'Tarif berechnen';\n /**\n * Promocode enabled\n */\n @Prop() promocodeEnabled: boolean = false;\n /**\n * Promocode product power\n */\n @Prop() promocodeProductPower = '';\n /**\n * Promocode product gas\n */\n @Prop() promocodeProductGas = '';\n /**\n * Promocode apply text\n */\n @Prop() promocodeApplyText: string = 'Promocode anwenden';\n /**\n * Promocode remove text\n */\n @Prop() promocodeRemoveText: string = 'Promocode entfernen';\n /**\n * Promocode validating text\n */\n @Prop() promocodeValidatingText: string = 'Promocode prüfen';\n /**\n * Promocode invalid text\n */\n @Prop() promocodeInvalidText: string =\n 'Der eingegebene Promocode existiert nicht. Bitte gib einen gültigen Promocode ein oder entferne den ungültigen Promocode.'; // TODO\n /**\n * Promocode valid text\n */\n @Prop() promocodeValidText: string = 'Promocode erfolgreich hinzugefügt';\n /**\n * Promocode input placeholder\n */\n @Prop() promocodePlaceholder = 'Du hast einen Promocode?';\n\n @State() selectedAddress: Address;\n @State() powerUsage: number;\n @State() gasUsage: number;\n @State() promocode: string = '';\n @State() formDirty = false;\n\n handleSubmit(e) {\n e.preventDefault();\n this.formDirty = true;\n let promocodeProducts: { [x: string]: string[]; power?: string[]; gas?: string[] } = {};\n if (this.promocodeProductPower && this.promocodeProductPower !== '')\n promocodeProducts.power = [this.promocodeProductPower];\n if (this.promocodeProductGas && this.promocodeProductGas !== '') promocodeProducts.gas = [this.promocodeProductGas];\n SignupCustomerPortalBridgeService.getInstance(this.customerPortalUrl, this.target).redirectToPrivateCustomer(\n {\n power: this.powerUsage,\n gas: this.gasUsage,\n },\n this.selectedAddress,\n this.category,\n this.promocode,\n promocodeProducts,\n );\n }\n\n render() {\n return (\n \n
this.handleSubmit(e)}>\n
\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n label={this.zipcodeLabel}\n placeholder={this.zipcodePlaceholder}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n label={this.streetLabel}\n placeholder={this.streetPlaceholder}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n label={this.streetNumberLabel}\n placeholder={this.streetNumberPlaceholder}\n >\n
\n
\n
\n {this.powerUsageDefaults ? (\n
\n {this.powerHeader ?

{this.powerHeader}

: null}\n (this.powerUsage = e.detail)}\n dirty={this.formDirty}\n usage-label={this.usageSliderInputLabel}\n >\n
\n ) : null}\n {this.gasUsageDefaults ? (\n
\n {this.gasHeader ?

{this.gasHeader}

: null}\n (this.gasUsage = e.detail)}\n dirty={this.formDirty}\n usage-label={this.usageSliderInputLabel}\n >\n
\n ) : null}\n {this.promocodeEnabled ? (\n
\n (this.promocode = e.detail)}\n promocodeProductPower={this.promocodeProductPower}\n promocodeProductGas={this.promocodeProductGas}\n promocodeApplyText={this.promocodeApplyText}\n promocodeRemoveText={this.promocodeRemoveText}\n promocodeValidatingText={this.promocodeValidatingText}\n promocodeInvalidText={this.promocodeInvalidText}\n promocodeValidText={this.promocodeValidText}\n promocodePlaceholder={this.promocodePlaceholder}\n >\n
\n ) : null}\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Prop } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { SignupCustomerPortalBridgeService } from '../../../../services/signup-customer-portal-bridge.service';\n\n@Component({\n tag: 'lqt-tariff-calculator-business-gas',\n styleUrl: 'lqt-tariff-calculator-business-gas.css',\n})\nexport class LqtTariffCalculatorBusinessGas {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n @State() selectedAddress: Address;\n @State() usage = 12000;\n @State() usageDirty = false;\n\n @State() formDirty = false;\n\n handleUsageChange(e) {\n this.usage = +e.target.value;\n this.usageDirty = true;\n }\n\n handleSubmit(e) {\n e.preventDefault();\n this.formDirty = true;\n SignupCustomerPortalBridgeService.getInstance(this.customerPortalUrl, this.target).redirectToCorporateCustomer(\n {\n gas: this.usage,\n },\n this.selectedAddress,\n );\n }\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Ökogastarif

\n
this.handleSubmit(e)}>\n
\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n
\n \n
\n
\n this.handleUsageChange(e)}\n class=\"c-text-input__input\"\n />\n \n
\n
\n {(this.usageDirty || this.formDirty) && !this.usage ? (\n

Bitte wählen Sie Ihren Verbrauch.

\n ) : null}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop, State } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { SignupCustomerPortalBridgeService } from '../../../../services/signup-customer-portal-bridge.service';\n\n@Component({\n tag: 'lqt-tariff-calculator-business-power',\n styleUrl: 'lqt-tariff-calculator-business-power.css',\n})\nexport class LqtTariffCalculatorBusinessPower {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n @State() selectedAddress: Address;\n @State() usage = 20000;\n @State() usageDirty = false;\n\n @State() formDirty = false;\n\n handleUsageChange(e) {\n this.usage = +e.target.value;\n this.usageDirty = true;\n }\n\n handleSubmit(e) {\n e.preventDefault();\n this.formDirty = true;\n SignupCustomerPortalBridgeService.getInstance(this.customerPortalUrl, this.target).redirectToCorporateCustomer(\n {\n power: this.usage,\n },\n this.selectedAddress,\n );\n }\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Ökostromtarif

\n
this.handleSubmit(e)}>\n
\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n
\n \n
\n
\n this.handleUsageChange(e)}\n class=\"c-text-input__input\"\n />\n \n
\n
\n {(this.usageDirty || this.formDirty) && !this.usage ? (\n

Bitte wählen Sie Ihren Verbrauch.

\n ) : null}\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tariff-calculator-business-tabbed',\n styleUrl: 'lqt-tariff-calculator-business-tabbed.css',\n})\nexport class LqtTariffCalculatorBusinessTabbed {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n @Element() host: HTMLElement;\n\n clickTabHeader(e) {\n const headerAnchor: HTMLAnchorElement = e.target;\n\n this.host.querySelectorAll('a[role=\"tab\"]').forEach(header => header.removeAttribute('aria-selected'));\n headerAnchor.setAttribute('aria-selected', 'true');\n this.host.querySelectorAll('section[role=\"tabpanel\"]').forEach(tab => tab.setAttribute('hidden', ''));\n\n const tabId = headerAnchor.getAttribute('id');\n this.host.querySelector(`[aria-labelledby=${tabId}]`).removeAttribute('hidden');\n }\n\n render() {\n return (\n \n
\n
\n \n
\n\n
\n \n
\n\n \n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop, State } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { SignupCustomerPortalBridgeService } from '../../../../services/signup-customer-portal-bridge.service';\nimport { CategoryEnum } from '../../../../enum/category.enum';\n\n@Component({\n tag: 'lqt-tariff-calculator-charge-current',\n styleUrl: 'lqt-tariff-calculator-charge-current.css',\n})\nexport class LqtTariffCalculatorChargeCurrent {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n @Prop() usageDefaults = '1200,2000,3100,3800';\n\n @State() selectedAddress: Address;\n @State() powerUsage: number;\n @State() chargeUsage = 1000;\n @State() formDirty = false;\n\n handleSubmit(e) {\n e.preventDefault();\n this.formDirty = true;\n SignupCustomerPortalBridgeService.getInstance(this.customerPortalUrl, this.target).redirectToPrivateCustomer(\n {\n power: !!this.powerUsage && !!this.chargeUsage ? +this.powerUsage + this.chargeUsage : undefined,\n },\n this.selectedAddress,\n CategoryEnum.STROM_LADESTROM,\n );\n }\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Ladestromtarif

\n
this.handleSubmit(e)}>\n
\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n
\n
\n (this.chargeUsage = e.detail)}\n dirty={this.formDirty}\n usage={this.chargeUsage}\n >\n
\n {this.usageDefaults ? (\n
\n (this.powerUsage = e.detail)}\n dirty={this.formDirty}\n >\n
\n ) : null}\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Event, EventEmitter, State, Prop } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tariff-calculator-charge-select-input',\n styleUrl: 'lqt-tariff-calculator-charge-select-input.css',\n})\nexport class LqtTariffCalculatorChargeSelectInput {\n /**\n * Label over the \"driven kilometers\" select\n */\n @Prop() distanceLabel = 'Gefahrene Kilometer';\n /**\n * Label over the manual usage input\n */\n @Prop() usageLabel = 'Verbrauch Fahrzeug kWh/Jahr';\n /**\n * Initial usage value\n */\n @Prop() usage = 1000;\n /**\n * Force showing error messages\n */\n @Prop() dirty = false;\n\n @State() selectValue: number;\n @State() isTooltipOpen = false;\n\n /**\n * Listen to changes of the usage value\n */\n @Event() valueChange: EventEmitter;\n\n handleSelectChange(event) {\n this.usage = +event.target.value;\n this.dirty = true;\n this.valueChange.emit(this.usage);\n }\n\n handleUsageChange(event) {\n this.usage = +event.target.value;\n this.dirty = true;\n this.valueChange.emit(this.usage);\n }\n\n handleTooltipOpen() {\n this.isTooltipOpen = true;\n }\n\n handleTooltipClose() {\n this.isTooltipOpen = false;\n }\n\n render() {\n return (\n \n
\n
\n
\n \n\n
\n
\n \n
\n
\n
\n

ODER

\n
\n
\n
\n \n
\n
\n this.handleUsageChange(e)}\n />\n \n
\n
\n {this.dirty && !this.usage ?

Bitte wählen Sie Ihren Verbrauch.

: null}\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tariff-calculator-green-gas',\n styleUrl: 'lqt-tariff-calculator-green-gas.css',\n})\nexport class LqtTariffCalculatorGreenGas {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() usageDefaults = '5000,12000,18000,20000';\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Ökogastarif

\n \n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { CategoryEnum } from '../../../../enum/category.enum';\n\n@Component({\n tag: 'lqt-tariff-calculator-green-power',\n styleUrl: 'lqt-tariff-calculator-green-power.css',\n})\nexport class LqtTariffCalculatorGreenPower {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() usageDefaults = '1200,2000,3100,3800';\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Ökostromtarif

\n \n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop, State } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { SignupCustomerPortalBridgeService } from '../../../../services/signup-customer-portal-bridge.service';\nimport { CategoryEnum } from '../../../../enum/category.enum';\n\n@Component({\n tag: 'lqt-tariff-calculator-heat-current',\n styleUrl: 'lqt-tariff-calculator-heat-current.css',\n})\nexport class LqtTariffCalculatorHeatCurrent {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n @State() selectedAddress: Address;\n @State() usage: number;\n @State() formDirty = false;\n\n handleSubmit(e) {\n e.preventDefault();\n this.formDirty = true;\n SignupCustomerPortalBridgeService.getInstance(this.customerPortalUrl, this.target).redirectToPrivateCustomer(\n {\n power: this.usage,\n },\n this.selectedAddress,\n CategoryEnum.STROM_HEIZSTROM,\n );\n }\n\n onInputGroupChanged = (e: CustomEvent): void => {\n this.usage = e.detail;\n };\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Heizstromtarif

\n
this.handleSubmit(e)}>\n
\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n (this.selectedAddress = e.detail)}\n dirty={this.formDirty}\n >\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tariff-calculator-heat-current-tooltip',\n styleUrl: 'lqt-tariff-calculator-heat-current-tooltip.css',\n})\nexport class LqtTariffCalculatorHeatCurrentTooltip {\n @State() isOpen = false;\n\n handleOpenClick() {\n this.isOpen = true;\n }\n\n handleCloseClick() {\n this.isOpen = false;\n }\n\n render() {\n return (\n \n \n \n
\n \n {this.isOpen ? (\n \n
\n

Wärmepumpe

\n

\n Bei einer Wärmepumpe-Heizanlage handelt es sich um einen Heizungstyp, der seine Energie aus der\n Umgebungsluft, Wasser oder dem Erdreich bezieht. Zur Nutzung der kostenlosen Umweltwärme benötigen\n die meist in neueren Gebäuden verbauten Geräte lediglich einen kleinen Stromanteil zum Betrieb der\n Pumpe.\n

\n
\n
\n

Nachtspeicherheizung

\n

\n Bei einer Nachspeicherheizung wird der elektrische Strom für die Wärme in den günstigeren\n Nachtstunden erzeugt und tagsüber für die Beheizung der Wohnung genutzt. Dieser Heiztyp findet sich\n häufig in älteren Gebäuden.\n

\n
\n
\n

Eintarifzähler oder Zweitarifzähler?

\n

\n Ein Eintarifzähler ist ein Stromzähler, der nur über ein einzelnes Zählwerk verfügt. Bei einem\n Zweitarif- oder Doppelzähler wird der Stromverbrauch hingegen über zwei separate Zählwerke erfasst.\n Unterschieden wird zwischen HT (Hochtarifzeit) und NT (Niedrigtarifzeit).\n

\n
\n
\n

Gemeinsame Messung

\n

\n Ihr allgemeiner Haushaltsstrom und der Strombedarf für die elektronische Heizung werden gemeinsam,\n über einen Zähler gemessen.\n

\n
\n
\n

Getrennte Erfassung

\n

\n Ihr allgemeiner Haushaltsstrom und der Strombedarf für die elektronische Heizung werden getrennt\n voneinander, über einen separaten Zähler gemessen. In diesem Fall verfügen Sie über einen separaten\n Zähler für Ihren Haushaltsstrom.\n

\n
\n this.handleCloseClick()}\n >\n \n \n
\n ) : null}\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Event, EventEmitter, Prop } from '@stencil/core';\n\nenum HeatingTypes {\n warmPumpSingle = 1,\n warmPumpDouble = 2,\n nightStorageSingle = 3,\n nightStorageDouble = 3,\n}\n\nenum ReadingMethods {\n separated = 1,\n sum = 2,\n}\n\n@Component({\n tag: 'lqt-tariff-calculator-heat-input-group',\n styleUrl: 'lqt-tariff-calculator-heat-input-group.css',\n})\nexport class LqtTariffCalculatorHeatInputGroup {\n private static ntUsageRequiredTypes: Array = [\n HeatingTypes.warmPumpDouble,\n HeatingTypes.nightStorageDouble,\n ];\n\n @Prop() dirty = false;\n\n @State() htUsage = 2000;\n @State() htDirty = false;\n @State() ntUsage: number;\n @State() ntDirty = false;\n @State() showNt = false;\n\n @State() type: '' | HeatingTypes = '';\n @State() readingType: '' | ReadingMethods = '';\n\n @Event() valueChange: EventEmitter;\n\n connectedCallback() {\n this.valueChange.emit(this.getUsage());\n }\n\n handleHtChange(event) {\n this.htUsage = +event.target.value;\n this.htDirty = true;\n this.valueChange.emit(this.getUsage());\n }\n\n handleNtChange(event) {\n this.ntUsage = +event.target.value;\n this.ntDirty = true;\n this.valueChange.emit(this.getUsage());\n }\n\n handleTypeChange(event) {\n this.type = event.target.value === '' ? '' : (+event.target.value as HeatingTypes);\n this.showNt = LqtTariffCalculatorHeatInputGroup.ntUsageRequiredTypes.includes(this.type);\n this.valueChange.emit(this.getUsage());\n }\n\n handleReadingTypeChange(event) {\n this.ntDirty = true;\n this.readingType = event.target.value === '' ? '' : (+event.target.value as ReadingMethods);\n this.valueChange.emit(this.getUsage());\n }\n\n private getUsage(): number {\n if (LqtTariffCalculatorHeatInputGroup.ntUsageRequiredTypes.includes(this.type) && Number.isNaN(this.ntUsage)) {\n return null;\n }\n if (!this.showNt) {\n return this.htUsage;\n }\n return this.htUsage + (!!this.ntUsage ? this.ntUsage : 0);\n }\n\n render() {\n return (\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n this.handleReadingTypeChange(e)}\n class={this.type === '' ? 'is-invalid' : 'is-valid'}\n >\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n this.handleHtChange(e)}\n />\n \n
\n
\n {(this.htDirty || this.dirty) && !this.htUsage ? (\n

Bitte wählen Sie Ihren Verbrauch.

\n ) : null}\n
\n
\n {!this.showNt ? null : (\n
\n \n \n
\n
\n this.handleNtChange(e)}\n />\n \n
\n
\n {(this.ntDirty || this.dirty) && Number.isNaN(this.ntUsage) ? (\n

Bitte wählen Sie Ihren Verbrauch.

\n ) : null}\n
\n
\n )}\n \n
\n );\n }\n}\n","import { Address } from '../interfaces/address.interface';\n\nexport class PromocodeService {\n static singletonInstace: PromocodeService;\n\n static getInstance(apiUrl: string): PromocodeService {\n if (PromocodeService.singletonInstace) {\n return PromocodeService.singletonInstace;\n }\n PromocodeService.singletonInstace = new PromocodeService(apiUrl);\n return PromocodeService.singletonInstace;\n }\n\n private constructor(private apiUrl: string) {}\n\n async validate(promocode: string, products: string[]): Promise {\n const url = new URL('/api/v2/promocode/check', this.apiUrl);\n const response = await fetch(url.toString(), {\n method: 'POST',\n headers: {\n 'accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n code: promocode || '',\n products: products || [],\n }),\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const body = await response.json();\n return body.results;\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Prop, Event, EventEmitter } from '@stencil/core';\nimport { PromocodeService } from '../../../../services/promocode.service';\n\n@Component({\n tag: 'lqt-tariff-calculator-promocode-input',\n styleUrl: 'lqt-tariff-calculator-promocode-input.css',\n})\nexport class LqtTariffCalculatorPromocodeInput {\n /**\n * Service url to validate promocodes\n */\n @Prop() bffUrl: string;\n /**\n * Promocode product power\n */\n @Prop() promocodeProductPower = '';\n /**\n * Promocode product gas\n */\n @Prop() promocodeProductGas = '';\n /**\n * Promocode apply text\n */\n @Prop() promocodeApplyText: string = 'Promocode anwenden';\n /**\n * Promocode remove text\n */\n @Prop() promocodeRemoveText: string = 'Promocode entfernen';\n /**\n * Promocode validating text\n */\n @Prop() promocodeValidatingText: string = 'Promocode prüfen';\n /**\n * Promocode invalid text\n */\n @Prop() promocodeInvalidText: string =\n 'Der eingegebene Promocode existiert nicht. Bitte gib einen gültigen Promocode ein oder entferne den ungültigen Promocode.';\n /**\n * Promocode valid text\n */\n @Prop() promocodeValidText: string = 'Promocode erfolgreich hinzugefügt';\n /**\n * Promocode input placeholder\n */\n @Prop() promocodePlaceholder = 'Du hast einen Promocode?';\n /**\n * Emits the promocode if valid - empty string if invalid.\n */\n @Event() promocodeUpdate: EventEmitter;\n\n @State() promocodeInputValue: string = '';\n @State() _interalState: InternalState = 'EMPTY';\n\n promocodeInputElement!: HTMLInputElement;\n\n async transitionInteralState(_interalState: InternalState) {\n this._interalState = _interalState;\n this.promocodeUpdate.emit(_interalState === 'VALID' ? this.promocodeInputValue : '');\n // INFO: Run side-effects only from here pls...\n switch (_interalState) {\n case 'EMPTY':\n await this.runEmptyStateEffects();\n break;\n case 'DIRTY':\n await this.runDirtyStateEffects();\n break;\n case 'VALIDATING':\n await this.runValidatingStateEffects();\n break;\n case 'VALID':\n break;\n case 'INVALID':\n break;\n }\n }\n\n async runEmptyStateEffects() {\n if (this.promocodeInputValue !== '') {\n this.promocodeInputValue = '';\n }\n }\n\n async runDirtyStateEffects() {\n if (this.promocodeInputValue !== this.promocodeInputElement?.value) {\n this.promocodeInputValue = this.promocodeInputElement?.value;\n }\n }\n\n async runValidatingStateEffects() {\n const promocodeProducts = [];\n if (this.promocodeProductPower && this.promocodeProductPower !== '')\n promocodeProducts.push(this.promocodeProductPower);\n if (this.promocodeProductGas && this.promocodeProductGas !== '') promocodeProducts.push(this.promocodeProductGas);\n try {\n await PromocodeService.getInstance(this.bffUrl).validate(this.promocodeInputValue, promocodeProducts);\n await this.transitionInteralState('VALID');\n } catch (error) {\n await this.transitionInteralState('INVALID');\n }\n }\n\n async tryApplyOrRemovePromocode(event) {\n event.preventDefault();\n if (this._interalState === 'EMPTY') return;\n if (this._interalState === 'VALID' || this._interalState === 'INVALID') {\n await this.transitionInteralState('EMPTY');\n return;\n }\n await this.transitionInteralState('VALIDATING');\n }\n\n async handleChange(event) {\n if (event.target.value === '') {\n await this.transitionInteralState('EMPTY');\n } else {\n await this.transitionInteralState('DIRTY');\n }\n }\n\n render() {\n return (\n \n
\n
\n
\n
\n
\n this.handleChange(event)}\n placeholder={this.promocodePlaceholder}\n autocomplete=\"off\"\n class=\"c-text-input__input\"\n ref={el => (this.promocodeInputElement = el as HTMLInputElement)}\n disabled={this._interalState === 'VALIDATING' || this._interalState === 'VALID'}\n />\n
\n
\n {this._interalState === 'INVALID' && (\n

{this.promocodeInvalidText}

\n )}\n {this._interalState === 'VALID' && (\n

{this.promocodeValidText}

\n )}\n
\n
\n
\n \n {this._interalState === 'VALIDATING' ? (\n {this.promocodeValidatingText}\n ) : this._interalState === 'VALID' || this._interalState === 'INVALID' ? (\n {this.promocodeRemoveText}\n ) : (\n {this.promocodeApplyText}\n )}\n \n
\n
\n
\n );\n }\n}\n\ntype InternalState = 'EMPTY' | 'DIRTY' | 'VALIDATING' | 'VALID' | 'INVALID';\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\nimport { CategoryEnum } from '../../../../enum/category.enum';\n\n@Component({\n tag: 'lqt-tariff-calculator-solar-power',\n styleUrl: 'lqt-tariff-calculator-solar-power.css',\n})\nexport class LqtTariffCalculatorSolarPower {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() usageDefaults = '1200,2000,3100,3800';\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n\n render() {\n return (\n \n

Finden Sie Ihren passenden Solarstromtarif

\n \n
\n );\n }\n}\n","import { Address } from '../interfaces/address.interface';\n\nexport class PostCdService {\n static singletonInstace: PostCdService;\n\n static getInstance(apiUrl: string): PostCdService {\n if (PostCdService.singletonInstace) {\n return PostCdService.singletonInstace;\n }\n PostCdService.singletonInstace = new PostCdService(apiUrl);\n return PostCdService.singletonInstace;\n }\n\n private constructor(private apiUrl: string) {}\n\n async loadAddressesByZipCode(zipCode: string): Promise {\n const url = new URL('/api/v1/Addresses/postcdLookupByPostCode', this.apiUrl);\n url.searchParams.set('postCode', zipCode);\n const response = await fetch(url.toString());\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const body = await response.json();\n return body.results;\n }\n\n async loadAddressesByStreet(street: string, zipcode: string, city: string): Promise {\n const url = new URL('/api/v1/Addresses/postcdLookupByStreet', this.apiUrl);\n url.searchParams.set('streetName', street);\n url.searchParams.set('postCode', zipcode);\n url.searchParams.set('city', city);\n const response = await fetch(url.toString());\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const body = await response.json();\n return body.results;\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop, State, EventEmitter, Event, Watch } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { PostCdService } from '../../../../services/post-cd.service';\n\n@Component({\n tag: 'lqt-tariff-calculator-street-input',\n styleUrl: 'lqt-tariff-calculator-street-input.css',\n})\nexport class LqtTariffCalculatorStreetInput {\n /**\n * Service url to retreive address data\n */\n @Prop() bffUrl: string;\n /**\n * Initial zipcode\n */\n @Prop() zipcode: string;\n /**\n * Initial city\n */\n @Prop() city: string;\n /**\n * Force to show errors\n */\n @Prop() dirty = false;\n /**\n * Input label\n */\n @Prop() label = 'Straße';\n /**\n * Input placeholder\n */\n @Prop() placeholder = 'Musterstr.';\n\n @State() street: string;\n @State() addresses: Address[];\n\n @Event() streetSelect: EventEmitter
;\n\n @Watch('zipcode')\n @Watch('city')\n onAddressChange() {\n this.street = '';\n }\n\n async handleStreetChange(event) {\n delete this.street;\n const street = event.target.value;\n this.dirty = true;\n if (street.length < 1 || !this.zipcode || !this.city) {\n this.addresses = [];\n return;\n }\n this.addresses = await PostCdService.getInstance(this.bffUrl).loadAddressesByStreet(\n street,\n this.zipcode,\n this.city,\n );\n }\n\n onClickStreetAutocomplete(address: Address) {\n this.addresses = [];\n this.street = address.streetName;\n this.streetSelect.emit(address);\n }\n\n render() {\n return (\n \n
\n \n
\n
\n this.handleStreetChange(e)}\n placeholder={this.placeholder}\n autocomplete=\"off\"\n class=\"c-text-input__input\"\n />\n
\n
    \n {this.addresses?.map(address => (\n
  • this.onClickStreetAutocomplete(address)}>\n {address.streetName}\n
  • \n ))}\n
\n
\n {this.dirty && !this.street ?

Bitte wählen Sie eine Straße.

: null}\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Prop, EventEmitter, Event, Watch } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\n\n@Component({\n tag: 'lqt-tariff-calculator-streetnumber-input',\n styleUrl: 'lqt-tariff-calculator-streetnumber-input.css',\n})\nexport class LqtTariffCalculatorStreetnumberInput {\n /**\n * Current zipcode used to emit complete data with streetnumberSelect\n */\n @Prop() zipcode: string;\n /**\n * Current city used to emit complete data with streetnumberSelect\n */\n @Prop() city: string;\n /**\n * Current street used to emit complete data with streetnumberSelect\n */\n @Prop() street: string;\n /**\n * Force to show errors\n */\n @Prop() dirty = false;\n /**\n * Input label\n */\n @Prop() label = 'Hausnr.';\n /**\n * Input placeholder\n */\n @Prop() placeholder = '1b';\n\n @State() streetNumber: string;\n\n /**\n * Emits the entered address on change\n */\n @Event() streetnumberSelect: EventEmitter
;\n\n @Watch('zipcode')\n @Watch('city')\n @Watch('street')\n onAddressChange() {\n this.streetNumber = '';\n }\n\n handleStreetNumberChange(event) {\n this.dirty = true;\n this.streetNumber = event.target.value;\n this.streetnumberSelect.emit({\n streetNumber: this.streetNumber,\n city: this.city,\n streetName: this.street,\n postCode: this.zipcode,\n });\n }\n\n render() {\n return (\n \n
\n \n
\n
\n this.handleStreetNumberChange(e)}\n placeholder={this.placeholder}\n autocomplete=\"off\"\n class=\"c-text-input__input\"\n />\n
\n
\n {this.dirty && !this.streetNumber ?

Bitte wählen Sie eine Hausnummer.

: null}\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, Prop, Element } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tariff-calculator-tabbed',\n styleUrl: 'lqt-tariff-calculator-tabbed.css',\n})\nexport class LqtTariffCalculatorTabbed {\n @Prop() customerPortalUrl: string;\n @Prop() bffUrl: string;\n @Prop() target: '_self' | '_parent' | '_top' | '_blank' | string = '_self';\n @Prop() oekoPowerDefaults = '1200,2000,3100,3800';\n @Prop() oekoGasUsageDefaults = '5000,12000,18000,20000';\n @Prop() chargeCurrentPowerDefaults = '1200,2000,3100,3800';\n @Prop() solarPowerDefaults = '1200,2000,3100,3800';\n\n @Element() host: HTMLElement;\n\n clickTabHeader(e) {\n const headerAnchor: HTMLAnchorElement = e.target;\n\n this.host.querySelectorAll('a[role=\"tab\"]').forEach(header => header.removeAttribute('aria-selected'));\n headerAnchor.setAttribute('aria-selected', 'true');\n this.host.querySelectorAll('section[role=\"tabpanel\"]').forEach(tab => tab.setAttribute('hidden', ''));\n\n const tabId = headerAnchor.getAttribute('id');\n this.host.querySelector(`[aria-labelledby=${tabId}]`).removeAttribute('hidden');\n }\n\n render() {\n return (\n \n
\n \n\n
\n \n
\n\n \n\n \n\n \n\n \n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Prop, EventEmitter, Event } from '@stencil/core';\n\n@Component({\n tag: 'lqt-tariff-calculator-usage-slider-input',\n styleUrl: 'lqt-tariff-calculator-usage-slider-input.css',\n})\nexport class LqtTariffCalculatorUsageSliderInput {\n /**\n * Label for the slider\n */\n @Prop() label = 'Personen im Haushalt';\n /**\n * Label for the number input\n */\n @Prop() usageLabel = 'Verbrauch';\n /**\n * Comma separated list of usage options (integer)\n */\n @Prop() usageDefaults: string;\n /**\n * Force to show errors\n */\n @Prop() dirty = false;\n\n @State() sliderValue: number;\n @State() usage: number;\n\n /**\n * Emits the selected usage value, either selected by slider or number input\n */\n @Event() usageChange: EventEmitter;\n\n private usageOptions: number[];\n private usageMap: { [index: number]: number };\n\n connectedCallback() {\n try {\n this.usageOptions = this.usageDefaults.split(',').map(n => +n);\n this.usageMap = {};\n for (let i in this.usageOptions) {\n this.usageMap[i] = this.usageOptions[i];\n }\n if (this.sliderValue === undefined) {\n this.sliderValue = 0;\n }\n if (this.usage === undefined) {\n this.usage = this.usageOptions[0];\n this.usageChange.emit(this.usage);\n }\n } catch (e) {\n console.error(e);\n console.error(\n `Input error - malformed power-usage-default attribute (${this.usageDefaults}). Please only use a comma-separated list. Example: \"1000,1200,1500\"`,\n );\n }\n }\n\n handleUsageSliderChange(event) {\n this.usage = this.usageMap[event.target.value];\n this.dirty = true;\n this.usageChange.emit(+this.usage);\n }\n\n handleUsageChange(event) {\n this.usage = event.target.value;\n this.dirty = true;\n this.usageChange.emit(+this.usage);\n }\n\n isSelected(index: number | string) {\n const indexUsage = Object.values(this.usageMap).indexOf(this.usage);\n return +index <= indexUsage;\n }\n\n render() {\n return (\n \n
\n
\n
\n \n this.handleUsageSliderChange(e)}\n type=\"range\"\n min=\"0\"\n max={this.usageOptions.length - 1}\n step=\"1\"\n value={this.sliderValue}\n class=\"c-range-slider__input js-range-slider-input js-range-slider-input-0\"\n />\n
    \n {Object.keys(this.usageOptions).map(i => (\n \n \n \n ))}\n
\n
\n

ODER

\n
\n\n
\n
\n \n
\n
\n this.handleUsageChange(e)}\n class=\"c-text-input__input\"\n />\n \n
\n
\n {this.dirty && !this.usage ?

Bitte wählen Sie Ihren Verbrauch.

: null}\n
\n
\n
\n
\n );\n }\n}\n",":host {\n display: block;\n}\n","import { Component, Host, h, State, Prop, Event, EventEmitter } from '@stencil/core';\nimport { Address } from '../../../../interfaces/address.interface';\nimport { PostCdService } from '../../../../services/post-cd.service';\n\n@Component({\n tag: 'lqt-tariff-calculator-zipcode-input',\n styleUrl: 'lqt-tariff-calculator-zipcode-input.css',\n})\nexport class LqtTariffCalculatorZipcodeInput {\n /**\n * Service url to retreive address data\n */\n @Prop() bffUrl: string;\n /**\n * Force to show errors\n */\n @Prop() dirty = false;\n /**\n * Input label\n */\n @Prop() label = 'Postleitzahl, Stadt';\n /**\n * Input placeholder\n */\n @Prop() placeholder = '12345';\n\n @State() addresses: Address[];\n @State() zipcode: string;\n @State() city: string;\n @State() value: string;\n\n /**\n * Emits the selected address\n */\n @Event() zipcodeSelect: EventEmitter
;\n\n zipcodeRegExp = '^([0-9]+)(,( ([a-zA-Z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF\\u1E9E-\\u1E9E-., ]+)?)?)?$';\n\n async handleZipcodeChange(event) {\n this.value = event.target.value;\n delete this.zipcode, this.city;\n const match = this.value.match(new RegExp(this.zipcodeRegExp));\n this.dirty = true;\n if (!match) {\n this.addresses = [];\n return;\n }\n const zipCode = match[1];\n this.addresses = await PostCdService.getInstance(this.bffUrl).loadAddressesByZipCode(zipCode);\n }\n\n onClickZipcodeAutocomplete(address: Address) {\n this.city = address.city;\n this.zipcode = address.postCode;\n this.value = `${this.zipcode}, ${this.city}`;\n this.addresses = [];\n this.zipcodeSelect.emit(address);\n }\n\n render() {\n return (\n \n
\n \n
\n
\n this.handleZipcodeChange(e)}\n placeholder={this.placeholder}\n autocomplete=\"off\"\n class=\"c-text-input__input\"\n pattern={this.zipcodeRegExp}\n />\n
\n
    \n {this.addresses?.map(address => (\n
  • this.onClickZipcodeAutocomplete(address)}>\n \n {address.postCode} {address.city}\n \n
  • \n ))}\n
\n
\n {this.dirty && !this.zipcode ?

Bitte wählen Sie eine Postleitzahl.

: null}\n
\n
\n );\n }\n}\n"],"mappings":"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MS,EAAU,IAAIV,IAAI7T,OAAOC,SAASmK,MACxC,IAAK,MAAMoK,KAAsBjC,GAAkCkC,8BAA+B,CAChG,IAAKF,EAAQD,aAAaI,IAAIF,GAAqB,CACjD,Q,CAEFhC,EAAkB8B,aAAajU,IAAImU,EAAoBD,EAAQD,aAAa3T,IAAI6T,G,CAGlF,OAAOhC,EAAkBtf,U,CAGnBqgB,SACNb,EACAC,EACAC,EACAO,EACAN,EACAC,GAEA,GAAIlgB,KAAKoV,SAAW,QAAS,CAC3BhI,OAAOC,SAASmK,KAAOxX,KAAKghB,qBAC1BlB,EACAC,EACAC,EACAO,EACAN,EACAC,GAEF,M,CAEF9S,OAAO2U,KACL/hB,KAAKghB,qBAAqBlB,EAAOC,EAASC,EAAUO,EAAcN,EAAWC,GAC7ElgB,KAAKoV,O,EAxQFuK,GAAAkC,8BAAgC,CACrC,SACA,QACA,SACA,QACA,SACA,SACA,SACA,QACA,cACA,WACA,eACA,aACA,aACA,SACA,MACA,SACA,SACA,WACA,SACA,cACA,UACA,aACA,UACA,QACA,SACA,QACA,MACA,MACA,wBACA,oBACA,kBACA,QACA,QACA,QACA,UACA,UACA,OACA,OACA,cACA,SACA,aACA,iBACA,YACA,gBACA,eACA,cACA,aACA,aACA,cACA,UACA,YACA,gBACA,kBACA,iBACA,gBACA,gBACA,iBACA,aACA,eACA,mBACA,UACA,UACA,SACA,UACA,SACA,UACA,UACA,SACA,UACA,UACA,mBACA,QACA,QACA,QACA,SACA,SACA,WACA,SACA,KACA,aACA,YACA,UACA,QC/FJ,MAAMG,GAAyB,uB,MCSlBC,GAAmB,M,+FAYV,G,iBAIE,G,oBAIG,uB,sBAIE,uB,YAIwC,Q,wVAgDvC,kB,sBAIQ,M,2BAIJ,G,yBAIF,G,wBAIO,qB,yBAIC,sB,6BAII,mB,0BAKxC,4H,wBAImC,oC,0BAIN,2B,gGAKF,G,eACR,K,CAErBC,aAAazgB,GACXA,EAAE0gB,iBACFniB,KAAKoiB,UAAY,KACjB,IAAIlC,EAAiF,GACrF,GAAIlgB,KAAKqiB,uBAAyBriB,KAAKqiB,wBAA0B,GAC/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"}