{"version":3,"file":"vendors-node_modules_estee_elc-base-theme_src_ContentSpacing_ts-node_modules_estee_elc-servic-0cebfb.d4bc1d3ff6a49bf94fe7.bundle.js","mappings":"4SAIO,MAEMA,EAA4B,CACrCC,QAAS,IACTC,YAAa,KACbC,iBAAkB,MAGTC,EAAcC,GAAgB,CACvCC,KAEGC,KAGH,IAAIC,EAASD,EAAaE,QAAO,CAACC,EAAKC,EAAQC,IAAQ,GAAGF,IAAMJ,EAAKM,KAAOD,KAAU,IAKtF,OAFAH,EAAS,GAAGA,IAASF,EAAKA,EAAKO,OAAS,KAEjC,qBAAqBb,EAAYK,UAAYG,IAAS,C,kJCW1D,MAAMM,EAAkB,CAC3BC,MAAO,UACPC,MAAO,UACPC,UAAW,UACXC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,WAAY,UACZC,UAAW,UACXC,OAAQ,UACRC,KAAM,UACNC,QAAS,UACTC,QAAS,UACTC,cAAe,UACfC,YAAa,UACbC,kBAAmB,iBAAiB,kBACpCC,oBAAqB,iBAAiB,oBACtCC,mBAAoB,iBAAiB,mBACrCC,sBAAuB,iBAAiB,sBACxCC,kBAAmB,iBAAiB,kBACpCC,kBAAmB,uBAAuB,kBAC1CC,oBAAqB,uBAAuB,oBAC5CC,sBAAuB,uBAAuB,sBAC9CC,iBAAkB,oBAAoB,kBACtCC,gBAAiB,qBAAqB,kBACtCC,gBAAiB,sBAAsB,kB,0FChEpC,MAAMC,EAAiB,CAC1BC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,OAAQ,MACRC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,SAAU,Q,oFCVP,MAAMC,EAAsB,CAC/BC,KAAM,CAAEC,MAAO,IAAMC,UAAW,IAChCC,OAAQ,CAAEF,MAAO,IAAMC,UAAW,uBAClCE,MAAO,CAAEH,MAAO,IAAMC,UAAW,sBACjCG,KAAM,CAAEJ,MAAO,IAAMC,UAAW,qBAChCI,SAAU,CAAEL,MAAO,GAAKC,UAAW,yB,iFCbhC,MAAMK,EAAQ,CACjBC,OAAQ,iBACRC,YAAa,eACbC,aAAc,gB,0xBCuBX,SAASC,EAA0BC,GAMtC,OALI,yCACA,wCAAwCA,GAIpCC,IAhCZ,MAiCQ,OAAO,gBAAc,YAIjB,WAAAC,CAAYC,GACRC,MAAMD,GAEN,MAAME,EAAwB,8BACxB,8BAA8BL,GAC9B,KAEAM,EAAwCH,EAAMG,aAC9CH,EAAMG,aACND,EAENE,KAAKC,MAAQ,CACTF,eAER,CAEa,iBAAAG,GAAoB,gCAG7B,MAAMC,EAAoB,uBAEpBC,EAAYD,EAAoBA,EAAkBC,UAAY,KAEpE,IAAKJ,KAAKC,MAAMF,aAAc,CAC1B,IAAIA,EAAe,KAEnB,GAAIK,GAAaA,EAAUC,cACjBD,EAAUC,UAChBN,EAAeK,EAAUE,yBAAyBb,OAC/C,CACH,MAAM,iBAAEc,EAAgB,iBAAEC,EAAgB,gBAAEC,GAAoB,KAEhEV,QAAqBQ,EAAiBG,MAClCF,EAAiBG,QAAQC,iBACzBnB,GAGAgB,GACAA,EAAgBV,EAExB,CACIA,GACAC,KAAKa,SAAS,CACVd,gBAGZ,CACJ,IAEO,MAAAe,GACH,OAAKd,KAAKC,MAAMF,aAIT,gBAACL,EAAA,OAAqBM,KAAKJ,OAA1B,CAAiCG,aAAcC,KAAKC,MAAMF,gBAHvD,IAIf,IA1DOgB,YAAc,YADlB,EA8Df,C,6HCtFO,MAAMC,EAAU,gBAAoB,CAAC,GAU5C,MAAeC,UAAsD,YAArE,kCACI,KAAUC,UAAoB,EAE9B,KAAAC,sBAAqDrC,IACjD,IAAKkB,KAAKJ,MAAMuB,sBACZ,MAAM,IAAIC,MAAM,kEAEhBtC,GACAkB,KAAKJ,MAAMuB,sBAAsBrC,EACrC,CACJ,CAEA,MAAAgC,GACI,OAAKd,KAAKJ,MAAMyB,gBAITrB,KAAKJ,MAAM0B,SAHP,IAIf,E,6YC1BJ,MAAMC,EAAYC,GAAaA,EAElB,EAAN,cAA4B,YAG/B,wBAAOC,CAAkBC,EAAgBC,GACrC,OAAOD,EAAKrG,QAAO,CAACC,EAAKsG,KACrB,OAAID,EAAOE,eAAeD,I,qHACf,IACAtG,G,EADA,CAEH,CAACsG,GAAQD,EAAOC,I,WAIjBtG,E,OAAG,GACX,CAAC,EACR,CAEO,MAAAwF,GACH,MAAM,YAAEgB,EAAcP,EAAQ,KAAEG,EAAI,OAAEC,GAAW3B,KAAKJ,MAGhDd,EAAQgD,EADkB,EAAcL,kBAAkBC,EAAMC,IAGtE,OAAO3B,KAAKJ,MAAMkB,OAAOhC,EAC7B,GAvBG,IAAMiD,EAAN,EAAMA,EACFhB,YAAc,e,gwBCKzB,SAASiB,EAAeC,EAAe,CAAC,EAAGC,EAAe,CAAC,GACvD,OAAOC,KAAKC,UAAUH,KAAUE,KAAKC,UAAUF,EACnD,CAEA,MAAMG,UAAkB,IAGpB,WAAA1C,CAAYC,GACRC,MAAMD,GAENI,KAAKsC,WACT,CAEQ,SAAAA,GACJ,MAAM,aAAEC,EAAY,gBAAEC,EAAe,aAAEC,GAAiBzC,KAAKJ,MAEvD8C,GAAe,UAAiBC,WAAWJ,GAEjD,GAAIG,EAAc,CACd1C,KAAKkB,UAAW,EAChB,MAAM0B,EAASH,EAAaC,EAAcF,GAAmB,CAAC,GAE9DxC,KAAKmB,sBAAsByB,GAAU,CAAEA,UAC3C,CACJ,CAEO,kBAAAC,CAAmBC,GACtB,MAAM,gBAAEN,GAAoBxC,KAAKJ,MAC5BoC,EAAeQ,EAAiBM,EAAUN,kBAC3CxC,KAAKsC,WAEb,CAEa,iBAAApC,GAAoB,O,EAAA,K,EAAA,K,EAAA,YAC7B,MAAM,aAAEqC,EAAY,gBAAEC,EAAe,aAAEC,GAAiBzC,KAAKJ,MAE7D,IAAKI,KAAKkB,SAAU,CAChB,MAAM6B,QAAuB,QAAeR,GAE5C,GAAIQ,EAAgB,CAChB,MAAMH,EAASH,EAAaM,EAAgBP,GAAmB,CAAC,IAChE,UAAiBQ,WAAWD,GAE5B/C,KAAKmB,sBAAsB,CAAEyB,UACjC,CACJ,CACJ,E,yMAAA,EA1CEP,EACKtB,YAAc,YAgDzB,MAAMkC,UAAwB,IAC1B,WAAAtD,CAAYC,GACRC,MAAMD,GACNI,KAAKkB,UAAW,EAChBlB,KAAKmB,sBAAsB,CAAEyB,OAAQhD,EAAM4C,iBAC/C,CAEO,kBAAAK,CAAmBC,GACtB,MAAM,gBAAEN,GAAoBxC,KAAKJ,MAE5BoC,EAAeQ,EAAiBM,EAAUN,kBAC3CxC,KAAKmB,sBAAsBqB,GAAmB,CAAEI,OAAQJ,GAEhE,EAIG,SAASU,EACZX,EACAE,EAAe,MAKf,OAHA,UAAiBU,qBAAqBZ,GAAgB,IAG9C7C,GAAgCE,GACpC,gBAAC,mBACI,EAAGwD,iBAAgBR,OAAQS,KACpBd,EAEI,gBAACF,EAAA,CACGE,eACAC,gBAAiB5C,EAAMgD,OACvBH,eACAtB,sBAAuBiC,EACvB/B,gBAAiBiC,QAAQD,IAEzB,gBAAC3D,EAAA,KAAqBE,KAM9B,gBAACqD,EAAA,CACGT,gBAAiB5C,EAAMgD,OACvBzB,sBAAuBiC,EACvB/B,gBAAiBiC,QAAQD,IAEzB,gBAAC3D,EAAA,KAAqBE,MAM9C,CAEO,SAAS2D,EAAehB,EAAmCE,EAAe,MAE7E,OAAQ/C,IAjIZ,MAkIQ,uBAA6B,YAA7B,kCAGI,KAAA8D,YAAeC,GACJhB,EAAagB,EAAezD,KAAKJ,MAAMgD,QAAU,CAAC,EAC7D,CAEO,MAAA9B,GACH,OACI,gBAAC,mBACI,EAAG8B,OAAQS,KACR,gBAAC,KACG1B,OAAQ0B,GAAqB,CAAC,EAC9B3B,KAAMa,EACNT,YAAa9B,KAAKwD,YAClB1C,OAAS4C,GACL,gBAAChE,EAAA,OAAqBM,KAAKJ,OAA1B,CAAiCgD,OAAQc,QAMlE,GAtBJ,EACW3C,YAAc,iBADzB,EAwBR,C,otBCrIA,SAAe4C,IAA2B,gCACtC,MAAMC,EAAgB,uBAEhBxD,EAAYwD,EAAeA,EAAaxD,UAAY,KAM1D,OAJIA,GAAaA,EAAUC,gBACjBD,EAAUC,WAGbD,CACX,IAEO,SAAeyD,EAAoBC,GAA6B,gCACnE,MAAM1D,QAAkBuD,IAExB,GAAIvD,EACA,OAAOA,EAAUE,yBAAyBwD,GAE9C,MAAM,iBAAEvD,EAAgB,iBAAEC,GAAqB,KAG/C,aAFkBD,EAAiBG,MAAMF,EAAiBG,QAAQC,iBAAkBkD,EAGxF,IAEO,SAAeC,EAAeD,GAA6B,gCAC9D,MAAM1D,QAAkBuD,IAExB,GAAIvD,EACA,OAAOA,EAAU4D,oBAAoBF,GAEzC,MAAM,iBAAEvD,EAAgB,iBAAEC,GAAqB,KAG/C,aAFkBD,EAAiBG,MAAMF,EAAiBG,QAAQsD,WAAYH,EAGlF,IAEO,SAASI,IACZ,MAAM,WACFlB,EAAa,CAACmB,IAAD,GAAmB,oBAChCH,EAAsB,CAACG,GAAgB,MAAI,8BAC3CC,EAAgC,CAACD,IAAD,GAAmB,gBACnD1D,EAAkB,CAAC0D,IAAD,GAAmB,yBACrC7D,EAA2B,CAAC6D,GAAgB,MAAI,mCAChDE,EAAqC,CAACF,IAAD,IACrC,KAEJ,MAAO,CACHnB,aACAL,WAAYqB,EACZb,qBAAsBiB,EACtB3D,kBACA6D,gBAAiBhE,EACjBiE,0BAA2BF,EAEnC,CAIO,MAAMG,EAA4C,CAACC,EAAaC,IAC5D,OACAD,GACAC,E,scChFJ,MAAMC,EAAgB,iBAEvBC,EAAY,8CAES,6BAEnB,wDACuB,sCAGvB,0DACuB,wCAGvBD,uBACS,2BAEL,kEAC6B,8CAG7B,oEAC6B,2CAK5BE,EAAgB,IAAM,sBAChB,EAAAC,EAAA,wHAKbF,aAEA,QAAW,UAAU;;;;YAQdG,EAAgB,IAAM,sBAChB,EAAAD,EAAA,2FAIbF,iBAEA,QAAW,UAAU;uBACJ,EAAAE,EAAA;;;UAMVE,EAAgB,IAAM,sBAChB,EAAAF,EAAA,qHAKbF,aAEA,QAAW,UAAU;;;;UAOdK,EAAgB,IAAM,sBAChB,EAAAH,EAAA,qHAKbF,aAEA,QAAW,UAAU;;;;UAOdM,EAAgB,IAAM,sBAChB,EAAAJ,EAAA,2FAIbF,aAEA,QAAW,UAAU;;;;UAOdO,EAAgB,IAAM,sBAChB,EAAAL,EAAA,wHAKbF,aAEA,QAAW,UAAU;;;;UAOdQ,EAAa,IAAM,sBACb,EAAAN,EAAA,0FAIbF,MAGOS,EAAa,IAAM,sBACb,EAAAP,EAAA,2FAIbF,MAGOU,EAAiB,IAAM,sBACjB,EAAAR,EAAA,wHAKbF,aAEA,QAAW,UAAU;;UAKdW,EAAiB,IAAM,sBACjB,EAAAT,EAAA,uHAKbF,MAGOY,EAAiB,IAAM,sBACjB,EAAAV,EAAA,sHAKbF,MAGOa,EAAe,IAAM,sBACf,EAAAX,EAAA,0FAIbF,MAGOc,EAAgB,IAAM,sBAChB,EAAAZ,EAAA,wHAKbF,K,iWC1JN,MAAMe,EAAU,CAACC,EAAahG,IAC1B,GAAGgG,KAAOhG,EAAMiG,SAAWjG,EAAMiG,SAAS9G,UAAY,sBAClDa,EAAMkG,UAAY,KAAgB,KACnCC,OAQMC,GANW,cAA4BpG,IAAA,CAChDb,UAAW4G,EAAQ,iBAAkB/F,MACtC;MACG;EAGkB,cAA4BA,IAAA,CAChDb,UAAW4G,EAAQ,iBAAkB/F,MACtC;MACG;GAGOqG,EAAW,cAA4BrG,IAAA,CAChDb,UAAW4G,EAAQ,iBAAkB/F,MACtC;MACG;EAGOsG,EAAW,cAA4BtG,IAAA,CAChDb,UAAW4G,EAAQ,iBAAkB/F,MACtC;MACG;EAGOuG,EAAW,cAA4BvG,IAAA,CAChDb,UAAW4G,EAAQ,iBAAkB/F,MACtC;MACG;EAGOwG,EAAW,cAA4BxG,IAAA,CAChDb,UAAW4G,EAAQ,iBAAkB/F,MACtC;MACG;EAGOyG,EAAQ,aAA2BzG,IAAA,CAC5Cb,UAAW4G,EAAQ,cAAe/F,MACnC;MACG;EAGO0G,EAAQ,aAA2B1G,IAAA,CAC5Cb,UAAW4G,EAAQ,cAAe/F,MACnC;MACG;EAGO2G,EAAY,aAA2B3G,IAAA,CAChDb,UAAW4G,EAAQ,kBAAmB/F,MACvC;MACG;EAGO4G,EAAY,aAA2B5G,IAAA,CAChDb,UAAW4G,EAAQ,kBAAmB/F,MACvC;MACG;EAGO6G,EAAY,aAA2B7G,IAAA,CAChDb,UAAW4G,EAAQ,kBAAmB/F,MACvC;MACG;EAGO8G,EAAU,aAA2B9G,IAAA,CAC9Cb,UAAW4G,EAAQ,cAAe/F,MACnC;MACG;EAGkB,aAA2BA,IAAA,CAC/Cb,UAAW4G,EAAQ,eAAgB/F,MACpC;MACG","sources":["webpack://elc-service-prodcat/./node_modules/@estee/elc-base-theme/src/Breakpoints.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-base-theme/src/Colors.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-base-theme/src/ContentSpacing.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-base-theme/src/Emphasis.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-base-theme/src/Fonts.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-service/src/decorators/TranslateDecorator.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-service/src/decorators/context/Context.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-service/src/decorators/context/ContextMerger.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-service/src/decorators/context/addConfig.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-service/src/decorators/context/utils.tsx","webpack://elc-service-prodcat/./node_modules/@estee/elc-typography/src/theme/default-theme.ts","webpack://elc-service-prodcat/./node_modules/@estee/elc-typography/src/views/Typography.tsx"],"sourcesContent":["export interface IBreakpoints {\n    [key: string]: number;\n}\n\nexport const layoutPageContentWidth: number = 1260;\n\nexport const Breakpoints: IBreakpoints = {\n    desktop: 768,\n    largeScreen: 1024,\n    extraLargeScreen: 1200\n};\n\nexport const breakpoint = (brp: string) => (\n    code: TemplateStringsArray,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...placeholders: any[]\n) => {\n    // interleave the code with the placeholders\n    let result = placeholders.reduce((acc, holder, idx) => `${acc}${code[idx]}${holder}`, '');\n\n    // add the code literal\n    result = `${result}${code[code.length - 1]}`;\n\n    return `@media(min-width: ${Breakpoints[brp]}px) {${result}}`;\n};\n","import { Emphasis } from './Emphasis';\n\nexport interface IColors {\n    black: string;\n    white: string;\n    whiteDove: string;\n    primary900: string;\n    primary800: string;\n    primary700: string;\n    primary600: string;\n    primary500: string;\n    primary400: string;\n    primary300: string;\n    primary200: string;\n    primary100: string;\n    primary50: string;\n    danger: string;\n    info: string;\n    success: string;\n    warning: string;\n    unvisitedLink: string;\n    visitedLink: string;\n    blackHighEmphasis: string;\n    blackMediumEmphasis: string;\n    blackLightEmphasis: string;\n    blackDisabledEmphasis: string;\n    whiteHighEmphasis: string;\n    whiteMediumEmphasis: string;\n    whiteDisabledEmphasis: string;\n    redLightEmphasis: string;\n\n    [key: string]: string;\n}\n\nexport const Colors: IColors = {\n    black: '#000000',\n    white: '#FFFFFF',\n    whiteDove: '#FBFBFB',\n    primary900: '#212121',\n    primary800: '#424242',\n    primary700: '#616161',\n    primary600: '#757575',\n    primary500: '#9E9E9E',\n    primary400: '#BDBDBD',\n    primary300: '#E0E0E0',\n    primary200: '#EEEEEE',\n    primary100: '#F5F5F5',\n    primary50: '#FAFAFA',\n    danger: '#B00020',\n    info: '#54A6D7',\n    success: '#70B000',\n    warning: '#EE9F57',\n    unvisitedLink: '#0000EE',\n    visitedLink: '#551A8B',\n    blackHighEmphasis: `rgba(0, 0, 0, ${Emphasis.high.value})`,\n    blackMediumEmphasis: `rgba(0, 0, 0, ${Emphasis.medium.value})`,\n    blackLightEmphasis: `rgba(0, 0, 0, ${Emphasis.light.value})`,\n    blackDisabledEmphasis: `rgba(0, 0, 0, ${Emphasis.disabled.value})`,\n    blackPaleEmphasis: `rgba(0, 0, 0, ${Emphasis.pale.value})`,\n    whiteHighEmphasis: `rgba(255, 255, 255, ${Emphasis.high.value})`,\n    whiteMediumEmphasis: `rgba(255, 255, 255, ${Emphasis.medium.value})`,\n    whiteDisabledEmphasis: `rgba(255, 255, 255, ${Emphasis.disabled.value})`,\n    redLightEmphasis: `rgba(176, 0, 32, ${Emphasis.pale.value})`,\n    successEmphasis: `rgba(112, 176, 0, ${Emphasis.pale.value})`,\n    warningEmphasis: `rgba(238, 159, 87, ${Emphasis.pale.value})`\n};\n","export const ContentSpacing = {\n    space2: '2px',\n    space4: '4px',\n    space6: '6px',\n    space8: '8px',\n    space10: '10px',\n    space12: '12px',\n    space16: '16px',\n    space20: '20px',\n    space24: '24px',\n    space28: '28px',\n    space32: '32px',\n    space36: '36px',\n    space40: '40px',\n    space44: '44px',\n    space48: '48px',\n    space60: '60px',\n    space80: '80px',\n    space100: '100px'\n};\n","export interface IEmphasisProps {\n    [key: string]: number | string;\n}\n\nexport interface IEmphasis {\n    [key: string]: IEmphasisProps;\n}\n\nexport const Emphasis: IEmphasis = {\n    high: { value: 0.88, className: '' }, // No className because it has emphasis High by default\n    medium: { value: 0.64, className: 'elc-medium-emphasis' },\n    light: { value: 0.12, className: 'elc-light-emphasis' },\n    pale: { value: 0.02, className: 'elc-pale-emphasis' },\n    disabled: { value: 0.4, className: 'elc-disabled-emphasis' }\n};\n","export const Fonts = {\n    roboto: 'Roboto Regular',\n    robotoLight: 'Roboto Light',\n    robotoMedium: 'Roboto Medium'\n};\n","import * as React from 'react';\nimport { root } from '@estee/elc-universal-utils';\n\nexport interface IState {\n    translations: object;\n}\n\nexport interface ITranslationUrl {\n    url: string;\n    title: string;\n    options: { absolute: boolean; new_window: boolean };\n}\n\nexport interface IProps {\n    translations: { [k: string]: string };\n}\n\nexport interface ITranslationsCollection {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\nexport interface ITranslationsCollections {\n    [key: string]: ITranslationsCollection;\n}\n\nexport function translate<ComponentProps>(translationFields: string[]) {\n    if (root.registerTranslationFieldsToPreload) {\n        root.registerTranslationFieldsToPreload(translationFields);\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (WrappedComponent: any): any => {\n        return class extends React.Component<ComponentProps, IState> {\n            static displayName = 'translate';\n            // @ts-ignore\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            constructor(props: any) {\n                super(props);\n\n                const translationsFromCache = root.getPreloadedTranslations\n                    ? root.getPreloadedTranslations(translationFields)\n                    : null;\n\n                const translations: ITranslationsCollection = props.translations\n                    ? props.translations\n                    : translationsFromCache;\n\n                this.state = {\n                    translations\n                };\n            }\n\n            public async componentDidMount() {\n                // @ts-ignore\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                const componentRenderer = root.ComponentRenderer as any;\n                // App could not be using component renderer\n                const preloader = componentRenderer ? componentRenderer.preloader : null;\n\n                if (!this.state.translations) {\n                    let translations = null;\n\n                    if (preloader && preloader.preload) {\n                        await preloader.preload();\n                        translations = preloader.getPreloadedTranslations(translationFields);\n                    } else {\n                        const { GlobalServiceBus, ServiceBusTopics, addTranslations } = root;\n\n                        translations = await GlobalServiceBus.query(\n                            ServiceBusTopics.queries.GET_TRANSLATIONS,\n                            translationFields\n                        );\n\n                        if (addTranslations) {\n                            addTranslations(translations);\n                        }\n                    }\n                    if (translations) {\n                        this.setState({\n                            translations\n                        });\n                    }\n                }\n            }\n\n            public render() {\n                if (!this.state.translations) {\n                    return null;\n                }\n\n                return <WrappedComponent {...this.props} translations={this.state.translations} />;\n            }\n        };\n    };\n}\n\nexport function mockTranslate<ComponentProps>(translationFields: string[]) {\n    const translations: ITranslationsCollection = {};\n\n    translationFields.forEach(field => {\n        translations[field] = field;\n    });\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (WrappedComponent: any): any => {\n        return class extends React.Component<ComponentProps, IState> {\n            public render() {\n                return <WrappedComponent translations={translations} {...this.props} />;\n            }\n        };\n    };\n}\n","import * as React from 'react';\n\nexport type UpdateProviderType<T> = (arg: Partial<T>) => void;\nexport type ContextValueType<T> = T & {\n    updateProvider: UpdateProviderType<T>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = { [key: string]: any };\nexport const Context = React.createContext({} as ContextValueType<AnyObject>);\n\ntype UpdateContextProviderMethod = <T>(value: T) => void;\n\nexport interface IProps<T> {\n    children: React.ReactChild;\n    updateContextProvider: UpdateProviderType<T>;\n    contextHasValue: boolean;\n}\n\nabstract class UpdateContextProvider<V, T extends IProps<V>> extends React.Component<T> {\n    protected hasValue: boolean = false;\n\n    updateContextProvider: UpdateContextProviderMethod = value => {\n        if (!this.props.updateContextProvider) {\n            throw new Error('Need to place a valid context Provider on top of this consumer');\n        }\n        if (value) {\n            this.props.updateContextProvider(value);\n        }\n    };\n\n    render() {\n        if (!this.props.contextHasValue) {\n            return null;\n        }\n\n        return this.props.children;\n    }\n}\n\nexport { UpdateContextProvider };\n","import * as React from 'react';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyObject = { [key: string]: any };\ninterface IProps {\n    object: AnyObject;\n    keys: string[];\n    render(arg: object): JSX.Element;\n    mergeObject?(argA: AnyObject): AnyObject;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst identity = (arg: any) => arg;\n\nexport class ContextMerger extends React.Component<IProps> {\n    static displayName = 'ContextMerger';\n\n    static getKeysFromObject(keys: string[], object: AnyObject) {\n        return keys.reduce((acc, field) => {\n            if (object.hasOwnProperty(field)) {\n                return {\n                    ...acc,\n                    [field]: object[field]\n                };\n            }\n\n            return acc;\n        }, {} as object);\n    }\n\n    public render() {\n        const { mergeObject = identity, keys, object } = this.props;\n\n        const objectWithRequestedKeys = ContextMerger.getKeysFromObject(keys, object);\n        const value = mergeObject(objectWithRequestedKeys);\n\n        return this.props.render(value);\n    }\n}\n","import * as React from 'react';\nimport { ArrayMinOne } from '@estee/elc-universal-utils';\nimport { getRootMethods, IConfig, requestConfigs, shallowMerge, MergeMethod } from './utils';\nimport {\n    Context,\n    ContextValueType,\n    IProps as UpdateContextProvideProps,\n    UpdateContextProvider\n} from './Context';\nimport { ContextMerger } from './ContextMerger';\n\ntype ConfigType = { config: IConfig };\n\ninterface IGetConfigProps extends UpdateContextProvideProps<ConfigType> {\n    configFields: ArrayMinOne<string>;\n    mergeConfigs: MergeMethod<IConfig, IConfig | object>;\n    configFromProps?: IConfig;\n}\n\nfunction areObjectEqual(objA: object = {}, objB: object = {}) {\n    return JSON.stringify(objA) === JSON.stringify(objB);\n}\n\nclass GetConfig extends UpdateContextProvider<ConfigType, IGetConfigProps> {\n    static displayName = 'GetConfig';\n\n    constructor(props: IGetConfigProps) {\n        super(props);\n\n        this.setConfig();\n    }\n\n    private setConfig() {\n        const { configFields, configFromProps, mergeConfigs } = this.props;\n\n        const globalConfig = getRootMethods().getConfigs(configFields);\n\n        if (globalConfig) {\n            this.hasValue = true;\n            const config = mergeConfigs(globalConfig, configFromProps || {});\n\n            this.updateContextProvider(config && { config });\n        }\n    }\n\n    public componentDidUpdate(prevProps: IGetConfigProps) {\n        const { configFromProps } = this.props;\n        if (!areObjectEqual(configFromProps, prevProps.configFromProps)) {\n            this.setConfig();\n        }\n    }\n\n    public async componentDidMount() {\n        const { configFields, configFromProps, mergeConfigs } = this.props;\n\n        if (!this.hasValue) {\n            const configResponse = await requestConfigs(configFields);\n\n            if (configResponse) {\n                const config = mergeConfigs(configResponse, configFromProps || {});\n                getRootMethods().addConfigs(configResponse);\n\n                this.updateContextProvider({ config });\n            }\n        }\n    }\n}\n\ninterface IOnlyLocalConfigType extends UpdateContextProvideProps<ConfigType> {\n    configFromProps?: IConfig;\n}\n\nclass OnlyLocalConfig extends UpdateContextProvider<ConfigType, IOnlyLocalConfigType> {\n    constructor(props: IOnlyLocalConfigType) {\n        super(props);\n        this.hasValue = true;\n        this.updateContextProvider({ config: props.configFromProps });\n    }\n\n    public componentDidUpdate(prevProps: IGetConfigProps) {\n        const { configFromProps } = this.props;\n\n        if (!areObjectEqual(configFromProps, prevProps.configFromProps)) {\n            this.updateContextProvider(configFromProps && { config: configFromProps });\n        }\n    }\n}\n\ntype IAddConfigProps = { config?: IConfig };\nexport function addConfig(\n    configFields: ArrayMinOne<string> | null,\n    mergeConfigs = shallowMerge as MergeMethod<IConfig, IConfig | object>\n) {\n    getRootMethods().registerConfigFields(configFields || []);\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (WrappedComponent: any): any => (props: IAddConfigProps) => (\n        <Context.Consumer>\n            {({ updateProvider, config: configFromContext }: ContextValueType<ConfigType>) => {\n                if (configFields) {\n                    return (\n                        <GetConfig\n                            configFields={configFields}\n                            configFromProps={props.config}\n                            mergeConfigs={mergeConfigs}\n                            updateContextProvider={updateProvider}\n                            contextHasValue={Boolean(configFromContext)}\n                        >\n                            <WrappedComponent {...props} />\n                        </GetConfig>\n                    );\n                }\n\n                return (\n                    <OnlyLocalConfig\n                        configFromProps={props.config}\n                        updateContextProvider={updateProvider}\n                        contextHasValue={Boolean(configFromContext)}\n                    >\n                        <WrappedComponent {...props} />\n                    </OnlyLocalConfig>\n                );\n            }}\n        </Context.Consumer>\n    );\n}\n\nexport function configConsumer(configFields: ArrayMinOne<string>, mergeConfigs = shallowMerge) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    return (WrappedComponent: any): any =>\n        class ConfigConsumer extends React.Component<{ config?: IConfig }> {\n            static displayName = 'configConsumer';\n\n            mergeConfig = (contextConfig: IConfig) => {\n                return mergeConfigs(contextConfig, this.props.config || {});\n            };\n\n            public render() {\n                return (\n                    <Context.Consumer>\n                        {({ config: configFromContext }: ContextValueType<{ config: IConfig }>) => (\n                            <ContextMerger\n                                object={configFromContext || {}}\n                                keys={configFields}\n                                mergeObject={this.mergeConfig}\n                                render={(requestedConfig: IConfig) => (\n                                    <WrappedComponent {...this.props} config={requestedConfig} />\n                                )}\n                            />\n                        )}\n                    </Context.Consumer>\n                );\n            }\n        };\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\nimport { root, ArrayMinOne } from '@estee/elc-universal-utils';\n\ntype TranslationsValuesTypes = string | { [key: string]: ITranslations };\nexport interface ITranslations {\n    [key: string]: TranslationsValuesTypes;\n}\n\nexport interface IConfig {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\nexport interface IComponentRenderer {\n    preloader: {\n        preload(): Promise<void>;\n        getPreloadedTranslations(fields?: string[]): ITranslations | null;\n        getPreloadedConfigs(fields?: string[]): IConfig | null;\n    };\n}\n\nasync function preloadComponentRenderer() {\n    const compRenderer = (root.ComponentRenderer as unknown) as IComponentRenderer;\n    // App could not be using component renderer\n    const preloader = compRenderer ? compRenderer.preloader : null;\n\n    if (preloader && preloader.preload) {\n        await preloader.preload();\n    }\n\n    return preloader;\n}\n\nexport async function requestTranslations(fields: ArrayMinOne<string>) {\n    const preloader = await preloadComponentRenderer();\n\n    if (preloader) {\n        return preloader.getPreloadedTranslations(fields);\n    }\n    const { GlobalServiceBus, ServiceBusTopics } = root;\n    const res = await GlobalServiceBus.query(ServiceBusTopics.queries.GET_TRANSLATIONS, fields);\n\n    return res;\n}\n\nexport async function requestConfigs(fields: ArrayMinOne<string>) {\n    const preloader = await preloadComponentRenderer();\n\n    if (preloader) {\n        return preloader.getPreloadedConfigs(fields);\n    }\n    const { GlobalServiceBus, ServiceBusTopics } = root;\n    const res = await GlobalServiceBus.query(ServiceBusTopics.queries.GET_CONFIG, fields);\n\n    return res;\n}\n\nexport function getRootMethods() {\n    const {\n        addConfigs = (_: string[]) => {},\n        getPreloadedConfigs = (_: string[]) => null,\n        registerConfigFieldsToPreload = (_: string[]) => {},\n        addTranslations = (_: string[]) => {},\n        getPreloadedTranslations = (_: string[]) => null,\n        registerTranslationFieldsToPreload = (_: string[]) => {}\n    } = root;\n\n    return {\n        addConfigs,\n        getConfigs: getPreloadedConfigs,\n        registerConfigFields: registerConfigFieldsToPreload,\n        addTranslations,\n        getTranslations: getPreloadedTranslations,\n        registerTranslationFields: registerTranslationFieldsToPreload\n    };\n}\n\nexport type MergeMethod<T, P> = (s: T, p: P) => T extends P ? T : P;\n\nexport const shallowMerge: MergeMethod<object, object> = (stateConfig, propsConfig) => {\n    return {\n        ...stateConfig,\n        ...propsConfig\n    };\n};\n","import { Colors, Fonts, breakpoint, Emphasis } from '@estee/elc-base-theme';\n\nexport const DarkClassName = 'elc-dark-theme';\n\nconst commonCss = `\n    margin: 0;\n    color: rgba(0, 0, 0, ${Emphasis.high.value});\n\n    &.${Emphasis.medium.className} {\n        color: rgba(0, 0, 0, ${Emphasis.medium.value});\n    }\n\n    &.${Emphasis.disabled.className} {\n        color: rgba(0, 0, 0, ${Emphasis.disabled.value});\n    }\n\n    &.${DarkClassName} {\n        color: ${Colors.white};\n\n        &.${Emphasis.medium.className} {\n            color: rgba(255, 255, 255, ${Emphasis.medium.value});\n        }\n\n        &.${Emphasis.disabled.className} {\n            color: rgba(255, 255, 255, ${Emphasis.disabled.value});\n        }\n    }\n`;\n\nexport const heading1Theme = () => `\n    font-family: ${Fonts.robotoLight};\n    font-size: 28px;\n    font-weight: 300;\n    letter-spacing: -0.23px;\n    line-height: 36px;\n    ${commonCss}\n\n    ${breakpoint('desktop')`\n        font-size: 48px;\n        letter-spacing: -0.4px;\n        line-height: 60px;\n    `}\n\n`;\n\nexport const heading2Theme = () => `\n    font-family: ${Fonts.robotoMedium};\n    font-size: 24px;\n    font-weight: 500;\n    line-height: 32px;\n    ${commonCss}\n    \n    ${breakpoint('desktop')`\n        font-family: ${Fonts.roboto};\n        font-size: 36px;\n        font-weight: normal;\n    `}\n`;\n\nexport const heading3Theme = () => `\n    font-family: ${Fonts.roboto};\n    font-size: 20px;\n    font-weight: normal;\n    letter-spacing: 0.15px;\n    line-height: 24px;\n    ${commonCss}\n\n    ${breakpoint('desktop')`\n        font-size: 28px;\n        letter-spacing: 0.21px;\n        line-height: 32px;\n    `}\n`;\n\nexport const heading4Theme = () => `\n    font-family: ${Fonts.roboto};\n    font-size: 18px;\n    font-weight: normal;\n    letter-spacing: 0.16px;\n    line-height: 24px;\n    ${commonCss}\n\n    ${breakpoint('desktop')`\n        font-size: 24px;\n        letter-spacing: 0.21px;\n        line-height: 32px;\n    `}\n`;\n\nexport const heading5Theme = () => `\n    font-family: ${Fonts.roboto};\n    font-size: 16px;\n    letter-spacing: 0.17px;\n    line-height: 20px;\n    ${commonCss}\n\n    ${breakpoint('desktop')`\n        font-size: 20px;\n        letter-spacing: 0.21px;\n        line-height: 24px;\n    `}\n`;\n\nexport const heading6Theme = () => `\n    font-family: ${Fonts.robotoMedium};\n    font-size: 14px;\n    font-weight: 500;\n    letter-spacing: 0.18px;\n    line-height: 20px;\n    ${commonCss}\n\n    ${breakpoint('desktop')`\n        font-size: 18px;\n        letter-spacing: 0.23px;\n        line-height: 24px;\n    `}\n`;\n\nexport const body1Theme = () => `\n    font-family: ${Fonts.roboto};\n    font-size: 16px;\n    letter-spacing: 0.5px;\n    line-height: 28px;\n    ${commonCss}\n`;\n\nexport const body2Theme = () => `\n    font-family: ${Fonts.roboto};\n    font-size: 14px;\n    letter-spacing: 0.25px;\n    line-height: 20px;\n    ${commonCss}\n`;\n\nexport const subtitle1Theme = () => `\n    font-family: ${Fonts.robotoMedium};\n    font-size: 16px;\n    font-weight: 500;\n    letter-spacing: 0.15px;\n    line-height: 16px;\n    ${commonCss}\n\n    ${breakpoint('desktop')`\n        line-height: 20px;\n    `}\n`;\n\nexport const subtitle2Theme = () => `\n    font-family: ${Fonts.robotoMedium};\n    font-size: 14px;\n    font-weight: 500;\n    letter-spacing: 0.1px;\n    line-height: 16px;\n    ${commonCss}\n`;\n\nexport const subtitle3Theme = () => `\n    font-family: ${Fonts.robotoLight};\n    font-size: 14px;\n    letter-spacing: 0.1px;\n    line-height: 16px;\n    font-weight: 500;\n    ${commonCss}\n`;\n\nexport const captionTheme = () => `\n    font-family: ${Fonts.roboto};\n    font-size: 12px;\n    letter-spacing: 0.4px;\n    line-height: 16px;\n    ${commonCss}\n`;\n\nexport const overlineTheme = () => `\n    font-family: ${Fonts.robotoMedium};\n    font-size: 10px;\n    font-weight: 500;\n    letter-spacing: 1.67px;\n    line-height: 16px;\n    ${commonCss}\n`;\n","import styled from 'styled-components';\nimport {\n    heading1Theme,\n    heading2Theme,\n    heading3Theme,\n    heading4Theme,\n    heading5Theme,\n    heading6Theme,\n    body1Theme,\n    body2Theme,\n    subtitle1Theme,\n    subtitle2Theme,\n    subtitle3Theme,\n    captionTheme,\n    overlineTheme,\n    DarkClassName\n} from '../theme/default-theme';\nimport { Emphasis, IEmphasisProps } from '@estee/elc-base-theme';\n\nexport interface ITextProps {\n    emphasis?: IEmphasisProps;\n    darkTheme?: boolean;\n    htmlFor?: string;\n}\n\nconst classes = (cls: string, props: ITextProps) =>\n    `${cls} ${props.emphasis ? props.emphasis.className : Emphasis.high.className} ${\n        props.darkTheme ? DarkClassName : ''\n    }`.trim();\n\nexport const Heading1 = styled.h1.attrs<ITextProps>(props => ({\n    className: classes('elc-heading--1', props)\n}))<ITextProps>`\n    ${heading1Theme};\n`;\n\nexport const Heading2 = styled.h2.attrs<ITextProps>(props => ({\n    className: classes('elc-heading--2', props)\n}))<ITextProps>`\n    ${heading2Theme};\n`;\n\nexport const Heading3 = styled.h3.attrs<ITextProps>(props => ({\n    className: classes('elc-heading--3', props)\n}))<ITextProps>`\n    ${heading3Theme};\n`;\n\nexport const Heading4 = styled.h4.attrs<ITextProps>(props => ({\n    className: classes('elc-heading--4', props)\n}))<ITextProps>`\n    ${heading4Theme};\n`;\n\nexport const Heading5 = styled.h5.attrs<ITextProps>(props => ({\n    className: classes('elc-heading--5', props)\n}))<ITextProps>`\n    ${heading5Theme};\n`;\n\nexport const Heading6 = styled.h6.attrs<ITextProps>(props => ({\n    className: classes('elc-heading--6', props)\n}))<ITextProps>`\n    ${heading6Theme};\n`;\n\nexport const Body1 = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-body--1', props)\n}))<ITextProps>`\n    ${body1Theme};\n`;\n\nexport const Body2 = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-body--2', props)\n}))<ITextProps>`\n    ${body2Theme};\n`;\n\nexport const Subtitle1 = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-subtitle--1', props)\n}))<ITextProps>`\n    ${subtitle1Theme};\n`;\n\nexport const Subtitle2 = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-subtitle--2', props)\n}))<ITextProps>`\n    ${subtitle2Theme};\n`;\n\nexport const Subtitle3 = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-subtitle--3', props)\n}))<ITextProps>`\n    ${subtitle3Theme};\n`;\n\nexport const Caption = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-caption', props)\n}))<ITextProps>`\n    ${captionTheme};\n`;\n\nexport const Overline = styled.p.attrs<ITextProps>(props => ({\n    className: classes('elc-overline', props)\n}))<ITextProps>`\n    ${overlineTheme};\n`;\n"],"names":["Breakpoints","desktop","largeScreen","extraLargeScreen","breakpoint","brp","code","placeholders","result","reduce","acc","holder","idx","length","Colors","black","white","whiteDove","primary900","primary800","primary700","primary600","primary500","primary400","primary300","primary200","primary100","primary50","danger","info","success","warning","unvisitedLink","visitedLink","blackHighEmphasis","blackMediumEmphasis","blackLightEmphasis","blackDisabledEmphasis","blackPaleEmphasis","whiteHighEmphasis","whiteMediumEmphasis","whiteDisabledEmphasis","redLightEmphasis","successEmphasis","warningEmphasis","ContentSpacing","space2","space4","space6","space8","space10","space12","space16","space20","space24","space28","space32","space36","space40","space44","space48","space60","space80","space100","Emphasis","high","value","className","medium","light","pale","disabled","Fonts","roboto","robotoLight","robotoMedium","translate","translationFields","WrappedComponent","constructor","props","super","translationsFromCache","translations","this","state","componentDidMount","componentRenderer","preloader","preload","getPreloadedTranslations","GlobalServiceBus","ServiceBusTopics","addTranslations","query","queries","GET_TRANSLATIONS","setState","render","displayName","Context","UpdateContextProvider","hasValue","updateContextProvider","Error","contextHasValue","children","identity","arg","getKeysFromObject","keys","object","field","hasOwnProperty","mergeObject","ContextMerger","areObjectEqual","objA","objB","JSON","stringify","GetConfig","setConfig","configFields","configFromProps","mergeConfigs","globalConfig","getConfigs","config","componentDidUpdate","prevProps","configResponse","addConfigs","OnlyLocalConfig","addConfig","registerConfigFields","updateProvider","configFromContext","Boolean","configConsumer","mergeConfig","contextConfig","requestedConfig","preloadComponentRenderer","compRenderer","requestTranslations","fields","requestConfigs","getPreloadedConfigs","GET_CONFIG","getRootMethods","_","registerConfigFieldsToPreload","registerTranslationFieldsToPreload","getTranslations","registerTranslationFields","shallowMerge","stateConfig","propsConfig","DarkClassName","commonCss","heading1Theme","F","heading2Theme","heading3Theme","heading4Theme","heading5Theme","heading6Theme","body1Theme","body2Theme","subtitle1Theme","subtitle2Theme","subtitle3Theme","captionTheme","overlineTheme","classes","cls","emphasis","darkTheme","trim","Heading2","Heading3","Heading4","Heading5","Heading6","Body1","Body2","Subtitle1","Subtitle2","Subtitle3","Caption"],"sourceRoot":""}