{"version":3,"file":"8047.c0d4b23d4517c09fd6e8.entry.js","mappings":"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CA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iECnBjC,MAoBA,EApBgB,CACd,CACE9D,GAAI,cACJwB,MAAO,gBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEClBjC,MAsBA,EAtBgB,CACd,CACE9D,GAAI,kBACJwB,MAAO,oBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iECrBjC,MAiGA,EAjGgB,CACd,CACE9D,GAAI,eACJwB,MAAO,iBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,iBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,gBACJwB,MAAO,kBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,gBACJwB,MAAO,kBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEC/FjC,MAmCA,EAnCgB,CACd,CACE9D,GAAI,iBACJwB,MAAO,sBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,iBACJwB,MAAO,sBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iECjCjC,MA6CA,EA7CgB,CACd,CACE9D,GAAI,oBACJwB,MAAO,sBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,oBACJwB,MAAO,sBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEC3CjC,MAmBA,EAnBgB,CACd,CACE9D,GAAI,aACJwB,MAAO,cACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEChBjC,MAsBA,EAtBgB,CACd,CACE9D,GAAI,eACJwB,MAAO,gBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iECpBjC,MAgCA,EAhCgB,CACd,CACE9D,GAAI,eACJwB,MAAO,gBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CAEN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEC9BjC,MAsBA,EAtBgB,CACd,CACE9D,GAAI,0BACJwB,MAAO,oBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iECpBjC,MAoBA,EApBgB,CACd,CACE9D,GAAI,cACJwB,MAAO,gBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEClBjC,MAgCA,EAhCgB,CACd,CACE9D,GAAI,iBACJwB,MAAO,kBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CAEN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,iEC9BjC,MAoBA,EApBgB,CACd,CACE9D,GAAI,cACJwB,MAAO,gBACPE,M,UAAOqC,EAAiBC,SACxB1C,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,aAGJzB,KAAIiE,GAAK,IAAIlD,EAAAA,EAAkBkD,I,8DCpBjC,MA8MA,EA9MgB,CACd,CACE9D,GAAI,oBACJwB,MAAO,oBACPF,OAAQ,CAAC,UAAW,QAAS,YAE/B,CACEtB,GAAI,OACJsB,OAAQ,CAAC,QAAS,SAAU,MAAO,UAErC,CACEtB,GAAI,cACJwB,MAAO,cACPF,OAAQ,CAAC,QAAS,UAEpB,CACEtB,GAAI,cACJwB,MAAO,cACPF,OAAQ,CAAC,QAAS,UAEpB,CACEtB,GAAI,YACJwB,MAAO,aACPF,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,YAEvD,CACEtB,GAAI,YACJwB,MAAO,YACPiB,aAAa,EACbnB,OAAQ,CAAC,UAAW,UAAW,YAEjC,CACEtB,GAAI,SACJsB,OAAQ,CAAC,UAAW,UAAW,YAEjC,CACEtB,GAAI,UACJsB,OAAQ,CAAC,UAAW,UAAW,YAEjC,CACEtB,GAAI,UACJsB,OAAQ,CAAC,UAAW,UAAW,YAEjC,CACEtB,GAAI,kBACJwB,MAAO,kBACPiB,aAAa,EACbnB,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,YAEvD,CACEtB,GAAI,oBACJwB,MAAO,oBACPiB,aAAa,EACbnB,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,YAEvD,CACEtB,GAAI,qBACJwB,MAAO,qBACPiB,aAAa,EACbnB,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,YAEvD,CACEtB,GAAI,iBACJwB,MAAO,yBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,iBACJwB,MAAO,yBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,iBACJwB,MAAO,wBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,iBACJwB,MAAO,wBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,uBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,uBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,sBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,sBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,mBACJwB,MAAO,mBACPiB,aAAa,EACbnB,OAAQ,CAAC,UAAW,UAAW,YAEjC,CACEtB,GAAI,2BACJwB,MAAO,0BACPF,OAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,aAElEzB,KAAIiE,GAAK,IAAIvB,EAAAA,EAAiBuB,I,iEC5MhC,MA2fA,EA3fgB,CACd,CACE9D,GAAI,aACJwB,MAAO,WACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,cACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,eACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,aACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,gBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,iBACPiB,aAAa,EACbnB,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,kBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFmB,aAAa,GAEf,CACEzC,GAAI,eACJwB,MAAO,mBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAEFmB,aAAa,GAEf,CACEzC,GAAI,iBACJwB,MAAO,UACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,cACJwB,MAAO,QACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,SACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,cACJwB,MAAO,QACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,gBACJwB,MAAO,UACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,gBACJwB,MAAO,UACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,OACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,gBACJwB,MAAO,UACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,gBACJwB,MAAO,UACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,cACJwB,MAAO,QACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,OACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,OACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,yBACJwB,MAAO,aACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,aACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,cACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,aACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,aACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,eACJwB,MAAO,oBACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,cACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAGJ,CACEtB,GAAI,aACJwB,MAAO,aACPF,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YA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","sources":["webpack://superset/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://superset/./packages/superset-ui-core/src/color/CategoricalScheme.ts","webpack://superset/./packages/superset-ui-core/src/color/CategoricalSchemeRegistrySingleton.ts","webpack://superset/./packages/superset-ui-core/src/color/ColorScheme.ts","webpack://superset/./packages/superset-ui-core/src/color/ColorSchemeRegistry.ts","webpack://superset/./packages/superset-ui-core/src/color/SequentialScheme.ts","webpack://superset/./packages/superset-ui-core/src/color/SequentialSchemeRegistrySingleton.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/airbnb.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/blueToGreen.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/colorsOfRainbow.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/d3.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/echarts.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/google.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/lyft.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/modernSunset.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/preset.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/presetAndSuperset.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/redToYellow.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/superset.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/categorical/wavesOfBlue.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/sequential/common.ts","webpack://superset/./packages/superset-ui-core/src/color/colorSchemes/sequential/d3.ts","webpack://superset/./packages/superset-ui-core/src/color/types.ts","webpack://superset/./packages/superset-ui-core/src/connection/SupersetClient.ts","webpack://superset/./packages/superset-ui-core/src/connection/SupersetClientClass.ts","webpack://superset/./packages/superset-ui-core/src/connection/callApi/rejectAfterTimeout.ts","webpack://superset/./packages/superset-ui-core/src/connection/callApi/parseResponse.ts","webpack://superset/./packages/superset-ui-core/src/connection/callApi/callApiAndParseWithTimeout.ts","webpack://superset/./packages/superset-ui-core/src/connection/callApi/callApi.ts","webpack://superset/./packages/superset-ui-core/src/connection/constants.ts","webpack://superset/./packages/superset-ui-core/src/models/ExtensibleFunction.ts","webpack://superset/./packages/superset-ui-core/src/models/Registry.ts","webpack://superset/./packages/superset-ui-core/src/models/RegistryWithDefaultKey.ts","webpack://superset/./packages/superset-ui-core/src/number-format/D3FormatConfig.ts","webpack://superset/./packages/superset-ui-core/src/number-format/NumberFormats.ts","webpack://superset/./packages/superset-ui-core/src/number-format/NumberFormatter.ts","webpack://superset/./packages/superset-ui-core/src/number-format/NumberFormatterRegistry.ts","webpack://superset/./packages/superset-ui-core/src/number-format/NumberFormatterRegistrySingleton.ts","webpack://superset/./packages/superset-ui-core/src/number-format/factories/createD3NumberFormatter.ts","webpack://superset/./packages/superset-ui-core/src/number-format/factories/createDurationFormatter.ts","webpack://superset/./packages/superset-ui-core/src/number-format/factories/createSmartNumberFormatter.ts","webpack://superset/./packages/superset-ui-core/src/query/api/v1/handleError.ts","webpack://superset/./packages/superset-ui-core/src/query/api/v1/makeApi.ts","webpack://superset/./packages/superset-ui-core/src/query/api/v1/types.ts","webpack://superset/./packages/superset-ui-core/src/style/index.tsx","webpack://superset/./packages/superset-ui-core/src/time-format/D3FormatConfig.ts","webpack://superset/./packages/superset-ui-core/src/time-format/TimeFormats.ts","webpack://superset/./packages/superset-ui-core/src/time-format/TimeFormatter.ts","webpack://superset/./packages/superset-ui-core/src/time-format/utils/stringifyTimeInput.ts","webpack://superset/./packages/superset-ui-core/src/time-format/TimeFormatterRegistry.ts","webpack://superset/./packages/superset-ui-core/src/time-format/TimeFormatsForGranularity.ts","webpack://superset/./packages/superset-ui-core/src/time-format/utils/createTime.ts","webpack://superset/./packages/superset-ui-core/src/time-format/utils/createTimeRangeFromGranularity.ts","webpack://superset/./packages/superset-ui-core/src/time-format/TimeRangeFormatter.ts","webpack://superset/./packages/superset-ui-core/src/time-format/TimeFormatterRegistrySingleton.ts","webpack://superset/./packages/superset-ui-core/src/time-format/factories/createD3TimeFormatter.ts","webpack://superset/./packages/superset-ui-core/src/time-format/factories/createMultiFormatter.ts","webpack://superset/./packages/superset-ui-core/src/time-format/formatters/smartDate.ts","webpack://superset/./packages/superset-ui-core/src/time-format/formatters/smartDateDetailed.ts","webpack://superset/./packages/superset-ui-core/src/time-format/formatters/smartDateVerbose.ts","webpack://superset/./packages/superset-ui-core/src/time-format/types.ts","webpack://superset/./packages/superset-ui-core/src/time-format/utils/d3Time.ts","webpack://superset/./packages/superset-ui-core/src/translation/Translator.ts","webpack://superset/./packages/superset-ui-core/src/translation/TranslatorSingleton.ts","webpack://superset/./packages/superset-ui-core/src/utils/featureFlags.ts","webpack://superset/./packages/superset-ui-core/src/utils/isRequired.ts","webpack://superset/./packages/superset-ui-core/src/utils/logging.ts","webpack://superset/./packages/superset-ui-core/src/utils/makeSingleton.ts","webpack://superset/./src/constants.ts","webpack://superset/./src/setup/setupColors.ts","webpack://superset/./src/preamble.ts","webpack://superset/./src/setup/setupFormatters.ts","webpack://superset/./src/setup/setupClient.ts","webpack://superset/./src/utils/getBootstrapData.ts","webpack://superset/./src/utils/parseCookie.ts"],"sourcesContent":["var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 330867,\n\t\"./ar-dz\": 414130,\n\t\"./ar-dz.js\": 414130,\n\t\"./ar-kw\": 396135,\n\t\"./ar-kw.js\": 396135,\n\t\"./ar-ly\": 556440,\n\t\"./ar-ly.js\": 556440,\n\t\"./ar-ma\": 947702,\n\t\"./ar-ma.js\": 947702,\n\t\"./ar-ps\": 120315,\n\t\"./ar-ps.js\": 120315,\n\t\"./ar-sa\": 116040,\n\t\"./ar-sa.js\": 116040,\n\t\"./ar-tn\": 237100,\n\t\"./ar-tn.js\": 237100,\n\t\"./ar.js\": 330867,\n\t\"./az\": 731083,\n\t\"./az.js\": 731083,\n\t\"./be\": 609808,\n\t\"./be.js\": 609808,\n\t\"./bg\": 168338,\n\t\"./bg.js\": 168338,\n\t\"./bm\": 467438,\n\t\"./bm.js\": 467438,\n\t\"./bn\": 808905,\n\t\"./bn-bd\": 976225,\n\t\"./bn-bd.js\": 976225,\n\t\"./bn.js\": 808905,\n\t\"./bo\": 511560,\n\t\"./bo.js\": 511560,\n\t\"./br\": 301278,\n\t\"./br.js\": 301278,\n\t\"./bs\": 180622,\n\t\"./bs.js\": 180622,\n\t\"./ca\": 702468,\n\t\"./ca.js\": 702468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 450877,\n\t\"./cv.js\": 450877,\n\t\"./cy\": 347373,\n\t\"./cy.js\": 347373,\n\t\"./da\": 224780,\n\t\"./da.js\": 224780,\n\t\"./de\": 459740,\n\t\"./de-at\": 560217,\n\t\"./de-at.js\": 560217,\n\t\"./de-ch\": 260894,\n\t\"./de-ch.js\": 260894,\n\t\"./de.js\": 459740,\n\t\"./dv\": 405300,\n\t\"./dv.js\": 405300,\n\t\"./el\": 250837,\n\t\"./el.js\": 250837,\n\t\"./en-au\": 278348,\n\t\"./en-au.js\": 278348,\n\t\"./en-ca\": 477925,\n\t\"./en-ca.js\": 477925,\n\t\"./en-gb\": 522243,\n\t\"./en-gb.js\": 522243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 947207,\n\t\"./en-il.js\": 947207,\n\t\"./en-in\": 644175,\n\t\"./en-in.js\": 644175,\n\t\"./en-nz\": 476319,\n\t\"./en-nz.js\": 476319,\n\t\"./en-sg\": 331662,\n\t\"./en-sg.js\": 331662,\n\t\"./eo\": 392915,\n\t\"./eo.js\": 392915,\n\t\"./es\": 655655,\n\t\"./es-do\": 155251,\n\t\"./es-do.js\": 155251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 671146,\n\t\"./es-us.js\": 671146,\n\t\"./es.js\": 655655,\n\t\"./et\": 905603,\n\t\"./et.js\": 905603,\n\t\"./eu\": 877763,\n\t\"./eu.js\": 877763,\n\t\"./fa\": 476959,\n\t\"./fa.js\": 476959,\n\t\"./fi\": 911897,\n\t\"./fi.js\": 911897,\n\t\"./fil\": 442549,\n\t\"./fil.js\": 442549,\n\t\"./fo\": 394694,\n\t\"./fo.js\": 394694,\n\t\"./fr\": 394470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 252330,\n\t\"./fr-ch.js\": 252330,\n\t\"./fr.js\": 394470,\n\t\"./fy\": 905044,\n\t\"./fy.js\": 905044,\n\t\"./ga\": 629295,\n\t\"./ga.js\": 629295,\n\t\"./gd\": 802101,\n\t\"./gd.js\": 802101,\n\t\"./gl\": 538794,\n\t\"./gl.js\": 538794,\n\t\"./gom-deva\": 927884,\n\t\"./gom-deva.js\": 927884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 895349,\n\t\"./gu.js\": 895349,\n\t\"./he\": 124206,\n\t\"./he.js\": 124206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 230316,\n\t\"./hr.js\": 230316,\n\t\"./hu\": 822138,\n\t\"./hu.js\": 822138,\n\t\"./hy-am\": 111423,\n\t\"./hy-am.js\": 111423,\n\t\"./id\": 229218,\n\t\"./id.js\": 229218,\n\t\"./is\": 290135,\n\t\"./is.js\": 290135,\n\t\"./it\": 490626,\n\t\"./it-ch\": 610150,\n\t\"./it-ch.js\": 610150,\n\t\"./it.js\": 490626,\n\t\"./ja\": 439183,\n\t\"./ja.js\": 439183,\n\t\"./jv\": 224286,\n\t\"./jv.js\": 224286,\n\t\"./ka\": 512105,\n\t\"./ka.js\": 512105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 318758,\n\t\"./km.js\": 318758,\n\t\"./kn\": 479282,\n\t\"./kn.js\": 479282,\n\t\"./ko\": 433730,\n\t\"./ko.js\": 433730,\n\t\"./ku\": 201408,\n\t\"./ku-kmr\": 990563,\n\t\"./ku-kmr.js\": 990563,\n\t\"./ku.js\": 201408,\n\t\"./ky\": 533291,\n\t\"./ky.js\": 533291,\n\t\"./lb\": 636841,\n\t\"./lb.js\": 636841,\n\t\"./lo\": 655466,\n\t\"./lo.js\": 655466,\n\t\"./lt\": 757010,\n\t\"./lt.js\": 757010,\n\t\"./lv\": 437595,\n\t\"./lv.js\": 437595,\n\t\"./me\": 539861,\n\t\"./me.js\": 539861,\n\t\"./mi\": 835493,\n\t\"./mi.js\": 835493,\n\t\"./mk\": 495966,\n\t\"./mk.js\": 495966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 905115,\n\t\"./mn.js\": 905115,\n\t\"./mr\": 610370,\n\t\"./mr.js\": 610370,\n\t\"./ms\": 509847,\n\t\"./ms-my\": 741237,\n\t\"./ms-my.js\": 741237,\n\t\"./ms.js\": 509847,\n\t\"./mt\": 572126,\n\t\"./mt.js\": 572126,\n\t\"./my\": 856165,\n\t\"./my.js\": 856165,\n\t\"./nb\": 364924,\n\t\"./nb.js\": 364924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 893901,\n\t\"./nl-be\": 659814,\n\t\"./nl-be.js\": 659814,\n\t\"./nl.js\": 893901,\n\t\"./nn\": 383877,\n\t\"./nn.js\": 383877,\n\t\"./oc-lnc\": 792135,\n\t\"./oc-lnc.js\": 792135,\n\t\"./pa-in\": 115858,\n\t\"./pa-in.js\": 115858,\n\t\"./pl\": 764495,\n\t\"./pl.js\": 764495,\n\t\"./pt\": 389520,\n\t\"./pt-br\": 157971,\n\t\"./pt-br.js\": 157971,\n\t\"./pt.js\": 389520,\n\t\"./ro\": 396459,\n\t\"./ro.js\": 396459,\n\t\"./ru\": 321793,\n\t\"./ru.js\": 321793,\n\t\"./sd\": 840950,\n\t\"./sd.js\": 840950,\n\t\"./se\": 310490,\n\t\"./se.js\": 310490,\n\t\"./si\": 690124,\n\t\"./si.js\": 690124,\n\t\"./sk\": 664249,\n\t\"./sk.js\": 664249,\n\t\"./sl\": 414985,\n\t\"./sl.js\": 414985,\n\t\"./sq\": 451104,\n\t\"./sq.js\": 451104,\n\t\"./sr\": 149131,\n\t\"./sr-cyrl\": 779915,\n\t\"./sr-cyrl.js\": 779915,\n\t\"./sr.js\": 149131,\n\t\"./ss\": 785893,\n\t\"./ss.js\": 785893,\n\t\"./sv\": 598760,\n\t\"./sv.js\": 598760,\n\t\"./sw\": 891172,\n\t\"./sw.js\": 891172,\n\t\"./ta\": 127333,\n\t\"./ta.js\": 127333,\n\t\"./te\": 723110,\n\t\"./te.js\": 723110,\n\t\"./tet\": 352095,\n\t\"./tet.js\": 352095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 409041,\n\t\"./th.js\": 409041,\n\t\"./tk\": 419005,\n\t\"./tk.js\": 419005,\n\t\"./tl-ph\": 275768,\n\t\"./tl-ph.js\": 275768,\n\t\"./tlh\": 989444,\n\t\"./tlh.js\": 989444,\n\t\"./tr\": 372397,\n\t\"./tr.js\": 372397,\n\t\"./tzl\": 528254,\n\t\"./tzl.js\": 528254,\n\t\"./tzm\": 351106,\n\t\"./tzm-latn\": 330699,\n\t\"./tzm-latn.js\": 330699,\n\t\"./tzm.js\": 351106,\n\t\"./ug-cn\": 809288,\n\t\"./ug-cn.js\": 809288,\n\t\"./uk\": 167691,\n\t\"./uk.js\": 167691,\n\t\"./ur\": 813795,\n\t\"./ur.js\": 813795,\n\t\"./uz\": 806791,\n\t\"./uz-latn\": 460588,\n\t\"./uz-latn.js\": 460588,\n\t\"./uz.js\": 806791,\n\t\"./vi\": 865666,\n\t\"./vi.js\": 865666,\n\t\"./x-pseudo\": 614378,\n\t\"./x-pseudo.js\": 614378,\n\t\"./yo\": 875805,\n\t\"./yo.js\": 875805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 755726,\n\t\"./zh-hk.js\": 755726,\n\t\"./zh-mo\": 899807,\n\t\"./zh-mo.js\": 899807,\n\t\"./zh-tw\": 774152,\n\t\"./zh-tw.js\": 774152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 246700;","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport ColorScheme from './ColorScheme';\n\nexport default class CategoricalScheme extends ColorScheme {}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport makeSingleton from '../utils/makeSingleton';\nimport CategoricalScheme from './CategoricalScheme';\nimport ColorSchemeRegistry from './ColorSchemeRegistry';\nimport schemes from './colorSchemes/categorical/d3';\n\nclass CategoricalSchemeRegistry extends ColorSchemeRegistry {\n constructor() {\n super();\n\n this.registerValue('SUPERSET_DEFAULT', schemes[0]);\n }\n}\n\nconst getInstance = makeSingleton(CategoricalSchemeRegistry);\n\nexport default getInstance;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { ColorSchemeGroup } from './types';\n\nexport interface ColorSchemeConfig {\n colors: string[];\n description?: string;\n id: string;\n label?: string;\n isDefault?: boolean;\n group?: ColorSchemeGroup;\n}\n\nexport default class ColorScheme {\n colors: string[];\n\n description: string;\n\n id: string;\n\n label: string;\n\n isDefault?: boolean;\n\n group?: ColorSchemeGroup;\n\n constructor({\n colors,\n description = '',\n id,\n label,\n isDefault,\n group,\n }: ColorSchemeConfig) {\n this.id = id;\n this.label = label ?? id;\n this.colors = colors;\n this.description = description;\n this.isDefault = isDefault;\n this.group = group;\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { RegistryWithDefaultKey, OverwritePolicy } from '../models';\n\nexport default class ColorSchemeRegistry extends RegistryWithDefaultKey {\n constructor() {\n super({\n name: 'ColorScheme',\n overwritePolicy: OverwritePolicy.Warn,\n setFirstItemAsDefault: true,\n });\n }\n\n get(key?: string, strict = false) {\n const target = super.get(key) as T | undefined;\n\n // fallsback to default scheme if any\n if (!strict && !target) {\n const defaultKey = super.getDefaultKey();\n if (defaultKey) {\n return super.get(defaultKey) as T | undefined;\n }\n }\n return target;\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { scaleLinear } from 'd3-scale';\nimport {\n interpolateHcl,\n interpolateNumber,\n piecewise,\n quantize,\n} from 'd3-interpolate';\nimport ColorScheme, { ColorSchemeConfig } from './ColorScheme';\n\nexport interface SequentialSchemeConfig extends ColorSchemeConfig {\n isDiverging?: boolean;\n}\n\nexport default class SequentialScheme extends ColorScheme {\n isDiverging: boolean;\n\n constructor(config: SequentialSchemeConfig) {\n super(config);\n const { isDiverging = false } = config;\n this.isDiverging = isDiverging;\n }\n\n /**\n * Return a linear scale with a new domain interpolated from the input domain\n * to match the number of elements in the color scheme\n * because D3 continuous scale uses piecewise mapping between domain and range.\n * This is a common use-case when the domain is [min, max]\n * and the palette has more than two colors.\n *\n * @param domain domain of the scale\n * @param modifyRange Set this to true if you don't want to modify the domain and\n * want to interpolate range to have the same number of elements with domain instead.\n */\n createLinearScale(domain: number[] = [0, 1], modifyRange = false) {\n const scale = scaleLinear().interpolate(interpolateHcl).clamp(true);\n\n return modifyRange || domain.length === this.colors.length\n ? scale.domain(domain).range(this.getColors(domain.length))\n : scale\n .domain(\n quantize(piecewise(interpolateNumber, domain), this.colors.length),\n )\n .range(this.colors);\n }\n\n /**\n * Get colors from this scheme\n * @param numColors number of colors to return.\n * Will interpolate the current scheme to match the number of colors requested\n * @param extent The extent of the color range to use.\n * For example [0.2, 1] will rescale the color scheme\n * such that color values in the range [0, 0.2) are excluded from the scheme.\n */\n getColors(\n numColors = this.colors.length,\n extent: number[] = [0, 1],\n ): string[] {\n if (\n numColors === this.colors.length &&\n extent[0] === 0 &&\n extent[1] === 1\n ) {\n return this.colors;\n }\n\n const piecewiseScale: (t: number) => string = piecewise(\n interpolateHcl,\n this.colors,\n );\n const adjustExtent = scaleLinear().range(extent).clamp(true);\n\n return quantize(\n t => piecewiseScale(adjustExtent(t) as number),\n numColors,\n );\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport makeSingleton from '../utils/makeSingleton';\nimport ColorSchemeRegistry from './ColorSchemeRegistry';\nimport SequentialScheme from './SequentialScheme';\nimport schemes from './colorSchemes/sequential/d3';\n\nclass SequentialSchemeRegistry extends ColorSchemeRegistry {\n constructor() {\n super();\n\n this.registerValue('SUPERSET_DEFAULT', schemes[0]);\n }\n}\n\nconst getInstance = makeSingleton(SequentialSchemeRegistry);\n\nexport default getInstance;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'bnbColors',\n label: 'Airbnb Colors',\n colors: [\n '#29696B',\n '#5BCACE',\n '#F4B02A',\n '#F1826A',\n '#792EB2',\n '#C96EC6',\n '#921E50',\n '#B27700',\n '#9C3498',\n '#9C3498',\n '#E4679D',\n '#C32F0E',\n '#9D63CA',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'blueToGreen',\n label: 'Blue to green',\n group: ColorSchemeGroup.Featured,\n colors: [\n '#3200A7',\n '#004CDA',\n '#0074F1',\n '#0096EF',\n '#53BFFF',\n '#41C8E6',\n '#30DEDE',\n '#04D9C7',\n '#00EAA2',\n '#A6FF93',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'colorsOfRainbow',\n label: 'Colors of rainbow',\n group: ColorSchemeGroup.Featured,\n colors: [\n '#41ED86',\n '#2FC096',\n '#01DFFF',\n '#153AE0',\n '#850AD6',\n '#BD59FF',\n '#FF4A96',\n '#C32668',\n '#F40000',\n '#FF8901',\n '#FFBC0A',\n '#FFEC43',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'd3Category10',\n label: 'D3 Category 10',\n colors: [\n '#1f77b4',\n '#ff7f0e',\n '#2ca02c',\n '#d62728',\n '#9467bd',\n '#8c564b',\n '#e377c2',\n '#7f7f7f',\n '#bcbd22',\n '#17becf',\n ],\n },\n {\n id: 'd3Category20',\n label: 'D3 Category 20',\n colors: [\n '#1f77b4',\n '#aec7e8',\n '#ff7f0e',\n '#ffbb78',\n '#2ca02c',\n '#98df8a',\n '#d62728',\n '#ff9896',\n '#9467bd',\n '#c5b0d5',\n '#8c564b',\n '#c49c94',\n '#e377c2',\n '#f7b6d2',\n '#7f7f7f',\n '#c7c7c7',\n '#bcbd22',\n '#dbdb8d',\n '#17becf',\n '#9edae5',\n ],\n },\n {\n id: 'd3Category20b',\n label: 'D3 Category 20b',\n colors: [\n '#393b79',\n '#5254a3',\n '#6b6ecf',\n '#9c9ede',\n '#637939',\n '#8ca252',\n '#b5cf6b',\n '#cedb9c',\n '#8c6d31',\n '#bd9e39',\n '#e7ba52',\n '#e7cb94',\n '#843c39',\n '#ad494a',\n '#d6616b',\n '#e7969c',\n '#7b4173',\n '#a55194',\n '#ce6dbd',\n '#de9ed6',\n ],\n },\n {\n id: 'd3Category20c',\n label: 'D3 Category 20c',\n colors: [\n '#3182bd',\n '#6baed6',\n '#9ecae1',\n '#c6dbef',\n '#e6550d',\n '#fd8d3c',\n '#fdae6b',\n '#fdd0a2',\n '#31a354',\n '#74c476',\n '#a1d99b',\n '#c7e9c0',\n '#756bb1',\n '#9e9ac8',\n '#bcbddc',\n '#dadaeb',\n '#636363',\n '#969696',\n '#bdbdbd',\n '#d9d9d9',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'echarts4Colors',\n label: 'ECharts v4.x Colors',\n colors: [\n '#c23531',\n '#2f4554',\n '#61a0a8',\n '#d48265',\n '#91c7ae',\n '#749f83',\n '#ca8622',\n '#bda29a',\n '#6e7074',\n '#546570',\n '#c4ccd3',\n ],\n },\n {\n id: 'echarts5Colors',\n label: 'ECharts v5.x Colors',\n colors: [\n '#5470C6',\n '#91CC75',\n '#FAC858',\n '#EE6666',\n '#73C0DE',\n '#3BA272',\n '#FC8452',\n '#9A60B4',\n '#EA7CCC',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'googleCategory10c',\n label: 'Google Category 10c',\n colors: [\n '#3366cc',\n '#dc3912',\n '#ff9900',\n '#109618',\n '#990099',\n '#0099c6',\n '#dd4477',\n '#66aa00',\n '#b82e2e',\n '#316395',\n ],\n },\n {\n id: 'googleCategory20c',\n label: 'Google Category 20c',\n colors: [\n '#3366cc',\n '#dc3912',\n '#ff9900',\n '#109618',\n '#990099',\n '#0099c6',\n '#dd4477',\n '#66aa00',\n '#b82e2e',\n '#316395',\n '#994499',\n '#22aa99',\n '#aaaa11',\n '#6633cc',\n '#e67300',\n '#8b0707',\n '#651067',\n '#329262',\n '#5574a6',\n '#3b3eac',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'lyftColors',\n label: 'Lyft Colors',\n colors: [\n '#EA0B8C',\n '#6C838E',\n '#29ABE2',\n '#33D9C1',\n '#9DACB9',\n '#7560AA',\n '#2D5584',\n '#831C4A',\n '#333D47',\n '#AC2077',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'modernSunset',\n label: 'Modern sunset',\n group: ColorSchemeGroup.Featured,\n colors: [\n '#0080F6',\n '#254081',\n '#6C4592',\n '#A94693',\n '#DC4180',\n '#F35193',\n '#FF7582',\n '#FF4C5D',\n '#FF824E',\n '#FFAD2A',\n '#FFDB04',\n '#F3F700',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'presetColors',\n label: 'Preset Colors',\n group: ColorSchemeGroup.Featured,\n colors: [\n // Full color\n '#6BD3B3',\n '#FCC550',\n '#408184',\n '#66CBE2',\n '#EE5960',\n '#484E5A',\n '#FF874E',\n '#03748E',\n '#C9BBAB',\n '#B17BAA',\n // Pastels\n '#B5E9D9',\n '#FDE2A7',\n '#9FC0C1',\n '#B2E5F0',\n '#F6ACAF',\n '#A4A6AC',\n '#FFC3A6',\n '#81B9C6',\n '#E4DDD5',\n '#D9BDD5',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'supersetAndPresetColors',\n label: 'Preset + Superset',\n group: ColorSchemeGroup.Featured,\n colors: [\n '#004960',\n '#2893B3',\n '#20A7C9',\n '#5CC0DA',\n '#7DCDE1',\n '#A9D3E1',\n '#C6ECE1',\n '#AAE2D2',\n '#71CFB4',\n '#2FC096',\n '#178F7A',\n '#067162',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'redToYellow',\n label: 'Red to yellow',\n group: ColorSchemeGroup.Featured,\n colors: [\n '#90042A',\n '#D60039',\n '#D1353B',\n '#E45233',\n '#F47028',\n '#FE8E17',\n '#FFAD00',\n '#FFCC00',\n '#FFE601',\n '#FFF46D',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'supersetColors',\n label: 'Superset Colors',\n group: ColorSchemeGroup.Featured,\n colors: [\n // Full color\n '#1FA8C9',\n '#454E7C',\n '#5AC189',\n '#FF7F44',\n '#666666',\n '#E04355',\n '#FCC700',\n '#A868B7',\n '#3CCCCB',\n '#A38F79',\n // Pastels\n '#8FD3E4',\n '#A1A6BD',\n '#ACE1C4',\n '#FEC0A1',\n '#B2B2B2',\n '#EFA1AA',\n '#FDE380',\n '#D3B3DA',\n '#9EE5E5',\n '#D1C6BC',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport CategoricalScheme from '../../CategoricalScheme';\nimport { ColorSchemeGroup } from '../../types';\n\n// TODO: add the colors to the theme while working on SIP https://github.com/apache/superset/issues/20159\nconst schemes = [\n {\n id: 'wavesOfBlue',\n label: 'Waves of blue',\n group: ColorSchemeGroup.Featured,\n colors: [\n '#070061',\n '#0A0095',\n '#0054B4',\n '#006BE7',\n '#2289FF',\n '#4A9FFF',\n '#76B6FF',\n '#9DCBFF',\n '#BEDCFF',\n '#DAEBFF',\n ],\n },\n].map(s => new CategoricalScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport SequentialScheme from '../../SequentialScheme';\n\nconst schemes = [\n {\n id: 'blue_white_yellow',\n label: 'blue/white/yellow',\n colors: ['#00d1c1', 'white', '#ffb400'],\n },\n {\n id: 'fire',\n colors: ['white', 'yellow', 'red', 'black'],\n },\n {\n id: 'white_black',\n label: 'white/black',\n colors: ['white', 'black'],\n },\n {\n id: 'black_white',\n label: 'black/white',\n colors: ['black', 'white'],\n },\n {\n id: 'dark_blue',\n label: 'dark blues',\n colors: ['#EBF5F8', '#6BB1CC', '#357E9B', '#1B4150', '#092935'],\n },\n {\n id: 'pink_grey',\n label: 'pink/grey',\n isDiverging: true,\n colors: ['#E70B81', '#FAFAFA', '#666666'],\n },\n {\n id: 'greens',\n colors: ['#ffffcc', '#78c679', '#006837'],\n },\n {\n id: 'purples',\n colors: ['#f2f0f7', '#9e9ac8', '#54278f'],\n },\n {\n id: 'oranges',\n colors: ['#fef0d9', '#fc8d59', '#b30000'],\n },\n {\n id: 'red_yellow_blue',\n label: 'red/yellow/blue',\n isDiverging: true,\n colors: ['#d7191c', '#fdae61', '#ffffbf', '#abd9e9', '#2c7bb6'],\n },\n {\n id: 'brown_white_green',\n label: 'brown/white/green',\n isDiverging: true,\n colors: ['#a6611a', '#dfc27d', '#f5f5f5', '#80cdc1', '#018571'],\n },\n {\n id: 'purple_white_green',\n label: 'purple/white/green',\n isDiverging: true,\n colors: ['#7b3294', '#c2a5cf', '#f7f7f7', '#a6dba0', '#008837'],\n },\n {\n id: 'superset_seq_1',\n label: 'Superset Sequential #1',\n isDiverging: false,\n colors: [\n '#F4FAD4',\n '#D7F1AC',\n '#A9E3AF',\n '#82CDBB',\n '#63C1BF',\n '#1FA8C9',\n '#2367AC',\n '#2A2D84',\n '#251354',\n '#050415',\n ],\n },\n {\n id: 'superset_seq_2',\n label: 'Superset Sequential #2',\n isDiverging: false,\n colors: [\n '#FBF1B4',\n '#FDD093',\n '#FEAD71',\n '#FF7F44',\n '#E04355',\n '#C53D6F',\n '#952B7B',\n '#4F167B',\n '#251354',\n '#050415',\n ],\n },\n {\n id: 'superset_div_1',\n label: 'Superset Diverging #1',\n isDiverging: false,\n colors: [\n '#E04355',\n '#E87180',\n '#EFA1AA',\n '#F7D0D4',\n '#F6F6F7',\n '#C8E9F1',\n '#8FD3E4',\n '#58BDD7',\n '#1FA8C9',\n ],\n },\n {\n id: 'superset_div_2',\n label: 'Superset Diverging #2',\n isDiverging: false,\n colors: [\n '#FF7F44',\n '#FF9E72',\n '#FEC0A1',\n '#FFDFD0',\n '#F6F6F7',\n '#C8E9F1',\n '#8FD3E4',\n '#58BDD7',\n '#1FA8C9',\n ],\n },\n {\n id: 'preset_seq_1',\n label: 'Preset Sequential #1',\n isDiverging: false,\n colors: [\n '#F3FAEB',\n '#DEF2D7',\n '#CAEAC4',\n '#98DEBC',\n '#69D3B5',\n '#4AA59D',\n '#287886',\n '#0D5B6A',\n '#03273F',\n '#03273F',\n ],\n },\n {\n id: 'preset_seq_2',\n label: 'Preset Sequential #2',\n isDiverging: false,\n colors: [\n '#FEECE8',\n '#FDE2DA',\n '#FCCEC2',\n '#F998AA',\n '#F76896',\n '#D13186',\n '#AC0378',\n '#790071',\n '#43026C',\n '#050415',\n ],\n },\n {\n id: 'preset_div_1',\n label: 'Preset Diverging #1',\n isDiverging: false,\n colors: [\n '#B17BAA',\n '#C59DC0',\n '#D9BDD5',\n '#D9BDD5',\n '#F6F6F7',\n '#CBEFE5',\n '#98DECA',\n '#64D0B0',\n '#32BE96',\n ],\n },\n {\n id: 'preset_div_2',\n label: 'Preset Diverging #2',\n isDiverging: false,\n colors: [\n '#CB5171',\n '#D87C94',\n '#E5A8B7',\n '#F2D3DB',\n '#F6F6F7',\n '#CEE8EC',\n '#9CD1D8',\n '#6CBAC6',\n '#3AA3B2',\n ],\n },\n {\n id: 'echarts_gradient',\n label: 'ECharts gradient',\n isDiverging: false,\n colors: ['#f6EFA6', '#D88273', '#BF444C'],\n },\n {\n id: 'deck_gl_heatmap_gradient',\n label: 'Deck.gl Heatmap Default',\n colors: ['#bd0026', '#f03b20', '#fd8d3c', '#feb24c', '#fed976', '#ffffb2'],\n },\n].map(s => new SequentialScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport SequentialScheme from '../../SequentialScheme';\n\nconst schemes = [\n {\n id: 'schemeRdBu',\n label: 'red/blue',\n isDiverging: true,\n colors: [\n '#67001f',\n '#b2182b',\n '#d6604d',\n '#f4a582',\n '#fddbc7',\n '#d1e5f0',\n '#92c5de',\n '#4393c3',\n '#2166ac',\n '#053061',\n ],\n },\n {\n id: 'schemeBrBG',\n label: 'brown/green',\n isDiverging: true,\n colors: [\n '#543005',\n '#8c510a',\n '#bf812d',\n '#dfc27d',\n '#f6e8c3',\n '#c7eae5',\n '#80cdc1',\n '#35978f',\n '#01665e',\n '#003c30',\n ],\n },\n {\n id: 'schemePRGn',\n label: 'purple/green',\n isDiverging: true,\n colors: [\n '#40004b',\n '#762a83',\n '#9970ab',\n '#c2a5cf',\n '#e7d4e8',\n '#d9f0d3',\n '#a6dba0',\n '#5aae61',\n '#1b7837',\n '#00441b',\n ],\n },\n {\n id: 'schemePiYG',\n label: 'pink/green',\n isDiverging: true,\n colors: [\n '#8e0152',\n '#c51b7d',\n '#de77ae',\n '#f1b6da',\n '#fde0ef',\n '#e6f5d0',\n '#b8e186',\n '#7fbc41',\n '#4d9221',\n '#276419',\n ],\n },\n {\n id: 'schemePuOr',\n label: 'purple/orange',\n isDiverging: true,\n colors: [\n '#2d004b',\n '#542788',\n '#8073ac',\n '#b2abd2',\n '#d8daeb',\n '#fee0b6',\n '#fdb863',\n '#e08214',\n '#b35806',\n '#7f3b08',\n ],\n },\n {\n id: 'schemeRdGy',\n label: 'red/gray/black',\n isDiverging: true,\n colors: [\n '#67001f',\n '#b2182b',\n '#d6604d',\n '#f4a582',\n '#fddbc7',\n '#e0e0e0',\n '#bababa',\n '#878787',\n '#4d4d4d',\n '#1a1a1a',\n ],\n },\n {\n id: 'schemeRdYlBu',\n label: 'red/yellow/blue',\n colors: [\n '#a50026',\n '#d73027',\n '#f46d43',\n '#fdae61',\n '#fee090',\n '#e0f3f8',\n '#abd9e9',\n '#74add1',\n '#4575b4',\n '#313695',\n ],\n isDiverging: true,\n },\n {\n id: 'schemeRdYlGn',\n label: 'red/yellow/green',\n colors: [\n '#a50026',\n '#d73027',\n '#f46d43',\n '#fdae61',\n '#fee08b',\n '#d9ef8b',\n '#a6d96a',\n '#66bd63',\n '#1a9850',\n '#006837',\n ],\n isDiverging: true,\n },\n {\n id: 'schemeSpectral',\n label: 'rainbow',\n colors: [\n '#9e0142',\n '#d53e4f',\n '#f46d43',\n '#fdae61',\n '#fee08b',\n '#e6f598',\n '#abdda4',\n '#66c2a5',\n '#3288bd',\n '#5e4fa2',\n ],\n },\n {\n id: 'schemeBlues',\n label: 'blues',\n colors: [\n '#b5d4e9',\n '#93c3df',\n '#6daed5',\n '#4b97c9',\n '#2f7ebc',\n '#1864aa',\n '#0a4a90',\n '#08306b',\n ],\n },\n {\n id: 'schemeGreens',\n label: 'greens',\n colors: [\n '#b7e2b1',\n '#97d494',\n '#73c378',\n '#4daf62',\n '#2f984f',\n '#157f3b',\n '#036429',\n '#00441b',\n ],\n },\n {\n id: 'schemeGrays',\n label: 'grays',\n colors: [\n '#cecece',\n '#b4b4b4',\n '#979797',\n '#7a7a7a',\n '#5f5f5f',\n '#404040',\n '#1e1e1e',\n '#000000',\n ],\n },\n {\n id: 'schemeOranges',\n label: 'oranges',\n colors: [\n '#fdc28c',\n '#fda762',\n '#fb8d3d',\n '#f2701d',\n '#e25609',\n '#c44103',\n '#9f3303',\n '#7f2704',\n ],\n },\n {\n id: 'schemePurples',\n label: 'purples',\n colors: [\n '#cecee5',\n '#b6b5d8',\n '#9e9bc9',\n '#8782bc',\n '#7363ac',\n '#61409b',\n '#501f8c',\n '#3f007d',\n ],\n },\n {\n id: 'schemeReds',\n label: 'reds',\n colors: [\n '#fcaa8e',\n '#fc8a6b',\n '#f9694c',\n '#ef4533',\n '#d92723',\n '#bb151a',\n '#970b13',\n '#67000d',\n ],\n },\n {\n id: 'schemeViridis',\n label: 'Viridis',\n colors: [\n '#482475',\n '#414487',\n '#355f8d',\n '#2a788e',\n '#21918c',\n '#22a884',\n '#44bf70',\n '#7ad151',\n '#bddf26',\n '#fde725',\n ],\n },\n {\n id: 'schemeInferno',\n label: 'Inferno',\n colors: [\n '#160b39',\n '#420a68',\n '#6a176e',\n '#932667',\n '#bc3754',\n '#dd513a',\n '#f37819',\n '#fca50a',\n '#f6d746',\n '#fcffa4',\n ],\n },\n {\n id: 'schemeMagma',\n label: 'Magma',\n colors: [\n '#140e36',\n '#3b0f70',\n '#641a80',\n '#8c2981',\n '#b73779',\n '#de4968',\n '#f7705c',\n '#fe9f6d',\n '#fecf92',\n '#fcfdbf',\n ],\n },\n {\n id: 'schemeWarm',\n label: 'Warm',\n colors: [\n '#963db3',\n '#bf3caf',\n '#e4419d',\n '#fe4b83',\n '#ff5e63',\n '#ff7847',\n '#fb9633',\n '#e2b72f',\n '#c6d63c',\n '#aff05b',\n ],\n },\n {\n id: 'schemeCool',\n label: 'Cool',\n colors: [\n '#6054c8',\n '#4c6edb',\n '#368ce1',\n '#23abd8',\n '#1ac7c2',\n '#1ddfa3',\n '#30ef82',\n '#52f667',\n '#7ff658',\n '#aff05b',\n ],\n },\n {\n id: 'schemeCubehelixDefault',\n label: 'Cube Helix',\n colors: [\n '#1a1530',\n '#163d4e',\n '#1f6642',\n '#54792f',\n '#a07949',\n '#d07e93',\n '#cf9cda',\n '#c1caf3',\n '#d2eeef',\n '#ffffff',\n ],\n },\n {\n id: 'schemeBuGn',\n label: 'blue/green',\n colors: [\n '#b7e4da',\n '#8fd3c1',\n '#68c2a3',\n '#49b17f',\n '#2f9959',\n '#157f3c',\n '#036429',\n '#00441b',\n ],\n },\n {\n id: 'schemeBuPu',\n label: 'blue/purple',\n colors: [\n '#b2cae1',\n '#9cb3d5',\n '#8f95c6',\n '#8c74b5',\n '#8952a5',\n '#852d8f',\n '#730f71',\n '#4d004b',\n ],\n },\n {\n id: 'schemeGnBu',\n label: 'green/blue',\n colors: [\n '#bde5bf',\n '#9ed9bb',\n '#7bcbc4',\n '#58b7cd',\n '#399cc6',\n '#1d7eb7',\n '#0b60a1',\n '#084081',\n ],\n },\n {\n id: 'schemeOrRd',\n label: 'orange/red',\n colors: [\n '#fdca94',\n '#fdb07a',\n '#fa8e5d',\n '#f16c49',\n '#e04530',\n '#c81d13',\n '#a70403',\n '#7f0000',\n ],\n },\n {\n id: 'schemePuBuGn',\n label: 'purple/blue/green',\n colors: [\n '#bec9e2',\n '#98b9d9',\n '#69a8cf',\n '#4096c0',\n '#19879f',\n '#037877',\n '#016353',\n '#014636',\n ],\n },\n {\n id: 'schemePuBu',\n label: 'purple/blue',\n colors: [\n '#bfc9e2',\n '#9bb9d9',\n '#72a8cf',\n '#4394c3',\n '#1a7db6',\n '#0667a1',\n '#045281',\n '#023858',\n ],\n },\n {\n id: 'schemePuRd',\n label: 'purple/red',\n colors: [\n '#d0aad2',\n '#d08ac2',\n '#dd63ae',\n '#e33890',\n '#d71c6c',\n '#b70b4f',\n '#8f023a',\n '#67001f',\n ],\n },\n {\n id: 'schemeRdPu',\n label: 'red/purple',\n colors: [\n '#fbb5bc',\n '#f993b0',\n '#f369a3',\n '#e03e98',\n '#c01788',\n '#99037c',\n '#700174',\n '#49006a',\n ],\n },\n {\n id: 'schemeYlGnBu',\n label: 'yellow/green/blue',\n colors: [\n '#d5eeb3',\n '#a9ddb7',\n '#73c9bd',\n '#45b4c2',\n '#2897bf',\n '#2073b2',\n '#234ea0',\n '#1c3185',\n '#081d58',\n ],\n },\n {\n id: 'schemeYlGn',\n label: 'yellow/green',\n colors: [\n '#e4f4ac',\n '#c7e89b',\n '#a2d88a',\n '#78c578',\n '#4eaf63',\n '#2f944e',\n '#15793f',\n '#036034',\n '#004529',\n ],\n },\n {\n id: 'schemeYlOrBr',\n label: 'yellow/orange/brown',\n colors: [\n '#feeaa1',\n '#fed676',\n '#feba4a',\n '#fb992c',\n '#ee7918',\n '#d85b0a',\n '#b74304',\n '#8f3204',\n '#662506',\n ],\n },\n {\n id: 'schemeYlOrRd',\n label: 'yellow/orange/red',\n colors: [\n '#fee087',\n '#fec965',\n '#feab4b',\n '#fd893c',\n '#fa5c2e',\n '#ec3023',\n '#d31121',\n '#af0225',\n '#800026',\n ],\n },\n].map(s => new SequentialScheme(s));\n\nexport default schemes;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport interface ColorsInitLookup {\n [key: string]: string | number;\n}\n\nexport interface ColorsLookup {\n [key: string]: string;\n}\n\nexport interface RgbaColor {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport enum ColorSchemeGroup {\n Custom = 'custom',\n Featured = 'featured',\n Other = 'other',\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport SupersetClientClass from './SupersetClientClass';\nimport { SupersetClientInterface } from './types';\n\n// this is local to this file, don't expose it\nlet singletonClient: SupersetClientClass | undefined;\n\nfunction getInstance(): SupersetClientClass {\n if (!singletonClient) {\n throw new Error(\n 'You must call SupersetClient.configure(...) before calling other methods',\n );\n }\n return singletonClient;\n}\n\nconst SupersetClient: SupersetClientInterface = {\n configure: config => {\n singletonClient = new SupersetClientClass(config);\n return SupersetClient;\n },\n reset: () => {\n singletonClient = undefined;\n },\n delete: request => getInstance().delete(request),\n get: request => getInstance().get(request),\n init: force => getInstance().init(force),\n isAuthenticated: () => getInstance().isAuthenticated(),\n getGuestToken: () => getInstance().getGuestToken(),\n post: request => getInstance().post(request),\n postForm: (...args) => getInstance().postForm(...args),\n put: request => getInstance().put(request),\n reAuthenticate: () => getInstance().reAuthenticate(),\n request: request => getInstance().request(request),\n};\n\nexport default SupersetClient;\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport callApiAndParseWithTimeout from './callApi/callApiAndParseWithTimeout';\nimport {\n ClientConfig,\n ClientTimeout,\n Credentials,\n CsrfPromise,\n CsrfToken,\n FetchRetryOptions,\n Headers,\n Host,\n Mode,\n Protocol,\n RequestConfig,\n ParseMethod,\n} from './types';\nimport { DEFAULT_FETCH_RETRY_OPTIONS, DEFAULT_BASE_URL } from './constants';\n\nconst defaultUnauthorizedHandler = () => {\n if (!window.location.pathname.startsWith('/login')) {\n window.location.href = `/login?next=${window.location.href}`;\n }\n};\n\nexport default class SupersetClientClass {\n credentials: Credentials;\n\n csrfToken?: CsrfToken;\n\n csrfPromise?: CsrfPromise;\n\n guestToken?: string;\n\n guestTokenHeaderName: string;\n\n fetchRetryOptions?: FetchRetryOptions;\n\n baseUrl: string;\n\n protocol: Protocol;\n\n host: Host;\n\n headers: Headers;\n\n mode: Mode;\n\n timeout: ClientTimeout;\n\n handleUnauthorized: () => void;\n\n constructor({\n baseUrl = DEFAULT_BASE_URL,\n host,\n protocol,\n headers = {},\n fetchRetryOptions = {},\n mode = 'same-origin',\n timeout,\n credentials = undefined,\n csrfToken = undefined,\n guestToken = undefined,\n guestTokenHeaderName = 'X-GuestToken',\n unauthorizedHandler = defaultUnauthorizedHandler,\n }: ClientConfig = {}) {\n const url = new URL(\n host || protocol\n ? `${protocol || 'https:'}//${host || 'localhost'}`\n : baseUrl,\n // baseUrl for API could also be relative, so we provide current location.href\n // as the base of baseUrl\n window.location.href,\n );\n this.baseUrl = url.href.replace(/\\/+$/, ''); // always strip trailing slash\n this.host = url.host;\n this.protocol = url.protocol as Protocol;\n this.headers = { Accept: 'application/json', ...headers }; // defaulting accept to json\n this.mode = mode;\n this.timeout = timeout;\n this.credentials = credentials;\n this.csrfToken = csrfToken;\n this.guestToken = guestToken;\n this.guestTokenHeaderName = guestTokenHeaderName;\n this.fetchRetryOptions = {\n ...DEFAULT_FETCH_RETRY_OPTIONS,\n ...fetchRetryOptions,\n };\n if (typeof this.csrfToken === 'string') {\n this.headers = { ...this.headers, 'X-CSRFToken': this.csrfToken };\n this.csrfPromise = Promise.resolve(this.csrfToken);\n }\n if (guestToken) {\n this.headers[guestTokenHeaderName] = guestToken;\n }\n this.handleUnauthorized = unauthorizedHandler;\n }\n\n async init(force = false): CsrfPromise {\n if (this.isAuthenticated() && !force) {\n return this.csrfPromise as CsrfPromise;\n }\n return this.getCSRFToken();\n }\n\n async postForm(url: string, payload: Record, target = '_blank') {\n if (url) {\n await this.ensureAuth();\n const hiddenForm = document.createElement('form');\n hiddenForm.action = url;\n hiddenForm.method = 'POST';\n hiddenForm.target = target;\n const payloadWithToken: Record = {\n ...payload,\n csrf_token: this.csrfToken!,\n };\n\n if (this.guestToken) {\n payloadWithToken.guest_token = this.guestToken;\n }\n\n Object.entries(payloadWithToken).forEach(([key, value]) => {\n const data = document.createElement('input');\n data.type = 'hidden';\n data.name = key;\n data.value = value;\n hiddenForm.appendChild(data);\n });\n\n document.body.appendChild(hiddenForm);\n hiddenForm.submit();\n document.body.removeChild(hiddenForm);\n }\n }\n\n async reAuthenticate() {\n return this.init(true);\n }\n\n isAuthenticated(): boolean {\n // if CSRF protection is disabled in the Superset app, the token may be an empty string\n return this.csrfToken !== null && this.csrfToken !== undefined;\n }\n\n getGuestToken() {\n return this.guestToken;\n }\n\n async get(\n requestConfig: RequestConfig & { parseMethod?: T },\n ) {\n return this.request({ ...requestConfig, method: 'GET' });\n }\n\n async delete(\n requestConfig: RequestConfig & { parseMethod?: T },\n ) {\n return this.request({ ...requestConfig, method: 'DELETE' });\n }\n\n async put(\n requestConfig: RequestConfig & { parseMethod?: T },\n ) {\n return this.request({ ...requestConfig, method: 'PUT' });\n }\n\n async post(\n requestConfig: RequestConfig & { parseMethod?: T },\n ) {\n return this.request({ ...requestConfig, method: 'POST' });\n }\n\n async request({\n credentials,\n mode,\n endpoint,\n host,\n url,\n headers,\n timeout,\n fetchRetryOptions,\n ignoreUnauthorized = false,\n ...rest\n }: RequestConfig & { parseMethod?: T }) {\n await this.ensureAuth();\n return callApiAndParseWithTimeout({\n ...rest,\n credentials: credentials ?? this.credentials,\n mode: mode ?? this.mode,\n url: this.getUrl({ endpoint, host, url }),\n headers: { ...this.headers, ...headers },\n timeout: timeout ?? this.timeout,\n fetchRetryOptions: fetchRetryOptions ?? this.fetchRetryOptions,\n }).catch(res => {\n if (res?.status === 401 && !ignoreUnauthorized) {\n this.handleUnauthorized();\n }\n return Promise.reject(res);\n });\n }\n\n async ensureAuth(): CsrfPromise {\n return (\n this.csrfPromise ??\n // eslint-disable-next-line prefer-promise-reject-errors\n Promise.reject({\n error: `SupersetClient has not been provided a CSRF token, ensure it is\n initialized with \\`client.getCSRFToken()\\` or try logging in at\n ${this.getUrl({ endpoint: '/login' })}`,\n })\n );\n }\n\n async getCSRFToken() {\n this.csrfToken = undefined;\n // If we can request this resource successfully, it means that the user has\n // authenticated. If not we throw an error prompting to authenticate.\n this.csrfPromise = callApiAndParseWithTimeout({\n credentials: this.credentials,\n headers: {\n ...this.headers,\n },\n method: 'GET',\n mode: this.mode,\n timeout: this.timeout,\n url: this.getUrl({ endpoint: 'api/v1/security/csrf_token/' }),\n parseMethod: 'json',\n }).then(({ json }) => {\n if (typeof json === 'object') {\n this.csrfToken = json.result as string;\n if (typeof this.csrfToken === 'string') {\n this.headers = { ...this.headers, 'X-CSRFToken': this.csrfToken };\n }\n }\n if (this.isAuthenticated()) {\n return this.csrfToken;\n }\n // eslint-disable-next-line prefer-promise-reject-errors\n return Promise.reject({ error: 'Failed to fetch CSRF token' });\n });\n return this.csrfPromise;\n }\n\n getUrl({\n host: inputHost,\n endpoint = '',\n url,\n }: {\n endpoint?: string;\n host?: Host;\n url?: string;\n } = {}) {\n if (typeof url === 'string') return url;\n\n const host = inputHost ?? this.host;\n const cleanHost = host.slice(-1) === '/' ? host.slice(0, -1) : host; // no backslash\n\n return `${this.protocol}//${cleanHost}/${\n endpoint[0] === '/' ? endpoint.slice(1) : endpoint\n }`;\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n// returns a Promise that rejects after the specified timeout\nexport default function rejectAfterTimeout(timeout: number) {\n return new Promise((resolve, reject) => {\n setTimeout(\n () =>\n // eslint-disable-next-line prefer-promise-reject-errors\n reject({\n error: 'Request timed out',\n statusText: 'timeout',\n timeout,\n }),\n timeout,\n );\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport _JSONbig from 'json-bigint';\nimport { cloneDeepWith } from 'lodash';\n\nimport { ParseMethod, TextResponse, JsonResponse } from '../types';\n\nconst JSONbig = _JSONbig({\n constructorAction: 'preserve',\n});\n\nexport default async function parseResponse(\n apiPromise: Promise,\n parseMethod?: T,\n) {\n type ReturnType = T extends 'raw' | null\n ? Response\n : T extends 'json' | 'json-bigint' | undefined\n ? JsonResponse\n : T extends 'text'\n ? TextResponse\n : never;\n const response = await apiPromise;\n // reject failed HTTP requests with the raw response\n if (!response.ok) {\n return Promise.reject(response);\n }\n if (parseMethod === null || parseMethod === 'raw') {\n return response as ReturnType;\n }\n if (parseMethod === 'text') {\n const text = await response.text();\n const result: TextResponse = {\n response,\n text,\n };\n return result as ReturnType;\n }\n if (parseMethod === 'json-bigint') {\n const rawData = await response.text();\n const json = JSONbig.parse(rawData);\n const result: JsonResponse = {\n response,\n // `json-bigint` could not handle floats well, see sidorares/json-bigint#62\n // TODO: clean up after json-bigint>1.0.1 is released\n json: cloneDeepWith(json, (value: any) =>\n value?.isInteger?.() === false ? Number(value) : undefined,\n ),\n };\n return result as ReturnType;\n }\n // by default treat this as json\n if (parseMethod === undefined || parseMethod === 'json') {\n const json = await response.json();\n const result: JsonResponse = {\n json,\n response,\n };\n return result as ReturnType;\n }\n throw new Error(\n `Expected parseResponse=json|json-bigint|text|raw|null, got '${parseMethod}'.`,\n );\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport callApi from './callApi';\nimport rejectAfterTimeout from './rejectAfterTimeout';\nimport parseResponse from './parseResponse';\nimport { CallApi, ClientTimeout, ParseMethod } from '../types';\n\nexport default async function callApiAndParseWithTimeout<\n T extends ParseMethod = 'json',\n>({\n timeout,\n parseMethod,\n ...rest\n}: { timeout?: ClientTimeout; parseMethod?: T } & CallApi) {\n const apiPromise = callApi(rest);\n const racedPromise =\n typeof timeout === 'number' && timeout > 0\n ? Promise.race([apiPromise, rejectAfterTimeout(timeout)])\n : apiPromise;\n\n return parseResponse(racedPromise, parseMethod);\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport 'whatwg-fetch';\nimport fetchRetry from 'fetch-retry';\nimport { CallApi, Payload, JsonValue, JsonObject } from '../types';\nimport {\n CACHE_AVAILABLE,\n CACHE_KEY,\n HTTP_STATUS_NOT_MODIFIED,\n HTTP_STATUS_OK,\n} from '../constants';\n\nfunction tryParsePayload(payload: Payload) {\n try {\n return typeof payload === 'string'\n ? (JSON.parse(payload) as JsonValue)\n : payload;\n } catch (error) {\n throw new Error(`Invalid payload:\\n\\n${payload}`);\n }\n}\n\n/**\n * Try appending search params to an URL if needed.\n */\nfunction getFullUrl(partialUrl: string, params: CallApi['searchParams']) {\n if (params) {\n const url = new URL(partialUrl, window.location.href);\n const search =\n params instanceof URLSearchParams ? params : new URLSearchParams(params);\n // will completely override any existing search params\n url.search = search.toString();\n return url.href;\n }\n return partialUrl;\n}\n\n/**\n * Fetch an API response and returns the corresponding json.\n *\n * @param {Payload} postPayload payload to send as FormData in a post form\n * @param {Payload} jsonPayload json payload to post, will automatically add Content-Type header\n * @param {string} stringify whether to stringify field values when post as formData\n */\nexport default async function callApi({\n body,\n cache = 'default',\n credentials = 'same-origin',\n fetchRetryOptions,\n headers,\n method = 'GET',\n mode = 'same-origin',\n postPayload,\n jsonPayload,\n redirect = 'follow',\n signal,\n stringify = true,\n url: url_,\n searchParams,\n}: CallApi): Promise {\n const fetchWithRetry = fetchRetry(fetch, fetchRetryOptions);\n const url = `${getFullUrl(url_, searchParams)}`;\n\n const request = {\n body,\n cache,\n credentials,\n headers,\n method,\n mode,\n redirect,\n signal,\n };\n\n if (\n method === 'GET' &&\n cache !== 'no-store' &&\n cache !== 'reload' &&\n CACHE_AVAILABLE &&\n window.location?.protocol === 'https:'\n ) {\n let supersetCache: Cache | null = null;\n try {\n supersetCache = await caches.open(CACHE_KEY);\n const cachedResponse = await supersetCache.match(url);\n if (cachedResponse) {\n // if we have a cached response, send its ETag in the\n // `If-None-Match` header in a conditional request\n const etag = cachedResponse.headers.get('Etag') as string;\n request.headers = { ...request.headers, 'If-None-Match': etag };\n }\n } catch {\n // If superset is in an iframe and third-party cookies are disabled, caches.open throws\n }\n\n const response = await fetchWithRetry(url, request);\n\n if (supersetCache && response.status === HTTP_STATUS_NOT_MODIFIED) {\n const cachedFullResponse = await supersetCache.match(url);\n if (cachedFullResponse) {\n return cachedFullResponse.clone();\n }\n throw new Error('Received 304 but no content is cached!');\n }\n if (\n supersetCache &&\n response.status === HTTP_STATUS_OK &&\n response.headers.get('Etag')\n ) {\n supersetCache.delete(url);\n supersetCache.put(url, response.clone());\n }\n\n return response;\n }\n\n if (method === 'POST' || method === 'PATCH' || method === 'PUT') {\n if (postPayload && jsonPayload) {\n throw new Error('Please provide only one of jsonPayload or postPayload');\n }\n if (postPayload instanceof FormData) {\n request.body = postPayload;\n } else if (postPayload) {\n const payload = tryParsePayload(postPayload);\n if (payload && typeof payload === 'object') {\n // using FormData has the effect that Content-Type header is set to `multipart/form-data`,\n // not e.g., 'application/x-www-form-urlencoded'\n const formData: FormData = new FormData();\n Object.keys(payload).forEach(key => {\n const value = (payload as JsonObject)[key] as JsonValue;\n if (typeof value !== 'undefined') {\n let valueString;\n try {\n // We have seen instances where casting to String() throws error\n // This check allows all valid attributes to be appended to the formData\n // while logging error to console for any attribute that fails the cast to String\n valueString = stringify ? JSON.stringify(value) : String(value);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n `Unable to convert attribute '${key}' to a String(). '${key}' was not added to the formData in request.body for call to ${url}`,\n value,\n e,\n );\n }\n if (valueString !== undefined) {\n formData.append(key, valueString);\n }\n }\n });\n request.body = formData;\n }\n }\n if (jsonPayload !== undefined) {\n request.body = JSON.stringify(jsonPayload);\n request.headers = {\n ...request.headers,\n 'Content-Type': 'application/json',\n };\n }\n }\n\n return fetchWithRetry(url, request);\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { FetchRetryOptions } from './types';\n\nexport const DEFAULT_BASE_URL = 'http://localhost';\n\n// HTTP status codes\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_NOT_MODIFIED = 304;\n\n// Namespace for Cache API\nexport const CACHE_AVAILABLE = 'caches' in window;\nexport const CACHE_KEY = '@SUPERSET-UI/CONNECTION';\n\nexport const DEFAULT_FETCH_RETRY_OPTIONS: FetchRetryOptions = {\n retries: 3,\n retryDelay: 1000,\n retryOn: [503],\n};\n\nexport const COMMON_ERR_MESSAGES = {\n SESSION_TIMED_OUT:\n 'Your session timed out, please refresh your page and try again.',\n};\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n/**\n * From https://stackoverflow.com/questions/36871299/how-to-extend-function-with-es6-classes\n */\n\nexport default class ExtensibleFunction extends Function {\n // @ts-ignore\n constructor(fn: Function) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, no-constructor-return\n return Object.setPrototypeOf(fn, new.target.prototype);\n }\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nexport enum OverwritePolicy {\n Allow = 'ALLOW',\n Prohibit = 'PROHIBIT',\n Warn = 'WARN',\n}\n\ninterface ItemWithValue {\n value: T;\n}\n\ninterface ItemWithLoader {\n loader: () => T;\n}\n\n/**\n * Type of value returned from loader function when using registerLoader()\n */\ntype InclusiveLoaderResult = V | Promise;\n\nexport type RegistryValue> =\n | V\n | W\n | undefined;\n\nexport type RegistryEntry> = {\n key: string;\n value: RegistryValue;\n};\n\n/**\n * A listener is called whenever a registry's entries change.\n * Keys indicates which entries been affected.\n */\nexport type Listener = (keys: string[]) => void;\n\nexport interface RegistryConfig {\n name?: string;\n overwritePolicy?: OverwritePolicy;\n}\n\n/**\n * Registry class\n *\n * !!!!!!!!\n * IF YOU ARE ADDING A NEW REGISTRY TO SUPERSET, CONSIDER USING TypedRegistry\n * !!!!!!!!\n *\n * Can use generic to specify type of item in the registry\n * @type V Type of value\n * @type W Type of value returned from loader function when using registerLoader().\n * Set W=V when does not support asynchronous loader.\n * By default W is set to V | Promise to support\n * both synchronous and asynchronous loaders.\n */\nexport default class Registry<\n V,\n W extends InclusiveLoaderResult = InclusiveLoaderResult,\n> {\n name: string;\n\n overwritePolicy: OverwritePolicy;\n\n items: {\n [key: string]: ItemWithValue | ItemWithLoader;\n };\n\n promises: {\n [key: string]: Promise;\n };\n\n listeners: Set;\n\n constructor(config: RegistryConfig = {}) {\n const { name = '', overwritePolicy = OverwritePolicy.Allow } = config;\n this.name = name;\n this.overwritePolicy = overwritePolicy;\n this.items = {};\n this.promises = {};\n this.listeners = new Set();\n }\n\n clear() {\n const keys = this.keys();\n\n this.items = {};\n this.promises = {};\n this.notifyListeners(keys);\n\n return this;\n }\n\n has(key: string) {\n const item = this.items[key];\n\n return item !== null && item !== undefined;\n }\n\n registerValue(key: string, value: V) {\n const item = this.items[key];\n const willOverwrite =\n this.has(key) &&\n (('value' in item && item.value !== value) || 'loader' in item);\n if (willOverwrite) {\n if (this.overwritePolicy === OverwritePolicy.Warn) {\n // eslint-disable-next-line no-console\n console.warn(\n `Item with key \"${key}\" already exists. You are assigning a new value.`,\n );\n } else if (this.overwritePolicy === OverwritePolicy.Prohibit) {\n throw new Error(\n `Item with key \"${key}\" already exists. Cannot overwrite.`,\n );\n }\n }\n if (!item || willOverwrite) {\n this.items[key] = { value };\n delete this.promises[key];\n this.notifyListeners([key]);\n }\n\n return this;\n }\n\n registerLoader(key: string, loader: () => W) {\n const item = this.items[key];\n const willOverwrite =\n this.has(key) &&\n (('loader' in item && item.loader !== loader) || 'value' in item);\n if (willOverwrite) {\n if (this.overwritePolicy === OverwritePolicy.Warn) {\n // eslint-disable-next-line no-console\n console.warn(\n `Item with key \"${key}\" already exists. You are assigning a new value.`,\n );\n } else if (this.overwritePolicy === OverwritePolicy.Prohibit) {\n throw new Error(\n `Item with key \"${key}\" already exists. Cannot overwrite.`,\n );\n }\n }\n if (!item || willOverwrite) {\n this.items[key] = { loader };\n delete this.promises[key];\n this.notifyListeners([key]);\n }\n\n return this;\n }\n\n get(key: string): V | W | undefined {\n const item = this.items[key];\n if (item !== undefined) {\n if ('loader' in item) {\n return item.loader?.();\n }\n\n return item.value;\n }\n\n return undefined;\n }\n\n getAsPromise(key: string): Promise {\n const promise = this.promises[key];\n\n if (typeof promise !== 'undefined') {\n return promise;\n }\n const item = this.get(key);\n if (item !== undefined) {\n const newPromise = Promise.resolve(item) as Promise;\n this.promises[key] = newPromise;\n\n return newPromise;\n }\n\n return Promise.reject(\n new Error(`Item with key \"${key}\" is not registered.`),\n );\n }\n\n getMap() {\n return this.keys().reduce<{\n [key: string]: RegistryValue;\n }>((prev, key) => {\n const map = prev;\n map[key] = this.get(key);\n\n return map;\n }, {});\n }\n\n getMapAsPromise() {\n const keys = this.keys();\n\n return Promise.all(keys.map(key => this.getAsPromise(key))).then(values =>\n values.reduce<{\n [key: string]: V;\n }>((prev, value, i) => {\n const map = prev;\n map[keys[i]] = value;\n\n return map;\n }, {}),\n );\n }\n\n keys(): string[] {\n return Object.keys(this.items);\n }\n\n values(): RegistryValue[] {\n return this.keys().map(key => this.get(key));\n }\n\n valuesAsPromise(): Promise {\n return Promise.all(this.keys().map(key => this.getAsPromise(key)));\n }\n\n entries(): RegistryEntry[] {\n return this.keys().map(key => ({\n key,\n value: this.get(key),\n }));\n }\n\n entriesAsPromise(): Promise<{ key: string; value: V }[]> {\n const keys = this.keys();\n\n return this.valuesAsPromise().then(values =>\n values.map((value, i) => ({\n key: keys[i],\n value,\n })),\n );\n }\n\n remove(key: string) {\n const isChange = this.has(key);\n delete this.items[key];\n delete this.promises[key];\n if (isChange) {\n this.notifyListeners([key]);\n }\n\n return this;\n }\n\n addListener(listener: Listener) {\n this.listeners.add(listener);\n }\n\n removeListener(listener: Listener) {\n this.listeners.delete(listener);\n }\n\n private notifyListeners(keys: string[]) {\n this.listeners.forEach(listener => {\n try {\n listener(keys);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error('Exception thrown from a registry listener:', e);\n }\n });\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport Registry, { RegistryConfig } from './Registry';\n\ninterface RegistryWithDefaultKeyConfig extends RegistryConfig {\n initialDefaultKey?: string;\n setFirstItemAsDefault?: boolean;\n}\n\nexport default class RegistryWithDefaultKey<\n V,\n W extends V | Promise = V | Promise,\n> extends Registry {\n initialDefaultKey?: string;\n\n defaultKey?: string;\n\n setFirstItemAsDefault: boolean;\n\n constructor(config: RegistryWithDefaultKeyConfig = {}) {\n super(config);\n const { initialDefaultKey = undefined, setFirstItemAsDefault = false } =\n config;\n this.initialDefaultKey = initialDefaultKey;\n this.defaultKey = initialDefaultKey;\n this.setFirstItemAsDefault = setFirstItemAsDefault;\n }\n\n clear() {\n super.clear();\n this.defaultKey = this.initialDefaultKey;\n\n return this;\n }\n\n get(key?: string) {\n const targetKey = key ?? this.defaultKey;\n\n return targetKey ? super.get(targetKey) : undefined;\n }\n\n registerValue(key: string, value: V) {\n super.registerValue(key, value);\n // If there is no default, set as default\n if (this.setFirstItemAsDefault && !this.defaultKey) {\n this.defaultKey = key;\n }\n\n return this;\n }\n\n registerLoader(key: string, loader: () => W) {\n super.registerLoader(key, loader);\n // If there is no default, set as default\n if (this.setFirstItemAsDefault && !this.defaultKey) {\n this.defaultKey = key;\n }\n\n return this;\n }\n\n getDefaultKey() {\n return this.defaultKey;\n }\n\n setDefaultKey(key: string) {\n this.defaultKey = key;\n\n return this;\n }\n\n clearDefaultKey() {\n this.defaultKey = undefined;\n\n return this;\n }\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { FormatLocaleDefinition } from 'd3-format';\n\nexport const DEFAULT_D3_FORMAT: FormatLocaleDefinition = {\n decimal: '.',\n thousands: ',',\n grouping: [3],\n currency: ['$', ''],\n};\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nconst DOLLAR = '$,.2f';\nconst DOLLAR_SIGNED = '+$,.2f';\nconst DOLLAR_ROUND = '$,d';\nconst DOLLAR_ROUND_SIGNED = '+$,d';\n\nconst FLOAT_1_POINT = ',.1f';\nconst FLOAT_2_POINT = ',.2f';\nconst FLOAT_3_POINT = ',.3f';\nconst FLOAT = FLOAT_2_POINT;\n\nconst FLOAT_SIGNED_1_POINT = '+,.1f';\nconst FLOAT_SIGNED_2_POINT = '+,.2f';\nconst FLOAT_SIGNED_3_POINT = '+,.3f';\nconst FLOAT_SIGNED = FLOAT_SIGNED_2_POINT;\n\nconst INTEGER = ',d';\nconst INTEGER_SIGNED = '+,d';\n\nconst PERCENT = ',.0%';\nconst PERCENT_1_POINT = ',.1%';\nconst PERCENT_2_POINT = ',.2%';\nconst PERCENT_3_POINT = ',.3%';\n\nconst PERCENT_SIGNED = '+,.0%';\nconst PERCENT_SIGNED_1_POINT = '+,.1%';\nconst PERCENT_SIGNED_2_POINT = '+,.2%';\nconst PERCENT_SIGNED_3_POINT = '+,.3%';\n\nconst SI = '.0s';\nconst SI_1_DIGIT = '.1s';\nconst SI_2_DIGIT = '.2s';\nconst SI_3_DIGIT = '.3s';\n\nconst SMART_NUMBER = 'SMART_NUMBER';\nconst SMART_NUMBER_SIGNED = 'SMART_NUMBER_SIGNED';\nconst OVER_MAX_HIDDEN = 'OVER_MAX_HIDDEN';\n\nconst NumberFormats = {\n DOLLAR,\n DOLLAR_ROUND,\n DOLLAR_ROUND_SIGNED,\n DOLLAR_SIGNED,\n FLOAT,\n FLOAT_1_POINT,\n FLOAT_2_POINT,\n FLOAT_3_POINT,\n FLOAT_SIGNED,\n FLOAT_SIGNED_1_POINT,\n FLOAT_SIGNED_2_POINT,\n FLOAT_SIGNED_3_POINT,\n INTEGER,\n INTEGER_SIGNED,\n PERCENT,\n PERCENT_1_POINT,\n PERCENT_2_POINT,\n PERCENT_3_POINT,\n PERCENT_SIGNED,\n PERCENT_SIGNED_1_POINT,\n PERCENT_SIGNED_2_POINT,\n PERCENT_SIGNED_3_POINT,\n SI,\n SI_1_DIGIT,\n SI_2_DIGIT,\n SI_3_DIGIT,\n SMART_NUMBER,\n SMART_NUMBER_SIGNED,\n OVER_MAX_HIDDEN,\n};\n\nexport default NumberFormats;\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { ExtensibleFunction } from '../models';\nimport { isRequired } from '../utils';\nimport { NumberFormatFunction } from './types';\n\nexport const PREVIEW_VALUE = 12345.432;\n\nexport interface NumberFormatterConfig {\n id: string;\n label?: string;\n description?: string;\n formatFunc: NumberFormatFunction;\n isInvalid?: boolean;\n}\n\n// Use type augmentation to indicate that\n// an instance of NumberFormatter is also a function\ninterface NumberFormatter {\n (value: number | null | undefined): string;\n}\n\nclass NumberFormatter extends ExtensibleFunction {\n id: string;\n\n label: string;\n\n description: string;\n\n formatFunc: NumberFormatFunction;\n\n isInvalid: boolean;\n\n constructor(config: NumberFormatterConfig) {\n super((value: number) => this.format(value));\n\n const {\n id = isRequired('config.id'),\n label,\n description = '',\n formatFunc = isRequired('config.formatFunc'),\n isInvalid = false,\n } = config;\n this.id = id;\n this.label = label ?? id;\n this.description = description;\n this.formatFunc = formatFunc;\n this.isInvalid = isInvalid;\n }\n\n format(value: number | null | undefined) {\n if (value === null || value === undefined || Number.isNaN(value)) {\n return `${value}`;\n }\n if (value === Number.POSITIVE_INFINITY) {\n return '∞';\n }\n if (value === Number.NEGATIVE_INFINITY) {\n return '-∞';\n }\n\n return this.formatFunc(value);\n }\n\n preview(value = PREVIEW_VALUE) {\n return `${value} => ${this.format(value)}`;\n }\n}\n\nexport default NumberFormatter;\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { FormatLocaleDefinition } from 'd3-format';\nimport { RegistryWithDefaultKey, OverwritePolicy } from '../models';\nimport { DEFAULT_D3_FORMAT } from './D3FormatConfig';\nimport createD3NumberFormatter from './factories/createD3NumberFormatter';\nimport createSmartNumberFormatter from './factories/createSmartNumberFormatter';\nimport NumberFormats from './NumberFormats';\nimport NumberFormatter from './NumberFormatter';\n\nexport default class NumberFormatterRegistry extends RegistryWithDefaultKey<\n NumberFormatter,\n NumberFormatter\n> {\n d3Format: FormatLocaleDefinition;\n\n constructor() {\n super({\n name: 'NumberFormatter',\n overwritePolicy: OverwritePolicy.Warn,\n });\n\n this.registerValue(\n NumberFormats.SMART_NUMBER,\n createSmartNumberFormatter(),\n );\n this.registerValue(\n NumberFormats.SMART_NUMBER_SIGNED,\n createSmartNumberFormatter({ signed: true }),\n );\n this.setDefaultKey(NumberFormats.SMART_NUMBER);\n this.d3Format = DEFAULT_D3_FORMAT;\n }\n\n setD3Format(d3Format: Partial) {\n this.d3Format = { ...DEFAULT_D3_FORMAT, ...d3Format };\n return this;\n }\n\n get(formatterId?: string) {\n const targetFormat = `${\n formatterId === null ||\n typeof formatterId === 'undefined' ||\n formatterId === ''\n ? this.defaultKey\n : formatterId\n }`.trim();\n\n if (this.has(targetFormat)) {\n return super.get(targetFormat) as NumberFormatter;\n }\n\n // Create new formatter if does not exist\n const formatter = createD3NumberFormatter({\n formatString: targetFormat,\n locale: this.d3Format,\n });\n this.registerValue(targetFormat, formatter);\n\n return formatter;\n }\n\n format(\n formatterId: string | undefined,\n value: number | null | undefined,\n ): string {\n return this.get(formatterId)(value);\n }\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { FormatLocaleDefinition } from 'd3-format';\nimport { makeSingleton } from '../utils';\nimport NumberFormatterRegistry from './NumberFormatterRegistry';\n\nconst getInstance = makeSingleton(NumberFormatterRegistry);\n\nexport default getInstance;\n\nexport function getNumberFormatter(format?: string) {\n return getInstance().get(format);\n}\n\nexport function setD3Format(d3Format: Partial) {\n getInstance().setD3Format(d3Format);\n}\n\nexport function formatNumber(\n format: string | undefined,\n value: number | null | undefined,\n) {\n return getInstance().format(format, value);\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n format as d3Format,\n formatLocale,\n FormatLocaleDefinition,\n} from 'd3-format';\nimport { isRequired } from '../../utils';\nimport NumberFormatter from '../NumberFormatter';\nimport { NumberFormatFunction } from '../types';\n\nexport default function createD3NumberFormatter(config: {\n description?: string;\n formatString: string;\n label?: string;\n locale?: FormatLocaleDefinition;\n}) {\n const {\n description,\n formatString = isRequired('config.formatString'),\n label,\n locale,\n } = config;\n\n let formatFunc: NumberFormatFunction;\n let isInvalid = false;\n\n try {\n formatFunc =\n typeof locale === 'undefined'\n ? d3Format(formatString)\n : formatLocale(locale).format(formatString);\n } catch (error) {\n formatFunc = value => `${value} (Invalid format: ${formatString})`;\n isInvalid = true;\n }\n\n return new NumberFormatter({\n description,\n formatFunc,\n id: formatString,\n isInvalid,\n label,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport prettyMsFormatter from 'pretty-ms';\nimport NumberFormatter from '../NumberFormatter';\n\nexport default function createDurationFormatter(\n config: {\n description?: string;\n id?: string;\n label?: string;\n multiplier?: number;\n } & prettyMsFormatter.Options = {},\n) {\n const { description, id, label, multiplier = 1, ...prettyMsOptions } = config;\n\n return new NumberFormatter({\n description,\n formatFunc: value => prettyMsFormatter(value * multiplier, prettyMsOptions),\n id: id ?? 'duration_format',\n label: label ?? `Duration formatter`,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { format as d3Format } from 'd3-format';\nimport NumberFormatter from '../NumberFormatter';\nimport NumberFormats from '../NumberFormats';\n\nconst siFormatter = d3Format(`.3~s`);\nconst float2PointFormatter = d3Format(`.2~f`);\nconst float4PointFormatter = d3Format(`.4~f`);\n\nfunction formatValue(value: number) {\n if (value === 0) {\n return '0';\n }\n const absoluteValue = Math.abs(value);\n if (absoluteValue >= 1000) {\n // Normal human being are more familiar\n // with billion (B) that giga (G)\n return siFormatter(value).replace('G', 'B');\n }\n if (absoluteValue >= 1) {\n return float2PointFormatter(value);\n }\n if (absoluteValue >= 0.001) {\n return float4PointFormatter(value);\n }\n if (absoluteValue > 0.000001) {\n return `${siFormatter(value * 1000000)}µ`;\n }\n return siFormatter(value);\n}\n\nexport default function createSmartNumberFormatter(\n config: {\n description?: string;\n signed?: boolean;\n id?: string;\n label?: string;\n } = {},\n) {\n const { description, signed = false, id, label } = config;\n const getSign = signed ? (value: number) => (value > 0 ? '+' : '') : () => '';\n\n return new NumberFormatter({\n description,\n formatFunc: value => `${getSign(value)}${formatValue(value)}`,\n id:\n id || signed\n ? NumberFormats.SMART_NUMBER_SIGNED\n : NumberFormats.SMART_NUMBER,\n label: label ?? 'Adaptive formatter',\n });\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n SupersetApiError,\n SupersetApiErrorPayload,\n SupersetApiMultiErrorsPayload,\n} from './types';\n\nexport type ErrorInput = string | Error | Response | SupersetApiErrorPayload;\n\n/**\n * Handle API request errors, convert to consistent Superset API error.\n * @param error the catched error from SupersetClient.request(...)\n */\nexport default async function handleError(error: ErrorInput): Promise {\n // already a Superset error\n if (error instanceof SupersetApiError) {\n throw error;\n }\n // string is the error message itself\n if (typeof error === 'string') {\n throw new SupersetApiError({ message: error });\n }\n // JS errors, normally happens before request was sent\n if (error instanceof Error) {\n throw new SupersetApiError({\n message: error.message || 'Unknown Error',\n originalError: error,\n });\n }\n\n let errorJson;\n let originalError;\n let errorMessage = 'Unknown Error';\n let status: number | undefined;\n let statusText: string | undefined;\n\n // catch HTTP errors\n if (error instanceof Response) {\n const { status: responseStatus, statusText: responseStatusText } = error;\n status = responseStatus;\n statusText = responseStatusText;\n errorMessage = `${status} ${statusText}`;\n try {\n errorJson = (await error.json()) as\n | SupersetApiErrorPayload\n | SupersetApiMultiErrorsPayload;\n originalError = errorJson;\n } catch (error_) {\n originalError = error;\n }\n } else if (error) {\n errorJson = error;\n }\n\n // when API returns 200 but operation fails (see Python API json_error_response(...))\n // or when frontend promise rejects with `{ error: ... }`\n if (\n errorJson &&\n ('error' in errorJson || 'message' in errorJson || 'errors' in errorJson)\n ) {\n let err;\n if ('errors' in errorJson) {\n err = errorJson.errors?.[0] || {};\n } else if (typeof errorJson.error === 'object') {\n err = errorJson.error;\n } else {\n err = errorJson;\n }\n errorMessage =\n err.message ||\n (err.error as string | undefined) ||\n err.error_type ||\n errorMessage;\n throw new SupersetApiError({\n status,\n statusText,\n message: errorMessage,\n originalError,\n ...err,\n });\n }\n // all unknown error\n throw new SupersetApiError({\n status,\n statusText,\n message: errorMessage,\n originalError: error,\n });\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport rison from 'rison';\nimport {\n SupersetClient,\n Payload as SupersetPayload,\n JsonObject,\n JsonValue,\n ParseMethod,\n Endpoint,\n Method,\n RequestBase,\n} from '../../../connection';\nimport handleError, { ErrorInput } from './handleError';\nimport {\n SupersetApiRequestOptions,\n SupersetApiErrorPayload,\n ParsedResponseType,\n} from './types';\n\nconst validRequestTypes = new Set(['form', 'json', 'search', 'rison']);\n\ninterface SupersetApiFactoryOptions extends Omit {\n /**\n * API endpoint, must be relative.\n */\n endpoint: Endpoint;\n /**\n * Request method: 'GET' | 'POST' | 'DELETE' | 'PUT' | ...\n */\n method: Method;\n /**\n * How to send the payload:\n * - form: set request.body as FormData\n * - json: as JSON string with request Content-Type header set to application/json\n * - search: add to search params\n */\n requestType?: 'form' | 'json' | 'search' | 'rison';\n}\n\nfunction isPayloadless(method?: Method) {\n return (\n !method || method === 'GET' || method === 'DELETE' || method === 'HEAD'\n );\n}\n\n/**\n * Generate an API caller with predefined configs/typing and consistent\n * return values.\n */\nexport default function makeApi<\n Payload = SupersetPayload,\n Result = JsonObject,\n T extends ParseMethod = ParseMethod,\n>(\n options: SupersetApiFactoryOptions & {\n /**\n * How to parse response, choose from: 'json' | 'text' | 'raw'.\n */\n responseType?: T;\n /**\n * Further process parsed response\n */\n processResponse?(result: ParsedResponseType): Result;\n },\n) {\n const {\n endpoint,\n method,\n requestType: requestType_,\n responseType,\n processResponse,\n ...requestOptions\n } = options;\n // use `search` payload (searchParams) when it's a GET request\n const requestType =\n requestType_ || (isPayloadless(method) ? 'search' : 'json');\n if (!validRequestTypes.has(requestType)) {\n throw new Error(\n `Invalid request payload type, choose from: ${[...validRequestTypes].join(\n ' | ',\n )}`,\n );\n }\n\n async function request(\n payload: Payload,\n { client = SupersetClient }: SupersetApiRequestOptions = {\n client: SupersetClient,\n },\n ): Promise {\n try {\n const requestConfig = {\n ...requestOptions,\n method,\n endpoint,\n searchParams: undefined as URLSearchParams | undefined,\n postPayload: undefined as FormData | undefined,\n jsonPayload: undefined as JsonObject | undefined,\n };\n if (requestType === 'search') {\n requestConfig.searchParams = payload as unknown as URLSearchParams;\n } else if (requestType === 'rison') {\n requestConfig.endpoint = `${endpoint}?q=${rison.encode(payload)}`;\n } else if (requestType === 'form') {\n requestConfig.postPayload = payload as unknown as FormData;\n } else {\n requestConfig.jsonPayload = payload as JsonObject;\n }\n\n let result: JsonValue | Response;\n const response = await client.request({\n ...requestConfig,\n parseMethod: 'raw',\n });\n\n if (responseType === 'text') {\n result = await response.text();\n } else if (responseType === 'raw' || responseType === null) {\n result = response;\n } else {\n result = await response.json();\n // if response json has an \"error\" field\n if (result && typeof result === 'object' && 'error' in result) {\n return handleError(result as SupersetApiErrorPayload);\n }\n }\n const typedResult = result as ParsedResponseType;\n return (\n processResponse ? processResponse(typedResult) : typedResult\n ) as Result;\n } catch (error) {\n return handleError(error as ErrorInput);\n }\n }\n\n request.method = method;\n request.endpoint = endpoint;\n request.requestType = requestType;\n\n return request;\n}\n","/* eslint-disable camelcase */\n/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n SupersetClientClass,\n SupersetClientInterface,\n StrictJsonObject,\n JsonValue,\n JsonObject,\n} from '../../../connection';\n\nexport type ParsedResponseType = T extends 'text'\n ? string\n : T extends 'raw' | null\n ? Response\n : JsonValue;\n\n/**\n * Runtime options when calling a Superset API. Currently only allow overriding\n * SupersetClient instance.\n */\nexport interface SupersetApiRequestOptions {\n client?: SupersetClientInterface | SupersetClientClass;\n}\n\n/**\n * Superset API error types.\n * Ref: https://github.com/apache/incubator-superset/blob/318e5347bc6f88119725775baa4ab9a398a6f0b0/superset/errors.py#L24\n *\n * TODO: migrate superset-frontend/src/components/ErrorMessage/types.ts over\n */\nexport enum SupersetApiErrorType {\n // Generic unknown error\n UnknownError = 'UNKNOWN_ERROR',\n\n // Frontend errors\n FrontendCsrfError = 'FRONTEND_CSRF_ERROR',\n FrontendNetworkError = 'FRONTEND_NETWORK_ERROR',\n FrontendTimeoutError = 'FRONTEND_TIMEOUT_ERROR',\n\n // DB Engine errors,\n GenericDbEngineError = 'GENERIC_DB_ENGINE_ERROR',\n\n // Viz errors,\n VizGetDfError = 'VIZ_GET_DF_ERROR',\n UnknownDatasourceTypeError = 'UNKNOWN_DATASOURCE_TYPE_ERROR',\n FailedFetchingDatasourceInfoError = 'FAILED_FETCHING_DATASOURCE_INFO_ERROR',\n\n // Security access errors,\n TableSecurityAccessError = 'TABLE_SECURITY_ACCESS_ERROR',\n DatasourceSecurityAccessError = 'DATASOURCE_SECURITY_ACCESS_ERROR',\n MissingOwnershipError = 'MISSING_OWNERSHIP_ERROR',\n}\n\n/**\n * API Error json response from the backend (or fetch API in the frontend).\n * See SIP-40 and SIP-41: https://github.com/apache/incubator-superset/issues/9298\n */\nexport interface SupersetApiErrorPayload {\n message?: string; // error message via FlaskAppBuilder, e.g. `response_404(message=...)`\n error_type?: SupersetApiErrorType;\n level?: 'error' | 'warn' | 'info';\n extra?: StrictJsonObject;\n /**\n * Error message returned via `json_error_response`.\n * Ref https://github.com/apache/incubator-superset/blob/8e23d4f369f35724b34b14def8a5a8bafb1d2ecb/superset/views/base.py#L94\n */\n error?: string | SupersetApiErrorPayload;\n link?: string;\n}\n\nexport interface SupersetApiMultiErrorsPayload {\n errors: SupersetApiErrorPayload[];\n}\n\nexport class SupersetApiError extends Error {\n status?: number;\n\n statusText?: string;\n\n errorType: SupersetApiErrorType;\n\n extra: JsonObject;\n\n originalError?: Error | Response | JsonValue;\n\n constructor({\n status,\n statusText,\n message,\n link,\n extra,\n stack,\n error_type: errorType,\n originalError,\n }: Omit & {\n status?: number;\n statusText?: string;\n message: string;\n stack?: Error['stack'];\n // original JavaScript error or backend JSON response captured\n originalError?: SupersetApiError['originalError'];\n }) {\n super(message);\n const originalErrorStack =\n stack ||\n (originalError instanceof Error ? originalError.stack : undefined);\n this.stack =\n originalErrorStack && this.stack\n ? [\n this.stack.split('\\n')[0],\n ...originalErrorStack.split('\\n').slice(1),\n ].join('\\n')\n : this.stack;\n this.name = 'SupersetApiError';\n this.errorType = errorType || SupersetApiErrorType.UnknownError;\n this.extra = extra || {};\n if (link) {\n this.extra.link = link;\n }\n this.status = status;\n this.statusText = statusText;\n this.originalError = originalError;\n }\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport emotionStyled from '@emotion/styled';\nimport { useTheme as useThemeBasic } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\nexport {\n css,\n keyframes,\n jsx,\n ThemeProvider,\n CacheProvider as EmotionCacheProvider,\n withTheme,\n} from '@emotion/react';\nexport { default as createEmotionCache } from '@emotion/cache';\n\ndeclare module '@emotion/react' {\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n export interface Theme extends SupersetTheme {}\n}\n\nexport function useTheme() {\n const theme = useThemeBasic();\n // in the case there is no theme, useTheme returns an empty object\n if (Object.keys(theme).length === 0 && theme.constructor === Object) {\n throw new Error(\n 'useTheme() could not find a ThemeContext. The component is likely missing from the app.',\n );\n }\n return theme;\n}\n\nexport const emotionCache = createCache({\n key: 'superset',\n});\n\nexport const styled = emotionStyled;\n\nconst defaultTheme = {\n borderRadius: 4,\n colors: {\n text: {\n label: '#879399',\n help: '#737373',\n },\n primary: {\n base: '#20A7C9',\n dark1: '#1A85A0',\n dark2: '#156378',\n light1: '#79CADE',\n light2: '#A5DAE9',\n light3: '#D2EDF4',\n light4: '#E9F6F9',\n light5: '#F3F8FA',\n },\n secondary: {\n base: '#444E7C',\n dark1: '#363E63',\n dark2: '#282E4A',\n dark3: '#1B1F31',\n light1: '#8E94B0',\n light2: '#B4B8CA',\n light3: '#D9DBE4',\n light4: '#ECEEF2',\n light5: '#F5F5F8',\n },\n grayscale: {\n base: '#666666',\n dark1: '#323232',\n dark2: '#000000',\n light1: '#B2B2B2',\n light2: '#E0E0E0',\n light3: '#F0F0F0',\n light4: '#F7F7F7',\n light5: '#FFFFFF',\n },\n error: {\n base: '#E04355',\n dark1: '#A7323F',\n dark2: '#6F212A',\n light1: '#EFA1AA',\n light2: '#FAEDEE',\n },\n warning: {\n base: '#FF7F44',\n dark1: '#BF5E33',\n dark2: '#7F3F21',\n light1: '#FEC0A1',\n light2: '#FFF2EC',\n },\n alert: {\n base: '#FCC700',\n dark1: '#BC9501',\n dark2: '#7D6300',\n light1: '#FDE380',\n light2: '#FEF9E6',\n },\n success: {\n base: '#5AC189',\n dark1: '#439066',\n dark2: '#2B6144',\n light1: '#ACE1C4',\n light2: '#EEF8F3',\n },\n info: {\n base: '#66BCFE',\n dark1: '#4D8CBE',\n dark2: '#315E7E',\n light1: '#B3DEFE',\n light2: '#EFF8FE',\n },\n },\n opacity: {\n light: '10%',\n mediumLight: '35%',\n mediumHeavy: '60%',\n heavy: '80%',\n },\n typography: {\n families: {\n sansSerif: `'Inter', Helvetica, Arial`,\n serif: `Georgia, 'Times New Roman', Times, serif`,\n monospace: `'Fira Code', 'Courier New', monospace`,\n },\n weights: {\n light: 200,\n normal: 400,\n medium: 500,\n bold: 600,\n },\n sizes: {\n xxs: 9,\n xs: 10,\n s: 12,\n m: 14,\n l: 16,\n xl: 21,\n xxl: 28,\n },\n },\n zIndex: {\n aboveDashboardCharts: 10,\n dropdown: 11,\n max: 3000,\n },\n transitionTiming: 0.3,\n gridUnit: 4,\n brandIconMaxWidth: 37,\n};\n\nexport type SupersetTheme = typeof defaultTheme;\n\nexport interface SupersetThemeProps {\n theme: SupersetTheme;\n}\n\nexport const supersetTheme = defaultTheme;\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * 'License'); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { TimeLocaleDefinition } from 'd3-time-format';\n\nexport const DEFAULT_D3_TIME_FORMAT: TimeLocaleDefinition = {\n dateTime: '%x, %X',\n date: '%-m/%-d/%Y',\n time: '%-I:%M:%S %p',\n periods: ['AM', 'PM'],\n days: [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n shortMonths: [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ],\n};\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport const LOCAL_PREFIX = 'local!';\n\nconst DATABASE_DATETIME = '%Y-%m-%d %H:%M:%S';\nconst DATABASE_DATETIME_REVERSE = '%d-%m-%Y %H:%M:%S';\nconst US_DATE = '%m/%d/%Y';\nconst INTERNATIONAL_DATE = '%d/%m/%Y';\nconst DATABASE_DATE = '%Y-%m-%d';\nconst TIME = '%H:%M:%S';\n\nconst TimeFormats = {\n DATABASE_DATE,\n DATABASE_DATETIME,\n DATABASE_DATETIME_REVERSE,\n INTERNATIONAL_DATE,\n TIME,\n US_DATE,\n};\n\nexport default TimeFormats;\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { ExtensibleFunction } from '../models';\nimport { isRequired } from '../utils';\nimport { TimeFormatFunction } from './types';\nimport stringifyTimeInput from './utils/stringifyTimeInput';\n\nexport const PREVIEW_TIME = new Date(Date.UTC(2017, 1, 14, 11, 22, 33));\n\n// Use type augmentation to indicate that\n// an instance of TimeFormatter is also a function\ninterface TimeFormatter {\n (value: Date | number | null | undefined): string;\n}\n\nclass TimeFormatter extends ExtensibleFunction {\n id: string;\n\n label: string;\n\n description: string;\n\n formatFunc: TimeFormatFunction;\n\n useLocalTime: boolean;\n\n constructor(config: {\n id: string;\n label?: string;\n description?: string;\n formatFunc: TimeFormatFunction;\n useLocalTime?: boolean;\n }) {\n super((value: Date | number | null | undefined) => this.format(value));\n\n const {\n id = isRequired('config.id'),\n label,\n description = '',\n formatFunc = isRequired('config.formatFunc'),\n useLocalTime = false,\n } = config;\n\n this.id = id;\n this.label = label ?? id;\n this.description = description;\n this.formatFunc = formatFunc;\n this.useLocalTime = useLocalTime;\n }\n\n format(value: Date | number | null | undefined) {\n return stringifyTimeInput(value, time => this.formatFunc(time));\n }\n\n preview(value: Date = PREVIEW_TIME) {\n return `${value.toUTCString()} => ${this.format(value)}`;\n }\n}\n\nexport default TimeFormatter;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport default function stringifyTimeInput(\n value: Date | number | undefined | null,\n fn: (time: Date) => string,\n) {\n if (value === null || value === undefined) {\n return `${value}`;\n }\n\n return fn(value instanceof Date ? value : new Date(value));\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * 'License'); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { TimeLocaleDefinition } from 'd3-time-format';\nimport { RegistryWithDefaultKey, OverwritePolicy } from '../models';\nimport { DEFAULT_D3_TIME_FORMAT } from './D3FormatConfig';\nimport TimeFormats, { LOCAL_PREFIX } from './TimeFormats';\nimport createD3TimeFormatter from './factories/createD3TimeFormatter';\nimport TimeFormatter from './TimeFormatter';\n\nexport default class TimeFormatterRegistry extends RegistryWithDefaultKey<\n TimeFormatter,\n TimeFormatter\n> {\n d3Format: TimeLocaleDefinition;\n\n constructor() {\n super({\n initialDefaultKey: TimeFormats.DATABASE_DATETIME,\n name: 'TimeFormatter',\n overwritePolicy: OverwritePolicy.Warn,\n });\n\n this.d3Format = DEFAULT_D3_TIME_FORMAT;\n }\n\n setD3Format(d3Format: Partial) {\n this.d3Format = { ...DEFAULT_D3_TIME_FORMAT, ...d3Format };\n return this;\n }\n\n get(format?: string) {\n const targetFormat = `${\n format === null || typeof format === 'undefined' || format === ''\n ? this.defaultKey\n : format\n }`.trim();\n\n if (this.has(targetFormat)) {\n return super.get(targetFormat) as TimeFormatter;\n }\n\n // Create new formatter if does not exist\n const useLocalTime = targetFormat.startsWith(LOCAL_PREFIX);\n const formatString = targetFormat.replace(LOCAL_PREFIX, '');\n const locale = this.d3Format;\n const formatter = createD3TimeFormatter({\n formatString,\n useLocalTime,\n locale,\n });\n\n this.registerValue(targetFormat, formatter);\n\n return formatter;\n }\n\n format(format: string | undefined, value: Date | null | undefined): string {\n return this.get(format)(value);\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport TimeFormats from './TimeFormats';\nimport { TimeGranularity } from './types';\n\nconst { DATABASE_DATE, DATABASE_DATETIME } = TimeFormats;\nconst MINUTE = '%Y-%m-%d %H:%M';\n\n/**\n * Map time granularity to d3-format string\n */\nconst TimeFormatsForGranularity: Record = {\n [TimeGranularity.DATE]: DATABASE_DATE,\n [TimeGranularity.SECOND]: DATABASE_DATETIME,\n [TimeGranularity.MINUTE]: MINUTE,\n [TimeGranularity.FIVE_MINUTES]: MINUTE,\n [TimeGranularity.TEN_MINUTES]: MINUTE,\n [TimeGranularity.FIFTEEN_MINUTES]: MINUTE,\n [TimeGranularity.THIRTY_MINUTES]: MINUTE,\n [TimeGranularity.HOUR]: '%Y-%m-%d %H:00',\n [TimeGranularity.DAY]: DATABASE_DATE,\n [TimeGranularity.WEEK]: DATABASE_DATE,\n [TimeGranularity.MONTH]: '%b %Y',\n [TimeGranularity.QUARTER]: '%Y Q%q',\n [TimeGranularity.YEAR]: '%Y',\n [TimeGranularity.WEEK_STARTING_SUNDAY]: DATABASE_DATE,\n [TimeGranularity.WEEK_STARTING_MONDAY]: DATABASE_DATE,\n [TimeGranularity.WEEK_ENDING_SATURDAY]: DATABASE_DATE,\n [TimeGranularity.WEEK_ENDING_SUNDAY]: DATABASE_DATE,\n};\n\nexport default TimeFormatsForGranularity;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport default function createTime(\n mode: 'local' | 'utc',\n year: number,\n month = 0,\n date = 1,\n hours = 0,\n minutes = 0,\n seconds = 0,\n milliseconds = 0,\n): Date {\n const args = [\n year,\n month,\n date,\n hours,\n minutes,\n seconds,\n milliseconds,\n ] as const;\n return mode === 'local' ? new Date(...args) : new Date(Date.UTC(...args));\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { TimeGranularity } from '../types';\nimport createTime from './createTime';\n\nconst MS_IN_SECOND = 1000;\nconst MS_IN_MINUTE = 60 * MS_IN_SECOND;\nconst MS_IN_HOUR = 60 * MS_IN_MINUTE;\n\nfunction deductOneMs(time: Date) {\n return new Date(time.getTime() - 1);\n}\n\nfunction computeEndTimeFromGranularity(\n time: Date,\n granularity: TimeGranularity,\n useLocalTime: boolean,\n) {\n const date = useLocalTime ? time.getDate() : time.getUTCDate();\n const month = useLocalTime ? time.getMonth() : time.getUTCMonth();\n const year = useLocalTime ? time.getFullYear() : time.getUTCFullYear();\n const mode = useLocalTime ? 'local' : 'utc';\n\n switch (granularity) {\n case TimeGranularity.SECOND:\n return new Date(time.getTime() + MS_IN_SECOND - 1);\n case TimeGranularity.MINUTE:\n return new Date(time.getTime() + MS_IN_MINUTE - 1);\n case TimeGranularity.FIVE_MINUTES:\n return new Date(time.getTime() + MS_IN_MINUTE * 5 - 1);\n case TimeGranularity.TEN_MINUTES:\n return new Date(time.getTime() + MS_IN_MINUTE * 10 - 1);\n case TimeGranularity.FIFTEEN_MINUTES:\n return new Date(time.getTime() + MS_IN_MINUTE * 15 - 1);\n case TimeGranularity.THIRTY_MINUTES:\n return new Date(time.getTime() + MS_IN_MINUTE * 30 - 1);\n case TimeGranularity.HOUR:\n return new Date(time.getTime() + MS_IN_HOUR - 1);\n // For the day granularity and above, using Date overflow is better than adding timestamp\n // because it will also handle daylight saving.\n case TimeGranularity.WEEK:\n case TimeGranularity.WEEK_STARTING_SUNDAY:\n case TimeGranularity.WEEK_STARTING_MONDAY:\n return deductOneMs(createTime(mode, year, month, date + 7));\n case TimeGranularity.MONTH:\n return deductOneMs(createTime(mode, year, month + 1));\n case TimeGranularity.QUARTER:\n return deductOneMs(\n createTime(mode, year, (Math.floor(month / 3) + 1) * 3),\n );\n case TimeGranularity.YEAR:\n return deductOneMs(createTime(mode, year + 1));\n // For the WEEK_ENDING_XXX cases,\n // currently assume \"time\" returned from database is supposed to be the end time\n // (in contrast to all other granularities that the returned time is start time).\n // However, the returned \"time\" is at 00:00:00.000, so have to add 23:59:59.999.\n case TimeGranularity.WEEK_ENDING_SATURDAY:\n case TimeGranularity.WEEK_ENDING_SUNDAY:\n case TimeGranularity.DATE:\n case TimeGranularity.DAY:\n default:\n return deductOneMs(createTime(mode, year, month, date + 1));\n }\n}\n\nexport default function createTimeRangeFromGranularity(\n time: Date,\n granularity: TimeGranularity,\n useLocalTime = false,\n) {\n const endTime = computeEndTimeFromGranularity(\n time,\n granularity,\n useLocalTime,\n );\n\n if (\n granularity === TimeGranularity.WEEK_ENDING_SATURDAY ||\n granularity === TimeGranularity.WEEK_ENDING_SUNDAY\n ) {\n const date = useLocalTime ? time.getDate() : time.getUTCDate();\n const month = useLocalTime ? time.getMonth() : time.getUTCMonth();\n const year = useLocalTime ? time.getFullYear() : time.getUTCFullYear();\n const startTime = createTime(\n useLocalTime ? 'local' : 'utc',\n year,\n month,\n date - 6,\n );\n return [startTime, endTime];\n }\n\n return [time, endTime];\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { ExtensibleFunction } from '../models';\nimport { TimeRangeFormatFunction } from './types';\n\n// Use type augmentation to indicate that\n// an instance of TimeFormatter is also a function\ninterface TimeRangeFormatter {\n (value: (Date | number | null | undefined)[]): string;\n}\n\nclass TimeRangeFormatter extends ExtensibleFunction {\n id: string;\n\n label: string;\n\n description: string;\n\n formatFunc: TimeRangeFormatFunction;\n\n useLocalTime: boolean;\n\n constructor(config: {\n id: string;\n label?: string;\n description?: string;\n formatFunc: TimeRangeFormatFunction;\n useLocalTime?: boolean;\n }) {\n super((value: (Date | number | null | undefined)[]) => this.format(value));\n\n const {\n id,\n label,\n description = '',\n formatFunc,\n useLocalTime = false,\n } = config;\n\n this.id = id;\n this.label = label ?? id;\n this.description = description;\n this.formatFunc = formatFunc;\n this.useLocalTime = useLocalTime;\n }\n\n format(values: (Date | number | null | undefined)[]) {\n return this.formatFunc(values);\n }\n}\n\nexport default TimeRangeFormatter;\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { makeSingleton } from '../utils';\nimport TimeFormatterRegistry from './TimeFormatterRegistry';\nimport TimeFormatter from './TimeFormatter';\nimport TimeFormatsForGranularity from './TimeFormatsForGranularity';\nimport { LOCAL_PREFIX } from './TimeFormats';\nimport { TimeGranularity } from './types';\nimport createTimeRangeFromGranularity from './utils/createTimeRangeFromGranularity';\nimport TimeRangeFormatter from './TimeRangeFormatter';\n\nconst getInstance = makeSingleton(TimeFormatterRegistry);\n\nexport default getInstance;\n\nexport function getTimeRangeFormatter(formatId?: string) {\n return new TimeRangeFormatter({\n id: formatId || 'undefined',\n formatFunc: (range: (Date | number | null | undefined)[]) => {\n const format = getInstance().get(formatId);\n const [start, end] = range.map(value => format(value));\n return start === end ? start : [start, end].join(' — ');\n },\n useLocalTime: formatId?.startsWith(LOCAL_PREFIX),\n });\n}\n\nexport function formatTimeRange(\n formatId: string | undefined,\n range: (Date | null | undefined)[],\n) {\n return getTimeRangeFormatter(formatId)(range);\n}\n\nexport function getTimeFormatter(\n formatId?: string,\n granularity?: TimeGranularity,\n) {\n if (granularity) {\n const formatString = formatId || TimeFormatsForGranularity[granularity];\n const timeRangeFormatter = getTimeRangeFormatter(formatString);\n\n return new TimeFormatter({\n id: [formatString, granularity].join('/'),\n formatFunc: (value: Date) =>\n timeRangeFormatter.format(\n createTimeRangeFromGranularity(\n value,\n granularity,\n timeRangeFormatter.useLocalTime,\n ),\n ),\n useLocalTime: timeRangeFormatter.useLocalTime,\n });\n }\n\n return getInstance().get(formatId);\n}\n\n/**\n * Syntactic sugar for backward compatibility\n * TODO: will be deprecated in a future version\n * @param granularity\n */\nexport function getTimeFormatterForGranularity(granularity?: TimeGranularity) {\n return getTimeFormatter(undefined, granularity);\n}\n\nexport function formatTime(\n formatId: string | undefined,\n value: Date | number | null | undefined,\n granularity?: TimeGranularity,\n) {\n return getTimeFormatter(formatId, granularity)(value);\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n utcFormat,\n timeFormat,\n timeFormatLocale,\n TimeLocaleDefinition,\n} from 'd3-time-format';\nimport { isRequired } from '../../utils';\nimport TimeFormatter from '../TimeFormatter';\nimport { LOCAL_PREFIX } from '../TimeFormats';\n\nexport default function createD3TimeFormatter(config: {\n description?: string;\n formatString: string;\n label?: string;\n locale?: TimeLocaleDefinition;\n useLocalTime?: boolean;\n}) {\n const {\n description,\n formatString = isRequired('formatString'),\n label,\n locale,\n useLocalTime = false,\n } = config;\n\n const id = useLocalTime ? `${LOCAL_PREFIX}${formatString}` : formatString;\n let formatFunc;\n\n if (typeof locale === 'undefined') {\n const format = useLocalTime ? timeFormat : utcFormat;\n formatFunc = format(formatString);\n } else {\n const localeObject = timeFormatLocale(locale);\n formatFunc = useLocalTime\n ? localeObject.format(formatString)\n : localeObject.utcFormat(formatString);\n }\n\n return new TimeFormatter({\n description,\n formatFunc,\n id,\n label,\n useLocalTime,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n timeFormatLocale,\n TimeLocaleDefinition,\n timeFormat,\n utcFormat,\n} from 'd3-time-format';\nimport { utcUtils, localTimeUtils } from '../utils/d3Time';\nimport TimeFormatter from '../TimeFormatter';\n\ntype FormatsByStep = Partial<{\n millisecond: string;\n second: string;\n minute: string;\n hour: string;\n day: string;\n week: string;\n month: string;\n year: string;\n}>;\n\nexport default function createMultiFormatter({\n id,\n label,\n description,\n formats = {},\n useLocalTime = false,\n locale,\n}: {\n id: string;\n label?: string;\n description?: string;\n formats?: FormatsByStep;\n useLocalTime?: boolean;\n locale?: TimeLocaleDefinition;\n}) {\n const {\n millisecond = '.%L',\n second = ':%S',\n minute = '%I:%M',\n hour = '%I %p',\n day = '%a %d',\n week = '%b %d',\n month = '%B',\n year = '%Y',\n } = formats;\n\n let formatFunc;\n\n if (typeof locale === 'undefined') {\n formatFunc = useLocalTime ? timeFormat : utcFormat;\n } else {\n const formatLocale = timeFormatLocale(locale);\n formatFunc = useLocalTime ? formatLocale.format : formatLocale.utcFormat;\n }\n\n const formatMillisecond = formatFunc(millisecond);\n const formatSecond = formatFunc(second);\n const formatMinute = formatFunc(minute);\n const formatHour = formatFunc(hour);\n const formatDay = formatFunc(day);\n const formatFirstDayOfWeek = formatFunc(week);\n const formatMonth = formatFunc(month);\n const formatYear = formatFunc(year);\n\n const {\n hasMillisecond,\n hasSecond,\n hasMinute,\n hasHour,\n isNotFirstDayOfMonth,\n isNotFirstDayOfWeek,\n isNotFirstMonth,\n } = useLocalTime ? localTimeUtils : utcUtils;\n\n function multiFormatFunc(date: Date) {\n if (hasMillisecond(date)) {\n return formatMillisecond;\n }\n if (hasSecond(date)) {\n return formatSecond;\n }\n if (hasMinute(date)) {\n return formatMinute;\n }\n if (hasHour(date)) {\n return formatHour;\n }\n if (isNotFirstDayOfMonth(date)) {\n return isNotFirstDayOfWeek(date) ? formatDay : formatFirstDayOfWeek;\n }\n if (isNotFirstMonth(date)) {\n return formatMonth;\n }\n\n return formatYear;\n }\n\n return new TimeFormatter({\n description,\n formatFunc: (date: Date) => multiFormatFunc(date)(date),\n id,\n label,\n useLocalTime,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { TimeLocaleDefinition } from 'd3-time-format';\nimport createMultiFormatter from '../factories/createMultiFormatter';\n\nexport const SMART_DATE_ID = 'smart_date';\n\nexport function createSmartDateFormatter(locale?: TimeLocaleDefinition) {\n return createMultiFormatter({\n id: SMART_DATE_ID,\n label: 'Adaptative Formatting',\n formats: {\n millisecond: '.%Lms',\n second: ':%Ss',\n minute: '%I:%M',\n hour: '%I %p',\n day: '%a %d',\n week: '%b %d',\n month: '%B',\n year: '%Y',\n },\n locale,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { TimeLocaleDefinition } from 'd3-time-format';\nimport createMultiFormatter from '../factories/createMultiFormatter';\n\nexport const SMART_DATE_DETAILED_ID = 'smart_date_detailed';\n\nexport function createSmartDateDetailedFormatter(\n locale?: TimeLocaleDefinition,\n) {\n return createMultiFormatter({\n id: 'smart_date_detailed',\n label: 'Detailed adaptive formatter',\n formats: {\n millisecond: '%Y-%m-%d %H:%M:%S.%L',\n second: '%Y-%m-%d %H:%M:%S',\n minute: '%Y-%m-%d %H:%M',\n hour: '%Y-%m-%d %H:%M',\n day: '%Y-%m-%d',\n week: '%Y-%m-%d',\n month: '%Y-%m-%d',\n year: '%Y',\n },\n locale,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { TimeLocaleDefinition } from 'd3-time-format';\nimport createMultiFormatter from '../factories/createMultiFormatter';\n\nexport const SMART_DATE_VERBOSE_ID = 'smart_date_verbose';\n\nexport function createSmartDateVerboseFormatter(locale?: TimeLocaleDefinition) {\n return createMultiFormatter({\n id: SMART_DATE_VERBOSE_ID,\n label: 'Verbose Adaptative Formatting',\n formats: {\n millisecond: '.%L',\n second: '%a %b %d, %I:%M:%S %p',\n minute: '%a %b %d, %I:%M %p',\n hour: '%a %b %d, %I %p',\n day: '%a %b %-e',\n week: '%a %b %-e',\n month: '%b %Y',\n year: '%Y',\n },\n locale,\n });\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport type TimeFormatFunction = (value: Date) => string;\n\nexport type TimeRangeFormatFunction = (\n values: (Date | number | undefined | null)[],\n) => string;\n\n/**\n * search for `builtin_time_grains` in incubator-superset/superset/db_engine_specs/base.py\n */\nexport const TimeGranularity = {\n DATE: 'date',\n SECOND: 'PT1S',\n MINUTE: 'PT1M',\n FIVE_MINUTES: 'PT5M',\n TEN_MINUTES: 'PT10M',\n FIFTEEN_MINUTES: 'PT15M',\n THIRTY_MINUTES: 'PT30M',\n HOUR: 'PT1H',\n DAY: 'P1D',\n WEEK: 'P1W',\n WEEK_STARTING_SUNDAY: '1969-12-28T00:00:00Z/P1W',\n WEEK_STARTING_MONDAY: '1969-12-29T00:00:00Z/P1W',\n WEEK_ENDING_SATURDAY: 'P1W/1970-01-03T00:00:00Z',\n WEEK_ENDING_SUNDAY: 'P1W/1970-01-04T00:00:00Z',\n MONTH: 'P1M',\n QUARTER: 'P3M',\n YEAR: 'P1Y',\n} as const;\n\ntype ValueOf = T[keyof T];\n\nexport type TimeGranularity = ValueOf;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport {\n timeSecond,\n timeMinute,\n timeHour,\n timeDay,\n timeWeek,\n timeSunday,\n timeMonday,\n timeTuesday,\n timeWednesday,\n timeThursday,\n timeFriday,\n timeSaturday,\n timeMonth,\n timeYear,\n utcSecond,\n utcMinute,\n utcHour,\n utcDay,\n utcWeek,\n utcSunday,\n utcMonday,\n utcTuesday,\n utcWednesday,\n utcThursday,\n utcFriday,\n utcSaturday,\n utcMonth,\n utcYear,\n CountableTimeInterval,\n} from 'd3-time';\n\nfunction createUtils(useLocalTime = false) {\n let floorSecond: CountableTimeInterval;\n let floorMinute: CountableTimeInterval;\n let floorHour: CountableTimeInterval;\n let floorDay: CountableTimeInterval;\n let floorWeek: CountableTimeInterval;\n let floorWeekStartOnSunday: CountableTimeInterval;\n let floorWeekStartOnMonday: CountableTimeInterval;\n let floorWeekStartOnTuesday: CountableTimeInterval;\n let floorWeekStartOnWednesday: CountableTimeInterval;\n let floorWeekStartOnThursday: CountableTimeInterval;\n let floorWeekStartOnFriday: CountableTimeInterval;\n let floorWeekStartOnSaturday: CountableTimeInterval;\n let floorMonth: CountableTimeInterval;\n let floorYear: CountableTimeInterval;\n if (useLocalTime) {\n floorSecond = timeSecond;\n floorMinute = timeMinute;\n floorHour = timeHour;\n floorDay = timeDay;\n floorWeek = timeWeek;\n floorWeekStartOnSunday = timeSunday;\n floorWeekStartOnMonday = timeMonday;\n floorWeekStartOnTuesday = timeTuesday;\n floorWeekStartOnWednesday = timeWednesday;\n floorWeekStartOnThursday = timeThursday;\n floorWeekStartOnFriday = timeFriday;\n floorWeekStartOnSaturday = timeSaturday;\n floorMonth = timeMonth;\n floorYear = timeYear;\n } else {\n floorSecond = utcSecond;\n floorMinute = utcMinute;\n floorHour = utcHour;\n floorDay = utcDay;\n floorWeek = utcWeek;\n floorWeekStartOnSunday = utcSunday;\n floorWeekStartOnMonday = utcMonday;\n floorWeekStartOnTuesday = utcTuesday;\n floorWeekStartOnWednesday = utcWednesday;\n floorWeekStartOnThursday = utcThursday;\n floorWeekStartOnFriday = utcFriday;\n floorWeekStartOnSaturday = utcSaturday;\n floorMonth = utcMonth;\n floorYear = utcYear;\n }\n\n return {\n floorSecond,\n floorMinute,\n floorHour,\n floorDay,\n floorWeek,\n floorWeekStartOnSunday,\n floorWeekStartOnMonday,\n floorWeekStartOnTuesday,\n floorWeekStartOnWednesday,\n floorWeekStartOnThursday,\n floorWeekStartOnFriday,\n floorWeekStartOnSaturday,\n floorMonth,\n floorYear,\n hasMillisecond: (date: Date) => floorSecond(date) < date,\n hasSecond: (date: Date) => floorMinute(date) < date,\n hasMinute: (date: Date) => floorHour(date) < date,\n hasHour: (date: Date) => floorDay(date) < date,\n isNotFirstDayOfMonth: (date: Date) => floorMonth(date) < date,\n isNotFirstDayOfWeek: (date: Date) => floorWeek(date) < date,\n isNotFirstDayOfWeekStartOnSunday: (date: Date) =>\n floorWeekStartOnSunday(date) < date,\n isNotFirstDayOfWeekStartOnMonday: (date: Date) =>\n floorWeekStartOnMonday(date) < date,\n isNotFirstDayOfWeekStartOnTuesday: (date: Date) =>\n floorWeekStartOnTuesday(date) < date,\n isNotFirstDayOfWeekStartOnWednesday: (date: Date) =>\n floorWeekStartOnWednesday(date) < date,\n isNotFirstDayOfWeekStartOnThursday: (date: Date) =>\n floorWeekStartOnThursday(date) < date,\n isNotFirstDayOfWeekStartOnFriday: (date: Date) =>\n floorWeekStartOnFriday(date) < date,\n isNotFirstDayOfWeekStartOnSaturday: (date: Date) =>\n floorWeekStartOnSaturday(date) < date,\n isNotFirstMonth: (date: Date) => floorYear(date) < date,\n };\n}\n\nconst utcUtils = createUtils();\nconst localTimeUtils = createUtils(true);\n\nexport { utcUtils, localTimeUtils };\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport UntypedJed from 'jed';\nimport logging from '../utils/logging';\nimport {\n Jed,\n TranslatorConfig,\n Locale,\n Translations,\n LocaleData,\n LanguagePack,\n} from './types';\n\nconst DEFAULT_LANGUAGE_PACK: LanguagePack = {\n domain: 'superset',\n locale_data: {\n superset: {\n '': {\n domain: 'superset',\n lang: 'en',\n plural_forms: 'nplurals=2; plural=(n != 1)',\n },\n },\n },\n};\n\nexport default class Translator {\n i18n: Jed;\n\n locale: Locale;\n\n constructor(config: TranslatorConfig = {}) {\n const { languagePack = DEFAULT_LANGUAGE_PACK } = config;\n this.i18n = new UntypedJed(languagePack) as Jed;\n this.locale = this.i18n.options.locale_data.superset[''].lang as Locale;\n }\n\n /**\n * Add additional translations on the fly, used by plugins.\n */\n addTranslation(key: string, texts: ReadonlyArray) {\n const translations = this.i18n.options.locale_data.superset;\n if (process.env.WEBPACK_MODE !== 'test' && key in translations) {\n logging.warn(`Duplicate translation key \"${key}\", will override.`);\n }\n translations[key] = texts;\n }\n\n /**\n * Add a series of translations.\n */\n addTranslations(translations: Translations) {\n if (translations && !Array.isArray(translations)) {\n Object.entries(translations).forEach(([key, vals]) =>\n this.addTranslation(key, vals),\n );\n } else {\n logging.warn('Invalid translations');\n }\n }\n\n addLocaleData(data: LocaleData) {\n // always fallback to English\n const translations = data?.[this.locale] || data?.en;\n if (translations) {\n this.addTranslations(translations);\n } else {\n logging.warn('Invalid locale data');\n }\n }\n\n translate(input: string, ...args: unknown[]): string {\n return this.i18n.translate(input).fetch(...args);\n }\n\n translateWithNumber(key: string, ...args: unknown[]): string {\n const [plural, num, ...rest] = args;\n if (typeof plural === 'number') {\n return this.i18n\n .translate(key)\n .ifPlural(plural, key)\n .fetch(plural, num, ...args);\n }\n return this.i18n\n .translate(key)\n .ifPlural(num as number, plural as string)\n .fetch(...rest);\n }\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\n/* eslint no-console: 0 */\n\nimport Translator from './Translator';\nimport { TranslatorConfig, Translations, LocaleData } from './types';\n\nlet singleton: Translator | undefined;\nlet isConfigured = false;\n\nfunction configure(config?: TranslatorConfig) {\n singleton = new Translator(config);\n isConfigured = true;\n\n return singleton;\n}\n\nfunction getInstance() {\n if (!isConfigured) {\n console.warn('You should call configure(...) before calling other methods');\n }\n\n if (typeof singleton === 'undefined') {\n singleton = new Translator();\n }\n\n return singleton;\n}\n\nfunction resetTranslation() {\n if (isConfigured) {\n isConfigured = false;\n singleton = undefined;\n }\n}\n\nfunction addTranslation(key: string, translations: string[]) {\n return getInstance().addTranslation(key, translations);\n}\n\nfunction addTranslations(translations: Translations) {\n return getInstance().addTranslations(translations);\n}\n\nfunction addLocaleData(data: LocaleData) {\n return getInstance().addLocaleData(data);\n}\n\nfunction t(input: string, ...args: unknown[]) {\n return getInstance().translate(input, ...args);\n}\n\nfunction tn(key: string, ...args: unknown[]) {\n return getInstance().translateWithNumber(key, ...args);\n}\n\nexport {\n configure,\n addTranslation,\n addTranslations,\n addLocaleData,\n t,\n tn,\n resetTranslation,\n};\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport logger from './logging';\n\n// We can codegen the enum definition based on a list of supported flags that we\n// check into source control. We're hardcoding the supported flags for now.\nexport enum FeatureFlag {\n // PLEASE KEEP THE LIST SORTED ALPHABETICALLY\n AlertsAttachReports = 'ALERTS_ATTACH_REPORTS',\n AlertReports = 'ALERT_REPORTS',\n AlertReportTabs = 'ALERT_REPORT_TABS',\n AlertReportSlackV2 = 'ALERT_REPORT_SLACK_V2',\n AllowFullCsvExport = 'ALLOW_FULL_CSV_EXPORT',\n AvoidColorsCollision = 'AVOID_COLORS_COLLISION',\n ChartPluginsExperimental = 'CHART_PLUGINS_EXPERIMENTAL',\n ConfirmDashboardDiff = 'CONFIRM_DASHBOARD_DIFF',\n /** @deprecated */\n DashboardCrossFilters = 'DASHBOARD_CROSS_FILTERS',\n DashboardVirtualization = 'DASHBOARD_VIRTUALIZATION',\n DashboardRbac = 'DASHBOARD_RBAC',\n DatapanelClosedByDefault = 'DATAPANEL_CLOSED_BY_DEFAULT',\n DisableLegacyDatasourceEditor = 'DISABLE_LEGACY_DATASOURCE_EDITOR',\n DrillToDetail = 'DRILL_TO_DETAIL',\n DrillBy = 'DRILL_BY',\n DynamicPlugins = 'DYNAMIC_PLUGINS',\n EmbeddableCharts = 'EMBEDDABLE_CHARTS',\n EmbeddedSuperset = 'EMBEDDED_SUPERSET',\n EnableAdvancedDataTypes = 'ENABLE_ADVANCED_DATA_TYPES',\n /** @deprecated */\n EnableJavascriptControls = 'ENABLE_JAVASCRIPT_CONTROLS',\n EnableTemplateProcessing = 'ENABLE_TEMPLATE_PROCESSING',\n EscapeMarkdownHtml = 'ESCAPE_MARKDOWN_HTML',\n EstimateQueryCost = 'ESTIMATE_QUERY_COST',\n GlobalAsyncQueries = 'GLOBAL_ASYNC_QUERIES',\n HorizontalFilterBar = 'HORIZONTAL_FILTER_BAR',\n ListviewsDefaultCardView = 'LISTVIEWS_DEFAULT_CARD_VIEW',\n ScheduledQueries = 'SCHEDULED_QUERIES',\n ShareQueriesViaKvStore = 'SHARE_QUERIES_VIA_KV_STORE',\n SqllabBackendPersistence = 'SQLLAB_BACKEND_PERSISTENCE',\n SqlValidatorsByEngine = 'SQL_VALIDATORS_BY_ENGINE',\n SshTunneling = 'SSH_TUNNELING',\n TaggingSystem = 'TAGGING_SYSTEM',\n Thumbnails = 'THUMBNAILS',\n UseAnalagousColors = 'USE_ANALAGOUS_COLORS',\n ForceSqlLabRunAsync = 'SQLLAB_FORCE_RUN_ASYNC',\n SlackEnableAvatars = 'SLACK_ENABLE_AVATARS',\n EnableDashboardScreenshotEndpoints = 'ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTS',\n EnableDashboardDownloadWebDriverScreenshot = 'ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOT',\n}\n\nexport type ScheduleQueriesProps = {\n JSONSCHEMA: {\n [key: string]: string;\n };\n UISCHEMA: {\n [key: string]: string;\n };\n VALIDATION: {\n [key: string]: string;\n };\n};\nexport type FeatureFlagMap = {\n [key in Exclude]?: boolean;\n} & {\n ScheduledQueries?: ScheduleQueriesProps;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ndeclare global {\n interface Window {\n featureFlags: FeatureFlagMap;\n }\n}\n\nexport function initFeatureFlags(featureFlags?: FeatureFlagMap) {\n if (!window.featureFlags) {\n window.featureFlags = featureFlags || {};\n }\n}\n\nexport function isFeatureEnabled(feature: FeatureFlag): boolean {\n try {\n return !!window.featureFlags[feature];\n } catch (error) {\n logger.error(`Failed to query feature flag ${feature}`);\n }\n return false;\n}\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport default function isRequired(field: string): never {\n throw new Error(`${field} is required.`);\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nconst console = window.console || {};\nconst log = console.log || (() => {});\n\nconst logger = {\n log,\n debug: console.debug || log,\n info: console.info || log,\n warn: console.warn || log,\n error: console.error || log,\n trace: console.trace || log,\n table: console.table || log,\n};\n\n/**\n * Superset frontend logger, currently just an alias to console.\n * This may be extended to support numerous console operations safely\n * i.e.: https://developer.mozilla.org/en-US/docs/Web/API/Console\n */\nexport default logger;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\ninterface ClassInterface {\n new (...args: Args): T;\n}\n\nexport default function makeSingleton(\n BaseClass: ClassInterface,\n ...args: Args\n): () => T {\n let singleton: T;\n\n return function getInstance() {\n if (!singleton) {\n singleton = new BaseClass(...args);\n }\n\n return singleton;\n };\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n t,\n DEFAULT_D3_FORMAT,\n DEFAULT_D3_TIME_FORMAT,\n} from '@superset-ui/core';\n\nimport { BootstrapData, CommonBootstrapData } from './types/bootstrapTypes';\n\nexport const DATETIME_WITH_TIME_ZONE = 'YYYY-MM-DD HH:mm:ssZ';\nexport const TIME_WITH_MS = 'HH:mm:ss.SSS';\n\nexport const BOOL_TRUE_DISPLAY = 'True';\nexport const BOOL_FALSE_DISPLAY = 'False';\n\nexport const URL_PARAMS = {\n standalone: {\n name: 'standalone',\n type: 'number',\n },\n uiConfig: {\n name: 'uiConfig',\n type: 'number',\n },\n preselectFilters: {\n name: 'preselect_filters',\n type: 'object',\n },\n nativeFilters: {\n name: 'native_filters',\n type: 'rison',\n },\n nativeFiltersKey: {\n name: 'native_filters_key',\n type: 'string',\n },\n showFilters: {\n name: 'show_filters',\n type: 'boolean',\n },\n expandFilters: {\n name: 'expand_filters',\n type: 'boolean',\n },\n formDataKey: {\n name: 'form_data_key',\n type: 'string',\n },\n sliceId: {\n name: 'slice_id',\n type: 'number',\n },\n datasourceId: {\n name: 'datasource_id',\n type: 'string',\n },\n datasetId: {\n name: 'dataset_id',\n type: 'string',\n },\n datasourceType: {\n name: 'datasource_type',\n type: 'string',\n },\n dashboardId: {\n name: 'dashboard_id',\n type: 'string',\n },\n force: {\n name: 'force',\n type: 'boolean',\n },\n permalinkKey: {\n name: 'permalink_key',\n type: 'string',\n },\n vizType: {\n name: 'viz_type',\n type: 'string',\n },\n showDatabaseModal: {\n name: 'show_database_modal',\n type: 'boolean',\n },\n saveAction: {\n name: 'save_action',\n type: 'string',\n },\n dashboardPageId: {\n name: 'dashboard_page_id',\n type: 'string',\n },\n dashboardFocusedChart: {\n name: 'focused_chart',\n type: 'number',\n },\n} as const;\n\nexport const RESERVED_CHART_URL_PARAMS: string[] = [\n URL_PARAMS.formDataKey.name,\n URL_PARAMS.sliceId.name,\n URL_PARAMS.datasourceId.name,\n URL_PARAMS.datasourceType.name,\n URL_PARAMS.datasetId.name,\n];\nexport const RESERVED_DASHBOARD_URL_PARAMS: string[] = [\n URL_PARAMS.nativeFilters.name,\n URL_PARAMS.nativeFiltersKey.name,\n URL_PARAMS.permalinkKey.name,\n URL_PARAMS.preselectFilters.name,\n];\n\n/**\n * Faster debounce delay for inputs without expensive operation.\n */\nexport const FAST_DEBOUNCE = 250;\n\n/**\n * Slower debounce delay for inputs with expensive API calls.\n */\nexport const SLOW_DEBOUNCE = 500;\n\n/**\n * Display null as `N/A`\n */\nexport const NULL_DISPLAY = t('N/A');\n\nexport const DEFAULT_COMMON_BOOTSTRAP_DATA: CommonBootstrapData = {\n flash_messages: [],\n conf: {},\n locale: 'en',\n feature_flags: {},\n language_pack: {\n domain: '',\n locale_data: {\n superset: {\n '': {\n domain: 'superset',\n lang: 'en',\n plural_forms: '',\n },\n },\n },\n },\n extra_categorical_color_schemes: [],\n extra_sequential_color_schemes: [],\n theme_overrides: {},\n menu_data: {\n menu: [],\n brand: {\n path: '',\n icon: '',\n alt: '',\n tooltip: '',\n text: '',\n },\n navbar_right: {\n show_watermark: true,\n languages: {},\n show_language_picker: true,\n user_is_anonymous: false,\n user_info_url: '',\n user_login_url: '',\n user_logout_url: '',\n locale: '',\n },\n settings: [],\n environment_tag: {\n text: '',\n color: '',\n },\n },\n d3_format: DEFAULT_D3_FORMAT,\n d3_time_format: DEFAULT_D3_TIME_FORMAT,\n};\n\nexport const DEFAULT_BOOTSTRAP_DATA: BootstrapData = {\n common: DEFAULT_COMMON_BOOTSTRAP_DATA,\n};\n\nexport enum FilterPlugins {\n Select = 'filter_select',\n Range = 'filter_range',\n Time = 'filter_time',\n TimeColumn = 'filter_timecolumn',\n TimeGrain = 'filter_timegrain',\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n CategoricalScheme,\n ColorScheme,\n ColorSchemeConfig,\n getCategoricalSchemeRegistry,\n getSequentialSchemeRegistry,\n SequentialScheme,\n SequentialSchemeConfig,\n CategoricalAirbnb,\n CategoricalD3,\n CategoricalEcharts,\n CategoricalGoogle,\n CategoricalLyft,\n CategoricalPreset,\n CategoricalSuperset,\n SequentialCommon,\n SequentialD3,\n ColorSchemeRegistry,\n ColorSchemeGroup,\n CategoricalPresetSuperset,\n CategoricalModernSunset,\n CategoricalColorsOfRainbow,\n CategoricalBlueToGreen,\n CategoricalRedToYellow,\n CategoricalWavesOfBlue,\n} from '@superset-ui/core';\n\nfunction registerColorSchemes(\n registry: ColorSchemeRegistry,\n colorSchemes: T[],\n standardDefaultKey: string,\n) {\n colorSchemes.forEach(scheme => {\n registry.registerValue(scheme.id, scheme);\n });\n\n const defaultKey =\n colorSchemes.find(scheme => scheme.isDefault)?.id || standardDefaultKey;\n registry.setDefaultKey(defaultKey);\n}\n\nexport default function setupColors(\n extraCategoricalColorSchemeConfigs: ColorSchemeConfig[] = [],\n extraSequentialColorSchemeConfigs: SequentialSchemeConfig[] = [],\n) {\n const extraCategoricalColorSchemes = extraCategoricalColorSchemeConfigs.map(\n config =>\n new CategoricalScheme({ ...config, group: ColorSchemeGroup.Custom }),\n );\n const extraSequentialColorSchemes = extraSequentialColorSchemeConfigs.map(\n config => new SequentialScheme(config),\n );\n registerColorSchemes(\n // @ts-ignore\n getCategoricalSchemeRegistry(),\n [\n ...CategoricalAirbnb,\n ...CategoricalD3,\n ...CategoricalEcharts,\n ...CategoricalGoogle,\n ...CategoricalLyft,\n ...CategoricalPreset,\n ...CategoricalSuperset,\n ...CategoricalPresetSuperset,\n ...CategoricalModernSunset,\n ...CategoricalColorsOfRainbow,\n ...CategoricalBlueToGreen,\n ...CategoricalRedToYellow,\n ...CategoricalWavesOfBlue,\n ...extraCategoricalColorSchemes,\n ],\n 'supersetColors',\n );\n registerColorSchemes(\n // @ts-ignore\n getSequentialSchemeRegistry(),\n [...SequentialCommon, ...SequentialD3, ...extraSequentialColorSchemes],\n 'superset_seq_1',\n );\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { setConfig as setHotLoaderConfig } from 'react-hot-loader';\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only';\nimport moment from 'moment';\n// eslint-disable-next-line no-restricted-imports\nimport {\n configure,\n makeApi,\n supersetTheme,\n initFeatureFlags,\n} from '@superset-ui/core';\nimport { merge } from 'lodash';\nimport setupClient from './setup/setupClient';\nimport setupColors from './setup/setupColors';\nimport setupFormatters from './setup/setupFormatters';\nimport setupDashboardComponents from './setup/setupDashboardComponents';\nimport { User } from './types/bootstrapTypes';\nimport getBootstrapData from './utils/getBootstrapData';\n\nif (process.env.WEBPACK_MODE === 'development') {\n setHotLoaderConfig({ logLevel: 'debug', trackTailUpdates: false });\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nconst bootstrapData = getBootstrapData();\n\n// Configure translation\nif (typeof window !== 'undefined') {\n configure({ languagePack: bootstrapData.common.language_pack });\n moment.locale(bootstrapData.common.locale);\n} else {\n configure();\n}\n\n// Configure feature flags\ninitFeatureFlags(bootstrapData.common.feature_flags);\n\n// Setup SupersetClient\nsetupClient();\n\nsetupColors(\n bootstrapData.common.extra_categorical_color_schemes,\n bootstrapData.common.extra_sequential_color_schemes,\n);\n\n// Setup number formatters\nsetupFormatters(\n bootstrapData.common.d3_format,\n bootstrapData.common.d3_time_format,\n);\n\nsetupDashboardComponents();\n\nexport const theme = merge(\n supersetTheme,\n bootstrapData.common.theme_overrides ?? {},\n);\n\nconst getMe = makeApi({\n method: 'GET',\n endpoint: '/api/v1/me/',\n});\n\n/**\n * When you re-open the window, we check if you are still logged in.\n * If your session expired or you signed out, we'll redirect to login.\n * If you aren't logged in in the first place (!isActive), then we shouldn't do this.\n */\nif (bootstrapData.user?.isActive) {\n document.addEventListener('visibilitychange', () => {\n // we only care about the tab becoming visible, not vice versa\n if (document.visibilityState !== 'visible') return;\n\n getMe().catch(() => {\n // ignore error, SupersetClient will redirect to login on a 401\n });\n });\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport {\n createDurationFormatter,\n getNumberFormatter,\n getNumberFormatterRegistry,\n NumberFormats,\n getTimeFormatterRegistry,\n SMART_DATE_ID,\n SMART_DATE_DETAILED_ID,\n SMART_DATE_VERBOSE_ID,\n createSmartDateFormatter,\n createSmartDateVerboseFormatter,\n createSmartDateDetailedFormatter,\n} from '@superset-ui/core';\nimport { FormatLocaleDefinition } from 'd3-format';\nimport { TimeLocaleDefinition } from 'd3-time-format';\n\nexport default function setupFormatters(\n d3NumberFormat: Partial,\n d3TimeFormat: Partial,\n) {\n getNumberFormatterRegistry()\n .setD3Format(d3NumberFormat)\n // Add shims for format strings that are deprecated or common typos.\n // Temporary solution until performing a db migration to fix this.\n .registerValue(',0', getNumberFormatter(',.4~f'))\n .registerValue('null', getNumberFormatter(',.4~f'))\n .registerValue('%', getNumberFormatter('.0%'))\n .registerValue('.', getNumberFormatter('.4~f'))\n .registerValue(',f', getNumberFormatter(',d'))\n .registerValue(',r', getNumberFormatter(',.4f'))\n .registerValue('0f', getNumberFormatter(',d'))\n .registerValue(',#', getNumberFormatter(',.4~f'))\n .registerValue('$,f', getNumberFormatter('$,d'))\n .registerValue('0%', getNumberFormatter('.0%'))\n .registerValue('f', getNumberFormatter(',d'))\n .registerValue(',.', getNumberFormatter(',.4~f'))\n .registerValue('.1%f', getNumberFormatter('.1%'))\n .registerValue('1%', getNumberFormatter('.0%'))\n .registerValue('3%', getNumberFormatter('.0%'))\n .registerValue(',%', getNumberFormatter(',.0%'))\n .registerValue('.r', getNumberFormatter('.4~f'))\n .registerValue('$,.0', getNumberFormatter('$,d'))\n .registerValue('$,.1', getNumberFormatter('$,.1~f'))\n .registerValue(',0s', getNumberFormatter(',.4~f'))\n .registerValue('%%%', getNumberFormatter('.0%'))\n .registerValue(',0f', getNumberFormatter(',d'))\n .registerValue('+,%', getNumberFormatter('+,.0%'))\n .registerValue('$f', getNumberFormatter('$,d'))\n .registerValue('+,', getNumberFormatter(NumberFormats.INTEGER_SIGNED))\n .registerValue(',2f', getNumberFormatter(',.4~f'))\n .registerValue(',g', getNumberFormatter(',.4~f'))\n .registerValue('int', getNumberFormatter(NumberFormats.INTEGER))\n .registerValue('.0%f', getNumberFormatter('.1%'))\n .registerValue('$,0', getNumberFormatter('$,.4f'))\n .registerValue('$,0f', getNumberFormatter('$,.4f'))\n .registerValue('$,.f', getNumberFormatter('$,.4f'))\n .registerValue('DURATION', createDurationFormatter())\n .registerValue(\n 'DURATION_SUB',\n createDurationFormatter({ formatSubMilliseconds: true }),\n );\n\n const timeFormatterRegistry = getTimeFormatterRegistry();\n\n timeFormatterRegistry\n .setD3Format(d3TimeFormat)\n .registerValue(\n SMART_DATE_ID,\n createSmartDateFormatter(timeFormatterRegistry.d3Format),\n )\n .registerValue(\n SMART_DATE_VERBOSE_ID,\n createSmartDateVerboseFormatter(timeFormatterRegistry.d3Format),\n )\n .registerValue(\n SMART_DATE_DETAILED_ID,\n createSmartDateDetailedFormatter(timeFormatterRegistry.d3Format),\n )\n .setDefaultKey(SMART_DATE_ID);\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport { SupersetClient, logging, ClientConfig } from '@superset-ui/core';\nimport parseCookie from 'src/utils/parseCookie';\nimport getBootstrapData from 'src/utils/getBootstrapData';\n\nconst bootstrapData = getBootstrapData();\n\nfunction getDefaultConfiguration(): ClientConfig {\n const csrfNode = document.querySelector('#csrf_token');\n const csrfToken = csrfNode?.value;\n\n // when using flask-jwt-extended csrf is set in cookies\n const jwtAccessCsrfCookieName =\n bootstrapData.common.conf.JWT_ACCESS_CSRF_COOKIE_NAME;\n const cookieCSRFToken = parseCookie()[jwtAccessCsrfCookieName] || '';\n\n return {\n protocol: ['http:', 'https:'].includes(window?.location?.protocol)\n ? (window?.location?.protocol as 'http:' | 'https:')\n : undefined,\n host: window.location?.host || '',\n csrfToken: csrfToken || cookieCSRFToken,\n };\n}\n\nexport default function setupClient(customConfig: Partial = {}) {\n SupersetClient.configure({\n ...getDefaultConfiguration(),\n ...customConfig,\n })\n .init()\n .catch(error => {\n logging.warn('Error initializing SupersetClient', error);\n });\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { BootstrapData } from 'src/types/bootstrapTypes';\nimport { DEFAULT_BOOTSTRAP_DATA } from 'src/constants';\n\nexport default function getBootstrapData(): BootstrapData {\n const appContainer = document.getElementById('app');\n const dataBootstrap = appContainer?.getAttribute('data-bootstrap');\n return dataBootstrap ? JSON.parse(dataBootstrap) : DEFAULT_BOOTSTRAP_DATA;\n}\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements. See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership. The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied. See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\ntype CookieMap = { [cookieId: string]: string };\n\nexport default function parseCookie(cookie = document.cookie): CookieMap {\n return Object.fromEntries(\n cookie\n .split('; ')\n .filter(x => x)\n .map(x => x.split('=')),\n );\n}\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","CategoricalScheme","ColorScheme","CategoricalSchemeRegistry","ColorSchemeRegistry","constructor","super","this","registerValue","schemes","makeSingleton","colors","description","label","isDefault","group","RegistryWithDefaultKey","name","overwritePolicy","OverwritePolicy","Warn","setFirstItemAsDefault","get","key","strict","target","defaultKey","getDefaultKey","SequentialScheme","config","isDiverging","createLinearScale","domain","modifyRange","scale","scaleLinear","interpolate","interpolateHcl","clamp","length","range","getColors","quantize","piecewise","interpolateNumber","numColors","extent","piecewiseScale","adjustExtent","t","SequentialSchemeRegistry","s","ColorSchemeGroup","Featured","singletonClient","getInstance","SupersetClient","configure","SupersetClientClass","reset","undefined","delete","request","init","force","isAuthenticated","getGuestToken","post","postForm","args","put","reAuthenticate","defaultUnauthorizedHandler","window","location","pathname","startsWith","href","baseUrl","DEFAULT_BASE_URL","host","protocol","headers","fetchRetryOptions","mode","timeout","credentials","csrfToken","guestToken","guestTokenHeaderName","unauthorizedHandler","csrfPromise","handleUnauthorized","url","URL","replace","Accept","DEFAULT_FETCH_RETRY_OPTIONS","Promise","getCSRFToken","payload","ensureAuth","hiddenForm","document","createElement","action","method","payloadWithToken","csrf_token","guest_token","entries","forEach","value","data","type","appendChild","body","submit","removeChild","requestConfig","endpoint","ignoreUnauthorized","rest","callApiAndParseWithTimeout","getUrl","catch","res","status","reject","_this$csrfPromise","error","parseMethod","then","json","result","inputHost","cleanHost","slice","rejectAfterTimeout","setTimeout","statusText","JSONbig","_JSONbig","constructorAction","async","apiPromise","cache","postPayload","jsonPayload","redirect","signal","stringify","url_","searchParams","_window$location","fetchWithRetry","fetchRetry","fetch","partialUrl","params","search","URLSearchParams","toString","getFullUrl","CACHE_AVAILABLE","supersetCache","caches","open","CACHE_KEY","cachedResponse","match","etag","response","HTTP_STATUS_NOT_MODIFIED","cachedFullResponse","clone","HTTP_STATUS_OK","FormData","JSON","parse","tryParsePayload","formData","valueString","String","console","append","callApi","ok","text","rawData","_cloneDeepWith","isInteger","Number","parseResponse","race","retries","retryDelay","retryOn","COMMON_ERR_MESSAGES","SESSION_TIMED_OUT","ExtensibleFunction","Function","fn","setPrototypeOf","prototype","Registry","items","promises","listeners","Allow","Set","clear","notifyListeners","has","item","willOverwrite","warn","Prohibit","registerLoader","loader","getAsPromise","promise","newPromise","getMap","reduce","prev","getMapAsPromise","all","values","i","valuesAsPromise","entriesAsPromise","remove","isChange","addListener","listener","add","removeListener","initialDefaultKey","targetKey","setDefaultKey","clearDefaultKey","DEFAULT_D3_FORMAT","decimal","thousands","grouping","currency","FLOAT_2_POINT","FLOAT_SIGNED_2_POINT","DOLLAR","DOLLAR_ROUND","DOLLAR_ROUND_SIGNED","DOLLAR_SIGNED","FLOAT","FLOAT_1_POINT","FLOAT_3_POINT","FLOAT_SIGNED","FLOAT_SIGNED_1_POINT","FLOAT_SIGNED_3_POINT","INTEGER","INTEGER_SIGNED","PERCENT","PERCENT_1_POINT","PERCENT_2_POINT","PERCENT_3_POINT","PERCENT_SIGNED","PERCENT_SIGNED_1_POINT","PERCENT_SIGNED_2_POINT","PERCENT_SIGNED_3_POINT","SI","SI_1_DIGIT","SI_2_DIGIT","SI_3_DIGIT","SMART_NUMBER","SMART_NUMBER_SIGNED","OVER_MAX_HIDDEN","PREVIEW_VALUE","NumberFormatter","format","formatFunc","isInvalid","isRequired","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","preview","NumberFormatterRegistry","d3Format","NumberFormats","createSmartNumberFormatter","signed","setD3Format","formatterId","targetFormat","trim","formatter","createD3NumberFormatter","formatString","locale","getNumberFormatter","formatNumber","formatLocale","createDurationFormatter","multiplier","prettyMsOptions","prettyMsFormatter","siFormatter","float2PointFormatter","float4PointFormatter","getSign","absoluteValue","Math","abs","formatValue","handleError","SupersetApiError","message","originalError","errorJson","errorMessage","Response","responseStatus","responseStatusText","error_","err","_errorJson$errors","errors","error_type","validRequestTypes","makeApi","options","requestType","requestType_","responseType","processResponse","requestOptions","isPayloadless","join","client","rison","typedResult","SupersetApiErrorType","link","extra","stack","errorType","originalErrorStack","split","UnknownError","useTheme","theme","useThemeBasic","emotionCache","createCache","styled","emotionStyled","supersetTheme","borderRadius","help","primary","base","dark1","dark2","light1","light2","light3","light4","light5","secondary","dark3","grayscale","warning","alert","success","info","opacity","light","mediumLight","mediumHeavy","heavy","typography","families","sansSerif","serif","monospace","weights","normal","medium","bold","sizes","xxs","xs","m","l","xl","xxl","zIndex","aboveDashboardCharts","dropdown","max","transitionTiming","gridUnit","brandIconMaxWidth","DEFAULT_D3_TIME_FORMAT","dateTime","date","time","periods","days","shortDays","months","shortMonths","LOCAL_PREFIX","DATABASE_DATE","DATABASE_DATETIME","DATABASE_DATETIME_REVERSE","INTERNATIONAL_DATE","TIME","US_DATE","PREVIEW_TIME","Date","UTC","TimeFormatter","useLocalTime","stringifyTimeInput","toUTCString","TimeFormatterRegistry","TimeFormats","createD3TimeFormatter","MINUTE","TimeGranularity","DATE","SECOND","FIVE_MINUTES","TEN_MINUTES","FIFTEEN_MINUTES","THIRTY_MINUTES","HOUR","DAY","WEEK","MONTH","QUARTER","YEAR","WEEK_STARTING_SUNDAY","WEEK_STARTING_MONDAY","WEEK_ENDING_SATURDAY","WEEK_ENDING_SUNDAY","createTime","year","month","hours","minutes","seconds","milliseconds","MS_IN_SECOND","MS_IN_MINUTE","MS_IN_HOUR","deductOneMs","getTime","TimeRangeFormatter","getTimeRangeFormatter","formatId","start","end","formatTimeRange","getTimeFormatter","granularity","TimeFormatsForGranularity","timeRangeFormatter","endTime","getDate","getUTCDate","getMonth","getUTCMonth","getFullYear","getUTCFullYear","floor","computeEndTimeFromGranularity","createTimeRangeFromGranularity","getTimeFormatterForGranularity","formatTime","timeFormat","utcFormat","localeObject","timeFormatLocale","createMultiFormatter","formats","millisecond","second","minute","hour","day","week","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatFirstDayOfWeek","formatMonth","formatYear","hasMillisecond","hasSecond","hasMinute","hasHour","isNotFirstDayOfMonth","isNotFirstDayOfWeek","isNotFirstMonth","localTimeUtils","utcUtils","multiFormatFunc","SMART_DATE_ID","createSmartDateFormatter","SMART_DATE_DETAILED_ID","createSmartDateDetailedFormatter","SMART_DATE_VERBOSE_ID","createSmartDateVerboseFormatter","createUtils","floorSecond","floorMinute","floorHour","floorDay","floorWeek","floorWeekStartOnSunday","floorWeekStartOnMonday","floorWeekStartOnTuesday","floorWeekStartOnWednesday","floorWeekStartOnThursday","floorWeekStartOnFriday","floorWeekStartOnSaturday","floorMonth","floorYear","timeSecond","timeMinute","timeHour","timeDay","timeWeek","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","timeMonth","timeYear","utcSecond","utcMinute","utcHour","utcDay","utcWeek","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","utcYear","isNotFirstDayOfWeekStartOnSunday","isNotFirstDayOfWeekStartOnMonday","isNotFirstDayOfWeekStartOnTuesday","isNotFirstDayOfWeekStartOnWednesday","isNotFirstDayOfWeekStartOnThursday","isNotFirstDayOfWeekStartOnFriday","isNotFirstDayOfWeekStartOnSaturday","DEFAULT_LANGUAGE_PACK","locale_data","superset","lang","plural_forms","Translator","i18n","languagePack","UntypedJed","addTranslation","texts","translations","logging","addTranslations","Array","isArray","vals","addLocaleData","en","translate","input","translateWithNumber","plural","num","ifPlural","singleton","isConfigured","resetTranslation","tn","FeatureFlag","initFeatureFlags","featureFlags","isFeatureEnabled","feature","logger","field","log","debug","trace","table","BaseClass","DATETIME_WITH_TIME_ZONE","TIME_WITH_MS","BOOL_TRUE_DISPLAY","BOOL_FALSE_DISPLAY","URL_PARAMS","standalone","uiConfig","preselectFilters","nativeFilters","nativeFiltersKey","showFilters","expandFilters","formDataKey","sliceId","datasourceId","datasetId","datasourceType","dashboardId","permalinkKey","vizType","showDatabaseModal","saveAction","dashboardPageId","dashboardFocusedChart","RESERVED_CHART_URL_PARAMS","RESERVED_DASHBOARD_URL_PARAMS","FAST_DEBOUNCE","SLOW_DEBOUNCE","NULL_DISPLAY","DEFAULT_BOOTSTRAP_DATA","common","flash_messages","conf","feature_flags","language_pack","extra_categorical_color_schemes","extra_sequential_color_schemes","theme_overrides","menu_data","menu","brand","path","icon","alt","tooltip","navbar_right","show_watermark","languages","show_language_picker","user_is_anonymous","user_info_url","user_login_url","user_logout_url","settings","environment_tag","color","d3_format","d3_time_format","FilterPlugins","registerColorSchemes","registry","colorSchemes","standardDefaultKey","_colorSchemes$find","scheme","find","bootstrapData","getBootstrapData","moment","setupClient","extraCategoricalColorSchemeConfigs","extraSequentialColorSchemeConfigs","extraCategoricalColorSchemes","Custom","extraSequentialColorSchemes","getCategoricalSchemeRegistry","CategoricalAirbnb","CategoricalD3","CategoricalEcharts","CategoricalGoogle","CategoricalLyft","CategoricalPreset","CategoricalSuperset","CategoricalPresetSuperset","CategoricalModernSunset","CategoricalColorsOfRainbow","CategoricalBlueToGreen","CategoricalRedToYellow","CategoricalWavesOfBlue","getSequentialSchemeRegistry","SequentialCommon","SequentialD3","setupColors","d3NumberFormat","d3TimeFormat","getNumberFormatterRegistry","formatSubMilliseconds","timeFormatterRegistry","getTimeFormatterRegistry","setupFormatters","_merge","_bootstrapData$common","getMe","_bootstrapData$user","user","isActive","addEventListener","visibilityState","getDefaultConfiguration","_window","_window2","_window2$location","_window$location2","csrfNode","querySelector","jwtAccessCsrfCookieName","JWT_ACCESS_CSRF_COOKIE_NAME","cookieCSRFToken","parseCookie","includes","customConfig","appContainer","getElementById","dataBootstrap","getAttribute","cookie","fromEntries","filter","x"],"sourceRoot":""}